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

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

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

> на статическую память, с массивом........
Liba
сообщение 12.04.2005 22:22
Сообщение #1


Новичок
*

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

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


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

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



Пожалуйста помогите............. :p2:
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 2)
volvo
сообщение 13.04.2005 17:49
Сообщение #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.
 К началу страницы 
+ Ответить 
Liba
сообщение 13.04.2005 23:04
Сообщение #3


Новичок
*

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

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


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

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

 



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