Форум: "Основная";
Текущий архив: 2005.02.13;
Скачать: [xml.tar.bz2];
ВнизЕсли не сложно - напишите ответ на 145й пост Найти похожие ветки
← →
TUser © (2005-01-28 15:17) [0]вот из этой ветки
http://delphimaster.net/view/1-1106658881/
← →
Александр Иванов © (2005-01-28 15:23) [1]Насколько помню точно также, за исключением динамических массивов.
← →
TUser © (2005-01-28 15:27) [2]Там статические, но обсуждаемый код после TPC.exe (6я версия) выдал RunTimeError 202, а dcc32.exe (после того, как ублат ТР"шный модуль и написал apptype) сделал безглючную программу.
← →
TUser © (2005-01-28 15:28) [3]Паскалем скомпилированная программа нормально заработала, когда я написал PVector = ^TVector, Vector: PVector, дальше - New и Dispose + операторы разыменования везде, где надо. В вызовах функций убрал var, и заменил типа параметра на TVector.
← →
Александр Иванов © (2005-01-28 15:36) [4]Она, по идее, и в ТР должна работать, я не вижу ошибок. А что хелп говорит, по поводу ошибки 202?
Когда-то я их помнил :).
← →
TUser © (2005-01-28 16:04) [5]
> Она, по идее, и в ТР должна работать, я не вижу ошибок
Я тоже так думал.
Хелпа у меня нет по ТР - только консольный компилятор.
← →
PVOzerski © (2005-01-28 16:46) [6]Stack overflow - можно поиграть директивой {$M ... (1-е число)
← →
PVOzerski © (2005-01-28 16:47) [7]Много рекурсий или локальных переменных?
← →
Александр Иванов © (2005-01-28 16:57) [8]PVOzerski © (28.01.05 16:46) [6]
можно поиграть директивой {$M ... (1-е число)
Там всего массив 10000 элементов, целочисленный, так что память не при чем.
PVOzerski © (28.01.05 16:47) [7]
Много рекурсий или локальных переменных?
Никаких рекурсий.
Вы думаете ошибка связана с нехваткой памяти?
← →
Александр Иванов © (2005-01-28 16:58) [9]Извините, не заметил начало [6]
← →
PVOzerski © (2005-01-28 16:58) [10]Александр, в этой директиве 1-й параметр - размер стека. А твой массив часом не локальный?
← →
Александр Иванов © (2005-01-28 17:02) [11]Это не мой массив :). Вот код:
Program FindMinPrg;
Uses Crt;
Type
TVector = Array [1..10000] Of integer;
Var
Vector : TVector;
I : Integer;
Function FindMin (Vect : TVector) : Integer;
Var
X, Min : Integer;
Begin
Min := Vect [1];
For X := 2 To 10000 Do
If Min > Vect [x] Then
Min := Vect [X];
FindMin := Min;
End;
Procedure SetRandom (Var Vect : TVector);
Var
X : integer;
Begin
For X := 1 To 10000 Do
Vect [x] := random (32767)-16384;
End;
Begin
ClrScr;
Randomize;
SetRandom (Vector);
WriteLn ("Min: ", FindMin (Vector));
End.
← →
Александр Иванов © (2005-01-28 17:04) [12]По моему переполнению стека просто неоткуда взяться.
← →
Александр Иванов © (2005-01-28 17:06) [13]По умолчанию 16К? Если так то в Function FindMin (Vect : TVector) : Integer; параметр по значению передается и как раз превышает 16К.
← →
Александр Иванов © (2005-01-28 17:09) [14]И все решение - в добавлении слова var
← →
TUser © (2005-01-28 19:06) [15]Понятно, спасибо.
Хорош Делфи размером стека ...
← →
_Lucky_ (2005-01-28 19:27) [16]
> Александр Иванов © (28.01.05 17:09) [14]
> И все решение - в добавлении слова var
браво! на 5+, если честно задай мне такую задачу ввек бы не решил, ну не знаю я на столько хорошо пас.
> TUser © (28.01.05 19:06) [15]
> Понятно, спасибо.
>
> Хорош Делфи размером стека ...
отнють, представть что надо отсортировать массив в 100 мегов, может возникнуть неприятная ситуация, хотя щас 100 мегов никого не удевить, у меня например 512, но все же
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.02.13;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.035 c