SlideShare a Scribd company logo
1 of 21
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

What's hot

Structural project description in VHDL
Structural project description in VHDLStructural project description in VHDL
Structural project description in VHDLvitaliykulanov
 
Операторы в Turbo Pascal
Операторы в Turbo PascalОператоры в Turbo Pascal
Операторы в Turbo PascalOlgaDask
 
практика 4
практика 4практика 4
практика 4student_kai
 
Преобразования типов. Операторы ветвления
Преобразования типов. Операторы ветвленияПреобразования типов. Операторы ветвления
Преобразования типов. Операторы ветвленияIhor Porotikov
 
Типы данных (продолжение). Операторы. Стандартные библиотеки
Типы данных (продолжение). Операторы. Стандартные библиотекиТипы данных (продолжение). Операторы. Стандартные библиотеки
Типы данных (продолжение). Операторы. Стандартные библиотекиIhor Porotikov
 
Функциональное программирование и Clojure
Функциональное программирование и ClojureФункциональное программирование и Clojure
Функциональное программирование и ClojureAnjLab
 
Basic principles of projects description in VHDL - ENTITY, ARCHITECTURE, LIBR...
Basic principles of projects description in VHDL - ENTITY, ARCHITECTURE, LIBR...Basic principles of projects description in VHDL - ENTITY, ARCHITECTURE, LIBR...
Basic principles of projects description in VHDL - ENTITY, ARCHITECTURE, LIBR...vitaliykulanov
 
обработка исключений в Java
обработка исключений в Javaобработка исключений в Java
обработка исключений в Javametaform
 
22 pascal urok_6
22 pascal urok_622 pascal urok_6
22 pascal urok_6Ann Eres
 
презентация лр № 1 091214 v1
презентация лр № 1 091214 v1презентация лр № 1 091214 v1
презентация лр № 1 091214 v1Gulnaz Shakirova
 
язык програмирования
язык програмированияязык програмирования
язык програмированияOlegmingalev1997
 

What's hot (18)

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

Viewers also liked

Trpo 12 управление качеством
Trpo 12 управление качествомTrpo 12 управление качеством
Trpo 12 управление качествомpogromskaya
 
інтегровані уроки
інтегровані урокиінтегровані уроки
інтегровані урокиpogromskaya
 
Компонентів
КомпонентівКомпонентів
Компонентівpogromskaya
 
Trpo 5 треьования_модели
Trpo 5 треьования_моделиTrpo 5 треьования_модели
Trpo 5 треьования_моделиpogromskaya
 
Trpo 9 управление проектами
Trpo 9 управление проектамиTrpo 9 управление проектами
Trpo 9 управление проектамиpogromskaya
 
Summer Training Report
Summer Training ReportSummer Training Report
Summer Training ReportMohit Upadhyay
 
Slow learners presentation
Slow learners presentationSlow learners presentation
Slow learners presentationvijeshpanayil
 

Viewers also liked (19)

Trpo 12 управление качеством
Trpo 12 управление качествомTrpo 12 управление качеством
Trpo 12 управление качеством
 
інтегровані уроки
інтегровані урокиінтегровані уроки
інтегровані уроки
 
CV_Mohit Upadhyay
CV_Mohit UpadhyayCV_Mohit Upadhyay
CV_Mohit Upadhyay
 
MW
MWMW
MW
 
12 dialog
12 dialog12 dialog
12 dialog
 
Matthewrogers
MatthewrogersMatthewrogers
Matthewrogers
 
10 date time
10 date time10 date time
10 date time
 
C-S
C-SC-S
C-S
 
Компонентів
КомпонентівКомпонентів
Компонентів
 
08 set
08 set08 set
08 set
 
Trpo 5 треьования_модели
Trpo 5 треьования_моделиTrpo 5 треьования_модели
Trpo 5 треьования_модели
 
Trpo 9 управление проектами
Trpo 9 управление проектамиTrpo 9 управление проектами
Trpo 9 управление проектами
 
сапр
сапрсапр
сапр
 
ппс
ппсппс
ппс
 
Pepe yeans
Pepe yeans Pepe yeans
Pepe yeans
 
07 string
07 string07 string
07 string
 
Major project
Major projectMajor project
Major project
 
Summer Training Report
Summer Training ReportSummer Training Report
Summer Training Report
 
Slow learners presentation
Slow learners presentationSlow learners presentation
Slow learners presentation
 

Similar to 02 if for

Базовые операторы Java
Базовые операторы JavaБазовые операторы Java
Базовые операторы Javametaform
 
цикл в блог
цикл в блогцикл в блог
цикл в блогisva69
 
алгоритмическая структура «цикл»
алгоритмическая структура «цикл»алгоритмическая структура «цикл»
алгоритмическая структура «цикл»Артём Хухорев
 
Java. Переменные, типы данных, операторы
Java. Переменные, типы данных, операторыJava. Переменные, типы данных, операторы
Java. Переменные, типы данных, операторыUnguryan Vitaliy
 
Настрой контент под пользователя!
Настрой контент под пользователя!Настрой контент под пользователя!
Настрой контент под пользователя!PyNSK
 
03_JavaBasicConstructionsAndDatatypes
03_JavaBasicConstructionsAndDatatypes03_JavaBasicConstructionsAndDatatypes
03_JavaBasicConstructionsAndDatatypesdklenov
 
javascript
javascriptjavascript
javascriptsovest
 
javascript_part1
javascript_part1javascript_part1
javascript_part1sovest
 
практика 1
практика 1практика 1
практика 1student_kai
 
Алгоритмизация
АлгоритмизацияАлгоритмизация
АлгоритмизацияLebedeva_Zoya
 
Конструирование алгоритмов
Конструирование алгоритмовКонструирование алгоритмов
Конструирование алгоритмовAndrey Dolinin
 
Оптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templatesОптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templatesPlatonov Sergey
 
Оптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templatesОптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templatesPlatonov Sergey
 
Теория. Сложные условия в операторе сравнения
Теория. Сложные условия в операторе сравненияТеория. Сложные условия в операторе сравнения
Теория. Сложные условия в операторе сравненияAlexandr Grigorenko
 

Similar to 02 if for (20)

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

More from pogromskaya

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

More from pogromskaya (20)

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