Задачи 1-2 урок 15 Одномерные массивы и работа с ними в Паскале.

урок 15 задачи 1-2

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

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

type  // секция объявления типов
  myArr = array[1..7] of integer; // массив из 7 элементов
var
  a: myArr; // объявляем переменную типа  myArr
  i, max, n, max2 : integer;
begin

   { обходим первый раз массив,
      значения которого ещё не инициализированы,
      с целью присвоить значения элементам
   }
   for i:=low(a) to high(a) do
   begin
     writeln('vvedite element massiva nomer ', i, ':');  // пояснение для пользователя
     readln(a[i]);  // считываем элемент i массива 'a' из консоли
   end;
   n:=7; // Колличество элементов массива
   a[1] := max; // Задаем первый элемент как максимальный

   for i:=2 to  n do  //т.к. задан первый элемент то обход заданого масива начинаем с 2
       begin
            if (a[i] > max ) then   // оператор ветвления проверяе на каждом шаге цикла максимальное число
            max:=a[i];
       end;
   writeln('max element',' ',max );
   a[1] := max2;
   for i:= 2 to n do
       begin
            if (a[i] < max) and ( a[i] > max2) then
            max2:=a[i];
       end;
   writeln('max2 element',' ',max2 );
   readln();
end.
vedro-compota's picture

a[1] := max; 

затираете значение

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

type  // секция объявления типов
  myArr = array[1..7] of integer; // массив из 7 элементов
var
  a: myArr; // объявляем переменную типа  myArr
  i, max, n, max2 : integer;
begin

   { обходим первый раз массив,
      значения которого ещё не инициализированы,
      с целью присвоить значения элементам
   }
   for i:=low(a) to high(a) do
   begin
     writeln('vvedite element massiva nomer ', i, ':');  // пояснение для пользователя
     readln(a[i]);  // считываем элемент i массива 'a' из консоли
   end;
   n:=7; // Колличество элементов массива
   max:=0;
   max2:=0;
   for i:=2 to  n do  //т.к. задан первый элемент то обход заданого масива начинаем с 2
   begin
        if (a[i] > max ) then   // оператор ветвления проверяе на каждом шаге цикла максимальное число
        max:=a[i];
   end;
   writeln('max element',' ',max );

   for i:= 2 to n do
   begin
        if (a[i] <= max) and ( a[i] > max2)   then
        max2:=a[i];
   end;
   writeln('max2 element',' ',max2 );

   readln();
end.                 
vedro-compota's picture

max:=0;
max2:=0;

а если в массиве все элементы окажутся отрицательными??

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

type  // секция объявления типов
  myArr = array[1..7] of integer; // массив из 7 элементов
var
  a: myArr; // объявляем переменную типа  myArr
  i, max, n, max2 : integer;
begin

   { обходим первый раз массив,
      значения которого ещё не инициализированы,
      с целью присвоить значения элементам
   }
   for i:=low(a) to high(a) do
   begin
     writeln('vvedite element massiva nomer ', i, ':');  // пояснение для пользователя
     readln(a[i]);  // считываем элемент i массива 'a' из консоли
   end;
   n:=7; // Колличество элементов массива
   max:=a[0];
   max2:=a[0];
   for i:=1 to  n do  // обход заданого масива
   begin
        if (a[i] > max ) then   // оператор ветвления проверяе на каждом шаге цикла максимальное число
        max:=a[i];
   end;
   writeln('max element',' ',max );

   for i:= 1 to n do   // обход заданого масива второй раз
   begin
        if (a[i] <= max) and ( a[i] > max2)   then
        max2:=a[i];
   end;
   writeln('max2 element',' ',max2 );

   readln();
end.