type Data = record day: 1..31; month: 1..12; year: integer end; lichn = record famnam: string; datr: Data end; listlichn = array [1..nm] of lichn;
var m: listlichn; n: integer;
procedure GetLichn(k: integer); begin Write(k, ') Введите через пробел фамилию, имя: '); Readln(m[k].famnam); Writeln('Введите через пробел день, месяц и год рождения: '); Readln(m[k].datr.day, m[k].datr.month, m[k].datr.year) end;
procedure Vvod(var p: integer); var i: integer; begin Write('Введите количество лиц n (максимум 50) -> '); Readln(p); if p <= 50 then for i := 1 to p do GetLichn(i) else begin Writeln('Вы ввели неправильное значение'); p := 0 end end;
procedure Zapros1; { фамилии и имена тех кто родился в месяц l года } var i: integer; l: 1..12; begin Write('Введите номер месяца рождения (1-12): '); Readln(l); for i := 1 to n do if m[i].datr.month = l then WriteLichn(i) end;
procedure Zapros2; { фамилии и имена тех кто родился в год a } var a, i: integer; begin Write('Введите год рождения: '); Readln(a); for i := 1 to n do if m[i].datr.year = a then WriteLichn(i) end;
procedure Zapros3; { фамилии и имена тех чья дата рождения z.l.a } var a, i: integer; z: 1..31; l: 1..12; begin Write('Введите через пробел день, месяц и год рождения: '); Readln(z, l, a); for i := 1 to n do if (m[i].datr.year = a) and (m[i].datr.month = l) and (m[i].datr.day = z) then WriteLichn(i) end;
begin Vvod(n); Zapros1; Zapros2; Zapros3 end.
Тестовое решение: Введите количество лиц n (максимум 50) -> 3 1) Введите через пробел фамилию, имя: Иванов Иван Введите через пробел день, месяц и год рождения: 24 12 1973 2) Введите через пробел фамилию, имя: Петров Петр Введите через пробел день, месяц и год рождения: 05 03 1982 3) Введите через пробел фамилию, имя: Козлова Екатерина Введите через пробел день, месяц и год рождения: 1 12 1994 Введите номер месяца рождения (1-12): 12 Иванов Иван 24.12.1973 Козлова Екатерина 1.12.1994 Введите год рождения: 1982 Петров Петр 5.3.1982 Введите через пробел день, месяц и год рождения: 5 3 1982 Петров Петр 5.3.1982
type Data = record day: 1..31; month: 1..12; year: integer end; lichn = record famnam: string; datr: Data end; listlichn = array [1..nm] of lichn;
var m: listlichn; n: integer;
procedure GetLichn(k: integer); begin Write(k, ') Введите через пробел фамилию, имя: '); Readln(m[k].famnam); Writeln('Введите через пробел день, месяц и год рождения: '); Readln(m[k].datr.day, m[k].datr.month, m[k].datr.year) end;
procedure Vvod(var p: integer); var i: integer; begin Write('Введите количество лиц n (максимум 50) -> '); Readln(p); if p <= 50 then for i := 1 to p do GetLichn(i) else begin Writeln('Вы ввели неправильное значение'); p := 0 end end;
procedure Zapros1; { фамилии и имена тех кто родился в месяц l года } var i: integer; l: 1..12; begin Write('Введите номер месяца рождения (1-12): '); Readln(l); for i := 1 to n do if m[i].datr.month = l then WriteLichn(i) end;
procedure Zapros2; { фамилии и имена тех кто родился в год a } var a, i: integer; begin Write('Введите год рождения: '); Readln(a); for i := 1 to n do if m[i].datr.year = a then WriteLichn(i) end;
procedure Zapros3; { фамилии и имена тех чья дата рождения z.l.a } var a, i: integer; z: 1..31; l: 1..12; begin Write('Введите через пробел день, месяц и год рождения: '); Readln(z, l, a); for i := 1 to n do if (m[i].datr.year = a) and (m[i].datr.month = l) and (m[i].datr.day = z) then WriteLichn(i) end;
begin Vvod(n); Zapros1; Zapros2; Zapros3 end.
Тестовое решение: Введите количество лиц n (максимум 50) -> 3 1) Введите через пробел фамилию, имя: Иванов Иван Введите через пробел день, месяц и год рождения: 24 12 1973 2) Введите через пробел фамилию, имя: Петров Петр Введите через пробел день, месяц и год рождения: 05 03 1982 3) Введите через пробел фамилию, имя: Козлова Екатерина Введите через пробел день, месяц и год рождения: 1 12 1994 Введите номер месяца рождения (1-12): 12 Иванов Иван 24.12.1973 Козлова Екатерина 1.12.1994 Введите год рождения: 1982 Петров Петр 5.3.1982 Введите через пробел день, месяц и год рождения: 5 3 1982 Петров Петр 5.3.1982
nm = 50;
type
Data = record
day: 1..31;
month: 1..12;
year: integer
end;
lichn = record
famnam: string;
datr: Data
end;
listlichn = array [1..nm] of lichn;
var
m: listlichn;
n: integer;
procedure GetLichn(k: integer);
begin
Write(k, ') Введите через пробел фамилию, имя: ');
Readln(m[k].famnam);
Writeln('Введите через пробел день, месяц и год рождения: ');
Readln(m[k].datr.day, m[k].datr.month, m[k].datr.year)
end;
procedure WriteLichn(k: integer);
begin
Writeln(m[k].famnam, ' ', m[k].datr.day, '.', m[k].datr.month, '.', m[k].datr.year)
end;
procedure Vvod(var p: integer);
var
i: integer;
begin
Write('Введите количество лиц n (максимум 50) -> ');
Readln(p);
if p <= 50 then for i := 1 to p do GetLichn(i)
else begin Writeln('Вы ввели неправильное значение'); p := 0 end
end;
procedure Zapros1;
{ фамилии и имена тех кто родился в месяц l года }
var
i: integer;
l: 1..12;
begin
Write('Введите номер месяца рождения (1-12): ');
Readln(l);
for i := 1 to n do
if m[i].datr.month = l then WriteLichn(i)
end;
procedure Zapros2;
{ фамилии и имена тех кто родился в год a }
var
a, i: integer;
begin
Write('Введите год рождения: ');
Readln(a);
for i := 1 to n do
if m[i].datr.year = a then WriteLichn(i)
end;
procedure Zapros3;
{ фамилии и имена тех чья дата рождения z.l.a }
var
a, i: integer;
z: 1..31;
l: 1..12;
begin
Write('Введите через пробел день, месяц и год рождения: ');
Readln(z, l, a);
for i := 1 to n do
if (m[i].datr.year = a) and (m[i].datr.month = l)
and (m[i].datr.day = z) then
WriteLichn(i)
end;
begin
Vvod(n);
Zapros1;
Zapros2;
Zapros3
end.
Тестовое решение:
Введите количество лиц n (максимум 50) -> 3
1) Введите через пробел фамилию, имя: Иванов Иван
Введите через пробел день, месяц и год рождения:
24 12 1973
2) Введите через пробел фамилию, имя: Петров Петр
Введите через пробел день, месяц и год рождения:
05 03 1982
3) Введите через пробел фамилию, имя: Козлова Екатерина
Введите через пробел день, месяц и год рождения:
1 12 1994
Введите номер месяца рождения (1-12): 12
Иванов Иван 24.12.1973
Козлова Екатерина 1.12.1994
Введите год рождения: 1982
Петров Петр 5.3.1982
Введите через пробел день, месяц и год рождения: 5 3 1982
Петров Петр 5.3.1982
nm = 50;
type
Data = record
day: 1..31;
month: 1..12;
year: integer
end;
lichn = record
famnam: string;
datr: Data
end;
listlichn = array [1..nm] of lichn;
var
m: listlichn;
n: integer;
procedure GetLichn(k: integer);
begin
Write(k, ') Введите через пробел фамилию, имя: ');
Readln(m[k].famnam);
Writeln('Введите через пробел день, месяц и год рождения: ');
Readln(m[k].datr.day, m[k].datr.month, m[k].datr.year)
end;
procedure WriteLichn(k: integer);
begin
Writeln(m[k].famnam, ' ', m[k].datr.day, '.', m[k].datr.month, '.', m[k].datr.year)
end;
procedure Vvod(var p: integer);
var
i: integer;
begin
Write('Введите количество лиц n (максимум 50) -> ');
Readln(p);
if p <= 50 then for i := 1 to p do GetLichn(i)
else begin Writeln('Вы ввели неправильное значение'); p := 0 end
end;
procedure Zapros1;
{ фамилии и имена тех кто родился в месяц l года }
var
i: integer;
l: 1..12;
begin
Write('Введите номер месяца рождения (1-12): ');
Readln(l);
for i := 1 to n do
if m[i].datr.month = l then WriteLichn(i)
end;
procedure Zapros2;
{ фамилии и имена тех кто родился в год a }
var
a, i: integer;
begin
Write('Введите год рождения: ');
Readln(a);
for i := 1 to n do
if m[i].datr.year = a then WriteLichn(i)
end;
procedure Zapros3;
{ фамилии и имена тех чья дата рождения z.l.a }
var
a, i: integer;
z: 1..31;
l: 1..12;
begin
Write('Введите через пробел день, месяц и год рождения: ');
Readln(z, l, a);
for i := 1 to n do
if (m[i].datr.year = a) and (m[i].datr.month = l)
and (m[i].datr.day = z) then
WriteLichn(i)
end;
begin
Vvod(n);
Zapros1;
Zapros2;
Zapros3
end.
Тестовое решение:
Введите количество лиц n (максимум 50) -> 3
1) Введите через пробел фамилию, имя: Иванов Иван
Введите через пробел день, месяц и год рождения:
24 12 1973
2) Введите через пробел фамилию, имя: Петров Петр
Введите через пробел день, месяц и год рождения:
05 03 1982
3) Введите через пробел фамилию, имя: Козлова Екатерина
Введите через пробел день, месяц и год рождения:
1 12 1994
Введите номер месяца рождения (1-12): 12
Иванов Иван 24.12.1973
Козлова Екатерина 1.12.1994
Введите год рождения: 1982
Петров Петр 5.3.1982
Введите через пробел день, месяц и год рождения: 5 3 1982
Петров Петр 5.3.1982