• помогите найти ошибку в программе на паскаль авс
    вот задача: 1)Дан типизированный файл, содержащий символы. Скопировать элементы этого файла в квадратную матрицу размером n×n (если элементов файла недостает, заполнить оставшиеся элементы матрицы символом «точка»). Заменить все столбцы на столбец с минимальной суммой кодов элементов.
    вот решение:
    type mas2=array[1..20, 1..20] of char;
    procedure create(var T: text; var n: byte; var a: mas2);
    var i, j: byte;
    begin
    write('Введите размер матрицы: '); readln(n);
    for i:=1 to n do
    for j:= 1 to n do
    a[i, j]:= '.';
    reset(T);
    i:=1;
    while not seekeof(T) and (i<=n) do
    begin
    j:=1;
    while not seekeof(T) and (j<=n) do
    begin
    read(T, a[i, j]);
    j:= j+1;
    end;
    i:=i+1
    end
    end;

    procedure sum(var a: mas2);
    var i,j,m,n,sum,min,p,k:integer;
    t: char;
    begin
    min:=-maxint;
    for j:=1 to m do
    begin
    p:=0; min:=-maxint-1;
    for k:=j to m do
    begin
    sum:=0;
    for i:=1 to n do
    sum:=sum+ord(a[i,j]);
    if sum begin
    min:=sum;
    p:=k;
    end;
    end;
    for i:= 1 to n do
    begin
    t:=a[i,j];
    a[i,j]:=a[i,p];
    a[i,p]:=t;
    end;
    end;
    writeln(sum:7,' ');
    end;

    procedure zam(var T: text; var n: byte; var a: mas2);
    var i, j: byte;
    begin
    for i:=1 to n do
    for j:= 1 to n do
    a[i, j]:= '1';
    reset(T);
    i:=1;
    while not seekeof(T) and (i<=n) do
    begin
    j:=1;
    while not seekeof(T) and (j<=n) do
    begin
    read(T, a[i, j]);
    j:= j+1;
    end;
    i:=i+1
    end
    end;

    procedure print(const n: byte; const a: mas2);
    var i, j: byte;
    begin
    for i:=1 to n do
    begin
    writeln;
    for j:=1 to n do
    write(a[i, j]:5);
    end;
    writeln
    end;

    var T: Text; a: mas2; n: byte; s: string;

    begin
    write('Введите имя файла: '); readln(s);
    assign(T, s);
    create(T, n, a);
    writeln('Исходная матрица: ');
    print(n, a);
    sum(a);
    zam(T,n,a);
    writeln;
    writeln;
    writeln;
    writeln('Результирующая матрица: ');
    print(n, a);
    end.

Ответы 6

  • а где он?
  • в ответе
  • спасибо)
  • var  a: array[1..20,1..20] of integer;  n,m,i,j,min,jm,x: integer;begin  randomize;  write('Введите размеры массива: ');  readln(n,m);  writeln('Исходный массив:');  for i:=1 to n do  begin    for j:=1 to m do    begin      a[i,j]:=random(19)-9;      write(a[i,j]:4);    end;    writeln;  end;  min:=0;  for i:=1 to n do min:=min+a[i,1];  writeln('Сумма элементов 1-го столбца = ',min);  jm:=1;  for j:=2 to m do  begin    x:=0;    for i:=1 to n do      x:=x+a[i,j];    writ
    • Автор:

      eddypark
    • 5 лет назад
    • 0
  • спасибо))))
    • Автор:

      lyric
    • 5 лет назад
    • 0
  • var   a: array[1..20,1..20] of integer;   n,m,i,j,min,jm,x: integer; begin   randomize;   write('Введите размеры массива: ');   readln(n,m);   writeln('Исходный массив:');   for i:=1 to n do   begin     for j:=1 to m do     begin       a[i,j]:=random(19)-9;       write(a[i,j]:4);     end;     writeln;   end;   min:=0;   for i:=1 to n do min:=min+a[i,1];   writeln('Сумма элементов 1-го столбца = ',min);   jm:=1;   for j:=2 to m do   begin     x:=0;     for i:=1 to n do       x:=x+a[i,j];     writeln('Сумма элементов ',j,'-го столбца = ',x);     if x<min then     begin       min:=x;       jm:=j;     end;   end;   writeln('Минимальная сумма в ',jm,'-м столбце');   writeln('Полученный массив:');   for i:=1 to n do   begin     for j:=1 to m do     begin       if j<>jm then a[i,j]:=a[i,jm];     write(a[i,j]:4);     end;     writeln;   end;   readln; end.
    • Автор:

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

Войти через Google

или

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

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

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