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

Eduard Boldižár

Eduard Boldižár

Som redaktorom stránky astrotech.cz. Mám 25 rokov. Medzi moje záľuby patrí astronómia, sci-fi literatúra a programovanie.


  • Distribuce: ubuntu
  • Grafické prostředí: unity



Public Relations

Soulad s normou nemusí znamenat bezpečnost

ALEFNemusíme se vracet daleko do minulosti, aby bylo možné pozorovat IT oddělní velkých společností, jak se soustředí téměř výhradně na efektivitu poskytovaných služeb pro primární účely organizace. Proč také ne? Informační bezpečnost byla výsadou několika málo oborů a většina organizací si vystačila s firewallem a antivirovým programem.

Pokračování ...


IBM POWER

Redakční blog

Pavel Fric

Pavel Fric, 21. August

Sayonara Player 1.5.1

Přehrávač, jak má být. Poslední dobou vývoj šlape


Pavel Fric

Pavel Fric, 26. January

MuseScore 3

První aktualizace třetí řady notačního editoru MuseScore


Redakce

Redakce, 21. December

Pište pro LinuxEXPRES

Baví vás Linux? Pište o něm, není to nic těžkého. LinuxEXPRES hledá nové autory.


Všechny blogy »