17:10

There is no such thing as a stupid question, until you ask it
В Паскале, когда мы заполняем одномерный массив случайными значениями, как прописать, чтобы программа заполняла массив до тех пор, пока не встретится <условие>?
Я поразмыслила, и получилось следующее:
1. в массиве a: array [1..n] of integer n берем константой maxint;
2. заполняем весь этот массив случайными значениями, а когда встречается элемент a[i], удовлетворяющий условию, запоминаем его индекс под переменной, например, k;
3. Работаем с частью массива с индексами от 1 до k.
НО
мне не нравится этот способ, так как мы заставляем программу выполнять ненужную работу в пункте 2 (заполняем элементы аж до maxint'а, а это число немаленькое). Нет ли какого-нибудь другого способа на примете?

@темы: Pascal

Комментарии
01.04.2012 в 19:10

Православные красные звёзды над Кремлём канонично горят ©
А чего именно Вы вообще хотите достичь? Т.е. зачем Вам это всё?
01.04.2012 в 19:48

There is no such thing as a stupid question, until you ask it
Использовать буду для решения задач, где требуется подобный элемент.
01.04.2012 в 22:46

Пау-чок
В былые времена (когда деревья были большими, осы размером с собаку, а 640кб памяти должно было хватить любому программисту), ваше решение упало бы уже на первом пункте =) Как-никак 64Мб выделяете =)
Решение же лежит в области динамических массивов и указателей. Если ваш вопрос касается именно классического паскаля, а не делфи или фри-паскаля, то советую поискать в гугле про процедуру getmem и почитать про указатели тут www.realcoding.net/teach/delphi6/Glava%207/Inde... . Если же паскаль не-классический, то советую взглянуть сюда: www.realcoding.net/teach/delphi6/Glava%207/Inde... , в раздел "Динамические массивы". Хотя и про указатели советую тоже почитать =)
01.04.2012 в 23:12

There is no such thing as a stupid question, until you ask it
Спасибо большое!