Pętla do ... while (praca domowa)
Ostatnio zmodyfikowano 2015-11-11 22:25
carlosmay |
» 2015-11-11 21:29:13 Nie rozumiem Dlaczego pętlę kończy b = 0 |
bo '=' jest operatorem przypisania i wyrażenie 'b = 0' ma wartość zero, czyli pętla kończy działanie. |
|
Master_Yoga |
» 2015-11-11 21:32:06 Usuń printowanie po pętli a zostaw to przy return.
Pętla będzie zapierniczać dopóki wartość bool'a osiąga wartość 0, kończy się w przeciwnym wypadku. Daj sobie w pętli printowanie i walnij do konsoli jakie wartości i w jakich momentach otrzymuję myślę, że wtedy zrozumiesz. |
|
carlosmay |
» 2015-11-11 21:38:28 Przykład pokazuje różnicę między przypisaniem a porównaniem, które używane były w programie. int main() { float a = 0; cout <<( a = 0 ) << endl; cout <<( a == 0 ) << endl; return 0; }
|
|
Bidi Temat założony przez niniejszego użytkownika |
» 2015-11-11 21:48:46 Dobra zrobiłem jak kazałeś z printowaniem i teraz program działa jak powinien. "Daj sobie w pętli printowanie i walnij do konsoli jakie wartości i w jakich momentach otrzymuję myślę, że wtedy zrozumiesz". <--- tego do końca nie rozumiem co mam zrobić żeby załapać A co do "bo '=' jest operatorem przypisania i wyrażenie 'b = 0' ma wartość zero, czyli pętla kończy działanie." to dalej nie jest odpowiedzią na moje pytanie (podejrzewam że dlatego że nie za dobrze mi idzie przedstawianie swojego problemu). Nie rozumiem dlaczego działanie pętli kończy ( b == 0). Wpisuje błędne dane do programu(czyli moje b wynosi 0, więc uruchamia się pętla), program potem pyta mnie znów o dane podaje teraz poprawne dane(więc moje b powinno wynosić teraz 1 tak? b = cin.good(); ) i pętlasię kończy. I teraz pytanie dlaczego się kończy po wpisaniu poprawnych danych jeśli po wpisaniu poprawnych danych moja zmienna bool ma wartość 1 a warunek żeby zakończyła się pętla to (b == 0) Rozumiem różnicę między "=" a "==" już za pierwszym razem jak o tym ktoś wspomniał załapałem :) |
|
carlosmay |
» 2015-11-11 21:59:03 Wpisuje błędne dane do programu(czyli moje b wynosi 0, więc uruchamia się pętla) |
uruchamia się instrukcja warunkowa if, w której jest pętla. Następnie program rozpoczyna pętlę i pyta ponownie o liczbę. Po wprowadzeniu liczby program przechodzi do sprawdzenia warunku pętli i jeśli b = 0, pętla ma powtórzyć działanie. podaje teraz poprawne dane(więc moje b powinno wynosić teraz 1 tak? b = cin.good();) i pętlasię kończy. |
i (b == 1) czyli (b != 0) , jeśli pętla ma kręcić póki b == 0 (true) to przestaje gdy b != 0 (false) |
|
Bidi Temat założony przez niniejszego użytkownika |
» 2015-11-11 22:12:37 #include <iostream> using namespace std;
int main() { float a; bool b; cout << "Podaj liczbe = "; cin >> a; b = cin.good(); cin.clear(); cin.sync(); if( b == 0 ) { do { cout << "Podaj liczbe = "; cin >> a; b = cin.good(); cin.clear(); cin.sync(); } while( b == 0 ); } cout << "Podales liczbe = " << a; return 0; }
|
|
carlosmay |
» 2015-11-11 22:20:18 A jeszcze lepiej napisać tak |
zapisz tak warunki i pomyśl. Złe dane: b = 0; Warunek: czy b jest równe 0 (b == 0) --> b jest równe 0, czyli warunek jest spełniony (true). Dobre dane: b = 1; Warunek: czy b jest równe 0 (b == 0) --> b nie jest równe 0, czyli warunek nie jest spełniony (false). Już lepiej nie dam rady wytłumaczyć. |
|
Bidi Temat założony przez niniejszego użytkownika |
» 2015-11-11 22:25:28 Dobra załapałem mniej wiecej |
|
1 2 « 3 » |