Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.02.2011, 11:10   #1
CaN9^^
Пользователь
 
Регистрация: 21.02.2011
Сообщений: 10
Восклицание матрицы и работа с текстовыми файломи

Здраствуйте! у меня 2 кода написанны но не работают помогите сделать отладку!плиз)
вот 1 задача:вход 2 квадратные матрицы выход 3-я -результат действия + или *, знак должен выбрать пользователь.ввод матриц тоже с клавы)
вот код:
program lab1pr1;
const
Max=10;
type
Tm=array[1..Max, 1..Max] of integer;
var
matr1,matr2:Tm;
resmatr:Tm;
n,m:integer;
action:char;

procedure ra3mermatr(var x,y:integer);
begin {строки}
repeat
write('введите кооличество строк матрицы'(1..',Max,')');
readln(x);
if(x<1) then
writeln('*не может быть отрицательным');
if (x>Max) then
writeln('не может превышать 10');
until (x>0)and(x<Max);
{столбцы}
repeat
write('введите колличество столбцов матриц (1..',Max,')');
readln(y);
if (y<1) then
writeln('не может быть <1!');
if (y>Max) then
writeln('*не должно превышать 10');
until (x>0)and(x<=Max);
end;

procedure EnterMatr(x,y:integer; var M:Tm);
var
i,j:integer;
begin
writeln('введите элементы матрицы:');
for i:=1 to x do
for j:=1 to y do
Begin
writeln('M[',i,',',j,']=');
readln(M[i,j]);
end;
end;

procedure BblBod(x,y:integer;M:Tm);
var
i,j:integer;
begin
for i:=1 to x do
begin
for j:=1 to y do
write(M[i,j]);
writeln;
end;
end;
procedure summatr(m1,m2:Tm; var res:Tm; n,m:integer);
var
i,j:integer;
begin
for i:=1 to n do
for j:=1 to m do
res[i,j]:=m1[i,j]+m2[i,j];
end;
procedure myltmatr(m1,m2:Tm; var res:Tm; n,m:integer);
var
i,j,k:integer;
begin
for i:=1 to m do
for j:=1 to m do
begin
res[i,j]:=0;
for k:=1 to n do
res[i,j]:=m1[i,k]+m2[k,j];
end;
end;

begin
ra3mermatr(n,m);
writeln('введите элементы 1 матрицы:');
EnterMatr(n,m,matr1);
writeln('введите элементы 2 матрицы:');
EnterMatr(n,m,matr2);
writeln('1-я исходная матрица:');
BblBod(n,m,matr1);
writeln('2-я исходная матрица*:');
BblBod(n,m,matr2);
writeln('выберите действие: (+) или (*):');
readln(action);
if (action='+')then
begin
summatr(matr1,matr2,resmatr);
output(resmatr);
end;
if (action='*') then
begin
myltmatr(matr1,matr2,resmtr);
output(resmatr);
end;
summatr(matr1,matr2,resmatr,n,m);
writeln('результат:');
BblBod(n,m,resmatr);
myltmatr(matr1,matr2,resmatr,n,m);
writeln('результат:');
BblBod(n,m,resmatr);
readln;
end.
вообщем я тут не могу сделать чтобы знак пользователь выбирал...помогите)





а вот 2 задача:Во входном файле code.txt (файл необходимо создать самостоятельно) записана матрица размером N х N (N – нечетное число). В файл decode.txt необходимо вывести строку, состоящую из элементов матрицы, полученную при обходе матрицы по спирали (начиная с первого элемента первой строки).
вот мой код:
program lab1pr2;
const
n=5;
type
TMatr=array[1..n,1..n] of integer;
var
Matr:TMatr;
f:text;
i,j,p:integer;
begin
assign(f,'Code.txt');
Reset(f);
for i:=1 to n do
begin
for j:=1 to n do read(f,Matr[i,j]);
end;
readln(f);
end;
close(f);
assign(f,'decode.txt');
rewrite(f);
for p:=1 to (n+1) div 2 do
begin
for j:=p to n-p+1 do write(Matr[p,j]:4);
for i:=p+1 to n-p+1 do write(Matr[i,n-p+1]:4);
for j:=n-p downto p do write (Matr[n-p+1,j]:4);
for i:=n-p downto p+1 do write(Matr[i,p]:4);
end;
close(f);
readln;
end.
не понимаю что не так... и если кто может помогите сделать её более универсалинее)
P.S в первой задаче ещё помогите сделать её не прямоугольной а квадратной)
ВСЕМ ЗАРАНЕЕ СПАСИБО!!!!
CaN9^^ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с файломи в Паскале kuzmich Помощь студентам 1 27.10.2010 20:15
Работа с текстовыми файлами A_Orlov Паскаль, Turbo Pascal, PascalABC.NET 1 14.06.2010 14:49
Работа с текстовыми файлами ditya_kremlya Паскаль, Turbo Pascal, PascalABC.NET 1 20.05.2010 18:10
работа с текстовыми файлами бургер Паскаль, Turbo Pascal, PascalABC.NET 0 16.05.2010 15:18
работа с файломи прямого доступа st1mUA Помощь студентам 0 20.10.2009 01:23