В 4.11 я учил вас использовать в программе не числа, а переменные величины. Однако, впоследствие при написании простеньких программ сам же этому принципу не следовал, чтобы не отвлекать ваше внимание на запоминание имен переменных. Теперь пришла пора показать, почему же все-таки полезно вместо чисел употреблять переменные.
Вот программа для задания 3 из 9.7 выше для бесконечного движения окружности влево-вправо. В ней этот принцип пока не соблюдается.
USES Graph;
VAR x, Device, Mode :Integer;
BEGIN
Device:=0;
InitGraph(Device, Mode, ’<путь к графическим драйверам>’);
ReadLn;
repeat {Внешний цикл для
бесконечности отскоков}
{ Движение
направо:}
x:=40; {Начинаем перемещение из левой части экрана}
repeat {Вложенный цикл для
движения направо}
SetColor(White);
Circle(x,100,10); {Рисуем белую окружность}
SetColor(Black);
Circle(x,100,10); {Рисуем черную окружность}
x:=x+2 {Перемещаемся немного направо}
until x>600; {пока не упремся
в правый край экрана}
{ Движение
налево:}
x:=600; {Начинаем перемещение из правой части экрана }
repeat {Вложенный цикл для
движения налево}
SetColor(White);
Circle(x,100,10); {Рисуем белую окружность}
SetColor(Black);
Circle(x,100,10); {Рисуем черную окружность}
x:=x-2 {Перемещаемся немного налево}
until x<40 {пока не упремся в
левый край экрана}
until 8>9 {Невыполнимое
условие, чтобы цикл выполнялся бесконечно}
END.
Предположим, мы хотим, чтобы шарик летал в три раза быстрее. Для этого нам достаточно в двух местах программы вместо 2 написать 6. Вот то-то и неудобно, что в двух, а не в одном. Слишком много труда. В нашей программе это, конечно, пустяк, а вот в больших и сложных программах одна и та же величина может встречаться десятки раз, и чтобы ее изменить, придется вносить десятки исправлений.
Теперь напишем вариант той же программы, но с использованием переменных величин:
USES Graph;
VAR x, Device, Mode, lev, prav, shag : Integer;
BEGIN
Device:=0;
InitGraph(Device, Mode, ’<путь к графическим драйверам>’);
ReadLn;
lev:=40; prav:=600; shag:=2;
repeat
x:=lev;
repeat
SetColor(White);
Circle(x,100,10);
SetColor(Black);
Circle(x,100,10);
x:=x+shag
until x>prav;
x:=prav;
repeat
SetColor(White);
Circle(x,100,10);
SetColor(Black);
Circle(x,100,10);
x:=x-shag
until x<lev
until 8>9
END.
Теперь для того, чтобы изменить скорость шарика, достаточно заменить 2 на 6 только в одном месте.
Вторая причина, по которой мы используем переменные, та, что с ними программа становится понятнее, так как имена переменным мы придумываем, исходя из их смысла.
Скачано с www.znanio.ru
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.