Помощь - Поиск - Пользователи - Календарь
Полная версия: комбинированные типы данных
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
rov4
Привет всем!
Помогите, пожалуйста, написать программу, так как я плохо, что понимаю в этом. :molitva:
Постановка задачи:
1.Существует некоторая фирма, которая образована в 1991 году. Составить список сотрудников этой фирмы, содержащей 20 человек. Список должен содержать следующие сведения для каждого сотрудника: ФИО, дату рождения, год поступления в фирму, оклад, адрес (улица, номер дома и квартиры). Информацию о каждом сотруднике оформить в виде записи. Записи объединить в массив.
2.Составить программу, которая выполняет ввод и печать информации для данного варианта: Распечатать анкетные данные сотрудников, имеющих срок службы больше 5 лет. Ввод и печать оформить в виде процедур.
wacko.gif wacko.gif wacko.gif
Заранее спасибо.
volvo
rov4
Эта программа запрашивает у пользователя ввод информации о 5 работниках (n = 5) и распечатывает всех тех работников, которые имеют срок службы более 5 лет...
Код

const
 n = 5;

type
 TWorker =
   record
     fio,
     birth: string;
     start,
     money: integer;
     address: string;
   end;

Procedure read_data(var r: TWorker);
 begin
   writeln('enter info:');
   with r do
     begin
       write('FIO: '); readln(fio);
       write('birth date: '); readln(birth);
       write('start working: '); readln(start);
       write('money: '); readln(money);
       write('address: '); readln(address)
     end;
 end;
procedure write_data(r: TWorker);
 begin
   with r do
     writeln( fio:15, birth:10, start:7, money:6, address:30);
 end;

var
 arr: array[1 .. n] of TWorker;
 i: integer;

begin
 for i := 1 to n do
   read_data(arr[i]);

 for i := 1 to n do
   if (2005 - arr[i].start) > 5 then
     write_data(arr[i])
end.


Для проверки, в каком виде распечатываются списки (без ввода информации о работниках), запускаем:
Код
const
 n = 5;

type
 TWorker =
   record
     fio,
     birth: string;
     start,
     money: integer;
     address: string;
   end;

procedure write_data(r: TWorker);
 begin
   with r do
     writeln( fio:15, birth:10, start:7, money:6, address:30);
 end;

const
 arr: array[1 .. n] of TWorker =
   ( (fio:' ivanov'; birth:'1/1/1970'; start: 1990; money: 1000; address: 'moscow'),
     (fio:' petrov'; birth:'2/2/1964'; start: 1998; money: 1100; address: 'moscow'),
     (fio:'sidorov'; birth:'1/1/1975'; start: 2004; money: 1000; address: 'moscow'),
     (fio:'ivanova'; birth:'1/1/1972'; start: 2002; money: 1000; address: 'moscow'),
     (fio:'petrova'; birth:'4/4/1964'; start: 1997; money: 1300; address: 'moscow') );

var i: integer;

begin
 for i := 1 to n do
   if (2005 - arr[i].start) > 5 then
     write_data(arr[i])
end.
rov4
volvo,
Вот это мозг!
Я бы в жизни до такого не додумалась!
Спасибо огромное!!! Надеюсь, что всё получится. :flowers:
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.