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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2011, 06:38   #1
ivanusevanton
Новичок
Джуниор
 
Регистрация: 01.08.2010
Сообщений: 1
По умолчанию Операции с матрицами в одной программе

Вобщем нужно разработать проект, который обеспечивает выполнение операций сложения, вычитания и умножения над матрицами целых чисел. Выбор выполняемой операции осуществляет пользователь. Программу естественно нужно написать на Pascal'е. Вот что у меня получилось:
program matrix;
uses crt;
var
a,b,s: array [1..20,1..20] of integer;
k,m,n,i,j,p:integer; op:char; label p1,p2,p3;
begin
clrscr;
write('Vvedite razmernost matric (n*m):');
readln(n,m);
begin
writeln('Vvedite matrici:');
writeln(' Pervaya:');
for i:=1 to n do
for j:=1 to m do
read(a[i,j]);
writeln;
writeln(' Vtoraya:');
for i:=1 to n do
for j:=1 to m do
read(b[i,j]);
end;
write('Operaciya: '); readln(op);
case op of
'+':goto p1;
'-':goto p2;
'*':goto p3; else write('Oshibka!'); end;
p1:writeln;
writeln;
writeln('Summa: ');
for i:=1 to n do
begin
writeln;
for j:=1 to m do
begin
s[i,j]:=a[i,j]+b[i,j];
write(s[i,j],' ');
end;
end;
p2:writeln;
writeln;
writeln('Paznost: ');
for i:=1 to n do
begin
writeln;
for j:=1 to m do
begin
s[i,j]:=a[i,j]-b[i,j];
write(s[i,j],' ');
end;
end;
p3:writeln;
writeln;
writeln('Proizvedenie: ');
for i:=1 to n do
for j:=1 to m do
begin
s[i,j]:=0;
for k:=1 to n do
s[i,j]:=s[i,j]+a[i,k]*b[k,j];
write(s[i,j],' ');
end;
readkey;
end.

А теперь вопрос. Как исправить то, чтобы программа выдавала именно тот ответ который относится к введенной операции, а не все 3 сразу и последний в виде матрицы, а не просто числа в строчку?
ivanusevanton вне форума Ответить с цитированием
Старый 19.10.2011, 12:48   #2
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

вариант операции над матрицой оформить через case, если выбрант такой то пункт меню, то такая то манипуляция.... каждому варианту действий свой "индекс" в case

а что бы матрица ввыводилась прямоуголно :
Код:
for i:=1 to n do
begin
for j:=1 to m do
wrile(" ",a[n,m]);
writeln;
end;
после вывода одной строки будет перекидываться на следующую строку...
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
операции с матрицами Alexandr000006 Помощь студентам 6 26.07.2011 14:34
Операции с матрицами . Alex_sim Общие вопросы .NET 11 24.04.2010 21:18
Операции с матрицами. Делфи nevnuff Помощь студентам 2 21.12.2009 13:03
C#: операции с матрицами Sianessa Помощь студентам 12 13.05.2009 22:22