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

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

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

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


Новичок
*

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

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


Помогите решить задачку пожалуйста!!!!!!!!!!!Очень надо плиз ;)

Условие задачи:
Создать в статической памяти однородный массив(word) статической длины,те. кол-во элементов вектора задается с помошью Readln(n).
Кол-во элементов может превышать потребный размер одного сигмента(65521 байт)
и может потребовать всю статическую память или большую ее часть(использовать адречацию сигментов,указатели должны разместиться в статической памяти).
С помошью средств Random(1000) постчитать и выдать на экран сумму элементов массива.Найти число Фибоначи
F0=F1=1
Fn=Fn-2+Fn-1
и создать список,индекс(INDEX),который содердит адреса чисел Фибоначи-это статической массив при первом проходе кол-во различных элементов=> массив этой длины и занести туда адреса этих чисел=>сумма всех чисел Фибоначи,которое встретились в этом массиве



Пожалуйста помогите............. :p2:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Не совсем понятно (а точнее - совсем не понятно) что именно здесь требуется, но рискну предположить следующее (это ТОЛЬКО определение массивов, не включая вторую часть задания):
type
 pArrType = ^arrType;
 arrType = array[1 .. 2 * maxint div sizeof(word)] of Word;
 pointType = array[1 .. 655360 div (2 * maxint)] of pArrType;

function min(a, b: longint): longint;
begin
 min := a;
 if b < a then min := b;
end;

var
 ptrs: PointType;

function get(ix: longint): word;
begin
 get := ptrs[ix div (2 * maxint)+1]^[ix mod (2 * maxint)+1]
end;

function put(ix: longint; x: word);
begin
 ptrs[ix div (2 * maxint)+1]^[ix mod (2 * maxint)+1] := x
end;

var
 size, sz: longint;
 i, j, summa: longint;
begin
 write('Введите размер массива: '); readln(size);
 if (size < 1) or (size > 655360) then exit; { error }

 { берем память из кучи }
 sz := size; i := 0;
 repeat
   inc(i);
   getmem(ptrs[i], min(sz, 2 * maxint));
   dec(sz, min(sz, 2 * maxint));
 until sz = 0;

 for j := 1 to size do
   put(j, random(1000));

 { считаем сумму элементов массива }
 summa := 0;
 for j := 1 to size do
   inc(summa, get(j));
 writeln('s = ', summa);

 { освобождаем память }
 sz := size; i := 0;
 repeat
   inc(i);
   freemem(ptrs[i], min(sz, 2 * maxint));
   dec(sz, min(sz, 2 * maxint));
 until sz = 0;

end.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

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

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


Огромнейшее спасибо тебе за программку :flowers:
Спасибочки :D
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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