Помощь - Поиск - Пользователи - Календарь
Полная версия: Матрицы
Форум «Всё о Паскале» > 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 ,
спасибо,что помог.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.