Vytvořte program, který zpracuje výsledky fyzikálního měření. Načte hodnoty n měření a určí střední hodnotu měření, největší odchylku od střední hodnoty, aritmetický průměr naměřených hodnot, průměrnou odchylku a relativní odchylku. Pro jednotlivé výpočty napište funkce. K výpočtu střední hodnoty měření můžete s výhodou použít funkce min a max z předchozího cvičení (musíte je však upravit pro práci s reálnými čísly). Hodnoty zaokrouhlujte na 2 desetinná místa. Počet měření n bude konstanta např. 10. Zkuste upravit barvy výstupu na obrazovku (např. žlutý text na modrém pozadí).
Pozn.: popis teorie ke zpracování naměřených hodnot naleznete v knize Mechanika (Fyzika pro gymnázia) - laboratorní cvičení Základy fyzikálních měření (str. 319)
program ukol20; uses crt; const n=10; type pole=array [1..n] of real; var i:integer; mereni:pole; stredni:real; function prumer:real; {pocita aritmeticky prumer namerenych hodnot} var soucet:real; begin soucet:=0; for i:=1 to n do soucet:=soucet+mereni[i]; prumer:=round(soucet/n*100)/100; {zaokrouhleni na 2 mista} end; function odchylka:real; {pocita prumernou odchylku} var soucet,prum:real; begin soucet:=0; prum:=prumer; for i:=1 to n do soucet:=soucet+(abs(prum-mereni[i])); odchylka:=round(soucet/n*100)/100; {zaokrouhleni na 2 mista} end; function min:real; {zjistuje nejmensi hodnotu} var p:real; begin p:=maxint; for i:=1 to n do if mereni[i]<p then p:=mereni[i]; min:=p; end; function max:real; {zjistuje nejvyssi hodnotu} var p:real; begin p:=0; for i:=1 to n do if mereni[i]>p then p:=mereni[i]; max:=p; end; begin { -- H L A V N I P R O G R A M -- } textbackground(blue); clrscr; for i:=1 to n do begin {zadani} textcolor(yellow); write('Zadejte ',i,'. namerenou hodnotu: '); textcolor(white); readln(mereni[i]); end; stredni:=((max-min)/2+min); {vypocet stredni hodnoty} writeln; textcolor(yellow); writeln('Vyhodnoceni:'); for i:=1 to 60 do write('_'); writeln; write('stredni hodnota':16); writeln(' nejvetsi odchylka (od stredni hodnoty)'); textcolor(white); writeln(stredni:10:2,(stredni-min):20:2); textcolor(yellow); for i:=1 to 60 do write('_'); writeln; write('prumerna hodnota':16); write('prumerna odchylka':20); writeln('relativni odchylka':20); textcolor(white); write(prumer:10:2,odchylka:20:2); writeln((odchylka/prumer*100):20:2,' %'); repeat until keypressed; end.
Zpět na: Lekce 8