Const n=5; var i,q:integer; a:array [1..n] of integer; b:array [1..n] of integer; c:array [1..50] of integer; begin writeln ('Заполните первый массив'); for i:=1 to n do read (a[i]) ; writeln ('Заполните второй массив') ; for i:=1 to n do read (b[i]); for i:=1 to n do begin if i mod 2<>0 then begin q:=q+1; c[q]:=a[i]; q:=q+1; c[q]:=b[i]; end; end; for i:=1 to n do if b[i]>0 then begin q:=q+1; c[q]:=b[i]; end; if q=0 then writeln ('условие не выполняется') else begin for i:=1 to q do write (' ',c[i]); end end.
P.s. Вы можете изменять константу, и ограничивать вводимые значения вводом, но не забывайте, что первые два массива не должны превышать количество ячеек, ограниченной константой. Можно эту константу поменять, это все на ваше усмотрение. P.p.s. Программа написана на Pascal ABC.
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
1(
вотттттт лови фотки