Помощь с заданием
Не понимаю как сделать ...
Введите массив, состоящий из 10 записей, содержащих поля: ФИО, Год рождения, Пол, Признак («В» - военнообязанный, «Н» - невоеннообязанный). Вывести данные о военнообязанных юношах, достигших 18 лет в виде таблицы:
№ ФИО Год рождения
1 ------- ---------------------
2 ------- ---------------------
3 ------- ---------------------
Ответы (3 шт):
Автор решения: Valeriy M. Raznomazov
→ Ссылка
вот ваш код
program Hello;
var
A:array [0..10,0..4] of string;
i, year,year2:integer;
begin
for i:=1 to 4 do
begin
writeln ('Введите данные индивидумов');
writeln('Введите ФИО');
readln(A[i,1]);
writeln('Введите год рождения');
readln(A[i,2]);
writeln('Введите пол');
readln(A[i,3]);
writeln('Введите отношение к воинской обязанности');
readln(A[i,4])
end;
writeln ('Введите какой сегожня год');
readln(year);
for i:=1 to 4 do
begin
year2:=StrToInt(A[i,2])
If A[i,3]='М' and year-year2>18 then wrinteln(A[i,1],A[i,2],A[i,3],A[i,4])
end;
end.
Автор решения: fauX
→ Ссылка
Плохо помню паскаль, но это работает. (При необходимости доработайте)
const
len = 9;
var
arr : array[0..len] of string; //ФИО
arr2 : array[0..len] of string;//Пол
arr3 : array[0..len] of integer;//Год рождения
arr4 : array[0..len] of char;//Признак
i:integer;
count:integer;
begin
count:=1;
for i:=0 to len do
begin
readln(arr[i]);
readln(arr2[i]);
readln(arr3[i]);
readln(arr4[i]);
if (2020-arr3[i]>=18) and (arr4[i]='В') and (arr2[i]='М') then
begin
writeln(count,arr[i],arr2[i],arr3[i],arr4[i]);
inc(count);
end;
end;
writeln(arr2[0]);
end.
Автор решения: Valeriy M. Raznomazov
→ Ссылка
с рекордом будет так
program Hello;
type
S = record
fio: char;
year: integer;
sex:char;
MilitaryStatus:char;
end;
var
A: array [1..10] of S;
i, year,year2:integer;
begin
for i:=1 to 4 do
begin
writeln ('Введите данные индивидумов');
writeln('Введите ФИО');
readln(A[i].fio);
writeln('Введите год рождения');
readln(A[i].year);
writeln('Введите пол');
readln(A[i].sex);
writeln('Введите отношение к воинской обязанности');
readln(A[i].MilitaryStatus)
end;
writeln ('Введите какой сегодня год');
readln(year);
for i:=1 to 4 do
begin
year2:=year-A[i].year;
If (A[i].sex='М') and (year2>18) then writeln(A[i].fio,A[i].year,A[i].sex,A[i].MilitaryStatus);
end;
end.
при необходимости доработайте