Выдает ошибку " Нельзя преобразовать тип real к integer" - Pascal

Узнай цену своей работы

Формулировка задачи:

Столкнулся с такой проблемой, что когда начинаю выводить процедуры в конце там где Vvod_mas(m[i]) выдает ошибку " Нельзя преобразовать тип real к integer".Как ее исправить? И если не затруднит проверьте остальной код.
program mas3;
 
const
  n_st = 8;
 
procedure Vvod_mas(i: integer);
var
  m: array[1..n_st] of real;
begin
  writeln('Введите массив из ', n_st, ' строк:');
  for i := 1 to n_st do
    readln(m[i]);
  writeln('Ваш массив:');
  for i := 1 to n_st do
    write(' m[', i:2, ']= ', m[i]:1:1);
  writeln;
end;
 
procedure Poisk_max(max: real; i: integer);
var
  m: array[1..n_st] of real;
begin
  writeln('Максимальное число массива:');
  max := m[1];
  for i := 1 to n_st do
  begin
    if m[i] > max then
      max := m[i];
  end;
  writeln(' m[', i:2, ']= ', max:1:1);
  readln;
end;
 
procedure summa(sum, s: real; i: integer);
var
  m: array[1..n_st] of real;
begin
  writeln('Сумма от первого элемента до максимального элемента:');
  sum := 0;
  begin
    for i := 1 to 8 do
      s := s + m[i];
    sum := s;
  end;
  writeln('Сумма от максимального элемента до конца массива:');
  begin
    for i := 8 to n_st do
      s := s + m[i];
    sum := s;
  end;
end;
 
var
  m: array[1..n_st] of real;
  i: integer;
 
begin
  Vvod_mas(m[i]);
  Poisk_max(max);
  summa(sum);
  readln;
end.

Решение задачи: «Выдает ошибку " Нельзя преобразовать тип real к integer"»

textual
Листинг программы
procedure Vvod_mas;
var i: integer;
...
procedure Poisk_max;
var max: real; i: integer;
...
procedure summa;
var sum, s: real; i: integer;
...
{не забудьте добавить вывод найденных сумм}
...
begin
  Vvod_mas;
  Poisk_max;
  summa;

Объяснение кода листинга программы

  1. Создается процедура Vvod_mas с переменной i типа integer.
  2. Создается процедура Poisk_max с переменной max типа real и переменной i типа integer.
  3. Создается процедура summa с переменными sum и s типа real и переменной i типа integer.
  4. В основной программе вызываются процедуры Vvod_mas, Poisk_max и summa.
  5. При вызове происходит попытка преобразовать значение переменной типа real к типу integer, что приводит к ошибке Нельзя преобразовать тип real к integer.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5
Похожие ответы