![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
ProtasSoft |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 33 Пол: Мужской Репутация: ![]() ![]() ![]() |
Задана большая матрица вещественных чисел размером 1000 на 2000 в текстовом файле.
Необходимо произвести попарную обработку обработку ее строк, т.е. для каждой пары СТРОКАi и СТРОКАj строк необходимо вычислить функцию от элементов этих строк, например, Ain - элементы СТРОКИi и Bjn - элементы СТРОКИj. Из результатов вычисления функции F(Ai1,...,Ai1000;Bj1,...,Bj2000) сформировать новую матрицу и записать в новый файл. Подскажите как мне действовать. Насколько я понимаю с большими массивами Borland Pascal не работает. |
![]() ![]() |
ProtasSoft |
![]()
Сообщение
#2
|
Новичок ![]() Группа: Пользователи Сообщений: 33 Пол: Мужской Репутация: ![]() ![]() ![]() |
Если что-то не так сказал прошу прощения.
Далее написал код вместе с функцией попарной обработки строк, но где-то в ней ошибки. Код program Matrix_Process; (****************************************************** * Демонстрация работы с двумерными массивами * * (матрицами) * ******************************************************) const NMAX = 100; MMAX = 100; type Matrix = array [1..NMAX, 1..MMAX] of real; var M: Matrix; (*************************************************** Процедура ввода матрицы из файла ****************************************************) procedure EnterMatrixFromFile (Matr:Matrix); var n,m,i,j: integer; f:text; begin assign(f,'matrixdat.txt'); reset(f); i := 1; while not eof(f) do begin j := 1; while not eoln(f) do begin read(f,Matr[i, j]); writeln('Matr[',i,',',j,']',Matr[i,j]); inc(j); end; readln(f); inc(i); end; close(f); n:=i; m:=j-1; writeln('n=',n,',','m=',m); end; (***************************************************** Функция обработки всех пар строк матрицы ******************************************************) Function Funky(Matr:Matrix):Matrix; var i,j,k,p: integer; Sum1,Sum2,Sum3: real; begin for k:=1 to n do begin for p:=1 to n do begin Sum1:=0; Sum2:=0;Sum3:=0; for j:=1 to m do begin Sum1:=Sum1+Matr[k,j]; Sum2:=Sum2+Matr[p,j]; end; for j:=1 to m do Sum3:=Sum3+1/(Matr[k,j]+Matr[p,j])*(Matr[k,j]/Sum1-Matr[p,j]/Sum2)*; end; Funky[k,p]:=Sum1*Sum2*Sum3; writeln('Funky[',k,',',p,']',Funky[k,p]); end; end; end; begin EnterMatrixFromFile(M); Funky(Matr); readln; end. |
![]() ![]() |
![]() |
Текстовая версия | 24.06.2025 7:38 |