Automat na kávu/čaj
Moderátori: psichac, Moderátori
- Lucky_666
- Zaslúžilý člen
- Príspevky: 1006
- Dátum registrácie: 25 Aug 2009, 00:00
- Bydlisko: Martin
- Vek: 32
Automat na kávu/čaj
Ahojte,
robím semestrálku, tak by som potreboval pomôcť tročku.
Takže k veci: Napadlo ma spraviť automat na kávu/čaj. Tak na začiatku bude treba vhodiť mince aby bol dostatočky kredit (cez prikaz "if"), potom chcem aby bolo na výber niekolko nápojov a tu mám problém, pretože jednotlivým nápojom bude treba priradiť nejaké hodnoty. Ale neviem či celú "ponuku" treba zadefinovať ako jednu funkciu za ktorou by program porovnával hodnoty s číslom "n" ktoré budeme zadávať keď nás program vyzve a podľa toho by vypísal dalšiu podmienku ako dalej, alebo každý "nápoj ako samostatnú funkciu?
ďakujem za rady
robím semestrálku, tak by som potreboval pomôcť tročku.
Takže k veci: Napadlo ma spraviť automat na kávu/čaj. Tak na začiatku bude treba vhodiť mince aby bol dostatočky kredit (cez prikaz "if"), potom chcem aby bolo na výber niekolko nápojov a tu mám problém, pretože jednotlivým nápojom bude treba priradiť nejaké hodnoty. Ale neviem či celú "ponuku" treba zadefinovať ako jednu funkciu za ktorou by program porovnával hodnoty s číslom "n" ktoré budeme zadávať keď nás program vyzve a podľa toho by vypísal dalšiu podmienku ako dalej, alebo každý "nápoj ako samostatnú funkciu?
ďakujem za rady
0
Nič nie je ťažké, len sa tomu treba dostatočne venovať.
- bobo87
- Ultimate člen
- Príspevky: 1913
- Dátum registrácie: 15 Feb 2007, 00:00
- Vek: 36
- Kontaktovať používateľa:
Re: Automat na kávu/čaj
Klasicka zaciatocnicka chyba - nesnazis sa pochopit problem, co riesis, ale rovno sa snazis prist s programom. Skus to inak - nejako slovne popis co najpodrobnejsie (ziadne ify, funkcie a pod...), ako by to malo fungovat.
0
float l,I,Q,_,o;int E;main(){I=1.125;while(I>=-1.225){for(l=-2;l<=1;l+=3/79.0){Q=_=0;for(E=127;Q*Q+_*_<4.0&&--E>32;){o=Q;Q=Q*Q-_*_+l;_=2*o*_+I;}putchar(E);}putchar(10);I-=9/88.0;}}
Re: Automat na kávu/čaj
Vola sa to vyvojovy diagram a vacsinou to krasne pomaha pochopit problem. Schvalne, nacrtni si rukou na papier nejaku pribliznu schemu chodu programu, co to ma robit a kedy, na zaklade coho, kde to skonci (neskonci) a ako sa to ma kedy spravat. Budes to mat lahsie, potom to uz len prepises do syntaxe.
- Lucky_666
- Zaslúžilý člen
- Príspevky: 1006
- Dátum registrácie: 25 Aug 2009, 00:00
- Bydlisko: Martin
- Vek: 32
Re: Automat na kávu/čaj
zdravím páni,
mám otázku, neviete prečo program vypisuje takéto nezmyselné hodnoty?
Ďakujem pekne
mám otázku, neviete prečo program vypisuje takéto nezmyselné hodnoty?
Kód: Vybrať všetko
#include <stdio.h>
#include <stdlib.h>
void povrch_gule(int r,int pi);
void objem_gule(int r,int pi);
void obvod_kruz(int r,int pi);
void obsah_kruz(int r,int pi);
int main(void)
{
int r;
int pi=3.14;
vyber();
}
void povrch_gule(int r,int pi)
{
float p_gule;
printf("Zadajte polomer gule: \n");
scanf("%d",&r);
p_gule = 4*pi*pow(r,2);
printf("Povrch gule je %d\n",p_gule);
return p_gule;
}
void objem_gule(int r,int pi)
{
float o_gule;
printf("Zadajte polomer gule: \n");
scanf("%d",&r);
o_gule = 4/3*pi*pow(r,3);
printf("Objem gule je %f\n",o_gule);
}
void obvod_kruz(r,pi)
{
float o_kruz;
printf("Zadajte polomer kruznice: \n");
scanf("%d",&r);
o_kruz = 2*pi*r;
printf("Objem gule je %f\n",o_kruz);
}
void obsah_kruz(r,pi)
{
float s_kruz;
printf("Zadajte polomer kruznice: \n");
scanf("%d",&r);
s_kruz = pi*pow(r,2);
printf("Objem gule je %f\n",s_kruz);
}
void vyber(void)
{
int x,r,pi;
printf("Vyberte si jednu z nasledujucich moznsti:\n\n");
printf("Pre Povrch gule stlacte *1*\n");
printf("Pre Objem gule stlacte *2*\n");
printf("Pre Obvod kruznice stlacte *3*\n");
printf("pre Obsah kruznice stlacte *4*\n");
scanf("%d",&x);
switch (x)
{
case (1) : objem_gule(r,pi); break;
case (2) : povrch_gule(r,pi); break;
case (3) : obvod_kruz(r,pi); break;
case (4) : obsah_kruz(r,pi); break;
default : printf("Zadali ste nespravnu hodnotu"); break;
}
}
0
Nič nie je ťažké, len sa tomu treba dostatočne venovať.
- bobo87
- Ultimate člen
- Príspevky: 1913
- Dátum registrácie: 15 Feb 2007, 00:00
- Vek: 36
- Kontaktovať používateľa:
Re: Automat na kávu/čaj
Mozem sa opytat, v com si to kompiloval? Je tam kopec chyb. Moja dobra rada - nastav si -Wall a zariad, aby sa ti projekt prelozil bez warningov.
EDIT: Moj tip je MSVC++...
EDIT: Moj tip je MSVC++...
0
float l,I,Q,_,o;int E;main(){I=1.125;while(I>=-1.225){for(l=-2;l<=1;l+=3/79.0){Q=_=0;for(E=127;Q*Q+_*_<4.0&&--E>32;){o=Q;Q=Q*Q-_*_+l;_=2*o*_+I;}putchar(E);}putchar(10);I-=9/88.0;}}
- Lucky_666
- Zaslúžilý člen
- Príspevky: 1006
- Dátum registrácie: 25 Aug 2009, 00:00
- Bydlisko: Martin
- Vek: 32
Re: Automat na kávu/čaj
V CodeBlocks som prekladal, a warningy nevypovedá žiadne, a keď volám funkcie v maine tak vypočíta všetko dobre, ale keď ich volám v switchi tak už to píše bludy, to isté robí keď som spravil samostatnú funkciu ktorá načíta premenné a vyvolám ich vo výpočtových funkciách...
0
Nič nie je ťažké, len sa tomu treba dostatočne venovať.
- bobo87
- Ultimate člen
- Príspevky: 1913
- Dátum registrácie: 15 Feb 2007, 00:00
- Vek: 36
- Kontaktovať používateľa:
Re: Automat na kávu/čaj
Tak skusim zaradom povypisovat, co sa mi pre zaciatok nepaci po prvom precitani po riadkoch :
12 - priradzujes double do intu, hodnota pi je definovana v standardnej kniznici
14 - main ma navratovu hodnotu int, ale ziadny return sa nekona
22 - ak pouzivas floaty, tak nech je to vidiet, napr 2.0f
23 - chyba vo formatovacom retazci (preco ti to vypisuje zle), vypisujes %d, ale dodavas float
24 - funkcia s navratovou hodnotou void sa snazi nieco vratit
... dalej je toho tiez dost, takze poprosim prekopat kod
EDIT: A ak toto sa da prelozit a este bez warningov, tak nieco je kolosalne zle.
12 - priradzujes double do intu, hodnota pi je definovana v standardnej kniznici
14 - main ma navratovu hodnotu int, ale ziadny return sa nekona
22 - ak pouzivas floaty, tak nech je to vidiet, napr 2.0f
23 - chyba vo formatovacom retazci (preco ti to vypisuje zle), vypisujes %d, ale dodavas float
24 - funkcia s navratovou hodnotou void sa snazi nieco vratit
... dalej je toho tiez dost, takze poprosim prekopat kod
EDIT: A ak toto sa da prelozit a este bez warningov, tak nieco je kolosalne zle.
0
float l,I,Q,_,o;int E;main(){I=1.125;while(I>=-1.225){for(l=-2;l<=1;l+=3/79.0){Q=_=0;for(E=127;Q*Q+_*_<4.0&&--E>32;){o=Q;Q=Q*Q-_*_+l;_=2*o*_+I;}putchar(E);}putchar(10);I-=9/88.0;}}
- Lucky_666
- Zaslúžilý člen
- Príspevky: 1006
- Dátum registrácie: 25 Aug 2009, 00:00
- Bydlisko: Martin
- Vek: 32
Re: Automat na kávu/čaj
Diky moc za vynaložené úsilie na výpis errorov v kóde z funkcí som mimo ešte..
0
Nič nie je ťažké, len sa tomu treba dostatočne venovať.
- JAKUB G
- Zaslúžilý člen
- Príspevky: 1386
- Dátum registrácie: 17 Dec 2007, 00:00
- Bydlisko: Kanianka
- Vek: 31
- Kontaktovať používateľa:
Re: Automat na kávu/čaj
Ty si semestrálku ešte neodovzdal?
Ja som tiež síce len tento rok začínal, takže toho neviem moc, no hned na zaciatku mas v integeri zapisane pi. Pi si zapis ako const float pi = 3.14;
Skus to poprerabat na float-y. R moze byt predsa kladne realne cislo. Nie len cele cislo
moc som to nekukal... Ale bude tam toho viac...
Bobo: Tiez robim v code blocks. Hento by isto nezozral...
Ja som tiež síce len tento rok začínal, takže toho neviem moc, no hned na zaciatku mas v integeri zapisane pi. Pi si zapis ako const float pi = 3.14;
Skus to poprerabat na float-y. R moze byt predsa kladne realne cislo. Nie len cele cislo
moc som to nekukal... Ale bude tam toho viac...
Bobo: Tiez robim v code blocks. Hento by isto nezozral...
0
- Lucky_666
- Zaslúžilý člen
- Príspevky: 1006
- Dátum registrácie: 25 Aug 2009, 00:00
- Bydlisko: Martin
- Vek: 32
Re: Automat na kávu/čaj
Odovzdal som ju už, len som zabudol na príklad na funkcie
0
Nič nie je ťažké, len sa tomu treba dostatočne venovať.