SlideShare a Scribd company logo
1 of 21
DDeellpphhii ..
22.. ППррооггррааммммииррооввааннииее ааллггооррииттммоовв сс ввееттввллеенниияяммии ии ццииккллааммии.. 
ППллаанн ттееммыы:: 
11.. ППоонняяттииее ввееттввллеенниияя вв ааллггооррииттммее.. 
22.. УУссллооввнныыее ооппееррааттооррыы IIFF ии CCAASSEE.. 
33.. ППоонняяттииее ццииккллаа вв ааллггооррииттммее.. 
44.. ООппееррааттооррыы ппооввттоорраа FFOORR,, WWHHIILLEE ии 
RREEPPEEAATT.. 
55.. ККооммппооннееннттыы CChheecckkBBooxx,, RRaaddiiooGGrroouupp,, 
MMeemmoo.. 
66.. 
ППррииммееррыы ппррооггррааммммиирроовваанниияя ввееттввллеенниийй ии ццииккллоовв 
..
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.
33.. ППоонняяттииее ццииккллаа вв ааллггооррииттммее.. 
Цикл - выполнение группы операторов 
(тела цикла) несколько раз: 
Да Нет 
Условие ? 
Тело цикла
Для организации циклов различных типов используются Операторы 
повтора (или цикла) 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, RRaaddiiooGGrroouupp,, MMeemmoo.. 
• Независимые переключатели (check boxes) 
используются для установки параметров, 
характеризуемых двумя значениями — “Да” или 
“Нет” (True - False). Независимые переключатели 
создаются с помощью компонента CheckBox.
5. Компоненты CheckBox, RRaaddiiooGGrroouupp,, MMeemmoo.. 
• Основные свойства компонента CheckBox: 
Alignment Определяет, с какой стороны от 
переключателя находится текст: taRightJustify 
- справа, taleftJustify - слева. 
Caption Текст рядом с переключателем. 
Checked Определяет, включен (True), или выключен 
(False) переключатель.
5. Компоненты CheckBox, RRaaddiiooGGrroouupp,, MMeemmoo.. 
• Зависимые переключатели (radio buttons) 
служат для установки взаимоисключающих 
параметров. Они обычно объединяются в 
группы и позволяют пользователю выбрать 
одно значение из фиксированного множества 
альтернатив. При включении одного 
зависимого переключателя остальные 
переключатели этой же группы 
выключаются. 
• В отдельности каждый зависимый 
переключатель представляется компонентом 
RadioButton (раздел Standard).
5. Компоненты CheckBox, RRaaddiiooGGrroouupp,, MMeemmoo.. 
• Основные свойства компонента RadioButton: 
Alignment Определяет, с какой стороны от 
переключателя находится текст: taRightJustify 
- справа, taleftJustify - слева. 
Caption Текст рядом с переключателем. 
Checked Определяет, включен (True), или выключен 
(False) переключатель.
5. Компоненты CheckBox, RRaaddiiooGGrroouupp,, MMeemmoo.. 
• Зависимые переключатели как правило 
объединяются в группы. Для быстрой организации 
группы зависимых переключателей очень удобен 
компонент RadioGroup (раздел Standard). 
• Компонент RadioGroup удобен тем, что заменяет 
группу компонентов RadioButton.
5. Компоненты CheckBox, RRaaddiiooGGrroouupp,, MMeemmoo.. 
•Основные свойства компонента RadioGroup: 
Alignment Способ выравнивания группы зависимых 
переключателей в пределах владельца. 
Caption Подпись к группе зависимых переключателей. 
Columns Число колонок в группе зависимых 
переключателей. 
ItemIndex Номер выбранного элемента, начиная с нуля. 
Если все переключатели находятся в 
выключенном состоянии, то значение свойства 
равно -1. 
Items Массив переключателей и подписей к ним 
(нумерация начинается с нуля).
5. Компоненты CheckBox, RRaaddiiooGGrroouupp,, MMeemmoo.. 
- Компонент Memo (раздел Standard) 
похож на Edit, но в отличие от него 
хранит не одну строку текста, а 
множество строк.
5. Компоненты CheckBox, RRaaddiiooGGrroouupp,, MMeemmoo.. 
-Доступ к строкам обеспечивает 
свойство Lines, представляющее собой 
массив строк. Нумерация строк 
начинается с нуля. Пример: 
Memo1.Lines[i]:=IntToStr(i) 
- Свойство Lines доступно также из 
«Инспектора Объектов», поэтому на 
стадии проектирования можно заполнить 
компонент Memo некоторыми 
исходными данными.
5. Компоненты CheckBox, RRaaddiiooGGrroouupp,, MMeemmoo.. 
- Текущее количество строк в Memo 
содержится в свойстве Lines.Count 
(учитываются и пустые строки). 
Пример: 
For i:=0 to Memo1.Lines.Count-1 do 
Memo1.Lines[i]:=IntToStr(i); 
- В свойстве ScrollBars определяется 
наличие вертикальной и 
горизонтальной полос прокрутки в 
компоненте Memo.
5. Компоненты CheckBox, RRaaddiiooGGrroouupp,, MMeemmoo.. 
-Строки можно добавлять, вставлять, 
удалять при помощи соответствующих 
методов: 
Memo1.Lines.Clear; - очистить всё 
содержимое. 
Memo1.Lines.Delete(n); - удалить строку с 
номером n. 
Memo1.Lines.Add(строка); - добавить 
строку. 
Memo1.Lines.Insert(n,строка) – 
вставить строку перед n-й строкой.

More Related Content

What's hot

АВТОМАТИЧЕСКИЙ ПОДБОР ПАРАМЕТРОВ ВНЕШНЕЙ СРЕДЫ ПРИ ГЕНЕРАЦИИ АВТОМАТНЫХ ПРОГР...
АВТОМАТИЧЕСКИЙ ПОДБОР ПАРАМЕТРОВ ВНЕШНЕЙ СРЕДЫ ПРИ ГЕНЕРАЦИИ АВТОМАТНЫХ ПРОГР...АВТОМАТИЧЕСКИЙ ПОДБОР ПАРАМЕТРОВ ВНЕШНЕЙ СРЕДЫ ПРИ ГЕНЕРАЦИИ АВТОМАТНЫХ ПРОГР...
АВТОМАТИЧЕСКИЙ ПОДБОР ПАРАМЕТРОВ ВНЕШНЕЙ СРЕДЫ ПРИ ГЕНЕРАЦИИ АВТОМАТНЫХ ПРОГР...ITMO University
 
javascript_part1
javascript_part1javascript_part1
javascript_part1sovest
 
Михаил Давыдов — JavaScript: Базовые знания
Михаил Давыдов — JavaScript: Базовые знанияМихаил Давыдов — JavaScript: Базовые знания
Михаил Давыдов — JavaScript: Базовые знанияYandex
 
Метапрограммирование: строим конечный автомат. Сергей Федоров ➠ CoreHard Aut...
Метапрограммирование: строим конечный автомат. Сергей Федоров ➠  CoreHard Aut...Метапрограммирование: строим конечный автомат. Сергей Федоров ➠  CoreHard Aut...
Метапрограммирование: строим конечный автомат. Сергей Федоров ➠ CoreHard Aut...corehard_by
 
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.Такси
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.ТаксиМетапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.Такси
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.ТаксиMail.ru Group
 
Базовые операторы Java
Базовые операторы JavaБазовые операторы Java
Базовые операторы Javametaform
 
Swift, основы (в разрезе Enums)
Swift, основы (в разрезе Enums)Swift, основы (в разрезе Enums)
Swift, основы (в разрезе Enums)AnjLab
 
Исключительные ситуации
Исключительные ситуацииИсключительные ситуации
Исключительные ситуацииAlexey Bovanenko
 
лабораторная работа №2
лабораторная работа №2лабораторная работа №2
лабораторная работа №2student_kai
 
Statements in VHDL - Concurrent Statements
Statements in VHDL - Concurrent StatementsStatements in VHDL - Concurrent Statements
Statements in VHDL - Concurrent Statementsvitaliykulanov
 
Глава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в JavaГлава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в Javametaform
 
Презентация на тему: Управляющие операторы языков программирования C, C++, VB...
Презентация на тему: Управляющие операторы языков программирования C, C++, VB...Презентация на тему: Управляющие операторы языков программирования C, C++, VB...
Презентация на тему: Управляющие операторы языков программирования C, C++, VB...2berkas
 
основы Java переменные, циклы
основы Java   переменные, циклыосновы Java   переменные, циклы
основы Java переменные, циклыSergey Nemchinsky
 
Модель памяти C++ - Андрей Янковский, Яндекс
Модель памяти C++ - Андрей Янковский, ЯндексМодель памяти C++ - Андрей Янковский, Яндекс
Модель памяти C++ - Андрей Янковский, ЯндексYandex
 
"Как перестать отлаживать асинхронный код и начать жить", Андрей Саломатин, F...
"Как перестать отлаживать асинхронный код и начать жить", Андрей Саломатин, F..."Как перестать отлаживать асинхронный код и начать жить", Андрей Саломатин, F...
"Как перестать отлаживать асинхронный код и начать жить", Андрей Саломатин, F...MoscowJS
 

What's hot (18)

АВТОМАТИЧЕСКИЙ ПОДБОР ПАРАМЕТРОВ ВНЕШНЕЙ СРЕДЫ ПРИ ГЕНЕРАЦИИ АВТОМАТНЫХ ПРОГР...
АВТОМАТИЧЕСКИЙ ПОДБОР ПАРАМЕТРОВ ВНЕШНЕЙ СРЕДЫ ПРИ ГЕНЕРАЦИИ АВТОМАТНЫХ ПРОГР...АВТОМАТИЧЕСКИЙ ПОДБОР ПАРАМЕТРОВ ВНЕШНЕЙ СРЕДЫ ПРИ ГЕНЕРАЦИИ АВТОМАТНЫХ ПРОГР...
АВТОМАТИЧЕСКИЙ ПОДБОР ПАРАМЕТРОВ ВНЕШНЕЙ СРЕДЫ ПРИ ГЕНЕРАЦИИ АВТОМАТНЫХ ПРОГР...
 
javascript_part1
javascript_part1javascript_part1
javascript_part1
 
Михаил Давыдов — JavaScript: Базовые знания
Михаил Давыдов — JavaScript: Базовые знанияМихаил Давыдов — JavaScript: Базовые знания
Михаил Давыдов — JavaScript: Базовые знания
 
Метапрограммирование: строим конечный автомат. Сергей Федоров ➠ CoreHard Aut...
Метапрограммирование: строим конечный автомат. Сергей Федоров ➠  CoreHard Aut...Метапрограммирование: строим конечный автомат. Сергей Федоров ➠  CoreHard Aut...
Метапрограммирование: строим конечный автомат. Сергей Федоров ➠ CoreHard Aut...
 
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.Такси
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.ТаксиМетапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.Такси
Метапрограммирование: строим конечный автомат, Сергей Федоров, Яндекс.Такси
 
Базовые операторы Java
Базовые операторы JavaБазовые операторы Java
Базовые операторы Java
 
Swift, основы (в разрезе Enums)
Swift, основы (в разрезе Enums)Swift, основы (в разрезе Enums)
Swift, основы (в разрезе Enums)
 
System c
System cSystem c
System c
 
Исключительные ситуации
Исключительные ситуацииИсключительные ситуации
Исключительные ситуации
 
лабораторная работа №2
лабораторная работа №2лабораторная работа №2
лабораторная работа №2
 
Javascript functions
Javascript functionsJavascript functions
Javascript functions
 
Statements in VHDL - Concurrent Statements
Statements in VHDL - Concurrent StatementsStatements in VHDL - Concurrent Statements
Statements in VHDL - Concurrent Statements
 
Глава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в JavaГлава 3: примитивные типы и операции с ними в Java
Глава 3: примитивные типы и операции с ними в Java
 
Презентация на тему: Управляющие операторы языков программирования C, C++, VB...
Презентация на тему: Управляющие операторы языков программирования C, C++, VB...Презентация на тему: Управляющие операторы языков программирования C, C++, VB...
Презентация на тему: Управляющие операторы языков программирования C, C++, VB...
 
основы Java переменные, циклы
основы Java   переменные, циклыосновы Java   переменные, циклы
основы Java переменные, циклы
 
Модель памяти C++ - Андрей Янковский, Яндекс
Модель памяти C++ - Андрей Янковский, ЯндексМодель памяти C++ - Андрей Янковский, Яндекс
Модель памяти C++ - Андрей Янковский, Яндекс
 
8 2-1
8 2-18 2-1
8 2-1
 
"Как перестать отлаживать асинхронный код и начать жить", Андрей Саломатин, F...
"Как перестать отлаживать асинхронный код и начать жить", Андрей Саломатин, F..."Как перестать отлаживать асинхронный код и начать жить", Андрей Саломатин, F...
"Как перестать отлаживать асинхронный код и начать жить", Андрей Саломатин, F...
 

Similar to 02 if for

Настрой контент под пользователя!
Настрой контент под пользователя!Настрой контент под пользователя!
Настрой контент под пользователя!PyNSK
 
цикл в блог
цикл в блогцикл в блог
цикл в блогisva69
 
алгоритмическая структура «цикл»
алгоритмическая структура «цикл»алгоритмическая структура «цикл»
алгоритмическая структура «цикл»Артём Хухорев
 
javascript
javascriptjavascript
javascriptsovest
 
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3etyumentcev
 
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3Eugeniy Tyumentcev
 
20100927 28 reqformalization-kuliamin
20100927 28 reqformalization-kuliamin20100927 28 reqformalization-kuliamin
20100927 28 reqformalization-kuliaminComputer Science Club
 
язык програмирования
язык програмированияязык програмирования
язык програмированияOlegmingalev1997
 
Statements in VHDL - Sequential Statements
Statements in VHDL - Sequential StatementsStatements in VHDL - Sequential Statements
Statements in VHDL - Sequential Statementsvitaliykulanov
 
Теория. Сложные условия в операторе сравнения
Теория. Сложные условия в операторе сравненияТеория. Сложные условия в операторе сравнения
Теория. Сложные условия в операторе сравненияAlexandr Grigorenko
 
Типы данных (продолжение). Операторы. Стандартные библиотеки
Типы данных (продолжение). Операторы. Стандартные библиотекиТипы данных (продолжение). Операторы. Стандартные библиотеки
Типы данных (продолжение). Операторы. Стандартные библиотекиIhor Porotikov
 
10 класс алгоритмы с повторениями
10 класс алгоритмы с повторениями10 класс алгоритмы с повторениями
10 класс алгоритмы с повторениямиleskonog_elena
 

Similar to 02 if for (20)

Настрой контент под пользователя!
Настрой контент под пользователя!Настрой контент под пользователя!
Настрой контент под пользователя!
 
операторы цикла
операторы циклаоператоры цикла
операторы цикла
 
цикл в блог
цикл в блогцикл в блог
цикл в блог
 
алгоритмическая структура «цикл»
алгоритмическая структура «цикл»алгоритмическая структура «цикл»
алгоритмическая структура «цикл»
 
Loop
LoopLoop
Loop
 
Loop
LoopLoop
Loop
 
javascript
javascriptjavascript
javascript
 
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3
 
разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3разработка серверов и серверных приложений лекция №3
разработка серверов и серверных приложений лекция №3
 
Циклы
ЦиклыЦиклы
Циклы
 
20100927 28 reqformalization-kuliamin
20100927 28 reqformalization-kuliamin20100927 28 reqformalization-kuliamin
20100927 28 reqformalization-kuliamin
 
язык програмирования
язык програмированияязык програмирования
язык програмирования
 
Statements in VHDL - Sequential Statements
Statements in VHDL - Sequential StatementsStatements in VHDL - Sequential Statements
Statements in VHDL - Sequential Statements
 
паскаль 10кл 14
паскаль 10кл 14паскаль 10кл 14
паскаль 10кл 14
 
циклы
циклыциклы
циклы
 
Цикл
Цикл Цикл
Цикл
 
Теория. Сложные условия в операторе сравнения
Теория. Сложные условия в операторе сравненияТеория. Сложные условия в операторе сравнения
Теория. Сложные условия в операторе сравнения
 
верификация
верификацияверификация
верификация
 
Типы данных (продолжение). Операторы. Стандартные библиотеки
Типы данных (продолжение). Операторы. Стандартные библиотекиТипы данных (продолжение). Операторы. Стандартные библиотеки
Типы данных (продолжение). Операторы. Стандартные библиотеки
 
10 класс алгоритмы с повторениями
10 класс алгоритмы с повторениями10 класс алгоритмы с повторениями
10 класс алгоритмы с повторениями
 

More from pogromskaya

електронні матеріали
електронні матеріалиелектронні матеріали
електронні матеріалиpogromskaya
 
Проектування реляційних БД
Проектування реляційних БДПроектування реляційних БД
Проектування реляційних БДpogromskaya
 
Моделі даних в БД. ER-діаграми
Моделі даних в БД. ER-діаграмиМоделі даних в БД. ER-діаграми
Моделі даних в БД. ER-діаграмиpogromskaya
 
Реляційна модель БД
Реляційна модель БДРеляційна модель БД
Реляційна модель БДpogromskaya
 
інтегровані уроки
інтегровані урокиінтегровані уроки
інтегровані урокиpogromskaya
 
Розгортання
РозгортанняРозгортання
Розгортанняpogromskaya
 
Прецедентів
ПрецедентівПрецедентів
Прецедентівpogromskaya
 
Компонентів
КомпонентівКомпонентів
Компонентівpogromskaya
 
Діяльності
ДіяльностіДіяльності
Діяльностіpogromskaya
 
Взаємодії
ВзаємодіїВзаємодії
Взаємодіїpogromskaya
 
Введення Uml
Введення UmlВведення Uml
Введення Umlpogromskaya
 

More from pogromskaya (20)

електронні матеріали
електронні матеріалиелектронні матеріали
електронні матеріали
 
Проектування реляційних БД
Проектування реляційних БДПроектування реляційних БД
Проектування реляційних БД
 
Моделі даних в БД. ER-діаграми
Моделі даних в БД. ER-діаграмиМоделі даних в БД. ER-діаграми
Моделі даних в БД. ER-діаграми
 
Реляційна модель БД
Реляційна модель БДРеляційна модель БД
Реляційна модель БД
 
САПР_СALS
САПР_СALSСАПР_СALS
САПР_СALS
 
інтегровані уроки
інтегровані урокиінтегровані уроки
інтегровані уроки
 
ікт
іктікт
ікт
 
сапр
сапрсапр
сапр
 
Розгортання
РозгортанняРозгортання
Розгортання
 
Прецедентів
ПрецедентівПрецедентів
Прецедентів
 
Компонентів
КомпонентівКомпонентів
Компонентів
 
Діяльності
ДіяльностіДіяльності
Діяльності
 
Взаємодії
ВзаємодіїВзаємодії
Взаємодії
 
Станів
СтанівСтанів
Станів
 
Введення Uml
Введення UmlВведення Uml
Введення Uml
 
Класів
КласівКласів
Класів
 
MW
MWMW
MW
 
C-S
C-SC-S
C-S
 
ппс
ппсппс
ппс
 
ПВПС
ПВПСПВПС
ПВПС
 

02 if for

  • 2. 22.. ППррооггррааммммииррооввааннииее ааллггооррииттммоовв сс ввееттввллеенниияяммии ии ццииккллааммии.. ППллаанн ттееммыы:: 11.. ППоонняяттииее ввееттввллеенниияя вв ааллггооррииттммее.. 22.. УУссллооввнныыее ооппееррааттооррыы IIFF ии CCAASSEE.. 33.. ППоонняяттииее ццииккллаа вв ааллггооррииттммее.. 44.. ООппееррааттооррыы ппооввттоорраа FFOORR,, WWHHIILLEE ии RREEPPEEAATT.. 55.. ККооммппооннееннттыы CChheecckkBBooxx,, RRaaddiiooGGrroouupp,, MMeemmoo.. 66.. ППррииммееррыы ппррооггррааммммиирроовваанниияя ввееттввллеенниийй ии ццииккллоовв ..
  • 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. 33.. ППоонняяттииее ццииккллаа вв ааллггооррииттммее.. Цикл - выполнение группы операторов (тела цикла) несколько раз: Да Нет Условие ? Тело цикла
  • 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, RRaaddiiooGGrroouupp,, MMeemmoo.. • Независимые переключатели (check boxes) используются для установки параметров, характеризуемых двумя значениями — “Да” или “Нет” (True - False). Независимые переключатели создаются с помощью компонента CheckBox.
  • 13. 5. Компоненты CheckBox, RRaaddiiooGGrroouupp,, MMeemmoo.. • Основные свойства компонента CheckBox: Alignment Определяет, с какой стороны от переключателя находится текст: taRightJustify - справа, taleftJustify - слева. Caption Текст рядом с переключателем. Checked Определяет, включен (True), или выключен (False) переключатель.
  • 14. 5. Компоненты CheckBox, RRaaddiiooGGrroouupp,, MMeemmoo.. • Зависимые переключатели (radio buttons) служат для установки взаимоисключающих параметров. Они обычно объединяются в группы и позволяют пользователю выбрать одно значение из фиксированного множества альтернатив. При включении одного зависимого переключателя остальные переключатели этой же группы выключаются. • В отдельности каждый зависимый переключатель представляется компонентом RadioButton (раздел Standard).
  • 15. 5. Компоненты CheckBox, RRaaddiiooGGrroouupp,, MMeemmoo.. • Основные свойства компонента RadioButton: Alignment Определяет, с какой стороны от переключателя находится текст: taRightJustify - справа, taleftJustify - слева. Caption Текст рядом с переключателем. Checked Определяет, включен (True), или выключен (False) переключатель.
  • 16. 5. Компоненты CheckBox, RRaaddiiooGGrroouupp,, MMeemmoo.. • Зависимые переключатели как правило объединяются в группы. Для быстрой организации группы зависимых переключателей очень удобен компонент RadioGroup (раздел Standard). • Компонент RadioGroup удобен тем, что заменяет группу компонентов RadioButton.
  • 17. 5. Компоненты CheckBox, RRaaddiiooGGrroouupp,, MMeemmoo.. •Основные свойства компонента RadioGroup: Alignment Способ выравнивания группы зависимых переключателей в пределах владельца. Caption Подпись к группе зависимых переключателей. Columns Число колонок в группе зависимых переключателей. ItemIndex Номер выбранного элемента, начиная с нуля. Если все переключатели находятся в выключенном состоянии, то значение свойства равно -1. Items Массив переключателей и подписей к ним (нумерация начинается с нуля).
  • 18. 5. Компоненты CheckBox, RRaaddiiooGGrroouupp,, MMeemmoo.. - Компонент Memo (раздел Standard) похож на Edit, но в отличие от него хранит не одну строку текста, а множество строк.
  • 19. 5. Компоненты CheckBox, RRaaddiiooGGrroouupp,, MMeemmoo.. -Доступ к строкам обеспечивает свойство Lines, представляющее собой массив строк. Нумерация строк начинается с нуля. Пример: Memo1.Lines[i]:=IntToStr(i) - Свойство Lines доступно также из «Инспектора Объектов», поэтому на стадии проектирования можно заполнить компонент Memo некоторыми исходными данными.
  • 20. 5. Компоненты CheckBox, RRaaddiiooGGrroouupp,, MMeemmoo.. - Текущее количество строк в Memo содержится в свойстве Lines.Count (учитываются и пустые строки). Пример: For i:=0 to Memo1.Lines.Count-1 do Memo1.Lines[i]:=IntToStr(i); - В свойстве ScrollBars определяется наличие вертикальной и горизонтальной полос прокрутки в компоненте Memo.
  • 21. 5. Компоненты CheckBox, RRaaddiiooGGrroouupp,, MMeemmoo.. -Строки можно добавлять, вставлять, удалять при помощи соответствующих методов: Memo1.Lines.Clear; - очистить всё содержимое. Memo1.Lines.Delete(n); - удалить строку с номером n. Memo1.Lines.Add(строка); - добавить строку. Memo1.Lines.Insert(n,строка) – вставить строку перед n-й строкой.