Работа с комбинированными типами данных.
Постановка задачи для конкретного варианта: 1. Существует некоторая фирма, которая образована в 1991 году. Составить список сотрудников этой фирмы, содержащей 20 человек. Список должен содержать следующие сведения для каждого сотрудника: ФИО, дату рождения, год поступления в фирму, оклад, адрес (улица, номер дома и квартиры). Информацию о каждом сотруднике оформить в виде записи. Записи объединить в массив. 2. Составить программу, которая выполняет ввод и печать списка сотрудников, фамилии которых начинаются с буквы Т, и их даты рождения. Ввод и печать оформить в виде процедур. Исходные данные:
Текст программы: sub vvod ‘процедура ввода данных for n=1 to 20 input “Вводим данные на сотрудникa номер:”;n input ”Фамилия”;sot(n).fio.family input “Имя”;sot(n).fio.name input “Отчество”;sot(n).fio.och input “Дата рождения: День”;sot(n).date.day input “Месяц”;sot(n).date.mes input “Год”;sot(n).date.god input “Год поступления в фирму”sot(n).godpos input “Заработная плата”;sot(n).many input “Адрес проживания;Улица”;sot(n).adress.ul input “Номер дома”;sot(n).adress.dom input “Номер квартиры”;sot(n).adress.kv next end sub sub list(n) ‘процедура вывода на печать print '-------------------------------------------------------------------------------- print ”ot(n).fio.family;sot(n).fio.name;sot(n).fio.och print “Дата рождения “;sot(n).date.day;”/”;sot(n).date.mes;”/”;sot(n).date.god end sub ‘ Основная программа rem lab8{ вариант № 8} type man type fio family as string*15 name as string*15 och as string*15 end type type date day as integer mes as integer god as integer end type godpos as integer many as integer type adress street as string*15 dom as integer kv as integer end type end type dim sot:array(1 to 20) as man dim n as integer symb as string1 vvod ‘процедура ввода исходных данных print “'Распечатать список сотрудников,фамилии которых начинаются с буквы Т” print“ и их даты рождения.” for n=1 to 20 symb=mid$(sot(n).fio.family,1,1) if symb='Т' then call list(n) next Результаты выполнения программы:
Варианты заданий. 1. Распечатать анкетные данные сотрудников, имеющих срок службы больше 5 лет. 2. Распечатать анкетные данные сотрудников, которым больше 25 лет. 3. Распечатать анкетные данные сотрудников, у которых улица начинается с буквы С. 4. Распечатать ФИО сотрудников, у которых улица начинается с буквы М, и номер дома больше 5. 5. Распечатать анкетные данные сотрудников, месяц рождения которых больше 6 и фамилия начинается с буквы Л. 6. Распечатать анкетные данные сотрудников, упорядоченные по ФИО и Улицам. 7. Распечатать список сотрудников, фамилии которых начинаются с буквы А, и их оклад. 8. Распечатать список сотрудников, фамилии которых начинаются с буквы В и Г, и год их поступления в фирму. 9. Распечатать фамилии и даты рождения сотрудников, имеющих номер квартиры меньше 35. 10. Распечатать список сотрудников, упорядоченный по адресам (т.е. по улице, номерам дома и квартиры). 11. Упорядочить список сотрудников по году поступления в фирму и распечатать его. 12. Вычислить средний оклад сотрудников и распечатать список сотрудников, имеющих оклад выше среднего. 13. Вычислить средний оклад сотрудников и распечатать список сотрудников, имеющих оклад ниже среднего. 14. Вычислить средний оклад сотрудников и распечатать список сотрудников, имеющих оклад, равный среднему. 15. Упорядочить список сотрудников фирмы по году рождения и распечатать его. 16. Распечатать список сотрудников, упорядоченный по алфавиту. 17. Распечатать список сотрудников, упорядоченный по месяцу рождения. 18. Распечатать список сотрудников, фамилии которых начинаются с буквы Р, упорядоченный по году рождения. 19. Распечатать анкетные данные сотрудников, упорядоченные по дате рождения. 20. Распечатать ФИО и адреса сотрудников, которые проработали в фирме меньше года. 21. Распечатать ФИО сотрудников, оклад которых выше среднего в 1.2-1.5 раза. 22. Распечатать ФИО сотрудников, в названии улиц которых есть буква А. 23. Распечатать ФИО и номера домов сотрудников, у которых номера квартир начинаются с 3, 4, 5, 6, 7, 8. 24. 25) Распечатать ФИО и дату рождения сотрудников, у которых номера домов меньше 20, а номера квартир больше 5.
|