Pytanie co do tworzenia złożonych pętli
Ostatnio zmodyfikowano 2008-10-29 19:31
Zniwiarz Temat założony przez niniejszego użytkownika |
Pytanie co do tworzenia złożonych pętli » 2008-10-29 18:51:12 Kod do ktorego mam pytanie: #include <iostream> #include <conio.h>
using namespace std;
main() { int i, m; int dlugosc_linii = 3; for( i = 0; i < 4; i = i + 1 ) { for( m = 0; m < 10; m = m + 1 ) { cout << "*"; if( m > dlugosc_linii ) break; } cout << "\nKontynuujemy zewnetrzna petle" << " for dla 1 = " << i << "\n"; } getch(); return( 0 ); } A oto pytanie: dlaczego w ponizszym dzialaniu program wypisuje 5 gwiazdek a nie 10? int i, m; int dlugosc_linii = 3; for( i = 0; i < 4; i = i + 1 ) { for( m = 0; m < 10; m = m + 1 ) { cout << "*"; if( m > dlugosc_linii ) break; } cout << "\nKontynuujemy zewnetrzna petle" << " for dla 1 = " << i << "\n"; }
Wiem w tym poleceniu znajduje sie intrukcja ktora redukuje ilsc gwiazdek ale od czego zalezy to ze jest ich 5 a nie 10? Czy Ich liczba zawsze jest redukowana w tym kodzie o 2? Jesli tak to od czego to zalezy? Chcialbym Dodac ze kompilacja przebiega poprawnie. Przepraszam za spam na forum. Prosze o odpowiedz Pozdrawiam Żniwiarz |
|
grabon |
» 2008-10-29 19:01:08 Od tej lini if( m > dlugosc_linii ) break; i tej int dlugosc_linii = 3; Jeżeli zamienisz ją na : int dlugosc_linii = 8; Będziesz miał 10 gwiazdek. |
|
Zniwiarz Temat założony przez niniejszego użytkownika |
» 2008-10-29 19:06:12 Aha dziekuje. A w jaki sposob program to przelicza? Chodzi mi o to, ze gdy wstawie dlugosc linii 3 to wychodzi mi 5 gwiazdek a jak 8 to 10, dlaczego tak sie dzieje? Czy moglbys mi to wyjasnic jak to sie oblicza? Najlepiej jakims wyrazeniem matematycznym. A w tym przypadku? dlaczego na ekranie zostaje wyswietlony wynik: Ab Ab AAAAAAAAAA #include <iostream> #include <conio.h>
using namespace std;
main() { int k; for( k = 0; k < 12; k = k + 1 ) { cout << "A"; if( k > 1 ) continue; cout << "b" << endl; } getch(); return( 0 ); }
gdy zmienie "k < 12" na "k < 10" pokazuje mi sie wynik: Ab Ab AAAAAAAA Dlaczego tak sie dzieje? Aha i jeszcze jedno: int k; for( k = 0; k < 12; k = k + 1 )
Dlaczego wyniki z tego rownania to: Kontynuujemy zewnetrzna petle for dla 1 = 0 Kontynuujemy zewnetrzna petle for dla 1 = 1 Kontynuujemy zewnetrzna petle for dla 1 = 2 Kontynuujemy zewnetrzna petle for dla 1 = 3 Bede bardzo wdzieczny za pomoc |
|
grabon |
» 2008-10-29 19:11:54 Tu nie chodzi o żadne dzielenie, poczytaj więcej o pętlach i warunkach. np. tu: if( m > dlugosc_linii ) break; Jeżeli m jest większe od zmiennej dlugosc_lini przerywa pętle. |
|
Zniwiarz Temat założony przez niniejszego użytkownika |
» 2008-10-29 19:19:47 A znasz moze jakas stronke na ktorej jest to dobrze objasnione? Lub jakas ksiazke? Obecnie korzystam z ksiazki "Symfonia C++" Jerzego Grębosza i własnie tam są przykłady do, których mam takie wątpliwości |
|
grabon |
» 2008-10-29 19:28:58 Prześledź uważnie kurs C++ na tej stronie a, myślę że, bedziesz wiedział więcej do czego służy continue; break; itp. Pętle, warunki itd. Poczytaj przerób lekcje a, dopiero jeżeli nie będziesz czegoś rozumiał to zadawaj pytania, bo nawet twój wcześniejszy wątek wskazuje na to że programować to chyba zacząłeś dzisiaj, ewentualnie wczoraj ;)
|
|
Zniwiarz Temat założony przez niniejszego użytkownika |
» 2008-10-29 19:31:32 OK dzieki wielkie |
|
« 1 » |