[Cvičení 5] | [Obsah] | [Cvičení 7] |
Napište program, který počítá součet dvou vektorů. Zadejte jejich velikost (počet prvků n) a alokujte dynamicky tři pole pro uložení vektorů. Prvky prvních dvou vektorů načtěte z klávesnice a uložte do dvou polí, výsledek uložte do třetího pole.
Spusťte si hotový program pro inspiraci: soucetvdyn.exeŘešení:
CodeBlocks: soucetvdyn.cbp, soucetvdyn.c
Napište program, který načítá z klávesnice posloupnost celých čísel zakončených -1 (hodnota -1 se již do pole neukládá, počet zadávaných čísel není předem znám). Program alokuje na počátku dynamicky pole určité velikosti. Pokud velikost pole v průběhu načítání nestačí, program provede realokaci. Použijte funkcimalloc
, realokaci nejprve naprogramujte nejdříve bez využití funkcerealloc
. Pro kopírování pole využijte funkcimemcpy: void *memcpy(void *cil, const void *zdroj, size_t n);
z knihovnymem.h
. Nakonec naprogramujte variantu využívající funkcirealloc
.
Řešení:
CodeBlocks: dyn_pole2a.cbp, dyn_pole2a.c CodeBlocks: dyn_pole2b.cbp, dyn_pole2b.c CodeBlocks: dyn_pole3.cbp, dyn_pole3.c
Dokončete následující program. Program čte text (max. 80 znaků) ze standardního vstupu. Pak se zadá jeden znak. Program hledá zadaný znak v textu. Pokud znak existuje, program vypíše znak na předchozí pozici a všechny následující znaky za nalezeným znakem (včetně) zašifruje Césarovou šifrou (posun o tři písmena v abecedě). Využijte ukazatelovou aritmetiku.
CodeBlocks: text.cbp, text.c Řešení:
CodeBlocks: text.cbp, text.c
Napište program, dynamicky alokuje dvourozměrné pole pro dolní trojúhelníkovou matici o velikosti n, n je zadané číslo představující rozměr matice. Pole pro jednotlivé řádky deklarujte různě velké, přesně podle potřeb trojúhelníkové matice. Matici vyplňte čísly podle obrázku a vytiskněte na obrazovku. Nezapomeňte na uvolnění paměti v závěru programu.
![]()
Řešení:
CodeBlocks: trojuh_matice.cbp, trojuh_matice.c
Napište program, který vypíše na obrazovku všechna prvočísla od 1 do n, n je přirozené číslo zadané z klávesnice. Využijte algoritmus Eratostenova síta. Pole alokujte dynamicky, dle zadaného n.Polotovar:
CodeBlocks: eratosp.cbp, eratosp.c Řešení:
CodeBlocks: eratos.cbp, eratos.c
Dokončete program pocitani_obsahu z webových stránek - definujte funkci, která vypočítá obsah kruhu a volejte ji v hlavním programu.Počítání obsahu (vzor):
Řešení:
CodeBlocks: pocitani_obsahu_vzor.cbp, pocitani_obsahu_vzor.c
CodeBlocks: pocitani_obsahu.cbp, pocitani_obsahu.c
Přetižte funkce
Polotovar:imaxmin
,fmaxmin
v programu z webových stránek. Nahraďte parametry typu ukazatel parametry typu reference.
CodeBlocks: pretezovanip.cbp, pretezovanip.cpp Řešení:
CodeBlocks: pretezovani.cbp, pretezovani.cpp
Napište rekurzivní a nerekurzivní verzi funkce pro výpočet n-tého členu Fibonaciho posloupnosti.
F0 = 0
F1 = 1
Fn = Fn-1 + Fn-2
Řešení:
CodeBlocks: fibo.cbp, fibo.c
Je dána celá částka v Kč. Máme k dispozici mince v hodnotách 20 Kč, 10 Kč, 5 Kč, 2Kč, 1 Kč. Napište rekurzivní proceduru, která vytiskne na obrazovku složení částky z co nejmenšího počtu mincí (vytiskne seznam mincí). Vytvořte také nerekurzivní verzi (s cyklem).Příklad:
Částka: 57
MInce: 20 20 10 5 2Řešení:
CodeBlocks: mince.cbp, mince.c
[Cvičení 5] | [Obsah] | [Cvičení 7] |