Deváté cvičení – soubory
Práce se soubory patří k základům programátorského umu. Na tomto cvičení jsme si ukázali, jak otevřít, přečíst, zapsat a ukončit soubor.
Obsah cvičení
Na tomto cvičení jsme se zmínili o několika funkcích, které umožní pracovat se soubory. Jde o funkci fopen()
, fclose()
, fgetc()
, fputc()
, fprintf()
a fscanf()
.
Vytvořte program, který obdrží v parametrech příkazové řádky jméno vstupního a výstupního textového souboru. Program před každou řádku vstupního souboru doplní pětimístné číslo řádky (vyplněné nulami zleva) plus mezeru a zapíše výsledek do výstupního souboru. Vytvoření čísla proveďte pomocí funkce
fprintf()
, správnou masku konzultujte se sekcí o proměnných.Je-li vstupem programu soubor
aa
bb
cc
vytvoří program soubor s obsahem
00001 aa
00002 bb
00003 cc
Vytvořte program, který vypočítá diference funkce a uloží je do souboru. Jako parametr příkazové řádky program obdrží meze intervalu výpočtu a dále diferenční krok h (pro transformaci použijte funkci
sscanf()
). Program vygeneruje soubor vystup, do něhož uloží celkem čtyři sloupce dat (oddělené mezerami). První sloupec budou ekvidistantní kroky zadaného intervalu (hodnoty na ose x s krokem h), druhý sloupec budou odpovídající funkční hodnoty, ve třetím sloupci budou první diference a ve čtvrtém druhé diference. Diference jsou odhadem derivací funkce používaným v numerických výpočtech. Diference nejsou v krajních hodnotách intervalu definované (nelze překročit meze zadaného intervalu), proto údaje vyplňte první definovanou hodnotou příslušné diference (na kraji budou diference konstantní). Uvažujte funkci exp(-2*x*x)
. Výsledný soubor můžete vykreslit pomocí programu Gnuplot příkazem plot 'vystup' using 1:2 with lines, 'vystup' using 1:3 with lines, 'vystup' using 1:4 with lines
.Kompletní implementace spojového seznamu z minulého cvičení je ke stáhnutí v následujícím odkazu.
Kompletní implementace spojového seznamu