Zadání:
Sestavte program, který v poli čísel (max. 100) nalezne maximum a minimum a jejich pozici.
Řešení:
Na začátku programu načteme počet čísel v poli. Poté pomocí prvního cyklu FOR zadáme všechna čísla do pole.
Pomocí dalších čtyř řádků prohlásíme první prvek za maximum i minimum (min:=pole[1]; max:=pole[1];) a uložíme
jeho pozici do pozice maxima a minima (pozmin:=1; pozmax:=1;). Dalším cyklem FOR (všimněte si, že začíná od
hodnoty 2, protože první prvek již nemusíme testovat) otestujeme všechny ostatní prvky pole, zda nejsou menší
či větší než minimum a maximum. Pokud ano, uložíme jejich hodnoty a pozice do příslušných proměnných. Na konci
programu hodnoty a jejich pozice vytiskneme.
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var pole:array[1..100] of real;
n,i,pozmin,pozmax:integer;
min,max:real;
begin
write('Zadejte pocet cisel: ');
readln(n);
for i:=1 to n do
begin
write('Zadejte ',i,'.cislo: ');
readln(pole[i]);
end;
min:=pole[1];
max:=pole[1];
pozmin:=1;
pozmax:=1;
for i:=2 to n do
begin
if min>pole[i] then
begin
min:=pole[i];
pozmin:=i;
end;
if max<pole[i] then
begin
max:=pole[i];
pozmax:=i;
end;
end;
writeln('Minimalni hodnota: ',min:0:3,', pozice: ',pozmin);
writeln('Maximalni hodnota: ',max:0:3,', pozice: ',pozmax);
readln;
end.
program ke stažení
Pro studenty
Zamyslete se nad tím, jak se bude program chovat v situaci, kdy budou v poli dvě shodné minimální nebo maximální hodnoty.