zadanie domowe lekcja 29
Ostatnio zmodyfikowano 2014-12-15 16:21
dafuck17 Temat założony przez niniejszego użytkownika |
zadanie domowe lekcja 29 » 2014-12-14 00:43:48 Treść zadania: 2. Zmodyfikuj przykładowe programy z niniejszego rozdziału tak, aby nie używały słów kluczowych continue oraz break . Zmodyfikowane programy muszą działać tak samo, tj. wykonywać te same obliczenia i wypisywać takie same wyniki na ekranie. Moje kody: Przykład 1: #include <iostream>
int main() { int x = 0; do { x++; if( x == 7 ) { std::cout << "Teraz 'x' wynosi " << x << "." << std::endl; std::cout << "Przerywam petle!" << std::endl; } else std::cout << "x = " << x << std::endl; } while( x < 10 && x != 7 ); std::cout << "Teraz jestem tu :)" << std::endl; return 0; }
Tutaj nie jestem pewien czy zrobiłem to zgodnie z treścią zadania... Przykład 2: #include <iostream>
int main() { for( int x = 0; x < 8; x++ ) { std::cout << "x = " << x << std::endl; if( x == 2 || x == 3 || x == 5 ) { std::cout << "Teraz 'x' wynosi " << x; std::cout << " nie wywoluje continue!" << std::endl; } if( x != 2 || x != 3 || x != 5 ) std::cout << "KONIEC kroku x = " << x << std::endl; } return 0; }
Przykład 3: #include<iostream> #include <cstdlib> #include <ctime> using namespace std;
void wylosuj( int tablica[], int minimum, int maximum ) { cout << "Liczby z tablicy: " << endl; for( int licznik = 0; licznik < 10; licznik++ ) { tablica[ licznik ] =( rand() % maximum ) + minimum; cout << tablica[ licznik ] << ", "; } cout << endl; }
void wypiszLiczbyParzyste( int tablica[] ) { cout << "Wykonaj zadanie: " << endl; for( int licznik = 0; licznik < 10; licznik++ ) { if( tablica[ licznik ] % 2 == 0 ) cout << tablica[ licznik ] << ", "; } cout << endl; }
int zsumujTablice( int tablica[], int suma ) { for( int licznik = 0; licznik < 10; licznik++ ) { suma += tablica[ licznik ]; } cout << "Suma wszystkich: " << suma << endl; return suma; }
int zsumujLiczbyParzyste( int tablica[], int suma ) { for( int licznik = 0; licznik < 10; licznik++ ) { suma += tablica[ licznik ] % 2 == 0; } cout << "Suma wypisanych: " << suma; return suma; }
int main() { srand( time( NULL ) ); int tablica[ 10 ]; int minimum = 1; int maximum = 100; int suma = 0; wylosuj( tablica, minimum, maximum ); wypiszLiczbyParzyste( tablica ); zsumujTablice( tablica, suma ); zsumujLiczbyParzyste( tablica, suma ); return 0; }
W ostatnim przykładzie mam problem z linijką suma += tablica[ licznik ] % 2 == 0; . Program zamiast sumować wartość liczb parzystych, sumuje ich liczbę. I jeszcze jedno pytanko... da się jakoś inaczej znajdować liczby parzyste a nie tak jak kest w kursie czyli: tablica[ i ] % 2 != 0 ? Troszkę nie rozumiem tego zapisu. Pozdrawiam :)[/code] |
|
Rashmistrz |
» 2014-12-14 13:40:00 Przykład 1: Tutaj nie jestem pewien czy zrobiłem to zgodnie z treścią zadania... |
wykonywać te same obliczenia i wypisywać takie same wyniki na ekranie. |
Według mnie jest OK, ale ja bym skrócił to tak by pętla wykonywała się do osiągnięcia "7" przez "x", a dopiero po pętli zrobić wypisanie informacji o wyjściu. Coś Ci nie stykło... Nie wypisuje Ci on dokładnie tych samych informacji co oryginał. Najprościej jest zmieścić tamten kawałek w else . suma += tablica[ licznik ] % 2 == 0; . Program zamiast sumować wartość liczb parzystych, sumuje ich liczbę. |
== tworzy Ci zdanie logiczne. :F Spróbuj to zrobić używając operatora warunkowego: ?: Oczywiście żeby nie dodawać zer... Możesz zmienić warunek w IF'ie tak, żeby zamiast continue , było tam wykonywanie sumowania. |
|
dafuck17 Temat założony przez niniejszego użytkownika |
» 2014-12-15 13:46:10 a jak działa ten operator ?: ? Chyba nie było go w kursie jeśli dobrze pamiętam :P |
|
darko202 |
» 2014-12-15 14:43:36 |
|
Rashmistrz |
» 2014-12-15 16:21:36 a jak działa ten operator "?:"? Chyba nie było go w kursie jeśli dobrze pamiętam :P |
Nie ma i nie będzie go w dalszej części kursu. Po prostu patrząc na to: suma += tablica[ licznik ] % 2 == 0; od razu widzi mi się to: suma += tablica[ licznik ] % 2 ? 0: tablica[ licznik ]; ale i tak te późniejsze rozwiązanie co dopowiedziałem jest lepsze. |
|
« 1 » |