Brno? Vypsali jsme pro vás nové termíny školení OOP v Brně!

Cvičení k 1.-3. lekci C++

Unicorn College 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ých tutoriálů a pokuste se na to přijít.

Jednoduchý příklad

Vytvořte program, který si na vstupu nechá zadat věk uživatele a poté vypíše: "Je ti x let.", kde x je zadané číslo.

Ukázka obrazovky programu:

Konzolová aplikace
Zadejte svuj vek: 24
Je ti 24 let.

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

Vytvořte program, který si na vstupu vyžádá celé číslo a následně vypíše jeho druhou mocninu.

Ukázka obrazovky programu:

Konzolová aplikace
Zadejte cislo: 5
Druha mocnina je 25

Pokročilý příklad

Vytvořte program, který si na vstupu vyžádá poloměr kruhu. Následně vypíše jeho obvod a obsah. Pro číslo Pí použijte hodnotu 3.1415, aby vyšel přesný výsledek.

Ukázka obrazovky programu:

Konzolová aplikace
Zadejte polomer: 2.78
Obvod kruhu je: 17.4584 cm a jeho obsah je 24.2672 cm2


 

Stáhnout

Staženo 232x (19.33 kB)
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?
12 hlasů
Věnuji se programování v C++ a C#. Kromě toho také programuji v PHP (Nette) a JavaScriptu (NodeJS).
Předchozí článek
Proměnné a typový systém v C++
Všechny články v sekci
Základní konstrukce jazyka C++
Miniatura
Následující článek
Typový systém podruhé - Datové typy v C++
Aktivity (18)

 

 

Komentáře
Zobrazit starší komentáře (17)

Avatar
Jan Morkes
Člen
Avatar
Jan Morkes:11. dubna 17:03

Ahoj. Potřeboval bych poradit. Možná dělám někde matematickou chybu, možná zadávám něco špatně.

#include <iostream>
#include <string>

using namespace std;

int main(void) {
cout<<"Zadejte polomer: ";
double a;
cin>>a;
cout<<a<<endl;
double b=3.1415;
double obvod=2 * a * b;
double obsah=a * a * b;
cout<<"Obvod kruhu je: "<<obvod<<" cm a jeho obsah je "<<obsah<<" cm2"<<endl;
cin.get();cin­.get();
return 0;
}

Program funguje a vychází i podobné výsledky ovšem s drobnou odchylkou. Zkoušel jsem double i float což by ani nemělo mít vliv. Zkoušel jsem kód různě přepisovat ale místo 17.4584 a 24.2672 mi vždy vychází 17.4667 a 24.2788 a samozřejmě mi to při odevzdání hlásí chybu. Může mi někdo poradit co mi uniká?

 
Odpovědět 11. dubna 17:03
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na Jan Morkes
patrik.valkovic:11. dubna 18:02

Ahoj, tvoje řešení jsem zkoušel odevzdat a funguje v pořádku, všemi testy projde.
Hodnoty vychází rozdílné, protože v ukázce je použito pí pouze na dvě místa (tj. 3,14).

Odpovědět 11. dubna 18:02
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Jan Morkes
Člen
Avatar
Odpovídá na patrik.valkovic
Jan Morkes:12. dubna 5:53

Tak jsem to zkusil ještě jednou a nyní to funguje. Měl jsem toho včera plné kecky tak jsem mohl udělat nějakou jinou botu :-) Každopádně díky.

 
Odpovědět 12. dubna 5:53
Avatar
Alex
Redaktor
Avatar
Alex:18. dubna 21:46

Tak si zkouším hezky to první cvičení. Zadám hezky kód:

#include <iostream>
#include <string>https://www.itnetwork.cz/
using namespace std;

int main(void) {
    cout << "Zadejte svuj vek:  "<< endl;
    int vek;
    cin >> vek
    cout << "Je ti " << vek << "let"
    cin.get();

        return 0;
}

a kompilátor mi píše, že mu něco chybí a stroj pro kontloru mi taky píše že to mám špatně. Může mi někdo prosím pěkně říct, jestli se to má dělat přes proměné nebo to do toho programu můžu natvrdo naťukat?

 
Odpovědět 18. dubna 21:46
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Alex
DarkCoder:18. dubna 22:45

A kompilátor má pravdu, že mu něco chybí a že to máš špatně. Neukončuješ příkazy středníkem...

Odpovědět 18. dubna 22:45
"„Učíš-li se proto, aby sis zapamatoval, zapomeneš. Učíš-li se proto, abys porozuměl, zapamatuješ si."
Avatar
Alex
Redaktor
Avatar
Odpovídá na DarkCoder
Alex:19. dubna 8:44

Díky. Teď jsem si toho všiml.

 
Odpovědět 19. dubna 8:44
Avatar
Alex
Redaktor
Avatar
Odpovídá na DarkCoder
Alex:27. května 22:43

No teď mě teda kompilátor už pustí. Ale za to vyhodnocení mě nechce pustit dál. Při tom tam mám stejné chování programu, přes stejný název proměnné a texty mi sedí taky.
Jak ten systém funguje a co vlastně chce.

 
Odpovědět 27. května 22:43
Avatar
István Nagy
Člen
Avatar
István Nagy:1. července 12:19

Kde je chyba?

#include <iostream>
#include <string>
using namespace std;

const float PI = 3.14;

int main(void) {
float polomer;
float obvod;
float obsah;

cout << "Zadejte polomer: ";
cin >> polomer;

obvod = 2 * polomer * PI;
obsah = polomer * polomer * PI;

cout << "Obvod kruhu je: " << obvod << " cm a jeho obsah je " << obsah << " cm2" << endl;

return 0;
}

Výsledek testu:
Celkové hodnocení: Selhalo (75 %)
Počet testů: 4, Prošlo: 3, Selhalo: 1
Doba běhu: 15 ms

Následující testy selhaly:

  • Zkus zadat poloměr s desetinným číslem
 
Odpovědět 1. července 12:19
Avatar
István Nagy
Člen
Avatar
Odpovídá na István Nagy
István Nagy:1. července 12:27

Už jsem našel chybu! V ukážke je použití PI = 3.14 ale při otestování třeba zadat jako 3.1415!! Vzhledem k testu je ukážka španá!!

Správně mělo být to (s PI = 3.1415):
Zadejte polomer: 2.78
Obvod kruhu je: 17.4667 cm a jeho obsah je 24.2788 cm2

 
Odpovědět 1. července 12:27
Avatar
Roman Rýdl
Člen
Avatar
Roman Rýdl:16. července 11:09

Ahoj, řešení mi prošlo, ale řeším, že když zadám 2,78 jako poloměr tak výsledky mi vychází špatně:

#include <iostream>
using namespace std;

int main() {
cout << "Zadejte polomer: ";
float a;
cin >> a;
float obvod = 2 * 3.1415f * a;
float obsah = 3.1415f * a * a;
cout << "Obvod kruhu je: " << obvod << " cm a jeho obsah je " << obsah << " cm2" << endl;
cin.get(); cin.get();
return 0;
}

Vím, že mám chybu v tom, že mi to nepřebere desetinou čárku, ale netuším jak to upravit.
Díky za pomoc

 
Odpovědět 16. července 11:09
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 10 zpráv z 27. Zobrazit vše