Нужно очень срочно(PascalABC.NET) В службе социального обеспечения (СОБЕС) имеется список пенсионеров. О каждом пенсионере содер
Нужно очень срочно(PascalABC.NET)
В службе социального обеспечения (СОБЕС) имеется список пенсионеров. О каждом пенсионере содержатся сведения: фамилия, имя, отчество, адрес (район, улица, дом, квартира), место и дата рождения, общий стаж работы и стаж работы на "вредном производстве", пол, зарплата, из которой была начислена пенсия, размер пенсии. Создать массив из записей. Выдать следующие сведения: по данным о пенсионере (фамилии, имени, отчеству) выдать размер его пенсии; по стажу работы на "вредном производстве" -список пенсионеров; список пенсионеров, имеющих пенсию ниже средней.
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.
Procedure ShellStr(var s: string); { сортирует символы строки методом Шелла } var i, j, n, step: integer; c: char; begin s := Trim(s); n := Length(s); step := n div 2; while step > 0 do begin for j := n - step downto 1 do begin i := j; while i <= n - step do begin if s[i] > s[i + step] then begin c := s[i]; s[i] := s[i + 1]; s[i + 1] := c end; i := i + step end end; step := step div 2 end end;
procedure TrimNullsLeft(var s: string); { Усекает левые (незначащие нули) в строке s } var i, n: integer; begin i := 1; n := Length(s); while (s[i] = '0') do i := i + 1; s := Copy(s, i, n - i + 1) end;
var p: integer; s, M, N: string; f: text;
begin Assign(f, 'input.txt'); Reset(f); Readln(f, s); Close(f); Assign(f, 'output.txt'); Rewrite(f); s := Trim(s); p := Pos(' ', s); M := Copy(s, 1, p - 1); N := Copy(s, p + 1, Length(s) - p); s := M + N; ShellStr(s); TrimNullsLeft(s); Writeln(f, s); Close(f); Writeln('Программа завершила работу') end.
1-4 2-вообще, программа составлена неверно(being), но если не считать этого, то i=s=5 5-3 6-(A*B)/(C*D)/E 7-не указан символ ";" после команды 2c:=b2*b2 8-10 9-4 10-(ac+bc^2-bcd-a+b^2)/(bc)+0.11