- Программирование разветвляющихся алгоритмов
- Программирование циклических алгоритмов
- Лабораторная работа № 23. Программирование разветвляющихся вычислительных процессов
- Программирование разветвляющихся вычислительных процессов
- Лабораторная работа № 23. Программирование разветвляющихся вычислительных процессов
Программирование разветвляющихся алгоритмов
1. Условный оператор имеет полную и сокращенную форму записи. Полная форма условного оператора имеет вид:
if логическое выражение then оператор_1 else оператор_2;
Вычисляется значение логического выражения; если оно равно true, то выполняется оператор_1, если же — false — оператор_2.
Сокращенная форма условного оператора имеет вид:
Вычисляется значение логического выражения; если оно равно true, то выполняется оператор, записанный после then, если же — false, то этот оператор не выполняется.
thenz:=sqr(x)elsez:=y;
Здесь в результате выполнения условного оператора переменная z в любом случае получает новое значение.
Здесь, например, при x = 5 переменная b сохраняет то значение, которое она имела до выполнения условного оператора.
В условном операторе после служебных слов then или else записывается лишь один оператор; если необходимо выполнить несколько действий, то соответствующие операторы объединяются в составной оператор, который имеет вид: begin оператор_1;
Пример: if x>y then begin min:=y; max:=x end
else begin min:=x; max:=y end;
2. С помощью оператора выбора можно выбрать один из любого количества вариантов. Оператор выбора имеет вид:
else оператор
Сначала вычисляется значение выражения (имеющего порядковый тип), затем среди констант отыскивается константа, равная вычисленному значению. Выполняется оператор, записанный после найденной константы, и оператор выбора завершает работу. Если в списке выбора не будет найдена константа, соответствующая вычисленному значению выражения, то выполняется оператор, стоящий за словом else. Если же часть else оператор отсутствует, и в списке выбора нет нужной константы, то выполнение оператора выбора завершается.
Пример:case mof
else writeln(‘ошибка в данных’)
3. Оператор безусловного перехода позволяет перейти к нужному оператору, при этом нарушается естественный порядок выполнения операторов. Оператор имеет вид: goto метка;
В качестве метки используется идентификатор или целое число без знака (0-9999). Метка описывается в разделе label:
label метка_1,метка_2, метка_n;
Одной меткой можно пометить только один оператор. Метка отделяется от помеченного оператора двоеточием.
Например: ab: writeln(‘переход по метке’);
Программирование циклических алгоритмов
Для программирования циклических алгоритмов используются операторы цикла. В языке Pascal различают три вида операторов цикла: for, while, repeat. Оператор цикла for имеет вид:
for параметр цикла:= выражение_1 to выражение_2 do оператор;
for параметр цикла:=выражение_1 downto выражение_2 do оператор;
параметр цикла — переменная порядкового типа;
выражение_1— начальное значение параметра цикла;
выражение_2– конечное значение параметра цикла.
Сначала вычисляются и запоминаются значения выражения_1 и выражения_2. Далее проверяется: значение выражения_1 меньше или равно (для downto — больше или равно) значению выражения_2. Если нет, то выполнение оператора цикла завершается, если же — да, то параметр цикла получает значение выражения_1, выполняется оператор и параметр цикла получает следующее значение (для downto – предыдущее значение). Затем проверяется: параметр цикла меньше или равен (для downto — больше или равен) значению выражения_2. Если да, то снова выполняется оператор и параметр цикла получает новое значение, если же — нет, то выполнение оператора цикла завершается.
for i:=1to10dowriteln(‘i=’,i);
for i:= 10downto1dowriteln(‘i=’,i);
Оператор цикла while имеет вид:
while логическое выражение do оператор;
Пока значение логического выражения true, выполняется оператор, записанный после служебного слова do, как только значение станет false, оператор цикла завершит свою работу. Если значение выражения с самого начала false, то указанный в цикле оператор не выполнится ни разу.
Оператор цикла repeatимеет вид:
until логическое выражение;
Операторы выполняются до тех пор, пока значение логического выражения не станет true. Поэтому, независимо от значения логического выражения, операторы, указанные в цикле repeat, выполнятся, по крайней мере, один раз.
Лабораторная работа № 23. Программирование разветвляющихся вычислительных процессов
Для реализации алгоритмов разветвляющейся структуры в программе используется оператор условного перехода, который может иметь следующий синтаксис:
1) If условие Then оператор1 Else оператор2
Оператор1 выполняется, если условие истинно, в противном случае выполняется оператор2.
Блок операторов 1 выполняется, если условие истинно, в противном случае выполняется блок операторов 2.
Задача 1. Составить программу для решения квадратного уравнения вида ах 2 +bх+с=0. Для решения выполнить следующее:
- Переименовать текущий рабочий лист Excel в Решение уравнения.
- На листе Решение уравнения создать таблицу:
- На листе Модуль ввести текст программы, используя Редактор Visual Basic (блок-схема решения задачи представлена на стр.48). Ввод исходных данных осуществлять с клавиатуры. Окно ввода данных должно содержать заголовок «Исходные данные». Вывод результатов осуществлять в окнах сообщений. В начале программы поставить оператор описания переменных:
DIM a,b,c,x,x1,x2 As Single
- Скопировать текст программы. В копии программы изменить имя. Изменить текст программы таким образом, чтобы исходные данные брались из соответствующих ячеек с листа Решение уравнения, а результаты помещались в следующие ячейки на лист Решение уравнения:
Уравнение не имеет действительных корней
Уравнение имеет один корень
Уравнение имеет два корня
Для очистки блока ячеек C5:D7 в соответствующем месте программы вставить оператор:
Worksheets(“Решение уравнения”).Range(“C5:D7”).Clear
Задача 2. Составить программу, реализующую гороскоп на ближайшие дни. В результате работы программы на экране должно появляться окно ввода с заголовком «Гороскоп на ближайшие дни», содержащее сообщение «Введите дату своего рождения» и поле ввода, куда пользователь будет вводить дату своего рождения. В программе введенная дата должна анализироваться, определяться какому знаку Зодиака она соответствует, и выдаваться резюме в окне сообщения (например, «Вы – Овен. Завтра Вас ожидает крупное денежное вознаграждение»).
При написании программы использовать следующее:
Переменная типа Date используется для хранения информации о дате и времени (диапазон значений: от 1 января 100 г. до 31 декабря 9999 г.). Указать в операторе объявления переменных Dim.
Функция преобразования типов Cdate(выражение) – преобразует числовое или текстовое значение в дату.
Day(Дата) – возвращает число от 1 до 31, соответствующее числу месяца в аргументе Дата.
Month(Дата) — возвращает число от 1 до 12, соответствующее номеру месяца в аргументе Дата.
Программирование разветвляющихся вычислительных процессов
Вычислительный процесс называется разветвляющимся, если для реализации предусмотрено несколько направлений (ветвей). Каждое разветвление является следствием проверки условия. При разработке программы обратить внимание на следующее. В программе должны быть предусмотрены все возможные направления, но процесс реализуется только по одной ветви. Любая ветвь должна приводить к выводу результата и на конец программы.
Если в выражении присутствует несколько операций отношения, то они соединяются между собой логическими операциями. Логические операции:
б) || — логическая операция ИЛИ – результат операции истина или 1 если хотя бы один операнд истинен, или ложь в противном случае;
в) ! – логическая операция НЕ (пишется перед операндом) если операнд –истина, то результат операции – ложь, и наоборот.
Пример: X>= X>= 5&&X
Анализ символьной информации.
‘0’ ‘9’ ‘A’ ‘Z’ ‘a’ ‘z’ ‘А’ ‘Я’ ‘а’ ‘п’ ‘р’ ‘я’
- Убедиться, что в переменной записана цифра sim>=’0’&&sim
- В переменной sim содержится большая латинская буква. sim>=’A’&&simZ’
Лабораторная работа № 23. Программирование разветвляющихся вычислительных процессов
Для реализации алгоритмов разветвляющейся структуры в программе используется оператор условного перехода, который может иметь следующий синтаксис:
1) If условие Then оператор1 Else оператор2
Оператор1 выполняется, если условие истинно, в противном случае выполняется оператор2.
Блок операторов 1 выполняется, если условие истинно, в противном случае выполняется блок операторов 2.
Задача 1. Составить программу для решения квадратного уравнения вида ах 2 +bх+с=0. Для решения выполнить следующее:
- Переименовать текущий рабочий лист Excel в Решение уравнения.
- На листе Решение уравнения создать таблицу:
- На листе Модуль ввести текст программы, используя Редактор Visual Basic (блок-схема решения задачи представлена на стр.48). Ввод исходных данных осуществлять с клавиатуры. Окно ввода данных должно содержать заголовок «Исходные данные». Вывод результатов осуществлять в окнах сообщений. В начале программы поставить оператор описания переменных:
DIM a,b,c,x,x1,x2 As Single
- Скопировать текст программы. В копии программы изменить имя. Изменить текст программы таким образом, чтобы исходные данные брались из соответствующих ячеек с листа Решение уравнения, а результаты помещались в следующие ячейки на лист Решение уравнения:
Уравнение не имеет действительных корней
Уравнение имеет один корень
Уравнение имеет два корня
Для очистки блока ячеек C5:D7 в соответствующем месте программы вставить оператор:
Worksheets(“Решение уравнения”).Range(“C5:D7”).Clear
Задача 2. Составить программу, реализующую гороскоп на ближайшие дни. В результате работы программы на экране должно появляться окно ввода с заголовком «Гороскоп на ближайшие дни», содержащее сообщение «Введите дату своего рождения» и поле ввода, куда пользователь будет вводить дату своего рождения. В программе введенная дата должна анализироваться, определяться какому знаку Зодиака она соответствует, и выдаваться резюме в окне сообщения (например, «Вы – Овен. Завтра Вас ожидает крупное денежное вознаграждение»).
При написании программы использовать следующее:
Переменная типа Date используется для хранения информации о дате и времени (диапазон значений: от 1 января 100 г. до 31 декабря 9999 г.). Указать в операторе объявления переменных Dim.
Функция преобразования типов Cdate(выражение) – преобразует числовое или текстовое значение в дату.
Day(Дата) – возвращает число от 1 до 31, соответствующее числу месяца в аргументе Дата.
Month(Дата) — возвращает число от 1 до 12, соответствующее номеру месяца в аргументе Дата.