přejít na obsah přejít na navigaci

Linux E X P R E S, Programovanie v jazyku C++: Iteratívne programy s pomocou cyklov (2)

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

C++

Pokračujeme tvorbou iteratívnych programov s pomocou cyklov. Ukážeme si program na tvorbu jednoduchej tabuľky. V závere nás čaká program, ktorý nám vykreslí stromček. 


Tabuľka

Pracujeme s tabuľkou, ktorá je dvojrozmerná. To znamená, že má riadky a stĺpce. Budeme nato myslieť při návrhu programu na vykreslenie tabuľky. Tabuľky, ktoré vytvoríme budú statické. Statické tabuľky sú také, v ktorých po vykreslení už nemôžme meniť hodnoty. Musíme opäť vykresliť tabuľku, ak chceme novú. Na dynamické tabuľky alebo matice potrebujeme dvojrozmerné polia. Ale o tom pohovoríme inokedy.

1. príklad: Program na vykreslenie tabuľky

#include <iostream>   // hlavičkový súbor

using namespace std;   // priestor mien

int main()   // hlavná funkcia main
{
   int velkost;
   int riadok = 1;
   int vysledok = 0;

   cout << "Zadajte, kolko ma mat riadkov a zaroven stlpcov?\n";   // vstup od uzivatela
   cin >> velkost;

   if (velkost <= 0)
   {
       cout << "Rozmer tabulky nemoze byt nulovy alebo zaporny!";
       return 0;
   }

   while (riadok <= velkost)   // prvy cyklus
   {
       int stlpec = 1;

       while (stlpec <= velkost)   // druhy cyklus
       {
           vysledok = riadok + stlpec - 1;   // scitanie riadka a stlpca
           cout << vysledok << " ";
           stlpec++;   // prva inkrementacia
       }

       riadok++;   // druha inkrementacia
       cout << "\n";
   }

   return 0;   //koniec programu
}

Výsledok programu:

Zadajte, kolko ma mat riadkov a zaroven stlpcov?

11
1 2 3 4 5 6 7 8 9 10 11
2 3 4 5 6 7 8 9 10 11 12
3 4 5 6 7 8 9 10 11 12 13
4 5 6 7 8 9 10 11 12 13 14
5 6 7 8 9 10 11 12 13 14 15
6 7 8 9 10 11 12 13 14 15 16
7 8 9 10 11 12 13 14 15 16 17
8 9 10 11 12 13 14 15 16 17 18
9 10 11 12 13 14 15 16 17 18 19
10 11 12 13 14 15 16 17 18 19 20
11 12 13 14 15 16 17 18 19 20 21

Ok, skúsme s pomocou funkcie setw tabuľku spriehľadniť.

2. príklad: Modifikácia prvého príkladu

#include <iostream>   // hlavičkový súbor
#include <iomanip>

using namespace std;   // priestor mien

int main()   // hlavná funkcia main
{
   int velkost;
   int riadok = 1;
   int vysledok = 0;

   cout << "Zadajte, kolko ma mat riadkov a zaroven stlpcov?\n";   // vstup od uzivatela
   cin >> velkost;

   if (velkost <= 0)
   {
       cout << "Rozmer tabulky nemoze byt nulovy alebo zaporny!";
       return 0;
   }

   while (riadok <= velkost)   // prvy cyklus
   {
       int stlpec = 1;

       while (stlpec <= velkost)   // druhy cyklus
       {
           vysledok = riadok + stlpec - 1;   // scitanie riadka a stlpca
           cout << setw(5) << vysledok;
           stlpec++;   // prva inkrementacia
       }

       riadok++;   // druha inkrementacia
       cout << "\n";
   }

   return 0;   // koniec programu
}

Rozbor programu:

Po spustení programu sa vám vytvorí pekne uhľadná tabuľka. Funkciu setw sme si už vysvetlili v minulom diele. Ostatne by malo byť všetko jasné.

Program na vykreslenie stromčeka

Stromček bude tvorený hviezdičkami. Program nebude nijak zložitý. Poďme sa naňho pozrieť.

3. príklad: Program na vykreslenie stromu

#include <iostream>

using namespace std;

int main()
{
    int vyska;

    cout << "Zadaj vysku stromu!" << "\n";
    cin >> vyska;   // zadanie vysky stromceka

    int riadok = 0;

    while (riadok < vyska)
    {
        int pocitadlo = 0;

        while (pocitadlo < vyska - riadok)
        {
            cout << " ";   // prazdne miesta
            pocitadlo++;
        }

        int pocitadlo2 = 0;

        while (pocitadlo2 < 2 * riadok + 1)
        {
            cout << "*";   // hviezdicky
            pocitadlo2++;
        }

        cout << "\n";
        riadok++;
    }

    return 0;
}

Výsledok programu:

Zadaj vysku stromu!

11
           *
          ***
         *****
        *******
       *********
      ***********
     *************
    ***************
   *****************
  *******************
 *********************

Nahoru

Přidat téma diskuse

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Top články z OpenOffice.cz