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

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

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

> Записи с файлами
сообщение
Сообщение #1


Гость






Умоляю помочь сделать данную задачу до завтрашнего дня!!!!!Очень прошу!!Сам вышел из больницы 2 дня назад и в первый же день учебы лабараторная по паскалю на котором я был всего на 1-2 лекциях а потом загремел по состоянию здоровья в больницу!!!Пожалуйста!!!!

Код
Полугодовая информация о изданиях по каждому подчиненному имеет следующую структуру:
ФИО - 20 знаков
участок доставки - 2 знака
адрес
кол-во выписанных изданий - 2 знака
список изданий
адрес в свою очередь состоит из следующих компонентов:
                                улица - 20 знаков
                                номер дома - 3 знака
                                номер квартиры - 3 знака
Список изданий состоит из следующих компонентов:
                                название - 20 знаков
                                вид - 1 знак(газета, журнал)
                                месяцы на которые оформлена подписка.
Список изданий представляет собой массив структур, содержащий N элементов из которых заполнены K - количествовыписанных изданий.Если подписчик оформил подписку на более чем N изданий то для него имеется 2 или более записи идущие подряд.Информация о месяцах подписки может быть представлена в виде массива из 12 логических элементов.
А теперь само задание :) : создайте файл о подписных изданиях.                
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Ндя...
Начнём
1). Усвой сразу и навсегда, если ещё собираешься вернуться к программированию: любая переменная обнуляется (число = 0б строка - пустая) при запуске программы ТОЛЬКО В РЕЖИМЕ ОТЛАДКИ! А при обычном запуске на её месте может (с вероятностью 2^SizeOf(Variable):1) отнюдь не 0. Поэтому перед посчётом чего-то там я принудительно обнулил переменную Total. А то ведь могло бы получиться, что 3 человека выписали 148 журналов "Мурзилка" на январь smile.gif
2). Процедура Val преобразует строку в число: Val(Str:String;Var x;Var e:Integer). Первый параметр, понятно, строка, второй - туда куда преобразовывать, третий - код ошибки. Сюда записывается номер первого неверного символа в строке ('ю' например) или 0, если всё пучком. В этой программе кол-во подписок я храню в виде строки, а цикл-то строкой не организуешь - вот и перевожу в число.
3). Вроде уже как и сказал... Count - кол-во изданий, на которые подписан данный чел. Хранится в виде строки для удобства (хотя, может и неудобства, но я так написал).
4). А цикл этот вот что делает. Он перебирает все издания этого чела, проверяет, то ли название у текущей подписки и активна ли она в нужном месяце. Если всё это выполняется, то увеличивает Total. Делается это так. Сначала в x записывается сколько у него вообще подписок. Затем начинаем цикл по i (почему i:=0, надеюсь понятно из п. 1). Внутри цикла сначала проверяем, не пришло ли время считать очередную запись (так как в одной записи может храниться максимум N подписок, а их может быть больше, тогда надо брать сведения из следующей записи, см. условия). после этого выполняются все вышеперечисленные проверки и т. д. для подписки №(i Mod N). Если вдуматься, то можно заметить, что i проходит цикл от 0 до x-1, а i Mod N - от 0 до N-1, но при этом переключаясь на другие записи (как, если ты хочешь сделать 50 шагов, но делаешь их по кругу радиусом в метр). Это вобщем и есть основная задумка всей программы.


Вот, вроде и всё.
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Окран   Записи с файлами   13.05.2004 17:21
BlackShadow   Const  N = 20; Type  TMonths=Array…   13.05.2004 18:14
Окран   Простите пожалуйста, но у вас целая куча ошибок…   13.05.2004 21:16
BlackShadow   Я с работы писал - там у меня компилятора нет. Ща …   13.05.2004 21:34
BlackShadow   Const N = 20; Type TMonths=Array[0..1] …   13.05.2004 22:08
Окран   Храни тебя бог!!!!!!!…   13.05.2004 22:15
Окран   BlackShadow друг выручи меня еще раз пожалуйста…   17.05.2004 17:20
BlackShadow   Аллах акбар! Я понял так: надо перелопатить фа…   17.05.2004 18:34
Окран   BlackShadow ругается на переменную N-ты ее вроде н…   17.05.2004 21:04
BlackShadow   Забыл. Ну допиши в начале Const  N = 20; Т…   17.05.2004 23:40
Окран   BlackShadow я так и сделал!!Спасиба!…   19.05.2004 19:29
BlackShadow   Ндя... Начнём 1). Усвой сразу и навсегда, если ещё…   19.05.2004 20:11
APAL   А что, препод не знает что это за цикл такой? :…   19.05.2004 20:12
Окран   BlackShadow спасибо друг!!! :) :) :…   20.05.2004 17:35
BlackShadow   Const  N = 20; Type TMonths=Array[0..1…   20.05.2004 18:15
Окран   BlackShadow тебе можно памятник ставить - спасибо…   4.06.2004 17:49
fms   а в чем проблемы с блок схемами то?! ___ и лю…   5.06.2004 2:35
Catty   Как записи там обозначать?А с файлами какие блоки…   5.06.2004 2:58
Окран   Вы очень помогли! :(   6.06.2004 20:01
kile   окран, ты еще недоволен ??   6.06.2004 23:36
Catty   поройся в инете там полно блок-схем!! Или …   8.06.2004 1:35


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

 





- Текстовая версия 9.09.2025 19:28
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name