Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program Danilova;
- Uses
- System.SysUtils;
- Type
- Human = Record
- Name : String[20];
- Surname : String[20];
- Number : String[13];
- Address : String[40];
- Age : Byte;
- End;
- TPeople = Array of Human;
- Function InputAmount() : Integer;
- Var
- IsCorrect : Boolean;
- Amount : Integer;
- Begin
- Amount := 0;
- Repeat
- IsCorrect := True;
- Write('Введите количество людей: ');
- Try
- Readln(Amount);
- Except
- Writeln('Введены некорректные данные!');
- IsCorrect := false;
- End;
- If IsCorrect and (Amount < 1) then
- Begin
- Writeln('Введены некорректные данные!');
- IsCorrect := false;
- End;
- Until IsCorrect;
- InputAmount := Amount;
- End;
- Procedure InputPeople(People : TPeople);
- Var
- I : Integer;
- IsCorrect : Boolean;
- Begin
- For I := 0 to High(People) do
- Begin
- Repeat
- IsCorrect := True;
- Write('Введите имя ', I + 1,' человека: ');
- Try
- Readln(People[I].Name);
- Except
- Writeln('Введены некорректные данные!');
- IsCorrect := false;
- End;
- Until IsCorrect;
- Repeat
- IsCorrect := True;
- Write('Введите фамилию ', I + 1,' человека: ');
- Try
- Readln(People[I].Surname);
- Except
- Writeln('Введены некорректные данные!');
- IsCorrect := false;
- End;
- Until IsCorrect;
- Repeat
- IsCorrect := True;
- Write('Введите возраст ', I + 1,' человека: ');
- Try
- Readln(People[I].Age);
- Except
- Writeln('Введены некорректные данные!');
- IsCorrect := false;
- End;
- Until IsCorrect;
- Repeat
- IsCorrect := True;
- Write('Введите адрес ', I + 1,' человека: ');
- Try
- Readln(People[I].Address);
- Except
- Writeln('Введены некорректные данные!');
- IsCorrect := false;
- End;
- Until IsCorrect;
- Repeat
- IsCorrect := True;
- Write('Введите телефон ', I + 1,' человека: ');
- Try
- Readln(People[I].Number);
- Except
- Writeln('Введены некорректные данные!');
- IsCorrect := false;
- End;
- Until IsCorrect;
- Writeln;
- End;
- End;
- Function FindOldestPeople(People : TPeople;OldestPeople : TPeople) : Integer;
- Var
- I, OldAge, Counter : Integer;
- Begin
- Counter := 0;
- OldAge := 0;
- For I := 0 to High(People) do
- If OldAge < People[I].Age then
- OldAge := People[I].Age;
- For I := 0 to High(People) do
- If OldAge = People[I].Age then
- Begin
- OldestPeople[Counter] := People[I];
- Inc(Counter);
- End;
- FindOldestPeople := Counter;
- End;
- Procedure Output (OldestPeople : TPeople);
- Var
- I : Integer;
- Begin
- Writeln('Самые старые люди:');
- For I := 0 to High(OldestPeople) do
- Begin
- Write(OldestPeople[I].Surname,' ',OldestPeople[I].Name,' ',OldestPeople[I].Age,' ',OldestPeople[I].Number,' ',OldestPeople[I].Address);
- Writeln;
- End;
- End;
- Procedure Main();
- Var
- Amount, CounterOldPeople : Integer;
- People, OldestPeople : TPeople;
- Begin
- Amount := InputAmount();
- Setlength(People,Amount);
- InputPeople(People);
- Setlength(OldestPeople, Amount);
- CounterOldPeople := FindOldestPeople(People, OldestPeople);
- Setlength(OldestPeople, CounterOldPeople);
- Output(OldestPeople);
- Readln;
- End;
- Begin
- Main;
- End.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement