Iteratívne programy s pomocou cyklov
Ukážeme si pár ukážok programov, ktoré vás zocelia v programovaní. Doteraz sme viacmenej riešili teóriu, skúsme však teraz zužitkovať všetky nabudnuté skúseností v tvorbe zaujímavých iteratívnych programov.
1. príklad:
#include <iostream> // hlavičkový súbor using namespace std; // priestor mien int main() { int pocitadlo = 0; //deklarácia premenných char znak; bool dokoncene = false; int cislo = 1; int cislo1 = 5; while (!dokoncene) // cyklus { cout << "Zadaj ci suhlasis s dalsou itraciou, kde zadane y je ano a zadane n je nie.\n"; cin >> znak; if (znak == 'y' || znak == 'Y') { cislo += cislo1; pocitadlo += 1; } else if (znak == 'N' || znak == 'n') { dokoncene = true; } else cout << "Skus este raz zadat, asi si sa len pomylil :)\n"; } cout << "Vysledna hodnota: " << cislo << " po " << pocitadlo << " iteraciach."; return 0; // koniec programu }
Výsledok programu:
Zadaj ci suhlasis s dalsou itraciou, kde zadane y je ano a zadane n je nie. y Zadaj ci suhlasis s dalsou itraciou, kde zadane y je ano a zadane n je nie. y Zadaj ci suhlasis s dalsou itraciou, kde zadane y je ano a zadane n je nie. y Zadaj ci suhlasis s dalsou itraciou, kde zadane y je ano a zadane n je nie. e Skus este raz zadat, asi si sa len pomylil :) Zadaj ci suhlasis s dalsou itraciou, kde zadane y je ano a zadane n je nie. n Vysledna hodnota: 16 po 3 iteraciach.
2. príklad:
#include <iostream> using namespace std; int main() { int vstup = 0; int sucet = 0; cout << "Zadaj nejake kladne cele cislo.\n"; while (cin >> vstup) { if (vstup <= 0) { cout << "Hodnota scitanych zadanych cisel je: " << sucet; return 0; } sucet += vstup; cout << "Zadaj nejake kladne cele cislo.\n"; } }
Výsledok programu:
Zadaj nejake cele cislo. Ak nechces pokracovat, zadaj nulu 11 Zadaj nejake cele cislo. Ak nechces pokracovat, zadaj nulu 12 Zadaj nejake cele cislo. Ak nechces pokracovat, zadaj nulu 13 Zadaj nejake cele cislo. Ak nechces pokracovat, zadaj nulu 14 Zadaj nejake cele cislo. Ak nechces pokracovat, zadaj nulu 15 Zadaj nejake cele cislo. Ak nechces pokracovat, zadaj nulu 0 Hodnota scitanych zadanych cisel je: 65
Rozbor programu: Všimnite si, kde sme umiestnili vstup, V podmienke cyklu! Zvyšok kódu by mal byť jasný.
3. príklad:
#include <iostream> using namespace std; int main() { int pocitadlo = 1; while (pocitadlo <= 1000000000) { cout << pocitadlo << "\n"; pocitadlo *= 10; } return 0; }
Výsledok programu:
1 10 100 1000 10000 100000 1000000 10000000 100000000 1000000000
4. príklad: Modifikovaný 3. príklad
#include <iostream> #include <iomanip> // knižnica iomanip using namespace std; int main() { int pocitadlo = 1; while (pocitadlo <= 1000000000) { cout << setw(10) << pocitadlo << "\n"; //využitie funkcie setw pocitadlo *= 10; } return 0; }
Výsledok programu:
1
10
100
1000
10000
100000
1000000
10000000
100000000
1000000000
Rozbor programu: Z knižnice resp. hlavičkového súboru iomanip si požičíme funkciu setw, ktorá nám takto pekne „vycentruje“ text. I keď vysvetliť správanie setw je komplikovanejšie, stačí vedieť, že argument pre funkciu setw znamená šírku poľa v znakoch, My sme zadali 10, čiže výstup by mal vždy končiť vo vzdialeností 10 znakov v texte.