const m=9; days:array[1..m] of 1..31=(30,31,30,31,31,29,31,30,31); Type data=record Day:integer; Mounth: integer; Year: integer; End; Var //В массиве первый индекс 1 - для девочки, 2 - для мальчика a:array[1..2,1..m]of data; i,d:integer; f1,f2:text; begin Assign(f1,'father.txt');Rewrite(f1); Assign(f2,'mother.txt');Rewrite(f2); // последняя среда сентября 30.09.15 a[1,1].Day:=30;a[1,1].Mounth:=9;a[1,1].Year:=15; // последняя пятница сентября 25.09.15 a[2,1].Day:=25;a[2,1].Mounth:=9;a[2,1].Year:=15; for i:=2 to m do begin // находим последние среды d:=(a[1,i-1].Day+28)-days[i-1]; if d+7<=days[i] then d:=d+7; a[1,i].Day:=d; a[1,i].Mounth:=(i+7) mod 12+1; a[1,i].Year:=14+(i+7) div 12+1; // находим последние пятницы d:=(a[2,i-1].Day+28)-days[i-1]; if d+7<=days[i] then d:=d+7; a[2,i].Day:=d; a[2,i].Mounth:=(i+7) mod 12+1; a[2,i].Year:=14+(i+7) div 12+1; end; for i:=1 to m do begin with a[1,i] do if Day mod 2 = 0 then writeln(f1,Day,'.',Mounth,'.',Year,' - 1 класс') else writeln(f2,Day,'.',Mounth,'.',Year,' - 1 класс'); with a[2,i] do if Day mod 2 = 0 then writeln(f1,Day,'.',Mounth,'.',Year,' - 5 класс') else writeln(f2,Day,'.',Mounth,'.',Year,' - 5 класс'); end; Close(f1); Close(f2); end. Файл father.txt: 30.9.15 - 1 класс 28.10.15 - 1 класс 30.10.15 - 5 класс 30.12.15 - 1 класс 24.2.16 - 1 класс 26.2.16 - 5 класс 30.3.16 - 1 класс Файл mother.txt 25.9.15 - 5 класс 25.11.15 - 1 класс 27.11.15 - 5 класс 25.12.15 - 5 класс 27.1.16 - 1 класс 29.1.16 - 5 класс 25.3.16 - 5 класс 27.4.16 - 1 класс 29.4.16 - 5 класс 25.5.16 - 1 класс 27.5.16 - 5 класс