Другие языки программирования и технологии

Информатика 10 класс. Программирование на Паскаль

Задаётся 20 рандомных элементов массива. Найти сумму максимального и минимального числа и выдать их номера.
Коль массив рандомный, то и элементы с максимальным и минимальным значениями вполне могут быть не уникальными. И если нужны номера ВСЕХ элементов (а не, допустим, первого минимального и первого максимального), то и идеология программы должна быть совершенно иной!
 program rand; 
var a, b, mini, maxi, j: integer;
arr: array [1..20] of integer;
begin
write('a b: ');
readln(a, b);
randomize();
arr[1] := random(b + 1 - a) + a;
write(arr[1], ' ');
mini := arr[1];
maxi := arr[1];
for j := 2 to 20 do
begin
arr[j] := random(b + 1 - a) + a;
if (arr[j] > maxi) then maxi := arr[j];
if (arr[j] < mini) then mini := arr[j];
write(arr[j], ' ')
end;
writeln();
write('max = ', maxi, ', №№: ');
for j := 1 to 20 do if arr[j] = maxi then write(j, ' ');
writeln();
write('min = ', mini, ', №№: ');
for j := 1 to 20 do if arr[j] = mini then write(j, ' ');
writeln();
writeln('max + min = ', maxi + mini)
end.
Gennady -
Gennady -
66 572
Лучший ответ
а может быть так
program q174147740;
uses crt;
var
i, ma, mi: integer;
a: array [1..20] of integer;
begin
Randomize;
for i := 1 to 20 do
begin
a[i] := Random(101);
Write(a[i]:4);
end ;
ma:=1; mi:=1;
for i:=2 to 20 do begin
if a[i] > a[ma] then
ma := i;
if a[i] < a[mi] then
mi := i;
end;
WriteLn;
WriteLn('max + min = a[',ma, ']+a[',mi,'] = ', a[ma] + a[mi]);
ReadLn;
end.
SN
Serdar Nazarov
95 955
Ну и что тут писать... Проще некуда.. Создаешь массив, заполняешь, сравниваешь по элементам, находишь максимум и минимум и все дела то...
Массив поиск i j сравнением предыдущим, если больше то записываем. После выдаётся номер строки и столбца, легко
program q174147740;
var
 i, max, min: integer;
 a: array [1..20] of integer;
begin
 Randomize;
 for i := 1 to 20 do
 begin
  a[i] := Random(100);
  Write(a[i]:3);
  if (i = 1) then
  begin
   max := a[i];
   min := a[i];
  end
  else
  begin
   if (a[i] > max) then
    max := a[i];
   if (a[i] < min) then
    min := a[i];
  end;
 end;
 WriteLn;
 WriteLn('Сумма: ', max + min);
 ReadLn;
end.