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

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

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

> Записи, Динамика, Текстовые и Типизированые файлы, простая база
punkska
сообщение 22.05.2006 10:31
Сообщение #1


Пионер
**

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

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


Поля
1. ф
2. И
3. О
4. оценка
5. др
пойск по оценке

Проверте пожалуйста правильность написанной программы
особенно с файлами! не на путал ли я что...
может есть излишества или глупости!

Прикрепленный файл  Lab3_4.zip ( 2.15 килобайт ) Кол-во скачиваний: 295


и может кто поможет с процедурой пойска...а то что-то она не получаеться...


--------------------
ЗДЕСЬ МОГЛА БЫТЬ ВАША РЕКЛАМА!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 22.05.2006 11:23
Сообщение #2


Гость






Вроде никаких явно бросающихся в глаза недочетов нет, за исключением, возможно, вот чего:

У тебя в программе сразу выделяется память под 1000 записей, так? Зададимся вопросом: "А почему именно 1000?" smile.gif Не в том ли дело, что больше при таком размере структуры New может и не дать, ибо есть ограничение на размер блока, выделяемого с помощью New?

Вот я и клоню к тому, что... А почему бы не перестать забивать память сразу заведомо ограниченным количеством записей (которые, возможно, никто и не использует, но с другой стороны - а если понадобится больше? А нельзя smile.gif )

Так вот, собственно, предложение:
Type
PClass_r = ^Class_r;
Class_r = Record
{ Ну, тут то что у тебя и было... }
End;

Const
q = 65520 div sizeof(PClass_r);

_class = array [1 .. q] of PClass_r; { <--- Чувствуешь разницу? }
PtrClass = ^_class;


И потом Выделить, как ты и делал, память под массив 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 записей, что, согласись, серьезнее smile.gif

Как тебе такой вариант?


А насчет поиска - что именно у тебя не получается? Что надо сделать с теми, кто критерию поиска удовлетворяет? Просто распечатать? Или где-то сохранить? Так ведь множества тоже никто не отменял. Или эмуляторы множеств для большего числа элементов smile.gif Надо - покажу, как...
 К началу страницы 
+ Ответить 

Сообщений в этой теме
punkska   Записи, Динамика, Текстовые и Типизированые файлы   22.05.2006 10:31
volvo   Вроде никаких явно бросающихся в глаза недочетов н...   22.05.2006 11:23
punkska   :good: :give_rose: отлично! переделаем) о...   22.05.2006 11:39
volvo   Это подсветка синтаксиса. На больших исходниках м...   22.05.2006 11:48
punkska   а вот с удалением крах полный! если у кого ест...   22.05.2006 11:56
volvo   Ты расскажи, что именно ты удалять хочешь? какой-т...   22.05.2006 12:09
punkska   да...я думаю не стоит заморачиваться и стоит удаля...   22.05.2006 12:13
volvo   Ну, если по одному, тогда вот так: procedure Delet...   22.05.2006 12:30
punkska   опять я решил делать как легче и ошибся( :wacko: ...   22.05.2006 17:56
volvo   punkska, пойми, ты даешь выдранную из контекста ин...   22.05.2006 18:15
punkska   Вечер добрый Вон я что написал! и за что получ...   29.05.2006 22:54
punkska   почему если внести ввод даты для пойска в тело про...   5.06.2006 18:08
volvo   Телепатия? Как изменил, что сделал - покажи...   5.06.2006 18:53
punkska   Внимание на процедуры ПОЙСК и УДАЛИТЬ и на их обра...   5.06.2006 20:10
volvo   Глобальные переменные - зло... Избавляйся от них. ...   5.06.2006 21:01
punkska   Спасибо Volvo, выручил) и насмешил)) :lol: особе...   5.06.2006 21:24


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

 



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