Linux E X P R E S

Facebook

Programovanie v jazyku C++: Iteratívne programy s pomocou cyklov (1)

C++

S pomocou cyklov vieme vytvoriť zaujímave iteratívne programy, ktoré si ukážeme v tomto a nasledujúcom diele. Tieto programy vám umožnia získať nejakú programatorsku prax. 


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.



Diskuze (3) Nahoru