Black Friday je tu! Využij jedinečnou příležitost a získej až 80 % znalostí navíc zdarma! Více zde
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
BF extended 2022

Řešené úlohy k 1.-3. lekci Céčka

V minulé lekci, Proměnné a typový systém v Céčku, jsme si ukázali základní datové typy, byly to int, float a char.

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

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

V příští lekci, Typový systém v céčku podruhé: Datové typy, se budeme datovým typům věnovat podrobněji.


 

Měl jsi s čímkoli problém? Stáhni si vzorovou aplikaci níže a porovnej ji se svým projektem, chybu tak snadno najdeš.

Stáhnout

Stažením následujícího souboru souhlasíš s licenčními podmínkami

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

 

K absolvování tohoto cvičení prosím splň všechny příklady tím, že je úspěšně odevzdáš k otestování.

Předchozí článek
Proměnné a typový systém v Céčku
Všechny články v sekci
Základní konstrukce jazyka C
Přeskočit článek
(nedoporučujeme)
Typový systém v céčku podruhé: Datové typy
Článek pro vás napsal Samuel Kodytek
Avatar
Uživatelské hodnocení:
27 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.
Aktivity

 

 

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

Avatar
David Vlček
Člen
Avatar
David Vlček:13.10.2019 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.10.2019 1:58
Nevěřím, že každý dokáže všechno co chce. Věřím ale, že by to měl zkusit.
Avatar
Jakub Mrázek:28.10.2019 15:36

zdravim, predem se omlouvam za reseni takove banalnosti, ale jsem absolutne v koncich a nevim kde mam hledat chybu

presneji resim posledni priklad cviceni

kod mi funguje normalne, ale neprojde mi odevzdanim

#include <stdio.h>
#include <stdlib.h>

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

    float polomer;
    float obvod;
    float obsah;

    printf("Zadej polomer kurhu (cm)\n");
    scanf("%g", &polomer);

    obvod = 2 * 3.1415 * polomer;
    obsah = 3.1415 * polomer * polomer;

    printf("Obvod yadaneho kruhu je: %g cm \n", obvod);
    printf("Jeho obsah je: %g cm^2", obsah);

        return (EXIT_SUCCESS);
}
Editováno 28.10.2019 15:37
 
Odpovědět
28.10.2019 15:36
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Jakub Mrázek
DarkCoder:28.10.2019 16:42

Zkontroluj si text výzvy a odpovedi

Odpovědět
28.10.2019 16:42
"Chceš-li předávat své znalosti, měj kvalitní podklady."
Avatar
Odpovídá na DarkCoder
Jakub Mrázek:28.10.2019 16:45

to ma byt nejake naznaceni kam mirit nebo jak to mam chapat?

 
Odpovědět
28.10.2019 16:45
Avatar
Petricek58
Člen
Avatar
Odpovídá na Jakub Mrázek
Petricek58:11.1.2020 0:10

Stačí když se text liší například jen v diakritice a test je na 0% stačí opravit text.

 
Odpovědět
11.1.2020 0:10
Avatar
Pavel Florián:16.1.2020 17:29

Tato těchto úloh mě zde v simulaci nefunguje ale po kompilaci u mě fungují a nevím, co znamenají tyto chyby a případně jak to vyřešit?

Úloha 1:

#include <stdio.h>
#include <stdlib.h>
int main (int argc, char** argv) {
int a;
    printf ("Zadejte svůj věk \n");
    scanf("%d", &a);
    printf ("Je ti %d let. \n", a);
    return (EXIT_SUCCESS);
}

hlášení :./main.c: In function ‘main’:
./main.c:4:12: error: ‘LC_ALL’ undeclared (first use in this function)
setlocale(LC_ALL, "cs_CZ.UTF-8");
^
./main.c:4:12: note: each undeclared identifier is reported only once for each function it appears in
runjail.sh: 26: runjail.sh: ./mycprogram: not found

Úloha 2:

#include <stdio.h>
#include <stdlib.h>
int main (int argc, char** argv) {
int a;
    printf ("Zadej celé čislo k umocnění \n");
    scanf("%d", &a);
    a=a*a;
    printf ("%d \n", a);
    return (EXIT_SUCCESS);}

./main.c: In function ‘main’:
./main.c:4:12: error: ‘LC_ALL’ undeclared (first use in this function)
setlocale(LC_ALL, "cs_CZ.UTF-8");
^
./main.c:4:12: note: each undeclared identifier is reported only once for each function it appears in
runjail.sh: 26: runjail.sh: ./mycprogram: not found

Úloha 3:

#include <stdio.h>
#include <stdlib.h>
int main (int argc, char** argv) {
float a;
float pi;
float obvod;
float obsah;
    printf ("Zadej poloměr kruhu (cm): \n");
    scanf("%f", &a);
    pi=3.1415;
    obvod=a*2*pi;
    obsah=a*a*pi;
    printf ("Obvod zadaného kruhu je: %g cm\n", obvod);
    printf ("Jeho obsah je: %g cm^2\n", obsah);
    return (EXIT_SUCCESS);
}

./main.c: In function ‘main’:
./main.c:4:12: error: ‘LC_ALL’ undeclared (first use in this function)
setlocale(LC_ALL, "cs_CZ.UTF-8");
^
./main.c:4:12: note: each undeclared identifier is reported only once for each function it appears in
runjail.sh: 26: runjail.sh: ./mycprogram: not found

 
Odpovědět
16.1.2020 17:29
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Pavel Florián
David Čápka:27.1.2020 16:25

Ahoj, přepsal jsi v šabloně řešení main() metodu, kterou tester teď nemůže najít a proto kód nemůže spustit. Kód je potřeba vložit do šablony v řešení, aniž bys ji nějak změnil.

Odpovědět
27.1.2020 16:25
One of the most common causes of failure is the habit of quitting when one is overtaken by temporary defeat.
Avatar
Odpovídá na David Čápka
Pavel Florián:28.1.2020 6:01

Ahoj, podle chybové hlášky to tak vypadá, jenže deklaraci funkce main jsem nepřepsal a ani nic dalšího v šabloně a toto cvičení mám již vyřešené.

 
Odpovědět
28.1.2020 6:01
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Pavel Florián
David Čápka:28.1.2020 8:24

V tom prvním příkladu, který jsem zkoušel, jsi vložil mezeru mezi main a (. Můžeš se podívat, že v šabloně v článku není, ale v tvém kódu je. Problém jsem již reportoval a David to opravil, takže teď to funguje i tak. Snažíme se části šablony vyhledávat tak, aby na takových věcech nezáleželo, ale člověk nikdy ten regulár nenapíše aby pokryl vše, co se tam dá upravit, takže je lepší s tou šablonou nemanipulovat.

Odpovědět
28.1.2020 8:24
One of the most common causes of failure is the habit of quitting when one is overtaken by temporary defeat.
Avatar
DarkCoder
Člen
Avatar
DarkCoder:30.12.2021 14:22

K řešeným příkladům autora článku:

Střední příklad:

Pokud už v kódu používáte operátor *= , bylo by dobré se o něm ve výukovém článku zmínit.
Vůbec by neškodilo zmínit se o tom, že není důvod aktualizovat proměnnou před jejím výpisem, když ji chceme pouze vypsat a nikoli s ní dále pracovat. A co ta přidaná hodnota v podobně absence aktualizace přináší.

Těžký příklad:

I zde by slušelo se zmínit o specifikaci formátu %g která je v programu použita a zmínit rozdíl mezi %g, %G a %f.

o = 2 * 3.1415 * r;
s = 3.1415 * r * r;

V žádném z předchozích článků nebyl zmíněn datový typ double. Hodnota 3.1415 je číselný literál typu double. Buď to přepište na literál typu float 3.1415F nebo doplňte do předchozího článku popis typu double nebo se popište přetypování nebo se zmiňte o pravidlech konverzí a to zejména konverze typu ve výrazech a konverze typu při přiřazení. Co se týká optimalizace při výpisu, platí totéž co pro střední příklad.

Opravte to!

Odpovědět
30.12.2021 14:22
"Chceš-li předávat své znalosti, měj kvalitní podklady."
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 33. Zobrazit vše