Body zdarma Java týden
Využij podzimních slev a získej od nás až 40 % bodů zdarma! Více zde
Pouze tento týden sleva až 80 % na Java e-learning!

Cvičení k 1.-3. lekci Céčka

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éčku 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

Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

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 svůj věk
25
Je ti 25 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
Zadej celé číslo k umocnění
10
100

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
Zadej poloměr kruhu (cm):
12.1
Obvod zadaného kruhu je: 76.0243 cm
Jeho obsah je 459.947 cm^2


 

Stáhnout

Staženo 1194x (172.74 kB)
Aplikace je včetně zdrojových kódů v jazyce c

 

 

Článek pro vás napsal Samuel Kodytek
Avatar
Jak se ti líbí článek?
11 hlasů
Autor se věnuje všem jazykům okolo JVM. Rád pomáhá lidem, kteří se zajímají o programování. Věří, že všichni mají šanci se naučit programovat, jen je potřeba prorazit tu bariéru, který se říká lenost.
Předchozí článek
Proměnné a typový systém v Céčku
Všechny články v sekci
Základní konstrukce jazyka C
Miniatura
Následující článek
Typový systém v céčku podruhé: Datové typy
Aktivity (13)

 

 

Komentáře

Avatar
hozjacz
Člen
Avatar
hozjacz:30.5.2015 15:29

Ahoj, tak jsem se jako úplný začátečník rozhodl zkusit se něco dozvědět. A plnil jsem výše zmíněné úlohy sám a po svém, nicméně po stažení Tvým zdrojáků jsem zjistil, že jsem na to šel asi příliš složitě:

U "středního" úkolu jsem zřejmě šel přes jednu proměnnou zbytečně, ale nějak mě to napadlo - je to chyba? Můj kód...

int a;
int soucin;
printf("Zadej celé číslo k umocnění: ");
scanf("%d", &a);
soucin = a * a;
printf("%d", soucin);

A u těžkého příkadu jsem se sice dobral ke správnému výsledku - otázkou je, zda-li můj postup není příliš "humpolácký" - zde je:

float a;
float obvod;
float obsah;
printf("Zadej poloměr kruhu v (cm): ");
scanf("%g", &a);
obvod = 2* 3.14 * a;
obsah = a * a * 3.14;
printf("Obvod zadaného kruhu je: %g cm \n", obvod);
printf("Obsah zadaného kruhu je: %g cm*2", obsah);

a nějak mi není jasné, co v deklaraci proměnných (nazývám-li to správně) dělá toto: float s = 3.14 * r * r;

 
Odpovědět 30.5.2015 15:29
Avatar
Samuel Kodytek
Šéfredaktor
Avatar
Odpovídá na hozjacz
Samuel Kodytek:7.6.2015 21:45

Ahoj, gratuluju k dokončení úkolů :)... Střední příklad je v pořádku a ten pokročilí je taky.... ta deklerace tam nemusí být je to uplně zbytečné (asi nějaká moje chyba :p ). Jen tak dál :p

Odpovědět 7.6.2015 21:45
There is more than one way to screw it
Avatar
ssieklik
Člen
Avatar
ssieklik:12.7.2015 23:57

// 1. priklad
#include <stdio.h>
const int vek;
int main(int argc, const char * argv[])
{
printf(" Zadej svuj vek: \n");
scanf("%s", &vek);
printf(" Tvuj vek je : %s \n ", &vek);
getchar();
return 0;
}
// 2. priklad
int main(int argc, const char * argv[])
{
int cislo;
printf(" Zadej cele cislo k umocneni:\n");
scanf("%d", &cislo);
printf("%d", (cislo * cislo));
getchar();
return 0;
}
// 3. priklad
int main(int argc, const char * argv[])
{
float polomer;
printf("Zadej poloměr kruhu v (cm): ");
scanf("%f", &polomer);
printf("Obvod zadaného kruhu je: %.2f cm \n", (polomer * 3.14 * 2));
printf("Obsah zadaného kruhu je: %.2f cm \n", (polomer * polomer * 3.14));
getchar();
return 0;
}

 
Odpovědět 12.7.2015 23:57
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Samuel Kodytek
DarkCoder:5.10.2016 22:11

1.

unsigned short int age;
printf("Zadejte svuj vek: ");
scanf("%hu", &age);
printf("Je ti %hu let.\n", age);

2.

signed int num;
printf("Zadej cele cislo k umocneni: ");
scanf("%d", &num);
printf("%d\n", num * num);

3.

float r;
const float PI = 3.14159F;
printf("Zadej polomer kruhu v (cm): ");
scanf("%f", &r);
printf("Obvod zadaneho kruhu je: %.3f cm\n", 2 * PI * r);
printf("Jeho obsah je: %.3f cm^2\n", PI * r * r);
Odpovědět 5.10.2016 22:11
"„Učíš-li se proto, aby sis zapamatoval, zapomeneš. Učíš-li se proto, abys porozuměl, zapamatuješ si."
Avatar
Tadeusz
Člen
Avatar
Tadeusz:14.9.2017 17:24

nejde mi bohužel udělat střední úkol myslím že mám to správně ale pořad mi píše že je něco špatně

int a;
printf ("zadejte cislo \n");
scanf ("%d",&a);
a*=a;
printf ("%d", a);

 
Odpovědět 14.9.2017 17:24
Avatar
Ilja Židkov
Člen
Avatar
Odpovídá na Tadeusz
Ilja Židkov:14.9.2017 19:17

Pokud používáš Visual Studio:

#include <iostream>
#include <conio.h>

int main()
{
        int a;
        printf("zadejte cislo \n");
        scanf_s("%d", &a);
        a *= a;
        printf("%d", a);

        _getch();

        return 0;
}
Editováno 14.9.2017 19:18
 
Odpovědět 14.9.2017 19:17
Avatar
alienshore
Člen
Avatar
alienshore:13.11.2017 18:35

řešení k třetímu příkladu :

int main(int argc, char** argv) {

float r;
float Pi;
Pi = 3.14F;
float O;
float S;
printf("Zadej poloměr kruhu (cm): ");
scanf("%f", &r);
O = Pi * 2 * r;
S = Pi * r * r;
printf("Obvod zadaného kruhu je: %f cm \n", O);
printf("Jeho obsah je %f cm2 \n", S);

return (EXIT_SUCCESS);
}

 
Odpovědět 13.11.2017 18:35
Avatar
Roman Vokál
Člen
Avatar
Roman Vokál:24.11.2017 10:35

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define PI 3.14159265358­979323846

int main()
{
int x;
printf("Zadej svuj vek: \n");
scanf("%d", &x);
printf("Je ti %d let.\n", x);

printf("\n");

int a;
printf("Zadejte cele cislo k umocneni: \n");
scanf("%d", &a);
a *= a;
printf("%d\n", a);

printf("\n");

float polomer;
float obvod;
float obsah;
printf("Zadejte polomer kruhu(cm): \n");
scanf("%f", &polomer);
obvod = 2 * PI * polomer;
obsah = PI * (polomer*polomer);
printf("Obvod zadaneho kruhu je: %f cm\n", obvod);
printf("Jeho obsah je %f cm2\n", obsah);

return 0;
}

 
Odpovědět 24.11.2017 10:35
Avatar
Tomáš Daniel:3.5.2018 7:48

Chtěl jsme se zeptat, kdy se u printf na konci uvozovek píše \n a kdy ne???

Odpovědět 3.5.2018 7:48
Proč chtít cokoliv jiného, než IT
Avatar
Odpovídá na Tomáš Daniel
Matúš Olejník:3.5.2018 8:23

\n ti vypíše nový riadok, takže ak chceš napr. aby znaky ABC boli každý na jednom riadku môžeš napísať

printf("A\nB\nC");
/* Vypíše
A
B
C
*/

Ak chceš priamo vypísať \n tak musíš escapnúť (neviem prísť na slovenský preklad :D ) to spätné lomítko ešte jedným

printf("A\\nB\\nC");
//Vypíše A\nB\nC
Odpovědět 3.5.2018 8:23
/* I am not sure why this works but it fixes the problem */
Avatar
Tomáš Daniel:3.5.2018 8:52

nevíte někdo, proč mi to nejede???

Odpovědět  -1 3.5.2018 8:52
Proč chtít cokoliv jiného, než IT
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Tomáš Daniel
David Čápka:3.5.2018 10:44

Zadala jsi vůbec to číslo?

Odpovědět 3.5.2018 10:44
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Odpovídá na David Čápka
Tomáš Daniel:3.5.2018 20:01

to číslo měl zadat uživatel

Odpovědět 3.5.2018 20:01
Proč chtít cokoliv jiného, než IT
Avatar
Odpovídá na Tomáš Daniel
Matúš Olejník:3.5.2018 21:20

Skús založiť nový projekt a spustiť to :)

Odpovědět  -1 3.5.2018 21:20
/* I am not sure why this works but it fixes the problem */
Avatar
Tomáš Daniel:4.5.2018 8:05

to taky nefunguje (viz. screenshot)
ale u všech mých programů se objevuje stejná chyba

Odpovědět 4.5.2018 8:05
Proč chtít cokoliv jiného, než IT
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Tomáš Daniel
DarkCoder:4.5.2018 11:31

Tuto chybu vykazují novější verze NetBeans. Řešením je tedy instalace a používání starší verze.

Odpovědět 4.5.2018 11:31
"„Učíš-li se proto, aby sis zapamatoval, zapomeneš. Učíš-li se proto, abys porozuměl, zapamatuješ si."
Avatar
Odpovídá na DarkCoder
Tomáš Daniel:4.5.2018 13:37

To si mě teda moc nepotěšil, ale díky za rady.
Nevíš náhodou, od jaké verze se tento problém objevuje???

Odpovědět 4.5.2018 13:37
Proč chtít cokoliv jiného, než IT
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na DarkCoder
David Čápka:4.5.2018 13:39

Máš ověřené, že to opravdu všude nefunguje? Případně bych kurz předělal pro Code::Blocks.

Odpovědět 4.5.2018 13:39
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
DarkCoder
Člen
Avatar
Odpovídá na David Čápka
DarkCoder:4.5.2018 14:25

Nevíš náhodou, od jaké verze se tento problém objevuje???

Údajně by tento neduh měl být od verze 7.1, ale ověřené to nemám, neboť NetBeans nepoužívám. A kde všude se tento problém vyskytuje, to nedokáži zodpovědět. Nemyslím si ale, že by bylo potřeba kurz předělat. Spíše bych jen doplnil, s jakou verzí to bylo testováno.

Zde bych poprosil uživatele NetBeans, aby se k danému problému vyjádřili, zda-li se s něčím podobným setkali a případně sdělili, jakou verzi používají.

Odpovědět 4.5.2018 14:25
"„Učíš-li se proto, aby sis zapamatoval, zapomeneš. Učíš-li se proto, abys porozuměl, zapamatuješ si."
Avatar
Marek Roučka:16.9.2018 20:43

Prosím, jaký je rozdíl mezi %f a %g? U 3. příkladu jsem použil %f, ale výsledky mi vylezly moc dlouhé, tak jsem použil omezení na %.3f, čímž jsem to zaokrouhlil na stejnou velikost jako předloha, ale stále se mi 12.1 zobrazovalo jako 12.100000. Přitom v NetBeans to bylo vždy 12.1. Nakonec jsem si stáhl vaše zdrojáky a tam byla všude g místo f.

 
Odpovědět 16.9.2018 20:43
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Marek Roučka
DarkCoder:16.9.2018 20:54

Specifikátor %g a %G způsobí výpis desetinného čísla v normálním nebo semilogaritmickém tvaru podle toho, který z nich je kratší. Rozdíl mezi %g a %G je ten, že v případě výpisu čísla v semilogaritmickém tvaru se bude vypisovat e nebo E.

Odpovědět 16.9.2018 20:54
"„Učíš-li se proto, aby sis zapamatoval, zapomeneš. Učíš-li se proto, abys porozuměl, zapamatuješ si."
Avatar
 
Odpovědět 23.9.2018 17:54
Avatar
moje jméno
Člen
Avatar
Odpovídá na Tomáš Daniel
moje jméno:19. září 19:19

na 26. řádku máš za "%f" dvojtečku. zkus ji smazat a spustit program znovu

 
Odpovědět 19. září 19:19
Avatar
David Vlček
Člen
Avatar
David Vlček:13. října 1:58

S tim Pi je to fakt pakárna....Nedočetl jsem zadání a psal jsem ho se šesti desetinnými místy :D

Odpovědět 13. října 1:58
Nevěřím, že každý dokáže všechno co chce. Věřím ale, že by to měl zkusit.
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 24 zpráv z 24.