Program Mechanicle; Uses CRT; Var n,d,a, S3, S5: LongInt; {Рождено, Погибло, Общее, Альянсы по 3 и 5 киборгов} Age1, Age2, Age3: LongInt; {Возраст роботов} F, i: Byte; {Роботы без альянса} Procedure PRINT; Begin ClrScr; Writeln('Сводка: '); Writeln(' Всего Рождено Погибло Год '); Writeln(a:7,' ',n:7,' ',d:6,' ',i:4,#13#10); Writeln('Детали:'); Writeln('Роботов молодых (1 год): ',Age1); Writeln('Роботов зрелых (2 года): ',Age2); Writeln('Роботов старых (3 года): ',Age3,#13#10); Writeln(S5, ' альянсов по 5 создали ',S5 * 9,' роботов'); Writeln(S3, ' альянсов по 3 создали ',S3 * 5,' роботов'); Writeln(F, ' не входили в альянс',#13#10); Writeln('Итого родилось : ',n); Writeln('Итого сломалось: ',d,#13#10); If (a >= MaxLongint) then Writeln('Планета перенаселена. Началась война.'); End;
Procedure Offspring; Begin Print; S5 := a DIV 5; S3 := (a MOD 5) DIV 3; F := (a MOD 5) MOD 3; n := (S5 * 9) + (S3 * 5); d := Age3; Age3 := Age2; Age2 := Age1; Age1 := n; a := a - d + n; End;
Begin ClrScr; Write('Введите количество роботов в начальный момент времени: '); Readln(a); Age1 := a; While True do Begin Inc(i); Offspring; If (Readkey = #27) then Break; End; End.