Ваша первая программа на Pascal
У попа была собака
Для тех, кто не знает, привожу полный текст стихотворения:
У попа была собака
Он ее любил
Она съела кусок мяса
Он ее убил и на камне написал:
А дальше по кругу то же самое.
Конечно его можно было бы проще напечатать с помощью цикла но это не интересно. Рекурсия больше отвечает духу стихотворения. Конечный цикл рано или поздно закончится, т.е. не не выполнит задание до конца, а бесконечный подразумевает бессмысленность труда автора (попа), поскольку какой смысл трудиться, точно зная, что стихотворение никогда не будет написано до конца? С рекурсией дело хитрее. Вызывая в который раз саму себя, функция считает, что скоро будет конец, что в ближайшем вызове дело закончится полным успехом. А чтобы во время печати не пришлось ждать слишком долго, пусть программа продолжается до тех пор, пока не будет нажата какая-нибудь клавиша.
program pop;
uses crt;
procedure absaz(c:word);{ Процедура,
печатающая один абзац }
{ В качестве параметра цвет абзаца }
begin
textcolor(c);
writeln(' У попа была собака');
writeln(' Он ее любил');
writeln(' Она съела кусок мяса');
writeln(' Он ее убил');
writeln(' И на камне написал:');
delay(500);{ Задержка перед выводом
следующего абзаца }
if not keypressed then absaz((c+1)mod 15+1);
{ Продолжать, пока не нажата клавиша }
end;
begin
clrscr;
absaz(1);
readkey;
end.
Сайт создан в системе uCoz