• Переделайте программу так, чтобы данные считывались с дискового файла.

    program prog_2_6a;
    type vx=array[1..10,1..10]of real;
    type vy=array[1..10]of real;
    var
    x:vx;
    y:vy;
    n,m,i,j:integer;
    a:real;
    begin
    writeln('Введите количество cтрок');
    readln(n);
    writeln('Введите количество столбцов');
    readln(m);
    for i:=1 to n do
    begin
    for j:=1 to m do
    begin
    writeln(j,'-й элемент ',i,'-й строки');
    readln(x[I,j])
    end;
    end;
    for j:=1 to m do
    begin
    a:=0;
    a:=a+x[I,j];
    y[j]:=a/n;
    writeln('Среднее значение по ',j,'-му столбцу');
    writeln(y[j]:8:2);
    end;
    readln;
    End.

    Данные матрицы находятся в изображении.
    P.S покажите как должна будет выглядеть матрица в файле

    question img

Ответы 4

  • если чтенье и запись разделены то стоило и работу с файлами разделить
    • Автор:

      conner25
    • 6 лет назад
    • 0
  • var x: array[1..10, 1..10]of real; f: text; n, m, i, j: integer; a: real;begin assign(f, 'input.txt'); reset(f); n := 0; while not Eof(f) do begin n := n + 1; m := 0; while not Eoln(f) do begin m := m + 1; read(f, x[n, m]); end; readln(f); end; close(f); assign(f, 'output.txt'); rewrite(f); for j := 1 to m do begin a := 0; for i := 1 to n do a := a + x[i, j]; writeln(f, 'Среднее значение по ', j, '-му столбцу = ', (a / n):8:2); end; close(f);end.
    • Автор:

      teddypyws
    • 6 лет назад
    • 0
  • и вообще ошибка при вычислении среднего
    • Автор:

      shawn544
    • 6 лет назад
    • 0
  • У вас был неправильно реализован алгоритм поиска среднего значения.При вводе данных в файл удостоверьтесь что нет пустых строк(строк с пробелами), а также нет пробелов в конце самих строк.program prog_2_6a;type  vx = array[1..100, 1..100] of real; vy = array[1..10] of real;var  x: vx;  y: vy;  f: text;  n, m, i, j: integer;  a: real;begin  assign(f, 'input.txt');reset(f);  n := 0;  while not Eof(f) do  begin    inc(n);    m := 0;     while not Eoln(f) do    begin      inc(m);      read(f, x[n, m]);     end;    readln(f);  end;  close(f);  assign(f, 'output.txt');rewrite(f);  if (n > 10) or (m > 10) then begin Writeln(f, 'Некорректно введены данные в файл или кол-во столбцов/строк превышают 10');close(f);exit; end;  for i := 1 to m do  begin    for j := 1 to n do      a := a + x[j, i];    y[i] := a / n;    writeln(f, 'Среднее значение по ', i, '-му столбцу', y[i]:8:2);    a := 0;  end;  close(f);end.Пример ввода/вывода+код:
    answer img
    • Автор:

      nerdminr
    • 6 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years