В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
559858
559858
19.10.2021 17:08 •  Информатика

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

Показать ответ
Ответ:
1innic11
1innic11
30.07.2020 22:53
// 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 лет
Козлова Ирина
Тарасов Константин
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота