у меня такая задача! Описать стуктуру с именем ZNAK,содержащюю следующие поля: Name-фамилия,имя ZODIAC-знак Зодиака BDAY-день рожления(массив из 3 чисел). 1.Написать программу,выполняющюю следующие действия: -ввод с клавиатуры данных в массив BOOK ,состоящий из 8 структур типа ZNAK -сортировать записи по знакам Зодиак -вывод на дисплей информации о людях,родивщихся в месяц,значение которого введино с клавиатуры -если таких нет,вывести соответствующее сообщение 2.Создать типизированный файл BOOK,состоящий из 8 структур типа ZNAK;записи должны быть упорядочены по знакам Зодиака -вывод на дисплей (и в новый типизированный файл) инвормацию о людях,родившихся в месяц,значение которого введино с клавитуры -если таких нет,вывести соответствующее сообщение -добавить в файл несколько записей о новых приятелях,не нарушая упорядочинности файла. 3.создать текстовай файл BOOK,состоящий из 8 структур типа ZNAK; -вывод на дисплей (и в новый текстовый файл) инвормацию о людях,родившихся в месяц,значение которого введино с клавитуры -если таких нет,вывести соответствующее сообщение P.S. всё надо сделать с процедурами Большая просьба выкладывать хоть какой-то код Вашей программы. Это поможет найти общий язык между Вами и нами! =) И не забываем благодарить за помощь=) Нужна помощь с задача С++? тебе сюда bc-for-all.ucoz.ru
Ну в голове у меня видится структура примерно такого типа: Type ZNAK = Record Name: String[40]; Zodiac: 1..12; {Возможно String или Byte?} BDay: Array[1..3] of Word; {Если вдруг год формата ГГГГ} End;
А дальше работа с записями! Нет ничего невозможного! Firefrominside, вам остается лишь подождать и молиться за нас! А мы свое дело знаем :-)
пойду помолюсь!!))))) Чуть не забыл!!! надос делать 3 программы! под каждую из цифр!! а описание,как я понял,у них общее.....
Добавлено (09.11.2007, 01:29) --------------------------------------------- Zodiac: 1..12; {Возможно String или Byte?},а Зодиак будит вводиться цифрами?? МОжет надо словами??
Добавлено (09.11.2007, 01:38) --------------------------------------------- А!!! чуть не забыл!!! надо сделать 3 программы!! на каждую из цифр!! извините......только сейчас спомнил....
Добавлено (09.11.2007, 01:39) --------------------------------------------- чёрт...я это уде писал.....упс....извините......
Большая просьба выкладывать хоть какой-то код Вашей программы. Это поможет найти общий язык между Вами и нами! =) И не забываем благодарить за помощь=) Нужна помощь с задача С++? тебе сюда bc-for-all.ucoz.ru
Firefrominside, А как ты себе представляешь сортировку по знакам зодиака? Не по алфавиту же... Думаю проще будет организовать список вида: "[1] Овен [2] Телец ...." Потом пользователь выбирает нужный номер. И хранится уже только номер. Так и проще сортировать буду. А при выводе уже используется такая же таблица - по номеру - название.
Не тревожься, придумаем что-нибудь. Это не такая сложная задачка.
Firefrominside, Кстати, а знак зодиака вводить нужно? Или он сам определяется из даты рождения? Если в условии ничего не сказано, то можно и ввести. Поддерживаю также проект сообщество молодых сисадминов
Firefrominside, Первая задача возможно может выглядеть так: (заранее извиняюсь, если есть ошибки)
Code
Program Records1; Uses CRT; Const Max = 8; Msg = 'Таковых не имеется'; Table: Array[1..12] of String = ('Овен','Телец','Близнецы','Рак', 'Лев','Дева','Весы','Скорпион', 'Стрелец','Козерог','Водолей','Рыбы'); Type Znak = record Name: String[40]; Zodiac: Byte; BDay: Array[1..3] of Word; End; Var a: Array[1..MAX] of Znak; i, j: Word;
Procedure Sorting; Var t: Znak; Begin For i := 1 to Max do Begin For j := i to Max do If (a[i].Zodiac > a[j].Zodiac) then Begin t := a[i]; a[i] := a[j]; a[j] := t; End; End; End;
Procedure CreatePerson(x: Byte); Begin ClrScr; Writeln('Личность №',x); Write('Имя: '); Readln(a[x].Name); For j := 1 to 12 do Writeln(j,' - ',Table[j]); Write('Зодиак: '); Readln(a[x].Zodiac); Write('Рожден дд мм гггг: '); Readln(a[x].Bday[1],a[x].Bday[2],a[x].Bday[3]); End;
Procedure PrintPerson(x: Byte); Var flag: Boolean; Begin Flag := False; For j := 1 to Max do If (a[j].BDay[2] = x) then Begin flag := True; Write(#13#10,a[j].Name,' рожден ',a[j].Bday[1],'.',a[j].Bday[2],'.',a[j].Bday[3]); End; If Flag=False then Writeln(Msg); End;
Begin For i := 1 to Max do CreatePerson(i); Sorting; Write(#13#10,'Введите номер месяца: '); Readln(i); PrintPerson(i); ReadKey; End.
Program Records3; Uses CRT; Const fPath = 'BOOK.TXT'; fPath2 = 'NEW.TXT'; Max = 8; Msg = 'Таковых не имеется'; Table: Array[1..12] of String = ('Овен','Телец','Близнецы','Рак', 'Лев','Дева','Весы','Скорпион', 'Стрелец','Козерог','Водолей','Рыбы'); Type Znak = record Name: String[40]; Zodiac: Byte; BDay: Array[1..3] of Word; End; Var a: Array[1..MAX] of Znak; i, j: Word; f: Text;
Procedure Sorting; Var t: Znak; Begin For i := 1 to Max do Begin For j := i to Max do If (a[i].Zodiac > a[j].Zodiac) then Begin t := a[i]; a[i] := a[j]; a[j] := t; End; End; Assign(f, fPath); ReWrite(f); For i := 1 to Max do Begin With a[i] do Begin Writeln(f, i,#9,Name,#9,Zodiac,#9,BDay[1],'.',BDay[2],'.',BDay[3]); End; End; Close(f); End;
Procedure CreatePerson(x: Byte); Begin ClrScr; Writeln('Личность №',x); Write('Имя: '); Readln(a[x].Name); For j := 1 to 12 do Writeln(j,' - ',Table[j]); Write('Зодиак: '); Readln(a[x].Zodiac); Write('Рожден дд мм гггг: '); Readln(a[x].Bday[1],a[x].Bday[2],a[x].Bday[3]); End;
Procedure PrintPerson(x: Byte); Var flag: Boolean; Begin Flag := False; For j := 1 to Max do If (a[j].BDay[2] = x) then Begin flag := True; Write(#13#10,a[j].Name,' рожден ',a[j].Bday[1],'.',a[j].Bday[2],'.',a[j].Bday[3]); Assign(f, fPath2); ReWrite(f); With a[i] do Begin Writeln(f, i,#9,Name,#9,Zodiac,#9,BDay[1],'.',BDay[2],'.',BDay[3]); End; Close(f); End; If Flag=False then Writeln(Msg); End;
Begin For i := 1 to Max do CreatePerson(i); Sorting; Write(#13#10,'Введите номер месяца: '); Readln(i); PrintPerson(i); ReadKey; End.
Хм. Я вот после интенсивного мозгоклепания профессором ничего не хочу делать. Извините меня! Я седня побил все возможные рекорды в компьютерном моделировании. И из-за этого выложил даже парочку численных методов в задачник.
Pahan, Сий чудесный пост в этой теме считаем флудом, но снисходительно прощаем, ибо Павел на высоте седня прошел 4 круга Ада с профессором Новосибирска А.Ф. Воеводиным =) Поддерживаю также проект сообщество молодых сисадминов
Seqular! большое спасибо!!! ПРевосходно!!! только одна малюсенькая трабла.....лекторша нам такое не начитывала: "Msg = 'Таковых не имеется'; Table: Array[1..12] of String = ('Овен','Телец','Близнецы','Рак', 'Лев','Дева','Весы','Скорпион', 'Стрелец','Козерог','Водолей','Рыбы');" ((((((((((( ты не сможешь изменить?? ПОЖАЛУЙСТА!!!!!!
Добавлено (10.11.2007, 18:19) --------------------------------------------- ээээ...я вставил текст в прогу.....прога запустилась,но вместо текста вывела какие-то манускрипты!!(((( чё делать?
Большая просьба выкладывать хоть какой-то код Вашей программы. Это поможет найти общий язык между Вами и нами! =) И не забываем благодарить за помощь=) Нужна помощь с задача С++? тебе сюда bc-for-all.ucoz.ru
Firefrominside, По поводу манускриптов, текст нужно сохрянять в кодировке OEM/DOS. Потому что Pascal-консольное приложение. Кодировку Windows не понимает. Посмотри на сайте в FAQ есть вопрос, как заставить Pascal понимать кириллицу... Сделай все, как там сказано. Потом запускай Паскаль, открывай программу в нем. И уже В САМОМ ПАСКАЛЕ изменяй текст (переключения на кириллицу - Ctrl+Shift правые. На латиницу - левые.. Паскаль сам сохранит текст в кодировке.
Если лекторша не начитывала, то тут возможно 2 варианта: 1) Я поменяю кое-что. Ниже напишу, что. 2) Ты не будешь ничего объяснять. Просто я тебе расскажу что сказать лекторше.
Code
Msg = Таковых не имеется
- простая константа текстовая... Сделана для удобства. Можно ее убрать, просто найди в программе фрагмент
Code
Writeln(Msg);
и замени его на
Code
Writeln('Таковых не имеется');
. Это равнозначные выражения.
А насчет
Code
Table: Array[1..12]
- Скажи, что это массив констант. Его убрать конечно можно, но гораздо лучше (удобнее, красивее, правильнее, изящнее) будет если он останется. Это обыкновенный массив со строками!
P.S. Если лекторша не рассказывала - это отличный повод заработать "+", если блеснуть знаниями.
кста,про "это отличный повод заработать "+", если блеснуть знаниями." хорошая идея!!))) пасиб!! я очень надеюсь,что Вы не забыли про то,что надо в прогах создать типирироавнный или тесктовый файл...... Большая просьба выкладывать хоть какой-то код Вашей программы. Это поможет найти общий язык между Вами и нами! =) И не забываем благодарить за помощь=) Нужна помощь с задача С++? тебе сюда bc-for-all.ucoz.ru
- это и есть текстовый файл. Обязательно найду время и решу 2-ую задачку. Для этого нужно всего-лишь немного изменить 1-ую. Поддерживаю также проект сообщество молодых сисадминов
ааа....пасиба!!! тока ,тока мне завтра надо здавать эти проги!!(((( Большая просьба выкладывать хоть какой-то код Вашей программы. Это поможет найти общий язык между Вами и нами! =) И не забываем благодарить за помощь=) Нужна помощь с задача С++? тебе сюда bc-for-all.ucoz.ru
Firefrominside, Ой-ёй... Как неудобно... Может отсрочку можно взять на пару дней? Ты напиши, потому как просто не успеваем мы построить грамотное решение Зачет сдаем всей администрацией, соответственно и отмечаем его вечером... Есть еще сутки/двое? Поддерживаю также проект сообщество молодых сисадминов