В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
lcdnek198
lcdnek198
24.10.2020 04:10 •  Информатика

Последовательность состоит из различных натуральных чисел и завершается числом 0. Определите значение второго по величине элемента в этой последовательности.

Числа, следующие за числом 0, считывать не нужно.

Входные данные
Вводится последовательность целых чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит).

Выходные данные
Выведите ответ на задачу.

Примеры
входные данные
1
7
9
0
выходные данные
7
паскаль

Показать ответ
Ответ:
миха395
миха395
03.03.2023 22:53
Var
  f: text;
  i, j, n, n1: integer;
  matrix: array[,] of real;
begin
  assign(f, 'informat8.txt');
  reset(f);
  //найдём количество строк в матрице
  while not eof(f) do
   begin
    readln(f);
    inc(n);
  end;
  writeln('исходная матрица размерности ', n, 'x', n);
  //инициализируем массив (размерность узнали выше)
  matrix := new real[n, n];
  reset(f);
  // далее работаем с матрицей размерности [0..n-1] (инициализация происходит, начиная с 0)
  for i := 0 to n - 1 do
  begin
    for j := 0 to n - 1 do
    begin
      read(f, matrix[i, j]);
      write(matrix[i, j]:8:2);
    end;
    readln(f);
    writeln;
  end;
  writeln;
  n1 := 0;
  for i := 0 to n - 1 do
    for j := 0 to n - 1 do
      if matrix[i, j] < 0 then inc(n1);
  if n1 > round(n * n / 2) then
  begin
    writeln('Отрицательных элементов больше половины');
    //удваиваем элементы в чётных строках
    for i := 0 to n - 1 do
    begin
      if odd(i) then begin
        for j := 0 to n - 1 do
           matrix[i, j] := matrix[i, j] * 2;
      end;
    end;
  end else
  begin
    writeln('Отрицательных элементов меньше половины или ровно половина');
    //удваиваем элементы последнего столбца
    for i := 0 to n - 1 do
      matrix[i, n - 1] := matrix[i, n - 1] * 2;
  end;
    writeln('результирующая матрица');
  for i := 0 to n - 1 do  begin
    for j := 0 to n - 1 do
      write(matrix[i, j]:8:2);
    writeln;
  end;
end.

Результат работы:


Написать программу в паскаль или исправить ошибку в моей программе. в матрице имеются как положитель
0,0(0 оценок)
Ответ:
HepBbI
HepBbI
12.12.2021 18:43
1. Вот так это нужно решать по-современному

// PascalABC.NET 3.1, сборка 1172 от 19.02.2016
begin
  Writeln('k=',ArrRandom(15,1,20).Println.Count(x->x>10))
end.

Тестовое решение
4 16 14 9 11 18 17 14 14 15 1 1 9 10 15
k=9

2. А вот так учат решать в школе...

// PascalABC.NET 3.1, сборка 1172 от 19.02.2016
var
  a:array[1..15] of integer;
  i,k:integer;
begin
  Randomize;
  k:=0;
  for i:=1 to 15 do begin
    a[i]:=Random(20)+1;
    Write(a[i],' ');
    if a[i]>10 then k:=k+1
    end;
  Writeln;
  Writeln('k=',k)
end.

Тестовое решение:
18 15 7 6 3 3 10 6 6 15 2 16 16 2 12
k=6
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота