• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Łączenie funkcji if i while

Object Storage Arubacloud
0 głosów
863 wizyt
pytanie zadane 17 grudnia 2015 w C i C++ przez Arowsky Początkujący (260 p.)

Witam,

chcialem napisac program, ktory poprzez wlozenie karty (narazie bez PINu) do bankomatu daje nam dostep do jego funkcji (wybieranie, wplacanie, sprawdzanie stanu konta). 

#include <iostream>
#include <windows.h>
#include <conio.h>
#include <cstdlib>
using namespace std;


char f_karty=5;

int main()
{
    cout << "Witaj w naszym banku!" << endl;
    Sleep(1000);

    cout << "Prosze wlozyc karte. (Wcisnij 5)" << endl;
    f_karty=getch();

    if(f_karty=='5')
        {
        cout<<"Karta zostala przyjeta. Prosze wybrac jedna z ponizszych czynnosci."<<endl;
        }
        else
        {
            cout<<"Karta zostala odrzucona. Prosze sprobowac ponownie za 3 sekundy:"<<endl;
            Sleep(1000);
            system("cls");

            for (int i=3; i>=0; i--)
                {
            cout<<i<<endl;
            Sleep(1000);
            system("cls");
            }
          }
          




    cout << "1. Jezeli chcesz wyplacic pieniadze wcisnij 1" << endl;
    cout << "2. Jezeli chcesz wplacic pieniadze wcisnij 2" << endl;
    cout << "3. Jezeli chcesz sprawdzic stan konta wcisnij 3" << endl;
    return 0;
}

Jak zrobic, zeby program, po tym 'else'

else
        {
            cout<<"Karta zostala odrzucona. Prosze sprobowac ponownie za 3 sekundy:"<<endl;
            Sleep(1000);
            system("cls");

            for (int i=3; i>=0; i--)
                {
            cout<<i<<endl;
            Sleep(1000);
            system("cls");
            }
          }

wrocił do ponownego zapytania o wlozenie karty? Wydaje mi sie, ze trzeba uzyc funkcji do while, ale nie wiem zbytnio gdzie ja wstawic.

 

2 odpowiedzi

0 głosów
odpowiedź 17 grudnia 2015 przez Mikrokontroler xD Stary wyjadacz (13,500 p.)
Wystarczy że cały kod który chcesz żeby się powtórzył wsadzić do pętli while

tylko w środku while musi być jakiś sensowny warunek :)

Ja bym proponował umieścić to po Sleep(1000) :)
0 głosów
odpowiedź 17 grudnia 2015 przez Arowsky Początkujący (260 p.)
Niestety, dalej jakos nie moge sobie z tym poradzic.
komentarz 17 grudnia 2015 przez Mikrokontroler xD Stary wyjadacz (13,500 p.)

Spokojnie. 

Zobacz masz taki program

// kod 

if(f_karty=='5') {
     //kod
}
else{
     //kod ktory sie wykona chcesz aby wrocil nad if-a
}
     

A twoim zadaniem jest przerobienie go na 

while(coRobic){
   // kod

   if(f_karty=='5') {
         // jezeli warunek zostal spelniony wyjdz z petli
   }
   else{
        //jezeli else sie wykonal zostan w petli
   }

}
     

Mówiąc w skrócie jeżeli warunek 

f_karty=='5'

został spełniony to trzeba wyjść z pętli.

w przeciwnym razie powtarzaj 

jak nie wiesz jak działa pętla while to musisz uzupełnić swoją wiedzę a później znowu przeczytać to co napisałem :).

komentarz 17 grudnia 2015 przez Arowsky Początkujący (260 p.)
Czyli do petli while moge wsadzac if/else? :)
komentarz 17 grudnia 2015 przez Mikrokontroler xD Stary wyjadacz (13,500 p.)
tak dokładnie.

Jednak nie zadawaj takich pytań tylko sprawdzaj na komputerze on wszystko wybacza :).

Dopiero jak błędami rzuca z którymi sobie nie radzisz tutaj pomożemy :).
komentarz 17 grudnia 2015 przez Arowsky Początkujący (260 p.)

nie powinno to byc cos w tym stylu?

cout << "Prosze wlozyc karte. (Wcisnij 5)" << endl;
    f_karty=getch();



while (f_karty=='5')  // powtarzaj dopóki ktoś nie wcisnie 5

       {                         // i teraz warunek, dla ktorego sie spelnia while, po czym przechodzi dalej omijajac else

if (f_karty=='5')

       {
cout<<"Karta zostala przyjeta. Prosze wybrac jedna z ponizszych czynnosci."<<endl;
        }
      else     // dla ktorego sie nie spelnia i while zostaje powtorzone
        {  
cout<<"Karta zostala odrzucona. Prosze sprobowac ponownie za 3 sekundy:"<<endl;
            
Sleep(1000);
            system("cls");

            for (int i=3; i>=0; i--)
                {
            cout<<i<<endl;
            Sleep(1000);
            system("cls");               // po czym przechodzi do "Prosze wlozyc karte"
                }
}
}

 

Jestem troche zmieszany, bo wiem, ze czegos tam brakuje, ale nie moge sie domyslic czego.

komentarz 18 grudnia 2015 przez Mikrokontroler xD Stary wyjadacz (13,500 p.)

źle :)

pętla wykonywać się będzie tylko wtedy gdy ktoś wpisze 5.

Ustaw sobie zmienną pomocniczą w jako warunek pętli np

int x=1;
while(x==0)

a po spełnieniu twojego ifa

if (f_karty=='5')

wyzeruj tego x to nam pomoże wyjść z pętli.

W else nie musimy nic robić więcej

jeszcze to 

cout << "Prosze wlozyc karte. (Wcisnij 5)" << endl;
f_karty=getch();
 

powinieneś umieścić tuż pod pętlą. :)

Podobne pytania

0 głosów
1 odpowiedź 150 wizyt
pytanie zadane 14 grudnia 2015 w PHP przez kaminiak23 Użytkownik (640 p.)
0 głosów
1 odpowiedź 418 wizyt
pytanie zadane 18 lutego 2016 w C i C++ przez Exus Początkujący (420 p.)
0 głosów
1 odpowiedź 121 wizyt

92,566 zapytań

141,420 odpowiedzi

319,614 komentarzy

61,952 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...