Мегаобучалка Главная | О нас | Обратная связь


Задание: изучите представленный материал и составьте в тетради конспект



2015-11-11 417 Обсуждений (0)
Задание: изучите представленный материал и составьте в тетради конспект 0.00 из 5.00 0 оценок




Циклы

Цикл - это многократно повторяющаяся последовательность действий. Первый цикл, с которым мы познакомимся в этом уроке называется While...Do (делай пока верно условие).

Синтаксис:

While условие Do
begin

 

//тело цикла
end;

Сейчас нам нужно открыть Delphi и создать новый проект. Кидаем на форму компоненты Button и Label:

 

Создаем на кнопке процедуру OnClick и первое, что нам надо сделать - это ввести переменную A типа Integer:

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

 

begin
...

Теперь между ключевыми словами begin и end установим значение переменной A равное 1:

A:=1;

И сейчас мы напишем сам цикл, с условием A<>100, то есть пока A не равно 100 будет выполняться цикл.
Если же А = 100 - цикл остановится:

While A<>100 do
begin

 

//Тело цикла
end;

Далее, нам нужно что-то сделать в теле цикла. Давайте будем увеличивать значение переменной A на единицу и выводить значение переменной в Label. Вместо комментария (//Тело цикла) мы напишем:

A:=A+1;
Label1.Caption:=IntToStr(A);

Общий вид кода:

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

 

begin
A:=1; //Присваеваем единицу

 

While A <> 100 do //Пока А не равно 100 - делаем
begin

 

A:=a+1; //прибавляяем единицу
Label1.Caption:=IntToStr(a); //Выводим значение А

 

end;
end;

Компилируем программу, нажимаем на кнопку и видим, что лабел показывает нам сотню. Но почему сразу сотню? Почему не 1,2,3,4 и так до ста. Дело в том, что цикл выполняется на столько быстро, что мы не замечаем как лабел выводит нам сначала 1 потом 2 и потом 3. По этому мы видим только сотню - конечный результат. Кто-то может подумать, что так не интересно :). Хорошо, сейчас сделаем так, чтобы видеть как Delphi выполняет цикл.

Дописываем после строки

Label1.Caption:=IntToStr(a);

Вот эти две строчки

Application.ProcessMessages;
sleep(100);

Они делают следующие:

  • Application.HandleMessage - это метод, позволяющий выводить значения переменных во время работы цикла. Не смотря на то, что мы и так выводим переменную в лабел, этот метод необходим.

 

  • sleep(100); - функция Sleep() говорит программе, что нужно поспать, как бы заморозиться на какое-то количество миллисекунд. Миллисекунды указываются в скобках. В секунде 1000 миллисекунд.

Общий вид кода:

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

 

begin
A:=1; //Присваеваем единицу

 

While A <> 100 do //Пока А не равно 100 - делаем
begin

 

A:=a+1; //прибавляяем единицу
Label1.Caption:=IntToStr(a); //Выводим значение А

 

Application.ProcessMessages;
sleep(100);

 

end;
end;

Компилируйте и проверяйте.

С циклом While мы закончили, теперь разберем цикл со счетчиком или другое его название For...To...Do. Данный цикл удобно применять, когда нам точно известно кол-во повторений.

Синтаксис:

For переменная счетчик:=Выражение №1 To выражение №2 Do
begin

 

//тело цикла
end;

Этот цикл называется со счетчиком, потому что он сам увеличивает переменную счетчик на единицу.

Первым делом нам нужно добавить переменную S типа Integer.

procedure TForm1.Button1Click(Sender: TObject);
var A, S:integer;

 

begin
...

Далее, пишем программу, которая будет считать сумму чисел от 1 до 100.
То есть имеется ряд чисел 1 2 3 4 5 6 7 ... 100.
Программа будет складывать эти числа между собой, то есть 1+2+3+4+5+6+7+...+100.

Стираем цикл While и пишем цикл For, но перед ним присвойте переменной S ноль:

For A:=1 to 100 do
begin

 

//Тело цикла
end;

Этот цикл повторит действия в теле 100 раз.

В тело цикла мы запишем:

S:=s+a;

Программа будет считать сумму чисел от 1 до 100, прибавляя к переменной S переменную счетчик A.

И после цикла выводим результат в лабел.

Label1.Caption:=IntToStr(S);

 

Общий вид:

procedure TForm1.Button1Click(Sender: TObject);
var A, S:integer;

 

begin
S:=0; //Присваеваем ноль

 

For A:=1 to 100 do
begin

 

S:=s+a; //Вычисления
end;

 

Label1.Caption:=IntToStr(S);
end;

У цикла For есть цикл двойник, он может считать в обратном порядке. Для этого нужно изменить ключевое слово To на DownTo

Пример той же самой программы, но с обратным счетчиком:

procedure TForm1.Button1Click(Sender: TObject);
var A, S:integer;

 

begin
S:=0; //Присваеваем ноль

 

For A:=100 downto 1 do
begin

 

S:=s+a; //Вычисления
end;

 

Label1.Caption:=IntToStr(S);
end;

Далее. Знакомимся с циклом Repeat.

Синтаксис:

Repeat
//Тело цикла

 

Until условие;

Этот цикл сначала выполняет действие, а потом проверяет условие. Цикл выполниться в любом случае хотя бы один раз.

Стираем цикл For в нашей программе и пишем цикл Repeat:

procedure TForm1.Button1Click(Sender: TObject);
var A, S:integer;

 

begin
S:=0; //Присваеваем ноль

 

a:=0;
 

 

Repeat
a:=a+1;

 

S:=s+a; //Вычисления
Until a=100; //цикл будет выполняться пока a не достигнет 100

 

 
Label1.Caption:=IntToStr(S);

 

end;

Эта программа выполнит тоже самое что и предыдущая.

Ну вот мы и закончили обучение циклам! Сейчас выучим 2 команды для управления ими.

Сразу приведу пример программы, а потом прокомментирую что и как в ней работает:

procedure TForm1.Button1Click(Sender: TObject);
var A, S:integer;

 

begin
S:=0; //Присваеваем ноль

 

For A:=1 to 1000 do
begin

 

S:=s+a; //Вычисления
if S>100 then break else continue;

 

end;
Label1.Caption:=IntToStr(S);

 

end;

В теле цикла присутствует условие, которое проверяет переменную S. Если S больше 100, то мы экстренно выходим из цикла при помощи команды break, иначе продолжаем цикл командой continue.


Задание на закрепление: напишите программу, которая вычислит сумму двухзначных чисел и выведет ее в Label.

 



2015-11-11 417 Обсуждений (0)
Задание: изучите представленный материал и составьте в тетради конспект 0.00 из 5.00 0 оценок









Обсуждение в статье: Задание: изучите представленный материал и составьте в тетради конспект

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...
Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (417)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)