Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Delphi для чайников, или как научиться программировать Циклический алгоритм


Информационный Канал Subscribe.Ru

"Эверест"- Центр практической информатики


"Эверест" - Центр Практической Информатики

представляет вводный курс

"Delphi для чайников"

Здравствуйте, уважаемые подписчики!

Мы начинаем вторую часть нашего курса "Создаем свою первую игру в Delphi".

Данный курс рассчитан на людей уже попробывавших свои силы в этой системе программирования и знакомого с простейшими операциями.

Тем же, кто еще не работал в Delphi или не пробовал писать игры, я рекомендую нашу рассылку, вернее ее первую часть по адресу: http://umnik.rikt.ru/everest/distant/delphi.htm

 

Наша задача: научиться использовать в своих программах циклы и массивы, научиться писать небольшие игрушки с использованием этих конструкций.

 

Урок 1. Циклический алгоритм.

В качестве эпиграфа- анекдот:

Не пришел на работу программист. Начальник забеспокоился и послал к нему домой сотрудника. Тот приходит, заходит в ванную и видит такую картину: вконец замученный программист сидит в ванне, моет шампунем голову и матерится: "Да когда-же это кончится". Ничего не понимающий сотрудник берет бутылек с шампунем и читает инструкцию по пользованию. А там написано: "Выдавить небольшое количество шампуня на руку, нанести на мокрую голову, промыть. Затем повторить."

 

До сих пор мы писали программы с помощью линейных и разветвляющихся алгоритмов. Однако часто мы имеем дело с событиями, в ходе которых одно и то же действие (или набор действий) повторяется, пока не окажется выполненным некоторое условие.

Например, мы идём. Как? Левой-правой, левой-правой, пока не придём. Это и есть цикл.
Закручивай гайку, пока не закрутишь.

Определение: Алгоритм, многократно выполняющий одну и ту же последовательность
действий, называется циклическим.

Задача: Сделать так, чтобы кнопка пропрыгала форму слева направо через 50 точек.

Как бы решали эту задачу ранее? Поставили на форму кнопку Button1 и таймер. И в обработчике события таймера написали бы:
button1.Left:= button1.Left+50;

И программа будет работать. Потому что таймер тоже выполняет циклический алгоритм: каждый раз через определенный промежуток времени, он проделывает одни и те же операции.

Однако использование этого способа не всегда разумно. Почему?
1. В программах используются иногда несколько десятков циклов. Представьте себе несколько десятков таймеров на форме.
2. Таймер предназначен для более серьезных вещей, соответственно он требует больше ресурсов, т.е. "более тяжелый"…
3. Не каждую задачу можно решить таким способом.

Операторы цикла в Delphi.


Для программирования повторяющихся алгоритмов в Delphi предусмотрено аж 3 различных оператора: цикл for (с известным числом повторений), цикл while (с предусловием) и цикл repeat (с постусловием)

Сегодня разберемся с первым.

1. Оператор For (для) - оператор с известным числом повторений.

Структура оператора такова:
For i:=1 to n do (переменная i должны быть зарегистрирована как integer).
Begin
Операторы
End;
Вместо n Вы ставите число- сколько раз должен выполниться цикл.


Например, я хочу, чтобы кнопка прыгнула 10 раз через 50 точек. Тогда моя программа выглядит так:

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin

for i:=1 to 10 do // 10 раз нужно выполнить то, что находится между begin и end
begin
button1.Left:= button1.Left+50;
sleep(250);
//ставим паузу 250 милисекунд- 1/4 секунды
application.ProcessMessages(); //оператор выполнения задач
end;
end;

Почему нельзя обойтись только одной строчкой: button1.Left:= button1.Left+50;?
Попробуйте…Вы увидите начало и конец выполнения процедуры. Почему?

Дело в том, что в программировании для Windows имеет свои особенности. Windows ждет, пока накопятся задачи в очереди, а не выполняет их сразу. Для того чтобы заставить выполнить все задачи, которые накопились в данный момент, служит процедура Application.ProcessMessages()
Запомните эту процедуру наизусть, она весьма полезна..

Наберите эти операторы, проверьте работу программы.

На следующем уроке мы продолжим свою первую программу в Delphi.

Самостоятельно: помотрите наш предыдущий курс, найдите программы, которые проще выполнить с помощью циклов.

Скачать этот урок в формате Word и посмотреть архив данной рассылки, Вы сможете на нашем сайте по адресу: http:// umnik.rikt.ru/everest/distant/delphi.htm



http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphieverest
Отписаться

В избранное