Předvánoční Black Friday Předvánoční Black Friday
Až 80% zdarma! Předvánoční BLACK FRIDAY akce. Více informací

Cvičení k 6.-7. lekci C++

C a C++ C++ Základní konstrukce C++ Cvičení k 6.-7. lekci C++ American English version English version

Unicorn College ONEbit hosting Tento obsah je dostupný zdarma v rámci projektu IT lidem. Vydávání, hosting a aktualizace umožňují jeho sponzoři.

Následující 3 cvičení vám pomohou procvičit znalosti programování v C++ z minulých lekcí. Ve vlastním zájmu se je pokuste vyřešit sami. Pod článkem máte pro kontrolu řešení ke stažení. Ale pozor, jakmile se na něj podíváte bez vyřešení příkladů, ztrácí pro vás cvičení smysl a nic se nenaučíte :)

Pokud si opravdu nebudete vědět rady, podívejte se raději znovu do minulého tutoriálu a pokuste se na to přijít.

Jednoduchý příklad

Vytvořte program, který se uživatele zeptá, kolik si dá ryb k večeři. Poté mu do konzole vypíše zadaný počet ryb tímto způsobem:

<* )))-<

Ukázka obrazovky programu:

Konzolová aplikace
Kolik si date ryb k veceri?
6
<* )))-<
<* )))-<
<* )))-<
<* )))-<
<* )))-<
<* )))-<

Středně pokročilý příklad

Zadání tohoto programu je odvozeno z anglické říkanky, která začíná takto:

10 zelených láhví stojí na stole a jedna láhev spadne

Program dále pokračuje takto:

9 zelených láhví stojí na stole a jedna láhev spadne

Až skončí poslední větou:

1 zelená láhev stojí na stole a jedna láhev spadne

Vytvořte program, který provede takovýto výstup pro 10 láhví. Všimněte si, že program umí skloňovat slova zelená a láhev.

Ukázka obrazovky programu:

Konzolová aplikace
10 zelenych lahvi stoji na stole a jedna lahev spadne
9 zelenych lahvi stoji na stole a jedna lahev spadne
8 zelenych lahvi stoji na stole a jedna lahev spadne
7 zelenych lahvi stoji na stole a jedna lahev spadne
6 zelenych lahvi stoji na stole a jedna lahev spadne
5 zelenych lahvi stoji na stole a jedna lahev spadne
4 zelene lahve stoji na stole a jedna lahev spadne
3 zelene lahve stoji na stole a jedna lahev spadne
2 zelene lahve stoji na stole a jedna lahev spadne
1 zelena lahev stoji na stole a jedna lahev spadne

Pokročilý příklad

Vytvořte program, který si nechá na vstupu zadat 2 intervaly (vždy dolní a horní mez jako celé číslo). Následně vypíše všechny dvojice čísel (z prvního a druhého intervalu), jejichž součet leží alespoň v jednom z intervalů.

Ukázka obrazovky programu:

Konzolová aplikace
Zadejte levou mez 1. intervalu:
5
Zadejte pravou mez 1. intervalu:
25
Zadejte levou mez 2. intervalu:
4
Zadejte pravou mez 2. intervalu:
16
Dvojice cisel, jejichz soucet lezi v nekterem z intervalu:
(1. cislo je z prvniho intervalu a 2. z druheho intervalu)
[5;4], [5;5], [5;6], [5;7], [5;8], [5;9], [5;10], [5;11], [5;12], [5;13], [5;14], [5;15], [5;16], [6;4], [6;5], [6;6], [6;7], [6;8], [6;9], [6;10], [6;11], [6;12], [6;13], [6;14], [6;15], [6;16], [7;4], [7;5], [7;6], [7;7], [7;8], [7;9], [7;10], [7;11], [7;12], [7;13], [7;14], [7;15], [7;16], [8;4], [8;5], [8;6], [8;7], [8;8], [8;9], [8;10], [8;11], [8;12], [8;13], [8;14], [8;15], [8;16], [9;4], [9;5], [9;6], [9;7], [9;8], [9;9], [9;10], [9;11], [9;12], [9;13], [9;14], [9;15], [9;16], [10;4], [10;5], [10;6], [10;7], [10;8], [10;9], [10;10], [10;11], [10;12], [10;13], [10;14], [10;15], [11;4], [11;5], [11;6], [11;7], [11;8], [11;9], [11;10], [11;11], [11;12], [11;13], [11;14], [12;4], [12;5], [12;6], [12;7], [12;8], [12;9], [12;10], [12;11], [12;12], [12;13], [13;4], [13;5], [13;6], [13;7], [13;8], [13;9], [13;10], [13;11], [13;12], [14;4], [14;5], [14;6], [14;7], [14;8], [14;9], [14;10], [14;11], [15;4], [15;5], [15;6], [15;7], [15;8], [15;9], [15;10], [16;4], [16;5], [16;6], [16;7], [16;8], [16;9], [17;4], [17;5], [17;6], [17;7], [17;8], [18;4], [18;5], [18;6], [18;7], [19;4], [19;5], [19;6], [20;4], [20;5], [21;4],


 

Stáhnout

Staženo 83x (37.38 MB)
Aplikace je včetně zdrojových kódů v jazyce C++

 

 

Článek pro vás napsal patrik.valkovic
Avatar
Jak se ti líbí článek?
2 hlasů
Věnuji se programování v C++ a C#. Kromě toho také programuji v PHP (Nette) a JavaScriptu (NodeJS).
Miniatura
Předchozí článek
Cykly v C++ (while, do while)
Miniatura
Všechny články v sekci
Základní konstrukce jazyka C++
Miniatura
Následující článek
Pole v C++
Aktivity (17)

 

 

Komentáře

Avatar
Jirka Tomek
Člen
Avatar
Jirka Tomek:7.4.2017 19:04

1. příklad

#include <iostream>;
using namespace std;

int main(void)
{
        setlocale(LC_ALL, "");
        cout << "Kolik ryb si dáte k večeři? ";
        int pocet = 0;
        cin >> pocet;
        cout << endl;
        for (int i = 0; i < pocet; i++)
        {
                cout << "<-" << i + 1 << ")))-<" << endl;
        }
        cout << endl << "Pro ukončení stiskněte ENTER.";
        cin.get(); cin.get();
        return 0;
}

2. příklad

#include <iostream>;
using namespace std;

int main(void)
{
        setlocale(LC_ALL, "");
        for (int i = 10; i > 0; i--)
        {
                if (i > 4)
                        cout << i << " zelených láhví stojí na stole a jedna láhev spadne." << endl;
                else if (i > 1 && i < 5)
                        cout << i << " zelené láhve stojí na stole a jedna láhev spadne." << endl;
                else
                        cout << i << " zelená láhev stojí na stole a jedna láhev spadne." << endl;
        }
        cout << endl << "Pro konec stiskněte ENTER.";
        cin.get();
        return 0;
}

3. příklad

#include <iostream>;
using namespace std;

int main(void)
{
        setlocale(LC_ALL, "");
        int firstLeft, firstRight, secondLeft, secondRight, maxVal = 0;
        cout << "Zadejte levou mez 1. intervalu: ";
        cin >> firstLeft;
        cout << "Zadejte pravou mez 1. intervalu: ";
        cin >> firstRight;
        cout << "Zadejte levou mez 2. intervalu: ";
        cin >> secondLeft;
        cout << "Zadejte pravou mez 2. intervalu: ";
        cin >> secondRight;
        if (firstRight >= secondRight)
                maxVal = firstRight;
        else
                maxVal = secondRight;
        cout << "Dvojice čísel (1. z prvního intervalu, 2. z druhého intervalu), jejichž součet leží alespoň v jednom z intervalů: ";
        for (int a = firstLeft; a <= firstRight; a++)
        {
                for (int b = secondLeft; b <= secondRight; b++)
                {
                        if ((a + b) <= maxVal)
                                cout << "[" << a << ";" << b << "], ";
                }
        }
        cout << endl << endl << "Ukončíte ENTERem.";
        cin.get(); cin.get();
        return 0;
}
 
Odpovědět 7.4.2017 19:04
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na Jirka Tomek
patrik.valkovic:7.4.2017 20:48

Proč všude dáváš řešení? Účelek cvičení není opsat program, ale vymyslet vlastní.

Odpovědět  +1 7.4.2017 20:48
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Katka Zimmermannova:15.5.2017 18:28

Zdravím :) Mám dotaz. Je dobře, když mi program funguje, ale došla jsem k závěru o trošku jinou cestou, než tady kolega nade mnou, nebo tohle je jediné správné řešení?

 
Odpovědět 15.5.2017 18:28
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na Katka Zimmermannova
patrik.valkovic:15.5.2017 18:47

Určitě, v programování je vždy několik způsobů, jak lze ten stejný program napsat.

Odpovědět 15.5.2017 18:47
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Jaroslav Dubánek:9.8.2017 19:28

Mám chybu v zelených lahvích. V okně programu neskloňuje správně. Přiložil jsem obrázek.

Odpovědět 9.8.2017 19:28
Život je ve skutečnosti strašně jednoduchej.
Avatar
Odpovídá na Jaroslav Dubánek
Jaroslav Dubánek:11.8.2017 7:58

Vidím, že je to už opravený, šlo by tyhle dva příspěvky smazat, prosím?

Odpovědět 11.8.2017 7:58
Život je ve skutečnosti strašně jednoduchej.
Avatar
Malý Daněk
Člen
Avatar
Malý Daněk:29. října 21:36

Nerozumím poslednímu příkladu

Zadejte levou mez 1. intervalu:
3
Zadejte pravou mez 1. intervalu:
10
Zadejte levou mez 2. intervalu:
2
Zadejte pravou mez 2. intervalu:
8
Dvojice cisel (1. z prvniho intervalu a 2. z druheho intervalu), jejichz soucet lezi alespon v jednom z intervalu:
Mohl by mi někdo vysvětlit jaké ty intervaly budou a proc?Děkuji

 
Odpovědět 29. října 21:36
Avatar
Lukáš Labor:24. listopadu 12:31

Mám takovou připomínku v případě že zadám nějakou hodnotu do proměnné pomocí cin ve výstupu se na této stránce nezobrazí, musím připsat ještě cout proměnná aby se objevila ve výpisu, pokud ale zadám vzorové řešení nějakou záhadou se tam objeví automaticky i bez cout, další věc je, že kontrola z nějakého důvodu nepouští správná řešení se správnými výstupy, pokud se kod neshoduje se vzorovým kodem.

 
Odpovědět 24. listopadu 12:31
Avatar
David Jančík
Tým ITnetwork
Avatar
Odpovídá na Lukáš Labor
David Jančík:24. listopadu 13:32

Pošli kód, bez toho ti nemůžeme poradit.

Odpovědět 24. listopadu 13:32
Zapomeň, že je to nemožné a udělej to ;)
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.