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

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

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

> Записи с файлами
Окран
сообщение 13.05.2004 13:21
Сообщение #1


Гость






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

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


Гость






Код

Const
 N = 20;
Type
 TMonths=Array[0..1] Of Boolean;
 TIzdanie=Record
   Title:Strin[20];
   Tip:Char;
   Months:TMonth
 End;
 TAddr=Record
   Street:String[20];
   Home:String[3];
   Flat:String[3]
 End;
 TChel=Record
   Name:String[20];
   Uchastok:String[2];
   Addr:TAddr;
   Count:String[2];
   Izdaniya:Array[0..N-1] Of TIzdan
 End;

Const
 Names:Array[0..2] Of String = ('Ivanov','Petrov','Sidorov'); {Дополнишь сам}
 Streets:Array[0..2] Of Stirng = ('Pervaya','Vtoraya','Tretyaya'); {См. выше}
 Titles:Array[0..2] Of String = ('Programmer','Lamer','Sysop'); {Ну ты догадался}
 Tips:Array[0..2] Of Char = ('G','J','D'); {Буквы на угад. Типы изданий.}
 MName:Array[0..1] Of String = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
Var
 Chels:Array[1..100] Of TChel;
 TotalChels:Integer;
 TotalRecords:Integer;

{Придумывает человечка и сохраняет его в массиве}
Procedure GenerateChel;
Var
 x,i,j:Integer;
Begin
 With Chels[TotalRecords] Do
 Begin
   Name:=Names[Random(3)];              {Придумаем имя}
   Str(Random(100),Uchastok);              {Придумаем участок}
   Addr.Street:=Streets[Random(3)];      {Придумаем улицу}
   Str(Random(1000),Addr.Home);          {Дом}
   Str(Random(1000),Addr.Flat)              {Квартиру}
   x:=Random(50)+1;                            {Вот столько изданий он и выписал}
   Str(x,Count);
 End;
 {Придумаем ему издания}
 For i:=0 To x-1 Do
   With Chels[TotalRecords+(i Div N)].Izdaniya[i Mod M] Do
   Begin
     Title:=Titles[Random(3)];    {Название}
     Tip:=Tips[Random(3)];        {Тип}
     For j:=0 To 11 Do
       Months[j]:=Random(2)=0;  {Месяцы подписки}
   End;
 Inc(TotalRecords,x Div N)
End;

Var
 f:Text;
 i,j,k,x,e:Integer;

Begin
 Randomize;
 TotalChels:=Random(30); {Не более 30 человек, где 0 значит, что 1 чел
                                         всё-таки есть}
 TotalRecords:=0;                    {В массиве Chels пока ничего нет}
 For i:=0 To TotalChels Do  {придумаем всех челов}
   GenerateChel;

 Assign(f,'Chels.Txt');   {Создадим файл}
 ReWrite(f);

 i:=0;
 While i < TotalRecords Do   {И скинемтуда все записи}
 Begin
   With Chels[i] Do
   Begin
     WriteLn(f,Name);
     WriteLn(f,'  From Uchastok ',Uchastok);
     WriteLn(f,'  That Lives At ',Addr.Street,' in house #',Home,' in flat ',Flat);
     WriteLn(f,'  Subscribed For ',Count,' izdaniy:');
     Val(s,x,e)
   End;
   For j:=0 To x-1 Do
     With Chels[i + (j Div N)].Izdaniya[j Mod N] Do
     Begin
       Write(f,Ttitle,' (',Tip,') :');
       For k:=0 To 11 Do
         If Months[k] Then
           Write(f,MName[k]);
       WriteLn(f)
     End;
   Inc(i,1 + (x Div N))
 End;

 Close(f)
End.

Должно быть так.
сли что не так - свисти, отвечу.
 К началу страницы 
+ Ответить 

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


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

 



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