čo sa učí na tej angline v LS? Alebo čo po mne chcú na skúške? Je to odborné alebo všeobecné? Aby som vedel ktorú nepovinnú anglinu si mám dať....
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Zobrazi� pr�spevky MenuQuote from: Majci902 on 30.06.2010, 02:45:16ja som si zapol wikipediu a odpisal nejake vzorce
...sami kokoti na dozore
Quote from: TheOne on 17.06.2010, 02:55:01si zabil
...
ak vies ze nic nevies zvol si fylozofiu
...
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void turnRight() {
turnLeft();
turnLeft();
turnLeft();
}
void sub() //nami zadefinovany prikaz
{
int pp=0, pb=1, c1=0, c2=0, i; //pp je pocitadlo prejdenych krokov, pb je pocet Beeprov, c1 a c2 su spocitavane cisla a i je pomocna premenna (vacsinou pocitadlo pre for)
while(facingNorth()==0) //cyklus riesi otocenie na sever, otaca sa, kym nie je nasmerovany spravne
{
turnLeft();
}
while(frontIsClear()==1) //karol pojde po najblizsiu stenu
{
move();
}
turnLeft(); //otocenie na dolava, teda smeruje na vychod
while(frontIsClear()==1) //karol pojde po najblizsiu stenu
{
move();
}
turnLeft(); //dve otocenia ho otocia na zapad
turnLeft();
while(frontIsClear()==1) //prejdenie do praveho horneho rohu
{
move();
}
turnLeft(); //otocenie na zapad
turnLeft();
while(beepersPresent()==0)
{
while(frontIsClear()==1)
{
move();
if(beepersPresent()==1)
{
goto pocitanie;
}
}
turnLeft();
turnLeft();
while(frontIsClear()==1)
{
move();
}
turnRight();
move();
turnRight();
}
pocitanie:
pp=0;
while(pb!=0) //cyklus na zistenie hodnoty prveho cisla a jeho ulozenie do c1
{
pb=0;
while(beepersPresent()==1) //karol pri kazdom uspesnom zdvihnuti navysi hodnotu pb
{
pickBeeper();
pb++;
}
for(i=0;i<pb;i++) //vratenie vzanych Beeprov, hodnota pb sa nemeni
{
putBeeper();
}
i=0;
if(pb==10) //uprava pri nule, ktoru predstavuje skupina 10 Beeprov
{
i=1;
pb=0;
}
c1=c1+(pb*pow(10,pp)); //ciselna hodnota sa uklada do c1, pricom sa pripocitava pocet zistenych beeprov osetreny podla vzdialenosti od desatinnej ciarky
if(i==1) //zadanie hodnoty do poctu Beeprov, aby program vedel, ze tu k najdeniu Beeprov doslo a mohol sa vykonavat vdaka pociatocnej splnenej podmienke
pb=1;
pp++; //pocet krokov predstavuje nasobnu velkost k cislu desat (teda 20=10^1, kde mocnina sa meni vdaka pp)
if(frontIsBlocked()==1)
{
pp--;
goto dalsir;
}
move();
}
dalsir:
turnLeft(); //otocenie opacne, teda na vychod
turnLeft();
for(i=0;i<pp;i++) //navrat na koniec cisla
{
move();
}
turnRight(); //presun na dalsi riadok
move();
turnRight();
if(c1>=100) //pri praci so zlozitym vzorcom dochadza pri prechode na trojciferne cislo k strate 1, ktora sa tymto osetri
c1=c1+1;
pb=1;
pp=0;
while(pb!=0) //cyklus na zistenie hodnoty druheho cisla, obdobny ako u cisla prveho, len uklada do c2
{
pb=0;
while(beepersPresent()==1) //karol pri kazdom uspesnom zdvihnuti navysi hodnotu pb
{
pickBeeper();
pb++;
}
for(i=0;i<pb;i++) //vratenie vzanych Beeprov, hodnota pb sa nemeni
{
putBeeper();
}
i=0;
if(pb==10)
{
i=1;
pb=0;
}
c2=c2+(pb*pow(10,pp)); //ciselna hodnota sa uklada do c1, pricom sa pripocitava pocet zistenych beeprov osetreny podla vzdialenosti od desatinnej ciarky
if(i==1)
pb=1;
pp++; //pocet krokov predstavuje nasobnu velkost k cislu desat (teda 20=10^1, kde mocnina sa meni vdaka pp)
if(frontIsBlocked()==1)
{
pp=pp-1;
goto vysledok;
}
move();
}
vysledok:
turnLeft(); //otocenie opacne, teda na vychod
turnLeft();
for(i=0;i<pp;i++) //navrat na koniec cisla
{
move();
}
turnRight(); //presun na dalsi riadok
move();
turnRight();
if(c2>=100)
c2=c2+1;
printf("%d %d",c1,c2);
c1=c1-c2; //odcitanie druheho cisla od prveho
pp=0;
while(c1!=0) //bude ukladat vysledok postupne, az kym nevylozi cele cislo a to ziskava zistenim zvysku pri deleni desiatim, odcitanim zvysku a naslednym 10-nasobnym zmensenim vysledneho cisla pre dalsie ziskavanie cifier
{
i=pow(10,pp);
pb=c1 % 10;
c1=c1-pb;
if(pb==0) //v pripade pokusu o vypisanie nuly sa hodnota zmeni na 10, lebo podla nasej kniznice je reprezentacia 0 prave cislo 10
pb=10;
for(i=0;i<pb;i++)
{
putBeeper();
}
c1=c1/10;
move();
}
turnLeft();
while(frontIsClear()==1) //karol pojde po najblizsiu stenu
{
move();
}
turnLeft();
while(frontIsClear()==1) //karol pojde po najblizsiu stenu v tomto pripade pravy dolny roh otoceny na vychod
{
move();
}
}
int main(int argc, char *argv[])
{
turnOn("basic.kw");
sub();
turnOff();
return 0;
}