IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Обработка прямоугольных матриц
ProtasSoft
сообщение 12.08.2005 17:18
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 33
Пол: Мужской

Репутация: -  0  +


Задана большая матрица вещественных чисел размером 1000 на 2000 в текстовом файле.

Необходимо произвести попарную обработку обработку ее строк, т.е.
для каждой пары СТРОКАi и СТРОКАj строк необходимо вычислить функцию от элементов этих строк, например, Ain - элементы СТРОКИi и Bjn - элементы СТРОКИj.
Из результатов вычисления функции F(Ai1,...,Ai1000;Bj1,...,Bj2000) сформировать новую матрицу и записать в новый файл.

Подскажите как мне действовать.
Насколько я понимаю с большими массивами Borland Pascal не работает.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
Closed Topic Открыть новую тему 
Ответов
klem4
сообщение 16.08.2005 11:29
Сообщение #2


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Я убрал все синтаксические ошибки, и кое-что добавил, но так как я не знаю что должна считать твоя ф-я, да и вообще она выглядит крайне странно, дальше разбирайся сам, теперь программа по крайней мере компилируется.

Исходный код
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";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
ProtasSoft   Обработка прямоугольных матриц   12.08.2005 17:18
kent   Используй динамическую матрицу.   12.08.2005 17:27
volvo   Borland Pascal - нет. Зато Free Pascal прекрасно ...   12.08.2005 17:32
ProtasSoft   У меня нет Free Pascal. Если поделитесь дистрибути...   12.08.2005 17:51
volvo   klem4, Если бы тебе предложили тот компилятор, ко...   13.08.2005 11:01
volvo   Последнюю версию (2.0.0) можно взять на официально...   12.08.2005 18:02
Malice   Совсем не обязательно считывать сразу весь масси...   12.08.2005 19:05
volvo   ... изобретения велосипеда. А зачем? Если на 32-б...   12.08.2005 19:21
Malice   Согласен, не подумай, что я против FP, но вдруг эт...   12.08.2005 19:27
klem4   А вот мое мнение что FPC тут не выход, так как нав...   13.08.2005 10:05
ProtasSoft   FPC я скачал и установил. Вопрос следующий: подск...   15.08.2005 12:08
klem4   Не очень ясен вопрос... могу предположить что тебе...   15.08.2005 12:09
volvo   ProtasSoft, не путай такое (Паскаль не использует ...   15.08.2005 15:19
ProtasSoft   procedure EnterMatrixFromFile (var Matr: Matrix); ...   15.08.2005 16:32
Malice   j всегда равен 1 ? Поставь j=1 до цикла While.   15.08.2005 16:57
klem4   у тебя файл текстовый и информация в нем записана ...   15.08.2005 16:55
klem4   примерно это должно выглядеть вот так : {$N...   15.08.2005 17:36
volvo   klem4, смысл читать содержимое, как строку? Внимат...   15.08.2005 18:44
Malice   iy тоже, имхо, сбрасывать надо..   15.08.2005 19:38
ProtasSoft   Вот этот код работает program ReadMatrixFromFile;...   16.08.2005 9:25
volvo   Да, :rolleyes: тогда iy := 1 между первым и вторы...   15.08.2005 19:48
volvo   ProtasSoft, ТОЛЬКО приведенный тобой код работает?...   16.08.2005 9:36
ProtasSoft   Если что-то не так сказал прошу прощения. Далее на...   16.08.2005 10:28
klem4   1) для функции funky не определены размеры прочт...   16.08.2005 10:40
klem4   Я убрал все синтаксические ошибки, и кое-что добав...   16.08.2005 11:29
volvo   klem4, как ты думаешь, что будет в массиве Matr по...   16.08.2005 12:52
klem4   Да, это я проглядел :yes: ... ProtasSoft в заголо...   16.08.2005 12:54
ProtasSoft   Коллеги, вот что у меня получилось с учетом Ваших ...   16.08.2005 15:48
volvo   Насколько я вижу, эта программа и не должна работ...   16.08.2005 16:35
ProtasSoft   Изменил , все равно не работает. :unsure:   16.08.2005 16:51
volvo   Значит, так... Поменяй следующее: 1. procedure Pr...   16.08.2005 17:05
ProtasSoft   Я извиняюсь, вроде заработало.   16.08.2005 17:25
ProtasSoft   Коллеги, вот что у меня получилось program Matrix...   17.08.2005 11:59
ProtasSoft   Коллеги, пробовал ниже приведенную программку на м...   18.08.2005 10:52
volvo   Заархивируй свой исходник вместе с файлом данных и...   18.08.2005 11:05
volvo   ProtasSoft, та программа, которую ты привел, завер...   18.08.2005 11:39
ProtasSoft   Огромное спасибо. Заработало! :flowers: Сообщ...   18.08.2005 12:18
ProtasSoft   Снабдил программу Гаммой-функцией и процедурой инт...   19.08.2005 16:55
volvo   Если ты про проблему с компиляцией функции Simps, ...   19.08.2005 17:13
ProtasSoft   После запуска проги выскакивает системная ошибка....   19.08.2005 17:34
volvo   const NMAX = 20; MMAX = 20; увеличивать не пр...   19.08.2005 17:43
volvo   А вот и причина возникающей ошибки (RunTime Error ...   19.08.2005 18:08
ProtasSoft   Можно это так обойти function Gamma(x: extended):...   19.08.2005 18:33
klem4   Так к слову : в паскале есть встроенная константа ...   19.08.2005 18:46
volvo   :yes: ProtasSoft, ты будешь смеяться, но и функц...   19.08.2005 18:50


Closed Topic Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 22.06.2025 5:56
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"