Вопрос по информатике:
О группе студентов из след. Данных 1) кол-во студентов, 2) дата рождения, 3) кол-во экзаменов, 4) фамилия и имя каждого студента, 5) пол студента, 6) отметка получен. На экзамене
А) Напишите программу, которая выведит на экран список студентов заложников. Б) Программу, которая выводит на экран список студентов, которым исполнилось 20 лет.
Трудности с пониманием предмета? Готовишься к экзаменам, ОГЭ или ЕГЭ?
Воспользуйся формой подбора репетитора и занимайся онлайн. Пробный урок - бесплатно!
- 18.01.2018 16:39
- Информатика
- remove_red_eye 6761
- thumb_up 5
Ответы и объяснения 1
// 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 лет
Козлова Ирина
Тарасов Константин
- 19.01.2018 05:03
- thumb_up 42
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.