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'а, а это число немаленькое). Нет ли какого-нибудь другого способа на примете?
Я поразмыслила, и получилось следующее:
1. в массиве a: array [1..n] of integer n берем константой maxint;
2. заполняем весь этот массив случайными значениями, а когда встречается элемент a[i], удовлетворяющий условию, запоминаем его индекс под переменной, например, k;
3. Работаем с частью массива с индексами от 1 до k.
НО
мне не нравится этот способ, так как мы заставляем программу выполнять ненужную работу в пункте 2 (заполняем элементы аж до maxint'а, а это число немаленькое). Нет ли какого-нибудь другого способа на примете?
Решение же лежит в области динамических массивов и указателей. Если ваш вопрос касается именно классического паскаля, а не делфи или фри-паскаля, то советую поискать в гугле про процедуру getmem и почитать про указатели тут www.realcoding.net/teach/delphi6/Glava%207/Inde... . Если же паскаль не-классический, то советую взглянуть сюда: www.realcoding.net/teach/delphi6/Glava%207/Inde... , в раздел "Динамические массивы". Хотя и про указатели советую тоже почитать =)