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 18:08
Сообщение #2


Гость






Код

Const
N = 20;
Type
TMonths=Array[0..1] Of Boolean;
TIzdanie=Record
  Title:String[20];
  Tip:Char;
  Months:TMonths
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 TIzdanie
End;

Const
Names:Array[0..2] Of String = ('Ivanov','Petrov','Sidorov'); {Дополнишь сам}
Streets:Array[0..2] Of String = ('Pervaya','Vtoraya','Tretyaya'); {См. выше}
Titles:Array[0..2] Of String = ('Programmer','Lamer','Sysop'); {Ну ты догадался}
Tips:Array[0..2] Of Char = ('G','J','D'); {Буквы на угад. Типы изданий.}
MName:Array[0..11] Of String = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
Var
Chels:Array[0..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 N] 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) + Byte((x Mod N) <> 0))
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 #',Addr.Home,' in flat ',Addr.Flat);
    WriteLn(f,'  Subscribed For ',Count,' izdaniya:');
    Val(Count,x,e)
  End;
  For j:=0 To x-1 Do
    With Chels[i + (j Div N)].Izdaniya[j Mod N] Do
    Begin
      Write(f,'    ',Title,' (',Tip,') :');
      For k:=0 To 11 Do
        If Months[k] Then
          Write(f,MName[k],' ');
      WriteLn(f)
    End;
  Inc(i,(x Div N) + Byte((x Mod N) <> 0))
End;

Close(f)
End.

Старею... Без компилятора уже трудновато smile.gif
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Окран   Записи с файлами   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:01
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"