Automat na kávu/čaj

C,C++,C#

Moderátori: psichac, Moderátori

Používateľov profilový obrázok
Lucky_666
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1006
Dátum registrácie: 25 Aug 2009, 00:00
Bydlisko: Martin
Vek: 32

Automat na kávu/čaj

Príspevok od používateľa Lucky_666 » 06 Dec 2011, 19:19

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 :)
0
Nič nie je ťažké, len sa tomu treba dostatočne venovať.

Používateľov profilový obrázok
bobo87
Ultimate člen
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

Príspevok od používateľa bobo87 » 06 Dec 2011, 19:23

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;}}

alidedko

Re: Automat na kávu/čaj

Príspevok od používateľa alidedko » 06 Dec 2011, 19:28

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.

Používateľov profilový obrázok
Lucky_666
Zaslúžilý člen
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

Príspevok od používateľa Lucky_666 » 12 Jan 2012, 23:26

zdravím páni,

mám otázku, neviete prečo program vypisuje takéto nezmyselné hodnoty? :roll:


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;
    }

}
Ďakujem pekne :-)
Prílohy
Bez názvu.png
0
Nič nie je ťažké, len sa tomu treba dostatočne venovať.

Používateľov profilový obrázok
bobo87
Ultimate člen
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

Príspevok od používateľa bobo87 » 12 Jan 2012, 23:39

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++...
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;}}

Používateľov profilový obrázok
Lucky_666
Zaslúžilý člen
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

Príspevok od používateľa Lucky_666 » 12 Jan 2012, 23:43

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ť.

Používateľov profilový obrázok
bobo87
Ultimate člen
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

Príspevok od používateľa bobo87 » 12 Jan 2012, 23:51

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. :butthead:
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;}}

Používateľov profilový obrázok
Lucky_666
Zaslúžilý člen
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

Príspevok od používateľa Lucky_666 » 13 Jan 2012, 00:01

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ť.

Používateľov profilový obrázok
JAKUB G
Zaslúžilý člen
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

Príspevok od používateľa JAKUB G » 13 Jan 2012, 00:28

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...
0
Výkonové zosilňovače a ich konštrukcie
http://www.zosilnovace.eu
Facebook – zosilnovace.eu

Používateľov profilový obrázok
Lucky_666
Zaslúžilý člen
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

Príspevok od používateľa Lucky_666 » 13 Jan 2012, 00:43

Odovzdal som ju už, len som zabudol na príklad na funkcie :-D
0
Nič nie je ťažké, len sa tomu treba dostatočne venovať.

Napísať odpoveď