Урок 15 задача 4

Урок 15 задача 4

Пользователь вводит массив целых чисел из 7 элементов. Найдите из них два самых больших числа и выведите их на экран.
Примеры для проверки:

1 2 2 1 1 1 1
Ответ: 2 2
-1 -2 -2 -1 -1 -1 -1
Ответ: -1 -1
-1 -2 -2 5 4 -1 -1
Ответ: 5 4
program project1;
var numbArr: array[1..7] of integer;
    i,max_1,max_2:integer;
begin
  max_1:=0;
  max_2:=0;
  for i:=low(numbArr) to high(numbArr) do
  begin
    write('Введите ',i,' число : '); readln(numbArr[i]);
  end;
  for i:=low(numbArr) to high(numbArr) do
  begin
    if (numbArr[i]>max_1) then
      max_1:=numbArr[i];
  end;
  for i:=low(numbArr) to high(numbArr) do
  begin
    if ((numbArr[i]>max_2)and(numbArr[i]<>max_1)) then
      max_2:=numbArr[i];
  end;
  writeln('максимальные числа в массиве ', max_1, ' ',max_2);
  readln();
end.   
vedro-compota's picture

1)

max_1:=0;
  max_2:=0;

а что если в массиве все числа отрицательные?

2) стараться решить в один цикл

_____________
матфак вгу и остальная классика =)

program project1;
var numbArr: array[1..7] of integer;
    i,max_1,max_2:integer;
begin

  for i:=low(numbArr) to high(numbArr) do
  begin
    write('Введите ',i,' число : '); readln(numbArr[i]);
  end;
  max_1:=numbArr[1];
  max_2:=numbArr[1];
  for i:=1 to 7 do
  begin
    if (numbArr[i]>max_1) then
      max_1:=numbArr[i];
  end;
  for i:=1 to 7 do
  begin
    if ((numbArr[i]>max_2)and(numbArr[i]<>max_1)) then
      max_2:=numbArr[i];
  end;
  writeln('максимальные числа в массиве ', max_1, ' ',max_2);
  readln();
end. 
vedro-compota's picture

2) стараться решить в один цикл

_____________
матфак вгу и остальная классика =)

program project1;
var numbArr: array[1..7] of integer;
    i,max_1,max_2:integer;
begin
  for i:=low(numbArr) to high(numbArr) do
  begin
    write('Введите ',i,' число : '); readln(numbArr[i]);
  end;
  max_1:=numbArr[1];
  max_2:=numbArr[1];
  for i:=1 to 7 do
  begin
    if (numbArr[i]>max_1) then
    begin
      max_2:=max_1;
      max_1:=numbArr[i];
    end;
    if ((numbArr[i]>max_2)and(numbArr[i]<max_1)) then
      max_2:=numbArr[i];
  end;
  writeln('максимальные числа в массиве ', max_1, ' ',max_2);
  readln();
end.
vedro-compota's picture

использовать else

_____________
матфак вгу и остальная классика =)

program project1;
var numbArr: array[1..7] of integer;
    i,max_1,max_2:integer;
begin

  for i:=low(numbArr) to high(numbArr) do
  begin
    write('Введите ',i,' число : '); readln(numbArr[i]);
  end;
  max_1:=numbArr[1];
  max_2:=numbArr[1];
  for i:=1 to 7 do
  begin
    if (numbArr[i]>max_1) then
    begin
      max_2:=max_1;
      max_1:=numbArr[i];

    end
    else if ((numbArr[i]>max_2)) then
      max_2:=numbArr[i];
  end;
  writeln('максимальные числа в массиве ', max_1, ' ',max_2);
  readln();
end.
vedro-compota's picture

засчитано

_____________
матфак вгу и остальная классика =)