SlideShare a Scribd company logo
Delphi.
2. Программирование алгоритмов с ветвлениями и циклами. 
План темы: 
1. Понятие ветвления в алгоритме. 
2. Условные операторы IF и CASE. 
3. Понятие цикла в алгоритме. 
4. Операторы повтора FOR, WHILE и 
REPEAT. 
5. Компоненты CheckBox, RadioGroup, 
Memo. 
6. Примеры программирования ветвлений 
и циклов.
1. Понятие ветвления в алгоритме. 
Ветвление - выбор одного из двух 
предложенных вариантов действий, в 
зависимости от результата проверки 
условия: 
Да Нет 
Условие ? 
Команда 1 Команда 2
Для записи ветвления в программе применяются условные 
операторы. 
В Pascal имеются два условных оператора: 
IF (Если) и CASE (Выбор). 
Формат оператора IF: 
IF <условие> THEN 
<оператор1> 
[ELSE <оператор2>]; 
Часть ELSE может отсутствовать. Перед ELSE точка с запятой 
не ставится. 
Условие - это выражение булевского (логического) типа. 
Результат проверки условия может быть ИСТИНО (TRUE) 
или ЛОЖНО (FALSE). 
Если значение условия ИСТИНО, то выполняется 
<оператор1>, иначе выполняется <оператор2>. 
Операторы IF могут быть вложенными, т. е. внутри одного 
может содержаться другой.
Оператор выбора CASE позволяет сделать выбор из произвольного 
числа имеющихся вариантов действий. Он состоит из выражения, 
называемого селектором, и списка операторов, каждому из которых 
предшествует список констант выбора (список констант может 
состоять из одной, или из нескольких констант, или указывать 
диапазон значений). 
Формат: 
CASE <выражение-селектор> OF 
<значение 1>: <оператор 1>; 
<значение 2>: <оператор 2 >; 
. . . 
<значение N>: <оператор N> 
[ ELSE <оператор> ] 
END; 
Оператор CASE работает следующим образом. Сначала 
вычисляется значение выражения-селектора, затем обеспечивается 
реализация того оператора, константа выбора которого равна 
текущему значению селектора.
Пример программирования ветвления. 
• Определить положение точки с координатами (x, y) 
относительно прямой y = 2x + 1. 
var x, y: Real; 
s: string; 
Begin 
… 
s:=‘Ответ: точка лежит ‘; 
If y = 2*x + 1 then s:=s+‘на ’ 
else If y > 2 * x + 1 then s:=s+‘выше ’ 
else s:=s+‘ниже ’; 
s:=s+‘ прямой.’; 
… 
End.
3. Понятие цикла в алгоритме. 
Цикл - выполнение группы операторов 
(тела цикла) несколько раз: 
Да Нет 
Условие ? 
Тело цикла
Для организации циклов различных типов используются Операторы 
повтора (или цикла) FOR, REPEAT, WHILE. 
Оператор цикла с параметром FOR состоит из заголовка и тела цикла. Он 
может быть представлен в двух форматах: 
FOR <параметр цикла> := <S1> TO <S2> DO <оператор>; 
FOR <параметр цикла> := <S1> DOWNTO <S2> DO <оператор>; 
S1 и S2 - выражения, определяющие соответственно начальное и конечное 
значения параметра цикла. FOR ... DO - заголовок цикла, <оператор> - 
тело цикла. Тело цикла может быть простым или составным оператором. 
Оператор FOR обеспечивает выполнение тела цикла до тех пор, пока не 
будут перебраны все значения параметра цикла от начального до 
конечного с шагом изменения равным единице. 
Примеры: 
FOR I:= 1 TO 10 DO S:=S+I; { вычисление суммы } 
FOR I:= 10 DOWNTO 1 DO P:=P*I; { вычисление произведения }
Оператор цикла с постусловием REPEAT состоит из заголовка 
REPEAT, тела и условия окончания UNTIL. 
Формат: 
REPEAT 
<оператор;> 
... 
<оператор> 
UNTIL <условие>; 
Операторы, заключенные между словами REPEAT и UNTIL, 
являются телом цикла. Вначале выполняется тело цикла, 
затем проверяется условие выхода из цикла. Если результат 
проверки условия равен False, то тело цикла выполняеся еще 
раз, если результат True - происходит выход из цикла. По 
крайней мере один из операторов тела цикла должен влиять 
на значение условия, иначе цикл будет выполняться 
бесконечно.
Оператор цикла с предусловием WHILE аналогичен оператору 
REPEAT, но проверка условия выполнения тела цикла 
производится в самом начале оператора. 
Формат: 
WHILE <условие> DO 
<тело цикла>; 
Условие - логическое выражение, тело цикла - простой или 
составной оператор. 
Перед каждым выполнением тела цикла вычисляется значение 
выражения условия. Если результат равен True, тело цикла 
выполняется и снова вычисляется выражение условия. Если 
результат равен False, происходит выход из цикла и переход к 
первому после WHILE оператору. 
Когда заранее неизвестно количество повторений цикла, то удобней 
применять операторы While или Repeat. Когда число повторений 
известно заранее, то удобней применять оператор For.
Пример программирования цикла. 
• Вычислить значение суммы: 1 + 1/4 + 1/9 + 1/16 + … с 
точностью 0,001. 
var S, a: Real; 
i: Integer; 
Begin 
S := 1; 
i := 2; 
Repeat 
a := 1/sqr( i ); 
S := S + a; 
i := i + 1; 
Until a<=0.001; 
{Вывести значение S} 
End.
5. Компоненты CheckBox, RadioGroup, Memo. 
• Независимые переключатели (check boxes) 
используются для установки параметров, 
характеризуемых двумя значениями — “Да” или 
“Нет” (True - False). Независимые переключатели 
создаются с помощью компонента CheckBox.
5. Компоненты CheckBox, RadioGroup, Memo. 
• Основные свойства компонента CheckBox: 
Alignment Определяет, с какой стороны от 
переключателя находится текст: taRightJustify 
- справа, taleftJustify - слева. 
Caption Текст рядом с переключателем. 
Checked Определяет, включен (True), или выключен 
(False) переключатель.
5. Компоненты CheckBox, RadioGroup, Memo. 
• Зависимые переключатели (radio buttons) 
служат для установки взаимоисключающих 
параметров. Они обычно объединяются в 
группы и позволяют пользователю выбрать 
одно значение из фиксированного множества 
альтернатив. При включении одного 
зависимого переключателя остальные 
переключатели этой же группы выключаются. 
• В отдельности каждый зависимый 
переключатель представляется компонентом 
RadioButton (раздел Standard).
5. Компоненты CheckBox, RadioGroup, Memo. 
• Основные свойства компонента RadioButton: 
Alignment Определяет, с какой стороны от 
переключателя находится текст: taRightJustify 
- справа, taleftJustify - слева. 
Caption Текст рядом с переключателем. 
Checked Определяет, включен (True), или выключен 
(False) переключатель.
5. Компоненты CheckBox, RadioGroup, Memo. 
• Зависимые переключатели как правило 
объединяются в группы. Для быстрой организации 
группы зависимых переключателей очень удобен 
компонент RadioGroup (раздел Standard). 
• Компонент RadioGroup удобен тем, что заменяет 
группу компонентов RadioButton.
5. Компоненты CheckBox, RadioGroup, Memo. 
•Основные свойства компонента RadioGroup: 
Alignment Способ выравнивания группы зависимых 
переключателей в пределах владельца. 
Caption Подпись к группе зависимых переключателей. 
Columns Число колонок в группе зависимых 
переключателей. 
ItemIndex Номер выбранного элемента, начиная с нуля. 
Если все переключатели находятся в 
выключенном состоянии, то значение свойства 
равно -1. 
Items Массив переключателей и подписей к ним 
(нумерация начинается с нуля).
5. Компоненты CheckBox, RadioGroup, Memo. 
- Компонент Memo (раздел Standard) 
похож на Edit, но в отличие от него 
хранит не одну строку текста, а 
множество строк.
5. Компоненты CheckBox, RadioGroup, Memo. 
-Доступ к строкам обеспечивает свойство 
Lines, представляющее собой массив 
строк. Нумерация строк начинается с 
нуля. Пример: 
Memo1.Lines[i]:=IntToStr(i) 
- Свойство Lines доступно также из 
«Инспектора Объектов», поэтому на 
стадии проектирования можно заполнить 
компонент Memo некоторыми исходными 
данными.
5. Компоненты CheckBox, RadioGroup, Memo. 
- Текущее количество строк в Memo 
содержится в свойстве Lines.Count 
(учитываются и пустые строки). 
Пример: 
For i:=0 to Memo1.Lines.Count-1 do 
Memo1.Lines[i]:=IntToStr(i); 
- В свойстве ScrollBars определяется 
наличие вертикальной и 
горизонтальной полос прокрутки в 
компоненте Memo.
5. Компоненты CheckBox, RadioGroup, Memo. 
- Строки можно добавлять, вставлять, 
удалять при помощи соответствующих 
методов: 
Memo1.Lines.Clear; - очистить всё 
содержимое. 
Memo1.Lines.Delete(n); - удалить строку с 
номером n. 
Memo1.Lines.Add(строка); - добавить 
строку. 
Memo1.Lines.Insert(n,строка) – 
вставить строку перед n-й строкой.

More Related Content

PPT
02 if for
PPTX
Statements in VHDL - Concurrent Statements
PPSX
scanf(). Операторы ветвления. Тернарный оператор. switch
PPTX
Subprograms in VHDL, Functions in VHDL
PPTX
Statements in VHDL - Sequential Statements
PPTX
Subprograms in VHDL, Procedures in VHDL
PDF
Релиз PHP7 - что нас ждет в октябре 2015
PPTX
Java весна 2013 лекция 4
02 if for
Statements in VHDL - Concurrent Statements
scanf(). Операторы ветвления. Тернарный оператор. switch
Subprograms in VHDL, Functions in VHDL
Statements in VHDL - Sequential Statements
Subprograms in VHDL, Procedures in VHDL
Релиз PHP7 - что нас ждет в октябре 2015
Java весна 2013 лекция 4

What's hot (18)

PPTX
PDF
Scala lecture #4
PPTX
операторы цикла
PPTX
Structural project description in VHDL
PPT
PPT
PPT
Операторы в Turbo Pascal
PPT
практика 4
PDF
Преобразования типов. Операторы ветвления
PDF
Типы данных (продолжение). Операторы. Стандартные библиотеки
PPTX
Урок 6. Чистое лямбда-исчисление.
PDF
Функциональное программирование и Clojure
PPTX
Basic principles of projects description in VHDL - ENTITY, ARCHITECTURE, LIBR...
PPTX
обработка исключений в Java
PPT
22 pascal urok_6
PPT
презентация лр № 1 091214 v1
ODP
PPT
язык програмирования
Scala lecture #4
операторы цикла
Structural project description in VHDL
Операторы в Turbo Pascal
практика 4
Преобразования типов. Операторы ветвления
Типы данных (продолжение). Операторы. Стандартные библиотеки
Урок 6. Чистое лямбда-исчисление.
Функциональное программирование и Clojure
Basic principles of projects description in VHDL - ENTITY, ARCHITECTURE, LIBR...
обработка исключений в Java
22 pascal urok_6
презентация лр № 1 091214 v1
язык програмирования
Ad

Viewers also liked (19)

PPT
Trpo 12 управление качеством
PPTX
інтегровані уроки
PDF
CV_Mohit Upadhyay
PPT
12 dialog
PPTX
Matthewrogers
PPT
10 date time
PPT
PPT
Компонентів
PPT
08 set
PPT
Trpo 5 треьования_модели
PPT
Trpo 9 управление проектами
PPT
сапр
PPT
ппс
PPSX
Pepe yeans
PPT
07 string
PDF
Major project
PDF
Summer Training Report
PPT
Slow learners presentation
Trpo 12 управление качеством
інтегровані уроки
CV_Mohit Upadhyay
12 dialog
Matthewrogers
10 date time
Компонентів
08 set
Trpo 5 треьования_модели
Trpo 9 управление проектами
сапр
ппс
Pepe yeans
07 string
Major project
Summer Training Report
Slow learners presentation
Ad

Similar to 02 if for (20)

PPTX
Базовые операторы Java
PPT
цикл в блог
PPT
алгоритмическая структура «цикл»
PPT
Java. Переменные, типы данных, операторы
PDF
Настрой контент под пользователя!
PDF
информатика лекции 4
PPT
03_JavaBasicConstructionsAndDatatypes
PPS
javascript
PPS
javascript_part1
PPTX
PPTX
PPTX
8 оператор цикла с параметром
PPT
практика 1
PPTX
исполнитель
PPTX
8 простые и составные условия
PPT
Алгоритмизация
PPT
Конструирование алгоритмов
PPTX
Оптимизация трассирования с использованием Expression templates
PPTX
Оптимизация трассирования с использованием Expression templates
PPT
Теория. Сложные условия в операторе сравнения
Базовые операторы Java
цикл в блог
алгоритмическая структура «цикл»
Java. Переменные, типы данных, операторы
Настрой контент под пользователя!
информатика лекции 4
03_JavaBasicConstructionsAndDatatypes
javascript
javascript_part1
8 оператор цикла с параметром
практика 1
исполнитель
8 простые и составные условия
Алгоритмизация
Конструирование алгоритмов
Оптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templates
Теория. Сложные условия в операторе сравнения

More from pogromskaya (20)

PPTX
електронні матеріали
PDF
Проектування реляційних БД
PDF
Моделі даних в БД. ER-діаграми
PDF
Реляційна модель БД
PPT
САПР_СALS
PPT
ікт
PPT
Розгортання
PPT
Прецедентів
PPT
Діяльності
PPT
Взаємодії
PPT
Станів
PPT
Введення Uml
PPT
Класів
PPS
ПВПС
PPT
Trpo 3 создание_по2
PPT
Trpo 1 введение
PPT
Trpo 2 создание по
PPT
Trpo 10 управление персоналом
PPT
Trpo 11 оценка_стоимости
PPT
Trpo 8 проект_инерфейса
електронні матеріали
Проектування реляційних БД
Моделі даних в БД. ER-діаграми
Реляційна модель БД
САПР_СALS
ікт
Розгортання
Прецедентів
Діяльності
Взаємодії
Станів
Введення Uml
Класів
ПВПС
Trpo 3 создание_по2
Trpo 1 введение
Trpo 2 создание по
Trpo 10 управление персоналом
Trpo 11 оценка_стоимости
Trpo 8 проект_инерфейса

02 if for

  • 2. 2. Программирование алгоритмов с ветвлениями и циклами. План темы: 1. Понятие ветвления в алгоритме. 2. Условные операторы IF и CASE. 3. Понятие цикла в алгоритме. 4. Операторы повтора FOR, WHILE и REPEAT. 5. Компоненты CheckBox, RadioGroup, Memo. 6. Примеры программирования ветвлений и циклов.
  • 3. 1. Понятие ветвления в алгоритме. Ветвление - выбор одного из двух предложенных вариантов действий, в зависимости от результата проверки условия: Да Нет Условие ? Команда 1 Команда 2
  • 4. Для записи ветвления в программе применяются условные операторы. В Pascal имеются два условных оператора: IF (Если) и CASE (Выбор). Формат оператора IF: IF <условие> THEN <оператор1> [ELSE <оператор2>]; Часть ELSE может отсутствовать. Перед ELSE точка с запятой не ставится. Условие - это выражение булевского (логического) типа. Результат проверки условия может быть ИСТИНО (TRUE) или ЛОЖНО (FALSE). Если значение условия ИСТИНО, то выполняется <оператор1>, иначе выполняется <оператор2>. Операторы IF могут быть вложенными, т. е. внутри одного может содержаться другой.
  • 5. Оператор выбора CASE позволяет сделать выбор из произвольного числа имеющихся вариантов действий. Он состоит из выражения, называемого селектором, и списка операторов, каждому из которых предшествует список констант выбора (список констант может состоять из одной, или из нескольких констант, или указывать диапазон значений). Формат: CASE <выражение-селектор> OF <значение 1>: <оператор 1>; <значение 2>: <оператор 2 >; . . . <значение N>: <оператор N> [ ELSE <оператор> ] END; Оператор CASE работает следующим образом. Сначала вычисляется значение выражения-селектора, затем обеспечивается реализация того оператора, константа выбора которого равна текущему значению селектора.
  • 6. Пример программирования ветвления. • Определить положение точки с координатами (x, y) относительно прямой y = 2x + 1. var x, y: Real; s: string; Begin … s:=‘Ответ: точка лежит ‘; If y = 2*x + 1 then s:=s+‘на ’ else If y > 2 * x + 1 then s:=s+‘выше ’ else s:=s+‘ниже ’; s:=s+‘ прямой.’; … End.
  • 7. 3. Понятие цикла в алгоритме. Цикл - выполнение группы операторов (тела цикла) несколько раз: Да Нет Условие ? Тело цикла
  • 8. Для организации циклов различных типов используются Операторы повтора (или цикла) FOR, REPEAT, WHILE. Оператор цикла с параметром FOR состоит из заголовка и тела цикла. Он может быть представлен в двух форматах: FOR <параметр цикла> := <S1> TO <S2> DO <оператор>; FOR <параметр цикла> := <S1> DOWNTO <S2> DO <оператор>; S1 и S2 - выражения, определяющие соответственно начальное и конечное значения параметра цикла. FOR ... DO - заголовок цикла, <оператор> - тело цикла. Тело цикла может быть простым или составным оператором. Оператор FOR обеспечивает выполнение тела цикла до тех пор, пока не будут перебраны все значения параметра цикла от начального до конечного с шагом изменения равным единице. Примеры: FOR I:= 1 TO 10 DO S:=S+I; { вычисление суммы } FOR I:= 10 DOWNTO 1 DO P:=P*I; { вычисление произведения }
  • 9. Оператор цикла с постусловием REPEAT состоит из заголовка REPEAT, тела и условия окончания UNTIL. Формат: REPEAT <оператор;> ... <оператор> UNTIL <условие>; Операторы, заключенные между словами REPEAT и UNTIL, являются телом цикла. Вначале выполняется тело цикла, затем проверяется условие выхода из цикла. Если результат проверки условия равен False, то тело цикла выполняеся еще раз, если результат True - происходит выход из цикла. По крайней мере один из операторов тела цикла должен влиять на значение условия, иначе цикл будет выполняться бесконечно.
  • 10. Оператор цикла с предусловием WHILE аналогичен оператору REPEAT, но проверка условия выполнения тела цикла производится в самом начале оператора. Формат: WHILE <условие> DO <тело цикла>; Условие - логическое выражение, тело цикла - простой или составной оператор. Перед каждым выполнением тела цикла вычисляется значение выражения условия. Если результат равен True, тело цикла выполняется и снова вычисляется выражение условия. Если результат равен False, происходит выход из цикла и переход к первому после WHILE оператору. Когда заранее неизвестно количество повторений цикла, то удобней применять операторы While или Repeat. Когда число повторений известно заранее, то удобней применять оператор For.
  • 11. Пример программирования цикла. • Вычислить значение суммы: 1 + 1/4 + 1/9 + 1/16 + … с точностью 0,001. var S, a: Real; i: Integer; Begin S := 1; i := 2; Repeat a := 1/sqr( i ); S := S + a; i := i + 1; Until a<=0.001; {Вывести значение S} End.
  • 12. 5. Компоненты CheckBox, RadioGroup, Memo. • Независимые переключатели (check boxes) используются для установки параметров, характеризуемых двумя значениями — “Да” или “Нет” (True - False). Независимые переключатели создаются с помощью компонента CheckBox.
  • 13. 5. Компоненты CheckBox, RadioGroup, Memo. • Основные свойства компонента CheckBox: Alignment Определяет, с какой стороны от переключателя находится текст: taRightJustify - справа, taleftJustify - слева. Caption Текст рядом с переключателем. Checked Определяет, включен (True), или выключен (False) переключатель.
  • 14. 5. Компоненты CheckBox, RadioGroup, Memo. • Зависимые переключатели (radio buttons) служат для установки взаимоисключающих параметров. Они обычно объединяются в группы и позволяют пользователю выбрать одно значение из фиксированного множества альтернатив. При включении одного зависимого переключателя остальные переключатели этой же группы выключаются. • В отдельности каждый зависимый переключатель представляется компонентом RadioButton (раздел Standard).
  • 15. 5. Компоненты CheckBox, RadioGroup, Memo. • Основные свойства компонента RadioButton: Alignment Определяет, с какой стороны от переключателя находится текст: taRightJustify - справа, taleftJustify - слева. Caption Текст рядом с переключателем. Checked Определяет, включен (True), или выключен (False) переключатель.
  • 16. 5. Компоненты CheckBox, RadioGroup, Memo. • Зависимые переключатели как правило объединяются в группы. Для быстрой организации группы зависимых переключателей очень удобен компонент RadioGroup (раздел Standard). • Компонент RadioGroup удобен тем, что заменяет группу компонентов RadioButton.
  • 17. 5. Компоненты CheckBox, RadioGroup, Memo. •Основные свойства компонента RadioGroup: Alignment Способ выравнивания группы зависимых переключателей в пределах владельца. Caption Подпись к группе зависимых переключателей. Columns Число колонок в группе зависимых переключателей. ItemIndex Номер выбранного элемента, начиная с нуля. Если все переключатели находятся в выключенном состоянии, то значение свойства равно -1. Items Массив переключателей и подписей к ним (нумерация начинается с нуля).
  • 18. 5. Компоненты CheckBox, RadioGroup, Memo. - Компонент Memo (раздел Standard) похож на Edit, но в отличие от него хранит не одну строку текста, а множество строк.
  • 19. 5. Компоненты CheckBox, RadioGroup, Memo. -Доступ к строкам обеспечивает свойство Lines, представляющее собой массив строк. Нумерация строк начинается с нуля. Пример: Memo1.Lines[i]:=IntToStr(i) - Свойство Lines доступно также из «Инспектора Объектов», поэтому на стадии проектирования можно заполнить компонент Memo некоторыми исходными данными.
  • 20. 5. Компоненты CheckBox, RadioGroup, Memo. - Текущее количество строк в Memo содержится в свойстве Lines.Count (учитываются и пустые строки). Пример: For i:=0 to Memo1.Lines.Count-1 do Memo1.Lines[i]:=IntToStr(i); - В свойстве ScrollBars определяется наличие вертикальной и горизонтальной полос прокрутки в компоненте Memo.
  • 21. 5. Компоненты CheckBox, RadioGroup, Memo. - Строки можно добавлять, вставлять, удалять при помощи соответствующих методов: Memo1.Lines.Clear; - очистить всё содержимое. Memo1.Lines.Delete(n); - удалить строку с номером n. Memo1.Lines.Add(строка); - добавить строку. Memo1.Lines.Insert(n,строка) – вставить строку перед n-й строкой.