profile
Опубликовано 5 лет назад по предмету Информатика от kakos989

Нужно очень срочно(PascalABC.NET)


В службе социального обеспечения (СОБЕС) имеется список пенсионеров. О каждом пенсионере содержатся сведения: фамилия, имя, отчество, адрес (район, улица, дом, квартира), место и дата рождения, общий стаж работы и стаж работы на "вредном производстве", пол, зарплата, из которой была начислена пенсия, размер пенсии. Создать массив из записей. Выдать следующие сведения: по данным о пенсионере (фамилии, имени, отчеству) выдать размер его пенсии; по стажу работы на "вредном производстве" -список пенсионеров; список пенсионеров, имеющих пенсию ниже средней.

  1. Ответ
    Ответ дан Gleb1Kosyrev
    //PascalABC.NET 3.2 сборка 1318

    Type
      people=record
        subn:string;  //фамилия
        n:string;     //имя
        otn:string;   //отчество
        rai:string;     //район
        street:string;  //улица
        hou:integer;    //дом
        ap:integer;     //квартира
        plBor:string;      //место рождения
        dayBor:integer;    //день рождения
        mounthBor:integer; //месяц рождения
        yearBor:integer;   //год рождения
        mainWorkTime:integer; //общий стаж работы
        dangWorkTime:integer; //стаж работы на "вредном производстве"
        gender:string;      //пол
        moneyPerMounth:integer; //з/п, из которой была начислена пенсия
        oldMoneyPerMounth:integer; //пенсия
      end;

     Var
      oldPeople:array of people;
      i,n,st:integer;
      sFIO:string;
      sr:real;
    begin
    sr:=0;
    write('Введите количество пенсионеров:');
    readln(n);
    setlength(oldPeople,n);
    for i:=0 to n-1 do
      begin
        write('Фамилия пенсионера #',i,':');
        readln(oldPeople[i].subn);
        write('Имя пенсионера #',i,':');
        readln(oldPeople[i].n);
        write('Отчество пенсионера #',i,':');
        readln(oldPeople[i].otn);
        write('Район пенсионера #',i,':');
        readln(oldPeople[i].rai);
        write('Улица пенсионера #',i,':');
        readln(oldPeople[i].street);
        writeln('Дом пенсионера #',i,':');
        readln(oldPeople[i].hou);
        writeln('Квартира пенсионера #',i,':');
        readln(oldPeople[i].ap);
        writeln('Место рождения пенсионера #',i,':');
        readln(oldPeople[i].plBor);
        writeln('День рождения пенсионера #',i,':');
        readln(oldPeople[i].dayBor);
        writeln('Месяц рождения пенсионера #',i,':');
        readln(oldPeople[i].mounthBor);
        writeln('Год рождения пенсионера #',i,':');
        readln(oldPeople[i].yearBor);
        writeln('Общий стаж работы пенсионера #',i,':');
        readln(oldPeople[i].mainWorkTime);
        writeln('Cтаж работы на "вредном производстве" пенсионера #',i,':');
        readln(oldPeople[i].dangWorkTime);
        writeln('Пол пенсионера #',i,':');
        readln(oldPeople[i].gender);
        writeln('з/п, из которой была начислена пенсия пенсионера #',i,':');
        readln(oldPeople[i].moneyPerMounth);
        writeln('Пенсия пенсионера #',i,':');
        readln(oldPeople[i].oldMoneyPerMounth);
        sr+=oldPeople[i].oldMoneyPerMounth;
    end;
    write('Введите ФИО пенсионера');
    readln(sFIO);
    var FIO:=sFIO.Split;
    for i:=0 to n do
    if (oldPeople[i].subn=FIO[0]) and (oldPeople[i].n=FIO[1]) and (oldPeople[i].otn=FIO[2]) then
      begin
        writeln(oldPeople[i].oldMoneyPerMounth);
        break;
      end;
    write('Введите стаж работы на "вредном производстве":');
    readln(st);
    for i:=0 to n do
    if oldPeople[i].dangWorkTime=st then
     writeln(oldPeople[i].subn,' ',oldPeople[i].n,' ',oldPeople[i].otn);
    sr/=n;
    writeln('Список пенсионеров с зарплатой ниже среднего');
    for i:=0 to n do
    if oldPeople[i].oldMoneyPerMounth<sr then
     writeln(oldPeople[i].subn,' ',oldPeople[i].n,' ',oldPeople[i].otn);
    end.