Új hozzászólás Aktív témák
-
kpisti1990
csendes tag
válasz
stepboy
#5737
üzenetére
Szia!
Igen, leírásban IR szenzor ad jelet ha elvették az italt, itt én arra gondoltam, hogy egy számláló leszámol pár secundumot és akkor visszaáll. Másként nem igazán lehet szerintem szimulálni. Köszönöm a részletes választ
kipróbálom, próba cseresznye ahogy egy ősi kínai mondás tartja 
-
kpisti1990
csendes tag
válasz
stepboy
#5733
üzenetére
Szia! Köszönöm a választ! SIkerült!

int main()
{
typedef enum {ALAP,FIZETETT,KESZ}STATE_t;
STATE_t state;
state=ALAP;
while (1)
{
switch(state){
case ALAP:
{
printf("Udvozlom. Kerem valasszon italt!\n");
char c = getchar();
if (c=='k')
{printf("Kave 100Ft\n");
state=FIZETETT;}
else if (c=='t')
{printf("Tea 150Ft\n");
state=FIZETETT;}
else if (c=='c')
{printf("Forrocsoki 200Ft\n");
state=FIZETETT;}
else if ( ( c != 'k' ) || ( c != 't' ) || ( c != 'c' ) )
printf("rossz\n");
break;
}
case FIZETETT:
{
printf( "valami szoveg\n" );
state = KESZ;
break;
}
case KESZ:
{
printf( "megint szoveg\n" );
state = ALAP;
break;
}
}
}
return 0;
}Egyet nem értek, ha lefuttatom, magától lefut még1x vagy 2x. return-t kéne átírni? 0-val kezdi előlről az egészet? Mintha tárolná valahol azt, hogy előző körben mit adtanm meg neki.
-
kpisti1990
csendes tag
válasz
stepboy
#5731
üzenetére
Szia!
Köszönöm a választ
Hasonlóval próbálkoztam, de valamiért nem akar működni :/int main()
{
typedef enum STATE_t {ALAP,FIZETETT,KESZ}STATE_t;
STATE_t state;
state=ALAP;
while (1)
{
switch(state){
case ALAP:
printf("Udvozlom!Kerem valasszon italt\n");
{
char c;
c=getchar();
getchar();
if (c=='k')
printf("Kave 100Ft\n");
if (c=='t')
printf("Tea 150Ft\n");
if (c=='c')
printf("Forrocsoki 200Ft\n");
}
state=FIZETETT;
break;
case FIZETETT:Talán rosszul értelmezem neki a state-t? Vagy "csak a megfelelő karakter beolvasása után lehet "FIZETETT" érték" ezt úgy értetted, hogy erre is kéne írni egy if-es szerkezetet? if (valami==true) state=FIZETETT;?
-
kpisti1990
csendes tag
Sziasztok!
A segítségeteket szeretném kérni. Adott egy állapotgépes feladat:-alap állapotban üdvözlő szöveg
-a user 3 különböző ital közül választhat
-ital kiválasztása után jelenlen meg az ital neve és ára
-sikertelen fizetés vagy törlés esetén térjen vissza alap állapotba
-sikeres fizetés esetén kezdje elkészíteni az italt
-mikor kész, üzenetben jelezze
-végén (ital elvételekor) álljon vissza alap állapotbaEléggé nagyon kezdő vagyok, most próbálkozok a "hello world"nél komolyabb kóddal először
Átrágva a jegyzetetek/fórumokat arra jutottam hogy ez egy switch-case-es eset. Sikerült elérnem, hogy egy adott betű lenyomására egy adott szöveget írjon ki.
char c;
c=getchar();
getchar();
if (c=='k')
printf("Kave 100Ft\n");
if (c=='t')
printf("Tea 150Ft\n");
if (c=='c')
printf("Forrocsoki 200Ft\n");valahogy így. Ezt betettem a case ALAP esetbe, eddig rendben van, viszont sehogyse tudom átugrasztani a következő stádiumra. a break; miatt ugyebár kilép az egészből, de én úgy tudom, valahogy mégiscsak átlehete ugrasztani a következő case-re. Remélem érthetően fogalmaztam, segítségeket köszönöm előre is .
int main()
{
typedef enum state {ALAP,FIZETETT,KESZ};
enum state state=ALAP;
while (1)
{
switch(state){
case ALAP:
printf("Udvozlom!Kerem valasszon italt\n");
{
char c;
c=getchar();
getchar();
if (c=='k')
printf("Kave 100Ft\n");
if (c=='t')
printf("Tea 150Ft\n");
if (c=='c')
printf("Forrocsoki 200Ft\n");
}
break;case FIZETETT:
printf("Ital keszitese folyamatban....\n");
break;case KESZ:
printf("Kesz!Kerem vegye el az italt.Koszonom!\n");
break;
default: printf("Sikertelen fizetes vagy torles.\n");
}return 0;
}
}
Itt a teljes. Feltételezem kismillió hiba van benne, de fut
viszont amit el szeretnék érni hogy miután pl a "k" betűt lenyomtam és kiírta az árát meg a nevét, ne lépjen ki, hanem térjen rá a FIZETETT állapotra(ott természetesen más lesz, csak bírtam neki valamit, hogy lássam átugrik-e). 
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Steam Deck OLED 512GB (2024) + 512GB SD kártya Újszerű, keveset használt
- Latitude 5520 27% 15.6" FHD IPS érintő i7-1185G7 MX450 16GB 512GB NVMe magyar vbill ujjolv gar
- 9. generációs Gamer félkonfig, Asrock B365, i5-9400, 16GB, 256GB
- HP EliteDesk 800 G3 TWR i5-7500, 8GB, 256GB
- Dell Optiplex 3070 TWR i5-9400, 8GB, 256GB, WIN11
- ÚJ könyv: Rafal Kosik - Cyberpunk 2077 Nem véletlen
- Gamer PC-Számítógép! Csere-Beszámítás! I7 10700 / 32GB DDR4 / RX 6700XT 12GB / 512 SSD + 1TB HDD
- GYÖNYÖRŰ iPhone 13 Pro 128GB Sierra Blue -1 ÉV GARANCIA -Kártyafüggetlen, MS3965
- ÁRGARANCIA!Épített KomPhone i5 12400F 16/32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- AKCIÓ! Honor 200 Lite 8GB 256GB mobiltelefon garanciával hibátlan működéssel
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopszaki Kft.
Város: Budapest

kipróbálom, próba cseresznye ahogy egy ősi kínai mondás tartja
Átrágva a jegyzetetek/fórumokat arra jutottam hogy ez egy switch-case-es eset. Sikerült elérnem, hogy egy adott betű lenyomására egy adott szöveget írjon ki.

