// PascalABC.Net 3.0, сборка 1052const nstud=100; npred=10;type date=record den:byte; mes:byte; god:integer end; St=record datr:date; famnam:string; gender:0..1; ball:array[1..npred] of 2..5 end;var ns,np,nd,i,j:byte; R:array[1..nstud] of St; Dolg,flagp:boolean; cdate:date;begin Write('Количество студентов: '); Read(ns); Write('Количество предметов: '); Read(np); Writeln('Вводите данные по каждому студенту'); Writeln('В первой строке через пробел дата рождения ДД ММ ГГГГ'); Writeln('Во второй строке фамилия, пробел, имя'); Writeln('В третьей строке пол (0 - мужской, 1 - женский)'); Writeln('В четвертой строке полученные баллы через пробел'); for i:=1 to ns do begin Writeln('*** Студент ',i,' ***'); With R[i] do begin Readln(datr.den,datr.mes,datr.god); Readln(famnam); Readln(gender); for j:=1 to np do Read(ball[j]) end end; { *********** 1 *************** } Writeln; Writeln('Список студентов-задолжников'); nd:=0; for i:=1 to ns do begin With R[i] do begin j:=1; Dolg:=false; repeat if ball[j]=2 then begin Dolg:=true; Inc(nd) end; Inc(j) until Dolg or (j>np); if Dolg then Writeln(famnam) end end; if nd=0 then Writeln('Задолжников нет!'); { *********** 2 *************** } Writeln; Writeln('Введите дату запроса в формате ДД, ММ, ГГГГ: '); Read(cdate.den,cdate.mes,cdate.god); Writeln; Writeln('Список студентов, которым исполнилось 20 лет'); nd:=0; for i:=1 to ns do begin With R[i] do begin flagp:=false; if cdate.god-datr.god>20 then flagp:=true else if cdate.god-datr.god=20 then begin if cdate.mes>datr.mes then flagp:=true else begin if cdate.mes=datr.mes then flagp:=(cdate.den>=datr.den) end end; if flagp then begin Writeln(famnam); Inc(nd) end; end end; if nd=0 then Writeln('Нет студентов, которым исполнилось 20 лет!');end.
Тестовое решение:Количество студентов: 5Количество предметов: 4Вводите данные по каждому студентуВ первой строке через пробел дата рождения ДД ММ ГГГГВо второй строке фамилия, пробел, имяВ третьей строке пол (0 - мужской, 1 - женский)В четвертой строке полученные баллы через пробел*** Студент 1 ***5 10 1996Иванов Иван04 3 5 5*** Студент 2 ***12 8 1997Петров Петр03 2 3 4*** Студент 3 ***9 10 1998Сидорова Наталья13 4 4 2*** Студент 4 ***6 9 1994Козлова Ирина15 4 4 5*** Студент 5 ***12 3 1995Тарасов Константин03 5 5 4Список студентов-задолжниковПетров ПетрСидорова НатальяВведите дату запроса в формате ДД, ММ, ГГГГ: 2 11 2015Список студентов, которым исполнилось 20 летКозлова ИринаТарасов Константин