Записи с вариантной частью, приминение.. |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
Записи с вариантной частью, приминение.. |
amega |
22.07.2009 23:35
Сообщение
#1
|
? Группа: Пользователи Сообщений: 283 Пол: Мужской Репутация: 4 |
Привет! Вот прочитал статью про запись и у меня возникла куча вопросов. Сообственно они все так или иначе связаны с моим курсачом...
курсовой проект был по мультисписковой структурой реализованой в файле для этого мс(мульти-списка) была реализованые такие типы даных
Но неудобство составило при связивание уровней, что нужно писать для каждого типа свою процедуру
А теперь вопросы: Если написать общий тип, для всех уровней ведь многие поля одинакоы,
, то как это отобразится на запрашиваемой памити, будет расход больше или меньше? При работе с переменной этого типа, если мы прочитаем что-та в "1", а потом во второе "сигнальное значение", то мы потеряем информацию которая хранилась в первом? Зы: Volvo извини что создал тему на этом форуме, а не на том что указан на сайте Сообщение отредактировано: amega - 22.07.2009 23:38 |
volvo |
23.07.2009 0:17
Сообщение
#2
|
Гость |
Ты еще и не в том разделе ее создал Какая ж теория? Это уже чистой воды программирование...
Цитата При работе с переменной этого типа, если мы прочитаем что-та в "1", а потом во второе "сигнальное значение", то мы потеряем информацию которая хранилась в первом? Естественно. вариантная часть записи хранит все варианты в одном месте, за счет этого и экономится память. Но "бесплатных пирожных не бывает" (С), и за это приходится платить: как только записал что-то в один вариант, все остальные безнадежно испорчены...На самом деле, не совсем понятно, чем тебе наличие этих 4-х процедур инициализации помешало? Можно подумать, если ты сделаешь вариантную запись, то тебе не надо будет такие же 4 процедуры... На самом деле задачка достаточно просто решается через объекты... |
amega |
23.07.2009 10:10
Сообщение
#3
|
? Группа: Пользователи Сообщений: 283 Пол: Мужской Репутация: 4 |
Цитата Ты еще и не в том разделе ее создал Какая ж теория? Это уже чистой воды программирование... извиняюсь. Если не там создал то перенесите ее. Цитата На самом деле, не совсем понятно, чем тебе наличие этих 4-х процедур инициализации помешало? Можно подумать, если ты сделаешь вариантную запись, то тебе не надо будет такие же 4 процедуры... Дело в том что тело процедрур этих одинаковое, как и остальных 7(7х4=28) груп процедрур, rewrite(f); , лучшеш добавыть один памерт уровень, и иметь 7 вместо 28. Цитата На самом деле задачка достаточно просто решается через объекты... объекты мы еще будем изучать в следущем семестре,и там будет такойже,почти такойже, курсовой ток на базе масивов указателей. если есть гдето примерчик через объекты ябы посмотрелбы.... |
volvo |
23.07.2009 10:27
Сообщение
#4
|
Гость |
Стоп... Приведи информацию о том, какие данные хранятся у тебя в каждом из этих элементов мультисписка. Что это за поля NextElem/NextInf? Почему целочисленные? Что хранят? Чем типы TRecRayon, TRecWec и TReculica отличаются друг от друга (кроме названий), и зачем надо вводить три разных типа (и три разных процедуры, работающих с этими типами), вместо того, чтобы работать одной процедурой и интерпретировать данные, как тебе нужно?
|
amega |
23.07.2009 10:43
Сообщение
#5
|
? Группа: Пользователи Сообщений: 283 Пол: Мужской Репутация: 4 |
в моем варенте задание реализация мс просходит в файле, тоесть все даны хранянся не в динамической памите а в файле! Поле NextElem - это своеродный указатель на слудующий элемент списка, поскольку файл типизированый то можно через процедуру seek добратся к записи. Поле NextInf - это указатель на под уровень.
Физическое представление структуры: А вот остальные поля этоинформационные, но они могут быть разные, это просто у меня такой варант попался что 2 поля только, Имя и 1 поле информации. Цитата Чем типы TRecRayon, TRecWec и TReculica отличаются друг от друга Это типы уровней, они отличаются предназначением. Они зделаны отддельно. Сообщение отредактировано: amega - 23.07.2009 10:45 |
volvo |
23.07.2009 11:38
Сообщение
#6
|
Гость |
Цитата Это типы уровней, они отличаются предназначением. Они зделаны отддельно. Если они отличаются только предназначением - то делать их раздельными - ОШИБКА. По сути - это одна и та же запись, все эти типы способны читаться и записываться всего двумя процедурами (одна - чтение, другая - запись). А вот ОБРАБАТЫВАТЬ прочитанное значение надо по-разному, естественно. Но это уже не проблема чтения/записи, а проблема неправильного проектирования. Так что:type... Нужно более развернуто - присоединяй свою реализацию полностью, посмотрим, как можно исправить... |
amega |
23.07.2009 12:27
Сообщение
#7
|
? Группа: Пользователи Сообщений: 283 Пол: Мужской Репутация: 4 |
Цитата Нужно более развернуто - присоединяй свою реализацию полностью, посмотрим, как можно исправить... остаточную финальную полностью рабочую версию я щас врятли предоставлю, она на флешки которой рядом нет, есть неполная(там неработает попам и остальные мелкие недочеты) Насчет типов,вот например типы для соседнего варианта(это мне просто повезло что 2 поля ток и они одинаковы):
Проэкт Копия.rar ( 265.91 килобайт ) Кол-во скачиваний: 417 |
Текстовая версия | 29.04.2024 9:30 |