27.05.2008, 17:13
общий
это ответ
Здравствуйте, Хорост Андрей Викторович!
Вот вариант решения, где используется только один цикл. Здесь запоминаются не сами значения (максимальное и минимальное), а их индексы. Это даёт возможность сразу (до заполнения массива) дать стартовые значения индексам и проверять новые элементы уже по ходу их внесения.
Приложение:
Program Pr138023; Uses CRT; Const N = 100; Var Arr: Array[1..N] of Real; i, Min, Max: Integer;Begin ClrScr; Randomize; { Min и Max - индексы минимального и максимального элементов массива } Min := 1; Max := 1; WriteLn(‘Исходный случайно заполненный массив:‘); for i := 1 to N do begin { Вносим в массив числа от 0 до 100 } Arr[i] := 100 * Random; Write(Arr[i]:9:4); if Arr[i] < Arr[Min] then Min := i; if Arr[i] > Arr[Max] then Max := i; { После каждого 8-го числа переходим на новую строку } if i mod 8 = 0 then WriteLn; end; WriteLn; WriteLn; WriteLn(‘Разница между минимальным и максимальным‘); WriteLn(‘элементами равна ‘, (Arr[Max] - Arr[Min]):9:3); ReadLn;End.