Připomínky k DU2 – půlení intervalu
Čtěte připomínky k minulým úkolům.
Sledujte warningy. Snažte se je odstranit (mimo warningů upozorňujících na chyby v knihovnách, "safe" funkce ...).
Při odevzdání DU - hlavní jsou C (Cpp) a h soubory (testování,
vstupy, výstupy). Určitě neodevzdávat pomocné (např. Sdf ) soubory a
pomocné adresáře (debug). Můžete použít například následující
pakovací program s volbami, které odstraní nedůležité součásti
for
%%i in (*.sln) do set mojsoub= %%i
7za.exe a -tzip -xr!Debug\
-xr!Release\ -xr!x64\ -xr!ARM\ -xr!*.obj -xr!*.exe -xr!*.idb
-xr!*.pdb -xr!*.log %mojsoub%.zip *.sln *.suo
Pro každý
solution (dáno souborem *.sln) vytvoří zip archiv se stejným jménem.
Přepínač a - add - přidání do archivu.
volba t - type - říká
jaký typ archivu se vytvoří = tzip
volba x - exclude - vypuštění
souboru nebo adresáře "-x!soubor.txt"
volba r - recurse
- prohlíží i vnořené adresáře
Hlavičkový soubor nemůže být prázdný (u dobrého programu), musí být ošetřen proti vícenásobnému načtení a obsahuje definice k součástem programu umístěným v příslušném zdrojovém textu, které chceme zveřejnit mimo tento zdrojový soubor. Například #define je vhodnější umístit do hlavičkového souboru. Výjimkou je situace, kdy definici chceme omezit na jediný soubor.
Program by měl být čitelný - proto používejte pomocné proměnné (if (funkce1(...) - funce1(...) > funkce1(...) * funkce1 (...)+funkce1(...) je nepřehledné, a nevhodné zvláště když se volá 3x se stejnými parametry)
Snažit se vytvářet univerzální (přenosný) kód - nepočítat s tím, že koeficientů bude vždy 3 (a používat k[0], k[1], k[2], ale připravit se třeba na dvacet (,sto) koeficientů - pracovat s cykly).
Algoritmus výpočtu polynomu v cyklu (pow je příliš "drahé") (převod int čísla ze vstupu x = x *10 + y; od nejvyššího řádu) x = x * y + k[i]; (od nejvyššího koeficientu).
Hodnoty v každá souřadnici je možné počítat pouze jednou (a zapamatovat si je v nějaké proměnné pro příští výpočet/cyklus).
Rozdíl mezi "normálním" a rekurzivním použitím funkce - jaké jsou nutné úpravy?
#define MAXRAD měl být podle zadání 10. Pro skutečnou hodnotu řádu měla být proměnná, jejíž hodnota se načte.
Při načítání je nutné oddělovací znaky jako ; také vyčíst.