Помощь - Поиск - Пользователи - Календарь
Полная версия: Матрицы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
noodles
Помогите ,пожалуйста, решить задачу:
В файле A.dat дано целое n и действительная квадратная матрица порядка n.
Для данной матрицы составить матрицу B из нулей и единиц,элемент которой равен единице,
когда все соседи соответствующего элемента матрицы А меньше него самого,в противном случае-нулю.
Результат записать в файл B.res. Запись матрицы в файл оформить в виде подпрограммы.

Примерный текст программы:


type mass=array[1..10,1..10] of integer;
var a,b:mass;g,s:text;k,l,n,i,j:integer;
procedure print(a:mass;n:integer);
var i,j:integer;
begin
for i:=1 to n do begin
for j:=1 to n do
write(a[i,j]:5);
writeln;end;end;
begin
assign(s,'D:\A.dat');
print(a,n);
close(s);
for i:=1 to n do begin
for j:=1 to n do
for l:=-1 to 1 do begin
for k:=-1 to 1 do
if a[i,j]>a[i+l,j+k] then b[i,j]:=1 else b[i,j]:=0;
end;end;
assign(g,'D:\B.res');
rewrite(g);
print(b,n);
close(g);
end.


Теги !
volvo
Вот такой вариант пойдет?
type
  mass=array[1..10,1..10] of integer;
var
  a,b:mass;
  g,s:text;
  k,l,n,i,j:integer;
  found: boolean;

procedure input(var a: mass; var n: integer;
          var f: text);
var i, j: integer;
begin
  readln(f, n);
  for i:=1 to n do begin
    for j:=1 to n do
      read(f, a[i,j]);
    readln(f);
  end;
end;

procedure print(a: mass; n: integer;
          var f: text);
var i, j: integer;
begin
  for i:=1 to n do begin
    for j:=1 to n do
      write(f, a[i,j]:5);
    writeln(f);
  end;
end;

begin
  assign(s,'A.dat');
  reset(s);
  input(a,n,s);
  close(s);

  for i:=1 to n do
    for j:=1 to n do begin
      found := false;
      for l:=-1 to 1 do
        for k:=-1 to 1 do
          if (i+l > 0) and (i+l <= n) and
             (j+k > 0) and (j+k <= n)
          then
            if (a[i,j] < a[i+l,j+k]) then found := true;

      if found then b[i,j] := 0 else b[i, j] := 1;
    end;

  assign(g,'B.res');
  rewrite(g);
  print(b,n,g);
  close(g);
end.
noodles
не работает почему-то
volvo
Что значит "не работает"? Приведи номер ошибки, и где она возникает... Файл A.Dat где находится? Замени путь к нему на правильный... Я проверял вот на таком файле:
Цитата
3
1 2 3
4 5 6
7 8 7

noodles
Ошибок нет,путь правильный.
Я компилирую,запускаю- моргает экран и все.
Жму ALT+F5 -тоже ничего
volvo
Ну, правильно... Ты задание свое прочитай - результат пишется в файл B.Res Открой его и посмотри, что получилось...
noodles
Извини smile.gif ,
спасибо,что помог.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.