1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Записи, Динамика, Текстовые и Типизированые файлы, простая база
Вроде никаких явно бросающихся в глаза недочетов нет, за исключением, возможно, вот чего:
У тебя в программе сразу выделяется память под 1000 записей, так? Зададимся вопросом: "А почему именно 1000?" Не в том ли дело, что больше при таком размере структуры New может и не дать, ибо есть ограничение на размер блока, выделяемого с помощью New?
Вот я и клоню к тому, что... А почему бы не перестать забивать память сразу заведомо ограниченным количеством записей (которые, возможно, никто и не использует, но с другой стороны - а если понадобится больше? А нельзя )
Так вот, собственно, предложение:
Type PClass_r = ^Class_r; Class_r = Record { Ну, тут то что у тебя и было... } End;
И потом Выделить, как ты и делал, память под массив Stud, только он будет содержать НЕ сами данные, а указатели на них.
Тогда при необходимости добавить данные в массив - делается так:
{ где-то в начале программы} new(Stud);
{ ... } { а при добавлении студентов: } writeln('Tape quantity of adding students'); readln(n); for i:=1 to n do begin
new(stud^[i]); { Выделяем память под ДАННЫЕ }
with Stud^[i]^ do begin // Все действия - как у тебя и было end; ...
Как результат - более гибкая работа с памятью (которой, как известно, много никогда не бывает), да и обрабатывать сможешь не до 1000, а до 16380 записей, что, согласись, серьезнее
Как тебе такой вариант?
А насчет поиска - что именно у тебя не получается? Что надо сделать с теми, кто критерию поиска удовлетворяет? Просто распечатать? Или где-то сохранить? Так ведь множества тоже никто не отменял. Или эмуляторы множеств для большего числа элементов Надо - покажу, как...