![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 10.02.2011
Сообщений: 29
|
![]()
добрый день, уважаемые программисты! могу я к вам обратиться с просьбой решить одну задачку? сам ничего в ней понять не могу, а решать-то надо...
Дана квадратная матрица А(4,4).За один просмотр элементов матрицы А(4,4) сформировать вектор С(4), каждый j-й элемент которого равен произведению элеметов j-го столбца исходной матрицы, и вектор D(4), каждый j-й элемент которого равен сумме соответствующей строки матрицы А. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 31.05.2009
Сообщений: 786
|
![]() |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 10.02.2011
Сообщений: 29
|
![]()
не могли бы вы исправить программку, чтобы матрица заполнялась нормально? У меня она почему-то заполняется в столбик
![]() Код:
Последний раз редактировалось Stilet; 20.02.2011 в 20:39. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 07.10.2008
Сообщений: 213
|
![]()
Вот, написал свой вариант. Вам должен подойти он:
Код:
Последний раз редактировалось tools; 20.02.2011 в 22:25. |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 10.02.2011
Сообщений: 29
|
![]()
произведение по столбцам считает неправильно. И да, программа, которую я выложил в своем предыдущем посте, не относится к этой задаче, она совсем другой задачи касается, я имел ввиду в ней ошибку исправить, если нетрудно
![]() |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 07.10.2008
Сообщений: 213
|
![]()
В моем варианте неправильно считает по столбцам? Я проверил сейчас - все подсчеты верными там выходят.
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 10.02.2011
Сообщений: 29
|
![]() |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 21.02.2011
Сообщений: 10
|
![]()
Здраствуйте! у меня 2 кода написанны но не работают помогите сделать отладку!плиз)
вот 1 задача:вход 2 квадратные матрицы выход 3-я -результат действия + или *, знак должен выбрать пользователь.ввод матриц тоже с клавы) вот код ![]() 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. вообщем я тут не могу сделать чтобы знак пользователь выбирал...помогите) |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 21.02.2011
Сообщений: 10
|
![]()
Здраствуйте! у меня 2 кода написанны но не работают помогите сделать отладку!плиз)
вот 1 задача:вход 2 квадратные матрицы выход 3-я -результат действия + или *, знак должен выбрать пользователь.ввод матриц тоже с клавы) вот код ![]() 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. вообщем я тут не могу сделать чтобы знак пользователь выбирал...помогите) |
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 21.02.2011
Сообщений: 10
|
![]()
а вот 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 в первой задаче ещё помогите сделать её не прямоугольной а квадратной) ВСЕМ ЗАРАНЕЕ СПАСИБО!!!! |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Паскаль! Матрицы! | Yelisey | Паскаль, Turbo Pascal, PascalABC.NET | 6 | 13.02.2011 20:01 |
Матрицы (Паскаль) | finito_solo | Помощь студентам | 5 | 19.12.2010 19:59 |
Паскаль Матрицы | Таня.Ку | Помощь студентам | 2 | 17.02.2010 17:04 |
матрицы паскаль | Анжелика1988 | Помощь студентам | 2 | 03.11.2009 13:21 |
Матрицы паскаль | Анжелика1988 | Помощь студентам | 2 | 02.11.2009 15:37 |