{ MINMAX.PAS Copyright (c) TrSek alias Zdeno Sekerak } { Zostavte program, ktory nacita cisla, ak posledne cislo na vstupe } { je "K" /nacitajte/. Urcte minimum a maximum tychto cisel, ich } { pocet a cislo "i" jeho index, ktore je najblizsie priemeru } { nacitanych cisel } { } { Datum:04.02.2004 http://www.trsek.com } program min_max_index; uses crt; var c:array[1..100] of real; k:real; vstup:real; min:real; max:real; index:real; delta:real; ind:integer; n:integer; i:integer; begin ClrScr; WriteLn('Program zisti minimalne, maximalne a index z cisel'); Write('Zadaj ukoncovacie cislo k:'); ReadLn(k); { pociatocne hodnoty } n := 0; index := 0; { nacita az pokial nezada vstup=k } repeat Write('Zadaj c[',n+1,']='); ReadLn(vstup); { spocitavam sum } if( vstup <> k )then begin n := n + 1; c[n] := vstup; index := index + vstup; end; until (vstup = k); { pociatocne min, max } min := c[1]; max := c[1]; ind := 1; { vypocitaj index } if( n <> 0 )then index := index / n; delta := index; { vypocitaj min, max } for i:=1 to n do begin if( c[i] < min )then min := c[i]; if( c[i] > max )then max := c[i]; { je najblizsie } if(abs( c[i] - index ) < delta )then begin delta := abs( c[i] - index ); ind := i; end; end; WriteLn; WriteLn('Pocet nacitanych cisel je:', n); WriteLn('Minimalne cislo je:', min:8:3); WriteLn('Maximalne cislo je:', max:8:3); WriteLn('Priemer je cislo: ', index:8:3); WriteLn('Index je:', c[ind]:8:3, ' bolo v poradi:', ind); ReadLn; end.