předchozí návrat do menu uložit zdrojový kód následující

Cvičení 20

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


předchozí návrat do menu uložit zdrojový kód následující
Klíčová slova v Pascal
TOPlist