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

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

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

> Сортировка массивов с помощью динамической памяти, Сортировка массивов с помощью дин.памяти
сообщение
Сообщение #1





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

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


Помогите!!!!!
Используя датчик случайнх чисел, поместить в динамическую память массив действительных чисел без повторений колличеством 50000 элементов. Упорядочить эти элементы по возрастанию методами Шелла, Хоора, выбора и пузырька, а потом ещё вывести общее время, потраченное каждым методом на сортировку.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Хотя, в принципе, можно все сделать достаточно просто... Смотри, принцип такой:
{ Описываешь ОченьДлинный Массив }
type
PTOnePart = ^TOnePart;
TOnePart = Array[1 .. 10000] Of Real;

TVeryLongArray = Array[1 .. 5] Of PTOnePart;

{ Это для размещения большего массива в "куче" }
Procedure CreateArray(var arr: TVeryLongArray);
var i: integer;
Begin
For i := 1 To 5 Do
GetMem(arr[i], 10000 * SizeOf(Real));
End;
{ Удаление массива из "кучи" }
Procedure DeleteArray(var arr: TVeryLongArray);
var i: integer;
Begin
For i := 1 To 5 Do
FreeMem(arr[i], 10000 * SizeOf(Real));
End;

{ Для "чтения" элемента из массива: }
Function GetElement(var arr: TVeryLongArray;
_index: LongInt): Real;
Begin
GetElement := arr[(_index div 10000) + 1]^[(_index mod 10000) + 1];
End;

{ Для "записи" элемента в массив: }
Procedure SetElement(var arr: TVeryLongArray;
_index: LongInt; _value: Real);
Begin
arr[(_index div 10000) + 1]^[(_index mod 10000) + 1] := _value;
End;

var
great_array: TVeryLongArray;

begin
...
end.

И теперь работаешь с Great_Array как с обычным массивом, только
{ вместо такого }
great_array[1] := 10.5;
{ делаешь так ... }
SetElement(great_array, 1, 10.5);

{ ... и вместо }
x := great_array[1];
{ вот так: }
x := GetElement(great_array, 1);


Внеси эти изменения в свою программу, и все будет прекрасно работать...
:yes:
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 





- Текстовая версия 10.09.2025 1:29
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name