type Data = record
Ziua: 1..31;
Luna: 1..12;
Anul: integer; end;
Persoana = record
NumePrenume: string;
DataNasterii: Data;
end;
ListaPersoane = array[1..50] of Persoana;
Пояснения:
ListaPersoane -список лиц
Persoana-человек
Datanasterii-дата рождения
Ziua-день
anul-год
NumePrenume-имя и фамилия
Dati datele persoanei - введите даты
Data nasterii -день рождения
Ziua cautata - день который ищем
Ну уже комментарии там для себя делал, думаю не надо переводить)
Сделать программу которая будет читать с клавиатуры данные n человек(n< или равно 50) и выводить на экран:
a. людей рожденных в день z месяца;
b. людей рожденных в месяц l года;
c. людей рожденных в год a;
d. Людей рожденных z.l.a числа;
e. Самый старый человек
f. Самый молодой
g. Возраст каждого человека в годах, месяцах, днях
h. Список людей которые имеют больше v лет
i. Список людей в алфавитном порядке
j. Список людей упорядоченный в соответствии с датой рождения
k. Список людей такого же возраста (рожденных в том же году)
Понимаю что много, но помогите если сможете)...только не нужно использовать "сложные" термины, то есть надо на уровне 11 класса, но надо обязательно решить, все не могу..
Вот сколько я смог сделать:...
Program spisok;
type Data = record
Ziua: 1..31;
Luna: 1..12;
Anul: integer; end;
Persoana = record
NumePrenume: string;
DataNasterii: Data;
end;
ListaPersoane = array[1..50] of Persoana;
var a:ListaPersoane; n,i,z,l,an:integer; max,min: persoana;
begin
{Introducerea datelor in tablou}
writeln('Dati numarul de persoane'); readln(n);
For i:=1 to n do
begin
writeln('Dati datele persoanei ',i);
writeln('Numele si Prenumele '); readln(a[i].NumePrenume);
Writeln('Data nasterii '); readln(a[i].DataNasterii.ziua);
Writeln('Luna nasterii '); readln(a[i].DataNasterii.luna);
Writeln('Anul nasterii '); readln(a[i].DataNasterii.anul);
end;
{Introducerea datelor in tablou}
{Afisarea datelor din tablou}
For i:=1 to n do
begin
writeln('Datele persoanei ',i);
writeln('Numele si Prenumele ',a[i].NumePrenume);
Writeln('Data nasterii ',a[i].DataNasterii.ziua);
Writeln('Luna nasterii ',a[i].DataNasterii.luna);
Writeln('Anul nasterii ',a[i].DataNasterii.anul);
end;
{Afisarea datelor din tablou}
{Punctul a}
writeln('Ziua cautata'); readln(z);
For i:=1 to n do
if a[i].DataNasterii.ziua = z then writeln(a[i].NumePrenume);
{Punctul a}
{Punctul b}
writeln('Luna cautata'); readln(l);
For i:=1 to n do
if a[i].DataNasterii.luna = l then writeln(a[i].NumePrenume);
{Punctul b}
{Punctul c}
writeln('Anul cautat'); readln(an);
For i:=1 to n do
if a[i].DataNasterii.anul = an then writeln(a[i].NumePrenume);
{Punctul c}
{Punctul d}
For i:=1 to n do
if (a[i].DataNasterii.ziua = z) and ( a[i].DataNasterii.luna = l) and
( a[i].DataNasterii.luna = l ) then writeln(a[i].NumePrenume);
{Punctul d}
end.
Ещё вроде должны были получиться рабочими пункты e и f, но ничего не делают.., если добавить следующую часть кода перед end.
{Punctul e}
max.DataNasterii.anul := 0;
For i:=1 to n do
if a[i].DataNasterii.anul < max.DataNasterii.anul then max:=a[i];
writeln('samyy molodoy chelovek' ,max.NumePrenume);
{Punctul e}
{Punctul f}
min.DataNasterii.anul := 0;
For i:=1 to n do
if a[i].DataNasterii.anul > min.DataNasterii.anul then max:=a[i];
writeln('samyy staryy chelovek ' ,min.NumePrenume);
{Punctul f}