О группе студентов из след. Данных 1) кол-во студентов, 2) дата рождения, 3) кол-во экзаменов, 4) фамилия и имя каждого студента, 5) пол студента, 6) отметка получен. На экзамене А) Напишите программу, которая выведит на экран ...

О группе студентов из след. Данных 1) кол-во студентов, 2) дата рождения, 3) кол-во экзаменов, 4) фамилия и имя каждого студента, 5) пол студента, 6) отметка получен. На экзамене А) Напишите программу, которая выведит на экран список студентов заложников. Б) Программу, которая выводит на экран список студентов, которым исполнилось 20 лет.
Гость
Ответ(ы) на вопрос:
Гость
// PascalABC.Net 3.0, сборка 1052 const   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 Иванов Иван 0 4 3 5 5 *** Студент 2 *** 12 8 1997 Петров Петр 0 3 2 3 4 *** Студент 3 *** 9 10 1998 Сидорова Наталья 1 3 4 4 2 *** Студент 4 *** 6 9 1994 Козлова Ирина 1 5 4 4 5 *** Студент 5 *** 12 3 1995 Тарасов Константин 0 3 5 5 4 Список студентов-задолжников Петров Петр Сидорова Наталья Введите дату запроса в формате ДД, ММ, ГГГГ: 2 11 2015 Список студентов, которым исполнилось 20 лет Козлова Ирина Тарасов Константин
Не нашли ответ?
Ответить на вопрос
Похожие вопросы