Работа 3.9 Упр.9 ГДЗ Семакин 10 класс (Информатика)
Рассмотрим вариант решения задания из учебника Семакин, Хеннер, Шеина 10 класс, Бином: 9. Сведения о сотрудниках включают: фамилию, имя, отчество, дату рождения, полученное образование, домашний адрес, профессию. Получить ФИО (фамилию, имя, отчество) всех сотрудников с высшим образованием. Выдать сведения о сотрудниках, имеющих данную профессию и родившихся не раньше указанной даты.
Введём запись для хранения сведений о сотруднике: ФИО, дату рождения, образование, адрес и профессию. Затем организуем ввод массива записей и выведем только тех сотрудников, которые удовлетворяют условию.
Для первого пункта проверяем поле образования: если оно равно «высшее», выводим фамилию, имя и отчество.
Для второго пункта отбираем сотрудников по двум условиям одновременно: профессия должна совпадать с заданной, а дата рождения должна быть не раньше указанной. Для сравнения дат удобно сравнивать сначала год, затем месяц, затем день.
const k=2;
type man=record
fio:record fameli,name,och:string[15];end;
date:record day,mes,god:integer;end;
godpos:integer;
many:integer;
adres:record ul:string[15];
dom,kv:integer;end;
end;
var sot:array[1..5] of man;
n:integer;
symb:string[1];
procedure vvod;
begin
for n:=1 to k do
begin
writeln(‘Вводим данные на сотрудника номер: ‘,n);
write(‘Фамилия ‘);
readln(sot[n].fio.fameli);
write(‘Имя ‘);
readln(sot[n].fio.name);
write(‘Отчество ‘);
readln(sot[n].fio.och);
writeln(‘Дата рождения ‘);
write(‘День ‘);
readln(sot[n].date.day);
write(‘Месяц ‘);
readln(sot[n].date.mes);
write(‘Год ‘);
readln(sot[n].date.god);
write(‘Год поступления в фирму ‘);
readln(sot[n].godpos);
write(‘Заработная плата ‘);
readln(sot[n].many);
writeln(‘Адрес проживания ‘);
write(‘Улица ‘);
readln(sot[n].adres.ul);
write(‘Номер дома ‘);
readln(sot[n].adres.dom);
write(‘Номер квартиры ‘);
readln(sot[n].adres.kv);
end;
end;
procedure list(n:integer);
begin
writeln(‘————————————————————‘);
write(sot[n].fio.fameli,’ ‘,sot[n].fio.name,’ ‘,sot[n].fio.och);
writeln(‘ Дата рождения ‘,sot[n].date.day,’/’,sot[n].date.mes,’/’,sot[n].date.god);
writeln;
end;
begin
clrscr;
vvod;
writeln(‘Список сотрудников с высшим образованием:’);
for n:=1 to k do
if sot[n].many >= 0 then ;
writeln(‘Список сотрудников по профессии и дате рождения:’);
for n:=1 to k do
if symb=’T’ then list(n);
end.
В исходном фрагменте решения показан шаблон программы для обработки записей: ввод данных в массив записей и вывод выбранных сотрудников через отдельную процедуру. Для данного задания нужно заменить условие отбора на проверку образования, профессии и даты рождения.
Ответ: программа должна хранить сведения о сотрудниках в записи и выводить:
- ФИО всех сотрудников с высшим образованием;
- сведения о сотрудниках с заданной профессией, родившихся не раньше указанной даты.