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

Jakiego kodu źródłowego użyć?

Object Storage Arubacloud
0 głosów
284 wizyt
pytanie zadane 21 października 2015 w C i C++ przez pingwin1993 Użytkownik (570 p.)
Witam zastanawia mnie kwestia działania programu. Jeśli w programie mam zadane pytanie i wymaga odpowiedzi przy dobrej odpowiedzi zakończył by swoje działanie ale chciałbym w przypadku złej odpowiedzi aby program powrócił do punktu kiedy wpisuje się odpowiedź. Czy w takiej sytuacji potrzebuje warunku if czy pętli, a jeśli tak to bym prosił jakby to wyglądało

6 odpowiedzi

0 głosów
odpowiedź 21 października 2015 przez Radfler VIP (101,030 p.)

Najlepiej użyć pętli w taki sposób:

// Zadaj pytanie

bool czyZle;

do {

  // Poproś o odpowiedź

  // Sprawdź odpowiedź i przypisz do czyZle true albo false

} while(czyZle);

 

0 głosów
odpowiedź 21 października 2015 przez WWOTEX Mądrala (6,200 p.)
bool dalejPytaj = true;

while( dalejPytaj == true){
     pobierasz tu dane i wgl.
     if( dobra odpowiedź){
           dalejPytaj = false;
     }
}

Możesz to zrobić tak ... napisz jak nie wiesz co to WHILE

 

jeśli wiesz co to funkcje i wgl. to możesz to zrobić na zasadzie funkcji która się sama wywoła jeśli ktoś źle odpowiedział

np. tak to zrobić wtedy można :

 

void zadajPytanie(){
     ... tu zadajesz pytanie ...
     if(zlaOdpowiedź){
          zadajPytanie();
     }
}
0 głosów
odpowiedź 21 października 2015 przez furas Maniak (53,800 p.)

Ja bym zastosował jednocześnie `while` i `if`
a może raczej `for`, `if` oraz `break`

for(;;)  // pętla chodząca w nieskończoność
{
  // zadanie pytania i pobieranie odpowiedzi
  cout << "pytanie";
  cin >> odpowiedz;

  // sprawdzanie czy odpowiedz jest poprawna
  if(strcmp(odpowiedz, "tresc poprawnej odpowiedzi") == 0)
  {
    // jeśli poprawna to wyskakuję z pętli
    break;
  } 
}

 

komentarz 22 października 2015 przez draghan VIP (106,230 p.)
Nieskończona pętla do skończonego zadania, to kiepski stylistycznie pomysł. ;)
Poza tym prezentujesz trochę niekonsekwentny styl: strumienie C++ przeplatają się z C-like obsługą łańcuchów - bardziej eleganckie jest użycie std::string i jego przeciążonych operatorów.

Aczkolwiek co do samego rozwiązania, to technicznie jest poprawnie. :)
komentarz 22 października 2015 przez furas Maniak (53,800 p.)
Po prostu dawno nie używałem ani C ani C++ i już pewnych rzeczy nie pamiętam np. czy porówanie napisów za pomocą == jest dostępne już C++ czy dopiero w Javie :)

Samą konstrukcję z użyciem break zaś przeniosłem z Pythona gdzie najczęściej tak to załatwiam (bez użycia dodatkowej zmiennej) - tylko zamiast "for(;;)" mam "while True".
komentarz 22 października 2015 przez draghan VIP (106,230 p.)
Nie no, zrozumiała sprawa. :) O "niekonsekwentnym stylu" to było tak na marginesie zupełnie, więc nie ma się co przejmować.

Najbardziej zależało mi na podkreśleniu, że użycie pętli (z pozoru) nieskończonej dla zadania, w którym mamy  z góry znany i określony warunek zakończenia, to wyjście nieeleganckie. ;P
0 głosów
odpowiedź 21 października 2015 przez Patrycjerz Mędrzec (192,320 p.)

aby program powrócił do punktu kiedy wpisuje się odpowiedź

Czy słowo "powrócił" nie wskazuje automatycznie na pętlę? 

komentarz 22 października 2015 przez pingwin1993 Użytkownik (570 p.)
Nawet jeśli to jakby to wyglądało? Jakieś inne sposoby po za tymi co były już polecone?
komentarz 22 października 2015 przez Patrycjerz Mędrzec (192,320 p.)
Nie, sądzę, że wcześniejsze odpowiedzi wyczerpały wystarczająco temat.
0 głosów
odpowiedź 22 października 2015 przez pingwin1993 Użytkownik (570 p.)
edycja 22 października 2015 przez pingwin1993
Niestety dopiero jestem na początku etapu z instrukcja warunkowa if oraz z petla for, while, do while więc słabo rozumiem wasze porady i dlatego żadne ztym wymienionych sposób mi nie działa.
komentarz 22 października 2015 przez Radfler VIP (101,030 p.)
Obejrzyj poradniki MZ. Na pewno zrozumiesz ;)
0 głosów
odpowiedź 12 stycznia 2016 przez piotrsz109 Stary wyjadacz (13,730 p.)
Menu zapisz w funkcji i sprawdzisz w if czy jest poprawne jeśli nie wywołaj funkcje

Podobne pytania

0 głosów
3 odpowiedzi 410 wizyt
pytanie zadane 29 listopada 2015 w C i C++ przez Kasztan Dyskutant (8,080 p.)
0 głosów
3 odpowiedzi 181 wizyt
pytanie zadane 27 listopada 2015 w C i C++ przez thekibi27 Bywalec (2,110 p.)
0 głosów
2 odpowiedzi 376 wizyt
pytanie zadane 25 grudnia 2019 w C i C++ przez amtrax Dyskutant (9,630 p.)

92,565 zapytań

141,416 odpowiedzi

319,599 komentarzy

61,950 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!

...