09.12.2012, 20:31 | #1 (permalink) |
Member
Регистрация: 09.12.2012
Сообщений: 45
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите решить задачу в Паскале
вот начало, а дальше у меня ступор: const n1=5;m1=5; m2=5;n2=5; var a:array[1..n1,1..m1] of real; b:array[1..n2,1..m2] of real; x:array[1..n1+n2,1..m1+m2] of real; i,j,e,p1,p2,q:integer; begin for i:=1 to n1 do begin for j:=1 to m1 do begin writeln ('a[',i,',',j,']=',a[i,j]); readln(a[i,j]); end; writeln; end; for i:=1 to n2 do begin for j:=1 to m2 do begin writeln ('b[',i,',',j,']=',b[i,j]); readln(b[i,j]); end; writeln; p1:=m1+n1; p2:=m2+n2; for e:=1 to n1 do begin for q:=1 to p2 do begin for j:=1 to m1 do begin x[e,q]:=0; end; end;end; |
09.12.2012, 20:31 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Эти темы схожи с вашей и я рекомендую прочитать их Помогите пожалуйста решить задачу на Паскале. Помогите решить задачу в Паскале |
09.12.2012, 21:02 | #5 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Ладно. Тогда еще вопрос. Какие-нибудь ограничения на размерности массивов есть? Поясню. Вот Вы все четыре константы n1,m1,n2,m2 полагаете одинаковыми и равными 5. Это предусмотрено условием? С другой стороны, побочная (равно как и главная) диагональ может быть только у квадратной матрицы, т.е. n1+n2=m1+m2 - так? Но, кроме того, возникает вопрос: а что значит для неквадратных исходных матриц расположение "вдоль побочной диагонали"? Может быть, просто одна должна оказаться в правом верхнем углу "большой" матрицы, а вторая - в левом нижнем? Поясните, пожалуйста. Или так - достаточно ли будет сделать как у Вас, т.е. все константы положить равными? Претензий потом не будет?
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
09.12.2012, 21:14 | #6 (permalink) |
Member
Регистрация: 09.12.2012
Сообщений: 45
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
в условии нет никаких ограничений на размерности)
то что все 4-е константы равны 5- это моё предположение, мне кажется так легче будет. Но скорей всего правильнее ваше утверждение:одна должна оказаться в правом верхнем углу "большой" матрицы, а вторая - в левом нижнем |
09.12.2012, 21:32 | #8 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Вот, получите.
Одно замечание: не пытайтесь объединить ввод значений элементов матрицы и вывод ее на экран - ничего не выйдет. Это необходимо делать порознь и последовательно. Код:
const n1=5; m1=4; n2=3; m2=7; var a:array[1..n1,1..m1] of Integer; b:array[1..n2,1..m2] of Integer; x:array[1..n1+n2,1..m1+m2] of Integer; i,j:integer; Begin for i:=1 to n1+n2 do for j:=1 to m1+m2 do x[i,j]:=0; for i:=1 to n1 do for j:=1 to m1 do begin write('a[',i,',',j,']= '); readln(a[i,j]); x[i,j+m2]:=a[i,j]; end; writeln; for i:=1 to n2 do for j:=1 to m2 do begin write('b[',i,',',j,']= '); readln(b[i,j]); x[i+n1,j]:=b[i,j]; end; writeln; writeln('Matrix a:'); for i:=1 to n1 do begin for j:=1 to m1 do write(a[i,j]:4); writeln; end; writeln; writeln('Matrix b:'); for i:=1 to n2 do begin for j:=1 to m2 do write(b[i,j]:4); writeln; end; writeln; writeln('Matrix x:'); for i:=1 to n1+n2 do begin for j:=1 to m1+m2 do write(x[i,j]:4); writeln; end; readln; End. |
09.12.2012, 21:47 | #10 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|