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

Cvičení k 6. lekci Céčka

C a C++ Céčko Základní konstrukce C Cvičení k 6. lekci Céčka American English version English version

ONEbit hosting 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é lekce. 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 ryb si dáš k večeři?
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 zelených láhví stojí na stole a jedna láhev spadne
9 zelených láhví stojí na stole a jedna láhev spadne
8 zelených láhví stojí na stole a jedna láhev spadne
7 zelených láhví stojí na stole a jedna láhev spadne
6 zelených láhví stojí na stole a jedna láhev spadne
5 zelených láhví stojí na stole a jedna láhev spadne
4 zelené láhve stojí na stole a jedna láhev spadne
3 zelené láhve stojí na stole a jedna láhev spadne
2 zelené láhve stojí na stole a jedna láhev spadne
1 zelená láhev stojí na stole a jedna láhev 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 čísel, jejichž součet leží v některém z intervalů:
(1. číslo je z prvního intervalu a 2. z druhého 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 140x (145.46 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?
Ještě nikdo nehodnotil, buď první!
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.
Miniatura
Předchozí článek
Cykly v Céčku
Miniatura
Všechny články v sekci
Základní konstrukce jazyka C
Miniatura
Následující článek
Pole v jazyce C
Aktivity (9)

 

 

Komentáře

Avatar
Jiří Procházka:26.7.2016 17:49

Čau, chtěl by se zeptat na ten poslední příklad, kontroloval jsem si ho na konci podle tvého řešení a podle mě ti to nevypíše všechny dvojice, protože se i a j počítá každý zvlášť a nesečte ti to např.stejný čísla v prvním intervalu, ale tahle dvojice do zadání také patří.
Kdyžtak mě prosím oprav jestli se mýlím.
Díky za odpověď.
Já to udělal takhle. Funguje a vypíše snad všechny dvojice

 
Odpovědět 26.7.2016 17:49
Avatar
Jiří Procházka:26.7.2016 20:04

Ale teď zase koukám, že mě se opakujou ! Takže beru zpět

 
Odpovědět 26.7.2016 20:04
Avatar
Odpovídá na Jiří Procházka
Markos Mutagen:26.9.2016 20:35

Tomu říkáš program?
Tak musíš :-)

 
Odpovědět 26.9.2016 20:35
Avatar
Radoslav Vrablic:8. října 19:42

Ahoj , prosím ta nemôžem nahrať program prvého cvičenia.Vyhadzuje :Server: Došlo k chybě.

Môjj program v DEV C++:

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

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
int i;
char a;
printf("Kolik ryb si dáš k večeři?\n");
scanf("%d,",&i);

for (i = 1 ;i <= 6; i++)
{

printf("<° )))-< %c \n",a,i);
}
system("pause");
return 0;

}

Len mám problém so znakom ° , ukazuje mi ho ako prázdny znak nebola by vhodnejšia hviezdička ?

Ďakujem za odpoveď

 
Odpovědět 8. října 19:42
Avatar
Radoslav Vrablic:8. října 21:36

Teraz som si poriadne prečítal zadanie :) . Má vypísať počet rýb po zadaní počtu a nie len 6 :) :)

Opravený kód z DEV C++

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

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
int i;
int ryb;
printf("Kolik ryb si dáš k večeři?\n");
scanf(" %d,",&ryb);

for (i = 0; i < ryb; i++)
{

printf("<° )))-< \n");
}
system("pause");
return 0;

}

 
Odpovědět 8. října 21:36
Avatar
Martin Baroš:19. října 21:32

Ahoj, mám problém u posledního příkladu. Podle mě to funguje jak má, ale testem to projde jenom z 50%...

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

    int l1;
    int p1;
    int l2;
    int p2;
    int i;
    int j;

    printf("Zadejte levou mez 1. intervalu: \n");
    scanf("%d", &l1);
    printf("Zadejte pravou mez 1. intervalu: \n");
    scanf("%d", &p1);
    printf("Zadejte levou mez 2. intervalu: \n");
    scanf("%d", &l2);
    printf("Zadejte pravou mez 2. intervalu: \n");
    scanf("%d", &p2);

    printf("Dvojice čísel (1. z prvního intervalu a 2. z druhého intervalu), jejichž součet leží alespoň v jednom z intervalů: \n");
    j = l2;
    for (i = l1; i <= p1; i++)
    {
        while (((((i + j) <= p1) && ((i + j) >= l1)) || (((i + j) <= p2) && ((i + j) >= l2))) && (j <= p2))
        {
            printf("[%d;%d], ", i, j);
            j = j + 1;
        }
        j = l2;
    }

        return (EXIT_SUCCESS);
}
 
Odpovědět 19. října 21:32
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 6 zpráv z 6.