![]() |
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 не работает. |
![]() ![]() |
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Я убрал все синтаксические ошибки, и кое-что добавил, но так как я не знаю что должна считать твоя ф-я, да и вообще она выглядит крайне странно, дальше разбирайся сам, теперь программа по крайней мере компилируется.
Исходный код uses crt; const NMAX = 1000; MMAX = 2000; type Matrix = array [1..NMAX, 1..MMAX] of real; var M: Matrix; row,col:integer; procedure EnterMatrixFromFile (Matr:Matrix; var size1,size2:integer); var 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); size1:=i; size2:=j-1; writeln('n=',size1,',','m=',size2); end; Function Funky(var Matr:Matrix; size1,size2:integer):Matrix; var i,j,k,p: integer; Sum1,Sum2,Sum3: real; begin for k:=1 to size1 do for p:=1 to size1 do begin Sum1:=0; Sum2:=0;Sum3:=0; for j:=1 to size2 do begin Sum1:=Sum1+Matr[k,j]; Sum2:=Sum2+Matr[p,j]; end; for j:=1 to size2 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; Begin EnterMatrixFromFile(M,row,col); Funky(M,row,col); readln; End. ЗЫ правильность чтения я не проверял, только исправил явные ошибки! -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
![]() ![]() |
![]() |
Текстовая версия | 22.06.2025 5:56 |