[Cvičení 2] [Obsah] [Cvičení 4]

Cvičení 3


Úloha 3.1

Napište program, který počítá součet dvou vektorů. Zadejte jejich dimenzi a pole alokujte dynamicky. Prvky vektorů načtěte z klávesnice, výsledek uložte do třetího vektoru.

Řešení:

Dev C++:soucetvdyn.dev, soucetvdyn.c
CodeBlocks:soucetvdyn.cbp, soucetvdyn.c


Úloha 3.2

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:

Dev C++:eratosp.dev, eratosp.c
CodeBlocks:eratosp.cbp, eratosp.c

Řešení:

Dev C++:eratos.dev, eratos.c
CodeBlocks:eratos.cbp, eratos.c


Úloha 3.3

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á, velikost pole není předem známa). 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 pouze funkci malloc, realokaci naprogramujte kompletně, zatím bez využití funkce realloc. Pro kopírování pole využijte funkci memcpy: void *memcpy(void *cil, const void *zdroj, size_t n); z knihovny mem.h.

Řešení:

Dev C++:dyn_pole2a.dev, dyn_pole2a.c
CodeBlocks:dyn_pole2a.cbp, dyn_pole2a.c
Dev C++:dyn_pole2b.dev, dyn_pole2b.c
CodeBlocks:dyn_pole2b.cbp, dyn_pole2b.c

Úloha 3.4

Přepište program z úlohy 3.3 za použití funkce realloc. Před prvním voláním funkce nezapomeňte přiřadit do ukazatele na pole hodnotu NULL.

Řešení:

Dev C++:dyn_pole3.dev, dyn_pole3.c
CodeBlocks:dyn_pole3.cbp, dyn_pole3.c


[Cvičení 2] [Obsah] [Cvičení 4]