• Welcome to TUKE FÓRUM - Fórum pre študentov Technickej Univerzity v Košiciach.
 

Programovanie

Started by esperian, 18.02.2011, 22:35:36

« predchdzajce - alie »

esperian

hojte mate niekto riesenie tejto ulohy

Úloha:  Upravte program tak, aby Karel počas značkovania rohov sveta neznačkoval aj tie rohy, ktoré už sú označené.

je to z prveho cvika, kedze ja som zabudol cely zaklad unixu tak som dlho maturoval hladanim prikazou na nete cez cvika, a potom som uz nic nestihal, tak som si nato teraz sadol a poriadne prestudoval, ale tato ulaha mi este chyba .. som rozmyslal nad niecim takym ale neide mi to.

Quote#include <karel.h>   

void pohyb5(){
         movek();
         movek();
         movek();
         movek();
         movek();
}

int main(){
    turnOn("empty1.kw");
   
    if(noBeeperPresent){
      putBeepers();
      pohyb5();}    
    else
      pohyb5();

    turnLeft();

    if(noBeeperPresent){
      putBeepers();
      pohyb5();}
    else
      pohyb5();

    turnLeft();
   
    if(noBeeperPresent){
      putBeepers();
      pohyb5();}
    else
      pohyb5();

    turnLeft();
    pohyb5();
   
     
         
turnOff();
   
    return 0;
}

dik ak to niekto ma

rastodt

oprav si prikaz putBeepers() na putBeeper()

//nevravim ze po opraveni tohoto pojde cely program

rastodt

ja som to spravil takto, hlavne ze to funguje :)
ty mas chyby v podmienkach

Quote
#include <karel.h>

void runMile(){
   movek();
   movek();
   movek();
   movek();
   movek();
}

int main(){
   turnOn("empty1.kw");

   if(beepersPresent())
   {
      runMile();
   }
   else
   {
      putBeeper();
      runMile();
   }
   turnLeft();

   if(beepersPresent())
   {
      runMile();
   }
   else
   {
      putBeeper();
      runMile();
   }
   turnLeft();
   
   if(beepersPresent())
   {
      runMile();
   }
   else
   {   
      putBeeper();
      runMile();
   }

   turnLeft();

   if(beepersPresent())
   {
      runMile();
   }
   else
   {
      putBeeper();
      runMile();
   }


   turnOff();
   return 0;
}

orsi

vsade tam mas chybu if(noBeeperPresent), spravne ma byt if(noBeepersPresent()).  ;)

Zomrieš hlúpy

 else {
      pohyb5();
}

toto oprav

AnvilOfFury

Quote from: Zomrieš hlúpy on  19.02.2011, 02:09:00
else {
      pohyb5();
}

toto oprav
Pri jednom príkaze je jedno či je v tvare:

else pohyb5();

alebo v tvare

else {
   pohyb5();
}
Keep information to yourself - Knowledge is power. Think job security. Never provide documentation.
Use Real Tools - No "fancy-pancy" IDEs. Real developers only use vi.
Compiled = Ship It - User acceptance testing is an absolute waste of time.

esperian

super takze som aj celkom dobre rozmyslal , apon vidim aku sarapatu narobi jedno pismenko ..chyba bola v :

putBeepers() na putBeeper()
if(noBeeperPresent) na if(noBeepersPresent()).

diky hosi  :ropebanana:

RiTChi

#7
Moje riesenie (pocita aj so zmenenou velkostou mapy :) ):

#include <karel.h>
int main() {
 turnOn("empty1.kw");
 for(int i=0; i<4; i++) {
   while(frontIsClear()) {
     movek();
   }
   if (i!=3) {
     turnLeft();
   }
   if(noBeepersPresent()) {
      putBeeper();
   }
 }
 turnOff();
 return 0;
}

Rajo

no akurát, že v cykle máš chybu...

RiTChi

Quote from: Rajo on  19.02.2011, 16:27:06
no akurát, že v cykle máš chybu...

Ako je potom možné, že program beží? Kde je chyba? Ak ju vypísal kompilátor, tak skús pridať do gcc príkazu "-std=c99". Malo by to jechať.

Rajo

Quote from: RiTChi on  19.02.2011, 17:53:18
Quote from: Rajo on  19.02.2011, 16:27:06
no akurát, že v cykle máš chybu...

Ako je potom možné, že program beží? Kde je chyba? Ak ju vypísal kompilátor, tak skús pridať do gcc príkazu "-std=c99". Malo by to jechať.

nj, s tým parametrom to beží :)

hardest

jedna vec, mal som cviko s Pietrikovou, vravela, ze bleskovka bude vzdy z toho, z coho sa treba pripravit na to cvicenie, na ktorom bude bleskovka ... cize na buduci tyzden bude z toho, z coho mame byt pripraveny na buducotyzdnove cviko ... cize si mam prezriet to co je na moodle Cvicenie #2 ? .. potom co budeme robit na tom druhom cviceni ked si to uz vsetko spravim doma ?
Ake otazky asi mozem cakat ?

hardest


AnvilOfFury

By som chcel len pochváliť spracovanie cvičení :) Páčia sa mi viac ako minulého roka.
Keep information to yourself - Knowledge is power. Think job security. Never provide documentation.
Use Real Tools - No "fancy-pancy" IDEs. Real developers only use vi.
Compiled = Ship It - User acceptance testing is an absolute waste of time.

esperian

Quote from: eminkaa on  19.02.2011, 21:13:36
ja mam tiez cvika s pietrikovou a u nas vravela, ze si nemas doma spravit ulohy z druheho cvicenia, ale teoreticky sa pripravit z toho, co je uvedene v cieloch daneho cvicenia.
tusim, ze v druhom cviku je uvadzane nieco take:
   1. Precvičiť si vetvenie toku programu na základe podmienok v programovacom jazyku C.
   2. Naučiť sa používať logické cykly v programovacom jazyku C.
   3. Osvojiť si príkazy break a continue pre riadenie behu cyklov.

ja si teda doma pozriem, co sa pouziva na vetvenie toku programu (to uz bolo aj na prvom cviku), co sa pouziva pri logickych cykloch, co je to break a continue; a k tomu si samozrejme pozriem aj prislusnu teoriu.

na stranke druheho cvicenia som nasla aj take, ze Pavel Herout: Učebnice jazyka C (1. díl) - kapitoly 5.1, 5.4 a 5.5, takze aj hned viem, kde si to mozem pozriet

xD

AnvilOfFury

BTW. nejaké rýchle materiály v prílohe :)
Stručný přehled základní syntaxe jazyka C a Syntax Jazyka C
Keep information to yourself - Knowledge is power. Think job security. Never provide documentation.
Use Real Tools - No "fancy-pancy" IDEs. Real developers only use vi.
Compiled = Ship It - User acceptance testing is an absolute waste of time.

hardest

btw nemate niekto zo starsich spravene vsetky tie doplnujuce ulohy z cviceni ? ... lebo k 1. cviceniu su lahke doplnujuce, ale ako tak pozeram tak ku 2. cviceniu su doplnujuce ulohy tazsie ako tie riadne ulohy, ktore by sa mali stihnut na cviceni .. ze keby som si nevedel s tymi doplnujucimi rady aby som videl ako to ma byt spravene a podla toho by som to pochopil a dalsie by som uz mozno vedel aj sam

hardest

jednoduchsie by bolo, keby boli niekde zverejnene riesenia pre vsetky tie ulohy :) ... napriklad takym sposobom, ze riesenia z druheho tyzdna budu zverejnene az treti tyzden a tak .. aby sme sa najskor sami potrapili a az keby nam to nijak neslo tak by sme siahli po tych rieseniach ... osobne by som nerad stale otravoval cviciaceho s tym, ze nieco neviem spravit ... mi to pride kus blbe

AnvilOfFury

#18
Quote from: hardest on  19.02.2011, 22:45:18
btw nemate niekto zo starsich spravene vsetky tie doplnujuce ulohy z cviceni ? ... lebo k 1. cviceniu su lahke doplnujuce, ale ako tak pozeram tak ku 2. cviceniu su doplnujuce ulohy tazsie ako tie riadne ulohy, ktore by sa mali stihnut na cviceni .. ze keby som si nevedel s tymi doplnujucimi rady aby som videl ako to ma byt spravene a podla toho by som to pochopil a dalsie by som uz mozno vedel aj sam
Cvičenia boli zmenené takže starešina asi nebude mať aktuálne cvičenia vypracované. Ale môžem sa ti na to zajtra pozrieť a zaspomínať si.
edit: ale tie bludiská sú easy, skús to podmienkovať na while(leftIsBlocked() && frontIsClear()) alebo podobne... aby obiehal stále popri jednej stene až kým nenarazí na beeper.
Keep information to yourself - Knowledge is power. Think job security. Never provide documentation.
Use Real Tools - No "fancy-pancy" IDEs. Real developers only use vi.
Compiled = Ship It - User acceptance testing is an absolute waste of time.

hardest

diky, ale zatial mi to netreba, nejdem to este robit, len tak ako som sa na to pozrel tak to vyzera zlozito :D ... ale potom ma napadlo, ze sa to mozno bude dat nejak s cyklami a tymi senzormi .. keby nieco tak napisem sem potom buduci tyzden

Robo7691

Robim len take z jednej knizky somarinky a hadze mi to chybu v 3 riadku. Je to prevod teplot hoci nepresne bez desatinnych cisel. Uz som skusal vsetko furt ta ista chyba. Vie niekto pomôct?
Quote#include <stdio.h>
/* vypise tabulku Fahrenheit-celsius pre fahr = 0,20,30,...,300 */
int main(); {

int fahr. celsius;
int dolna. horna. krok;

dolna = 0;
horna = 300;
krok = 20;

fahr = dolna;
while ( fahr <= horna) {
 celsius = 5 * (fahr-32) / 9;
 printf("%d\t%d\n". fahr. celsius);
 fahr = fahr + krok;
 }
 }

hardest

za int main() nema byt bodkociarka

Robo7691

Mal som to bez bodkociarky a hadzalo mi to 14 chyb. dal som ju tam a uz iba jednu chybu mi hadze. S ktorou som sem prisiel.

hardest

no ale za tym main() ta bodkociarka byt NEMA a zle si to opisal z tej knihy, vsade mas miesto ciarky bodku

Robo7691

#24
Hej? no tak ta kvalita je fakt nanic som niektore veci nevedel rozlustit idem pozriet.
EDIT: Dig :D:D Ono to ide  :hug: vdaka fakt v tej knizke to vyzeralo ako bodka.