Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2010, 22:09   #1
Bapr
Пользователь
 
Регистрация: 06.10.2009
Сообщений: 18
По умолчанию записи

Сформировать список школьников (ФИО, дата рождения(дд, мм, гг), класс). Составить алгоритм сортировки по возрасту и вывести список на экран. Найти самого младшего и самого старшего. Определить у кого день рождения в заданный месяц.

Код:
Uses CRT;
 
Const N=4;
      CurrentYear = 2010;
 
Type
 
      ych = Record
        Num : Integer;
        imya:  String [20];
        Famil: String [20];
        clas: String [20];
        Day:  Integer;
        Month: Integer;
        Year:  Integer;
        Age : Byte;
End;
 
ychs = Array [1..N] of ych;
 
Var
   Age: Byte;
   S : ychs;
   C : ych;
   k,i,j,l:    Integer;
  flag:boolean;
Procedure swap;
Begin
 
C:=S[k+1];
S[k+1]:=S[k];
S[k]:=C;
flag:=false;
 
End;
 
 
Procedure Input;
Begin
For i:=1 to N-1 do
With S[i] do
Begin
  Write('imya:');
  ReadLn(imya);
  Write('Familiya:');
  ReadLn(Famil);
  Write('clas:');
  ReadLn(clas);
  Write('Birthday (dd< >mm< >yyyy< >)');
  ReadLn(Day,Month,Year);
  Num:=Num+1;
  Age:=CurrentYear-Year;
End;
S[n].Month:=maxint;
 
End;
 
Procedure SortByAge;
Begin
Repeat
 
Flag:=true;
 
For k:=1 to N-2 do
Begin
If (S[k].Age>S[k+1].Age) then swap;
If (S[k].Age=S[k+1].Age) then
 
Begin
 
If (S[k].Month<S[k+1].Month) then swap;
If (S[k].Month=S[k+1].Month) then
If (S[k].Day<S[k+1].Day) then swap;
 
End;
End;
 
until flag;
For k:=1 to N-1 do
With S[k] do
WriteLn(imya,' - ',Age,' was born in - ',day,' ',month,' ',year);
End;
 
Procedure FindBirthDay;
Var FindMonth: Byte;
Begin
WriteLn('Month:');ReadLn(FindMonth);
For j:= 1 to N-1 do
with S[j] do
Begin
If FindMonth=Month then WriteLn(imya,' - ',Day,'.',Month,'.',Year);
End;
End;
 
Procedure Maxmin;
Var MaxAge,MinAge: Integer;
    MinMonth,MaxMonth: Integer;
    MinName,MaxName: String;
    minday,maxday: integer;
Begin
 
MinAge:=maxint;MaxAge:=0;
MinMonth:=12;MaxMonth:=1;
Minday:=31;Maxday:=1;
 
For l:= 1 to N-1 do
Begin
{If (MinAge=S[l].Age) then
  If (MinMonth=S[l].Month) then
    if minday<s[l].day then
    begin MinAge:=S[l].Age;MinMonth:=S[l].Month;minday:=s[l].day;MinName:=S[l].imya End
  else
       begin MinAge:=S[l].Age;MinMonth:=S[l].Month;minday:=s[l].day;MinName:=S[l].imya End
       else if minmonth<s[l].day then
        begin  MinAge:=S[l].Age;MinMonth:=S[l].Month;minday:=s[l].day;MinName:=S[l].imya End
  else
begin MinAge:=S[l].Age;MinMonth:=S[l].Month;minday:=s[l].day;MinName:=S[l].imya End
  else if minage<s[l].day then
begin MinAge:=S[l].Age;MinMonth:=S[l].Month;minday:=s[l].day;MinName:=S[l].imya End
else begin  MinAge:=S[l].Age;MinMonth:=S[l].Month;minday:=s[l].day;MinName:=S[l].imya End;
 
If (MaxAge=S[l].Age) then
  If (maxMonth=S[l].Month) then
    if maxday>s[l].day then
    begin MaxAge:=S[l].Age;MaxMonth:=S[l].Month;maxday:=s[l].day;MaxName:=S[l].imya End
  else
       begin MaxAge:=S[l].Age;MaxMonth:=S[l].Month;maxday:=s[l].day;MaxName:=S[l].imya End
       else if maxmonth>s[l].day then
        begin  MaxAge:=S[l].Age;maxMonth:=S[l].Month;maxday:=s[l].day;MaxName:=S[l].imya End
  else
begin MaxAge:=S[l].Age;MaxMonth:=S[l].Month;maxday:=s[l].day;MaxName:=S[l].imya End
  else if maxage>s[l].day then
begin MaxAge:=S[l].Age;MaxMonth:=S[l].Month;maxday:=s[l].day;MaxName:=S[l].imya End
  else begin  MaxAge:=S[l].Age;MaxMonth:=S[l].Month;maxday:=s[l].day;MaxName:=S[l].imya
End;
End;}
if minage:=s[l].age then
minage:=s[l].age
 
WriteLn('Max = ',MaxName,   'Min = ',MinName);
End;
 
BEGIN
 ClrScr;
Input;
WriteLn('');
SortByAge;
WriteLn('');
FindBirthDay;
WriteLn('');
maxmin;
writeln('');
ReadLn;
END.
Bapr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Записи Nightt Помощь студентам 0 20.06.2009 18:42
Записи!!! ТРОЯН=) Помощь студентам 5 28.02.2009 18:36
Записи ReM Паскаль, Turbo Pascal, PascalABC.NET 2 15.10.2008 08:50
Записи Rio309 Помощь студентам 1 15.03.2008 22:23
Записи zzzzz Помощь студентам 1 25.05.2007 16:26