Автор: Пользователь скрыл имя, 07 Марта 2013 в 02:12, курс лекций
Лекция 1. Представление алгоритмов на языке Программирования ПаскальАВС.
Лекция 2. Построение линейных алгоритмов
Лекция 3. Алгоритмы, содержащие структуру ветвления.
Лекция 4. Алгоритмы, содержащие структурные операторы циклов.
...
Лекция 9. Файловый тип данных
Лекция 3.
Алгоритмы, содержащие структуру ветвления.
В лекции рассматриваются следующие вопросы:
1.Понятие структурного
2.Полная структура ветвления.
3.Структурный оператор
4.Графическое представление
5.Сложные логические выражения.
6.Неполная структура
7.Структура выбора.
1. Понятие структурного оператора.
Структурными операторами
- Составной оператор. Составной оператор представляет собой последова-тельность операторов, заключенных в операторные скобки, состоящие из зарезервированных слов Begin и End.
- Условные операторы IF, CASE.
- Операторы циклов WHILE, FOR, REPEAT.
- Оператор присоединения WHITH.
Приведем пример составного оператора.
Begin
Readln(a,b);
C:=a*b;
Writeln(‘произведение ’, a,’ *’, b, ‘=’, c);
End;
Остальные структурные операторы будем изучать позднее.
2. Полная структура ветвления
Задача 1. Вычислить значение выражения Y=(x2+5x-6)/(x-4), если значение х вводится с клавиатуры.
Сформулируем алгоритм решения задачи в словесно-формульном виде.
Начало.
1.Задать значение х.
2.Вычислить значение Y=(x2+5x-6)/(x-4).
3.Записать значение у.
Конец.
Выполним этот алгоритм по пунктам.
1.Зададим значение х=10.
2.Вычислим значение у=(102+5*10-6)/(10-4)=146/6=
3.Записать значение у=24.3
Кажется, что алгоритм работает нормально. Но если взять значение х=4, то вычислить значение у невозможно, так как происходит деление на 0. Отсюда делаем вывод, что алгоритм составлен неправильно. В алгоритме необходимо предусмотреть случай, когда есть деление на ноль. Составим новый алгоритм.
Начало.
1.Ввести значение х.
2.Если х – 4=0, то перейти к пункту 3, иначе к пункту 4.
3.Вывести на экран сообщение «Значение у вычислить нельзя» и перейти на конец.
4.Вычислить значение у.
5.Вывести на экран полученное значение у.
Конец.
3. Структурный оператор ветвления IF.
В рассмотренном алгоритме есть предложение если х – 4 = 0, то …, иначе …
На языке Паскаль такая структура записывается с помощью структурного оператора:
IF условие
Then Оператор 1
Else Оператор 2;
В этой структуре слова If (если), Then(то), Else(иначе) являются служебными словами; условие – это любое логическое выражение; оператор 1 и оператор 2 – это любые операторы языка Pascal, в том числе и составной оператор.
Оператор If работает следующим образом:
Если условие принимает значение True, то выполняется оператор 1 и не выполняется оператор 2; если условие принимает значение False, то выполняется оператор 2, а оператор 1 игнорируется.
В соответствии с оператором IF можно записать программу рассмотренного выше алгоритма:
Program a1;
Var x,y:Real;
Begin
Writeln('Ввести значение x=');
Readln(x);
If x-4=0
Then Writeln('y не существует')
Else Begin
y:=(x*x-5*x+6)/(x-4);
Writeln('При x=',x:6:2,' y=',y:6:2);
End;
End.
В приведенной программе после служебного слова If записано логическое выражение х – 4 = 0. Если это логическое выражение принимает значение истина, то выполняется простой оператор Writeln('y не существует') (пункт 3 алгоритма). Если логическое выражение х – 4 = 0 принимает значение ложь, то выполняется составной оператор (пункты 4 и 5 алгоритма)
Begin
y:=(x*x-5*x+6)/(x-4);
Writeln('При x=',x:6:2,' y=',y:6:2);
End;
4. Графическое представление
Графическое представление оператора IF:
5. Сложные логические выражения
Простые логические выражения с помощью логических операций можно объединять в сложные логические выражения. Логические операции приведены в следующей таблице:
Запись операции на Pascal |
Суть операции |
Значение перемен-ной А |
Значение перемен-ной В |
Значение операции |
Not(A) |
Отрицание ( нет) |
True False |
– – |
False True |
(A) and (B) |
Логическое умножение (союз и) |
True True False False |
True Ffalse True False |
True False False False |
(A) or (B) |
Логическое сложение (союз или) |
True True False False |
True False True False |
True True True False |
Например: (a>b) or (c=d), (2=7) and (c<x+4), not(3<8).
Задача 2. Даны три числа а, в, с. Найти наибольшее.
Программа на языке Pascal:
Program a2;
Var a,b,c,max:Real;
Begin
Writeln(‘Ввести три числа');
Readln(a,b,c);
If (a>b)and(a>c)
Then max:=a
Else If (b>a)and(b>c)
Then max:=b
Else max:=c;
Writeln('Наибольшее=',max:6:2)
End.
В операторах IF записаны сложные логические выражения (a>b)and(a>c) и (b>a)and(b>c).
6. Неполная структура ветвления
На языке Паскаль
неполная структура ветвления
If условие Then Оператор 1;
Графическое представление неполной структуры ветвления:
Задача 3. Дано число A. Вывести на экран модуль этого числа.
Программа на языке Pascal:
Program a3;
Var a,b:Real;
Begin
Writeln('Ввести число');
Readln(a);
b:=a;
If a<0 Then b:=-a;
Writeln('|',a:6:2,'|=',b:6:2);
End.
7. Структура выбора
Задача 4. Дано целое число, которое обозначает номер месяца года. Определить, какому времени года принадлежит данный месяц.
Программа на языке Pascal:
Program a4;
Var n:Integer;
Begin
Writeln('Ввести номер месяца');
Readln(n);
If (n>=1) and (n<=12)
Then If (n=1)or(n=2)or(n=12)
Then Writeln('Зима')
Else If (n=3)or(n=4)or(n=5)
Then Writeln('Весна')
Else If (n=6)or(n=7)or(n=8)
Then Writeln('Лето')
Else If (n=9)or(n=10)or(n=11)
Then Writeln('Осень')
Else Writeln('Неверный ввод');
End.
При записи таких сложных операторов If в некоторых случаях можно использовать другую структуру, которая называется структура выбор и на языке Паскаль реализуется структурным оператором:
Диапозон 1: Оператор 1;
. . .
Диапозон n: Оператор n
Else Оператор к;
End;
Селектор – это переменная или выражение любого простого типа, кроме Real. Операторы 1, …, к – это любые операторы языка Паскаль. Диапазон 1, …, Диапазон n – это значения, которые может иметь селектор.
Структура «Выбор» работает следующим образом: Сначала вычисляется значение селектора, затем ищется тот диапазон, в который входит это значение и выполняется то действие, которое соответствует этому диапазону. Если значение селектора не вошло ни в один из приведенных диапазонов, то выполняется действие, которое записано после слова else.
В операторе «Выбор» слово else может отсутствовать.
Задача 5. Дан возраст ребенка до 15 лет. Поставить этому числу в соответствие слово «год».
Программа на языке Паскаль:
Program a5;
Var n:Integer;
Begin
Writeln('Ввести возраст ребенка');
Readln(n);
Case n of
1: Writeln(n:2,'год');
2,3,4: Writeln(n:2,'года');
5 .. 15: Writeln(n:2,'let')
Else Writeln('Возраст >15 лет');
End;
End.
В этой программе n селектор, диапазон 1 состоит из одного значения 1; диапазон 2 состоит из трех значений 2,3,4, которые перечислены через запятую; диапазон 3 состоит из целых значений из отрезка [5, 15].
Информация о работе Лекции по "Языкам и методам программирования" (PascalABC)