// проверяем последовательность индексов массива, если минимальный элемент позже максимального, то меняем местами
If MinI>=MaxI Then
begin
MinI:=MinI+MaxI;
MaxI:=MinI-MaxI;
MinI:=MinI-MaxI;
end;
//вывод результата из диапазона м и М
for i:=MinI to MaxI do
write(''+Mas[i]+',');
end.
1 votes Thanks 1
mrshaishnik
Программа должна вывести первоначальный массив, заданный датчиком случайных чисел, найти минимум и максимум, напечатать фрагмент массива, расположенный между ними. Вот что мне ответил учитель. Как переделать?
ober555
да точно есть 2 неточности... удили строки: writeln("Введите количество элементов массива"); readln(n); и write(Mas[i],' ');
Answers & Comments
Ответ:
program ReshenieZadachi;
var Mas:array[1..100] of integer;
i, Min, Max, MinI, MaxI, n:integer;
begin
//заполнение массива и вывод массива в строчку
writeln("Введите количество элементов массива");
readln(n);
writeln("Введите диапазон случайных чисел");
readln(x1,x2);
for i:=1 to n do begin
Mas[i]:=random(x1,x2);
write(Mas[i],' ');
end;
//нахождение минимального элемента массива
Min:=Mas[1];
MinI:=1;
Max:=Mas[1];
MaxI:=1;
for i:=2 to n do
begin
if Min>=Mas[i] then
begin
Min:=Mas[i];
MinI:=i;
end;
if Max<=Mas[i] then
begin
Max:=Mas[i];
MaxI:=i;
end;
end;
// проверяем последовательность индексов массива, если минимальный элемент позже максимального, то меняем местами
If MinI>=MaxI Then
begin
MinI:=MinI+MaxI;
MaxI:=MinI-MaxI;
MinI:=MinI-MaxI;
end;
//вывод результата из диапазона м и М
for i:=MinI to MaxI do
write(''+Mas[i]+',');
end.
удили строки:
writeln("Введите количество элементов массива");
readln(n);
и
write(Mas[i],' ');