1 Организация программ разветвляющейся структуры. Условный оператор.
2 Форма организации действий, при которой в зависимости от выполнения некоторого условия совершается одна или другая последовательность действий, называется ветвлением.
3
4 ! В каждой из ветвей условного оператора может стоять один оператор языка Турбо-Паскаль. Если в ветви требуется выполнить несколько действий, используется составной оператор Begin … end; * Точка с запятой указывается только после полного завершения оператора, то есть после действия 2.
5 Пример 1: Составить алгоритм и программу. ПРОГРАММА: АЛГОРИТМ: Алг прим 1 ( цел X, Y, Z ) арг X, Y рез Z Нач ввод X, Y если X >Y то Z = X – Y иначе Z = Y + X + 1 все вывод Z кон 5
6 Конструкция If – Then – Else имеет сокращенный вариант, когда при невыполнении указанного условия ничего делать не надо.
7 Пример 2: Составьте алгоритм и программу, удваивающую значение целой переменной а, если а>5. Решение: Если а > 5, то значение а надо заменить на 2*а. В противном случае (а <= 5) никаких действий производить не нужно. ПРОГРАММА: Program Pr2; Var а : Integer; Begin WriteLn (Введите число); ReadLn (а); If а >5 Then а = а*2; WriteLn (а =', а); End. АЛГОРИТМ: Алг прим 2 (цел А) органа ч ввод А если А>5 то А = А*2 все вывод А кон
Самостоятельно составить алгоритмы и программы: Запишите условный оператор, который вычисляет значение функции: 2. Запишите условный оператор, в котором значение переменной С вычисляется по формуле А+В, если А>100 и не изменяется в противном случае. Первоначальное значение С = 100.
9 Условие кратности чисел: Если А mod B = 0 то A кратно B то A кратно B Если А mod B 0 то A не кратно B то A не кратно B НАПРИМЕР: 10 MOD 2 = 0 10 MOD 3 = 1 10 DIV 2 = 5 10 DIV 3 = 3 N mod 10 – взять последнюю цифру числа N div 10 – отбросить последнюю цифру числа Например: 105 mod 10 = div 10 = 10
10 ЗАДАЧА: Ввести любое число, если оно кратно 8, прибавить к нему 100, иначе вычесть 300. Алг кратность (цел А) арг А рез А нач ввод А если A mod 8 = 0 то А = A+100 иначе А= А-300 все вывод А кон Самостоятельно составить программу.
11 Чтобы после ключевых слов Then или Else могла выполняться последовательность операторов, последние должны быть заключены в операторные скобки – ключевые слова Begin и End.
12 Пример 3 Даны целые числа х, у. Выведите сообщения о том, которое из чисел больше, а какое – меньше. Пример 3 Даны целые числа х, у. Выведите сообщения о том, которое из чисел больше, а какое – меньше.
13 Ветвление алгоритма на три и более ветвей. Если в программе требуется нарушить порядок выполнения операторов без предварительных проверок каких-либо условий, переход называется безусловным. Если в программе требуется нарушить порядок выполнения операторов без предварительных проверок каких-либо условий, переход называется безусловным. Для реализации такого перехода в языке Турбо-Паскаль служит оператор безусловного перехода GoTo n Здесь n – метка строки в программе, которая должна выполняться после перехода. Для реализации такого перехода в языке Турбо-Паскаль служит оператор безусловного перехода GoTo n Здесь n – метка строки в программе, которая должна выполняться после перехода. Метка – это либо целое число без знака в диапазоне 0…9999, либо идентификатор, определяемый программистом. Метки используются в разделе операторов. Они ставятся перед операторами и отделяются от них двоеточием. Метки должны быть объявлены в разделе описания меток прежде, чем они будут использоваться. Объявление метки начинается словом Label, за которым следует список используемых меток, разделенных запятыми. Метка – это либо целое число без знака в диапазоне 0…9999, либо идентификатор, определяемый программистом. Метки используются в разделе операторов. Они ставятся перед операторами и отделяются от них двоеточием. Метки должны быть объявлены в разделе описания меток прежде, чем они будут использоваться. Объявление метки начинается словом Label, за которым следует список используемых меток, разделенных запятыми. * Но лучше метками и оператором GoTo не пользоваться, так как они усложняют программу * Но лучше метками и оператором GoTo не пользоваться, так как они усложняют программу
14
15 Варианты программ к данной задаче: Program P1; Uses Crt; Uses Crt; Var a,x: real; Var a,x: real; Label 1,2,3; Label 1,2,3; Begin Begin ClrScr; ClrScr; Writeln('ввести x'); Writeln('ввести x'); Read (x); Read (x); If x<0 Then Goto 1; If x<0 Then Goto 1; If x>=10 Then Goto 2; If x>=10 Then Goto 2; a := 2*x; a := 2*x; Goto 3; Goto 3; 1: a := x+1; 1: a := x+1; Goto 3; Goto 3; 2: a:= 0; 2: a:= 0; 3: Writeln ('A=',a:6:2); 3: Writeln ('A=',a:6:2); End. End. Program P2; Var a,x:real; Var a,x:real; Begin Begin Writeln('ввести x'); Writeln('ввести x'); Read (x); Read (x); If x<0 then a:=x+1 If x<0 then a:=x+1 Else Else If x<10 If x<10 Then a := 2*x Then a := 2*x Else a := 0; Else a := 0; Writeln ('A=',a:6:2); Writeln ('A=',a:6:2); End. End. * Процедуры, управляющие представлением информации на экране в текстовом режиме, собраны в стандартном модуле CRT. Для использования возможностей модуля его необходимо подключить к программе в разделе подключения модулей Uses: Uses Crt;
16 Примеры программ: Если введенное с клавиатуры число положительно, вычислить его квадратный корень. program jkh; uses CRT; uses CRT; var a:Integer; var a:Integer; b:real; b:real;BEGIN clrscr; clrscr; writeln('введите число'); writeln('введите число'); readln(a); readln(a); if (a>0) if (a>0) then b:=sqrt(a); then b:=sqrt(a); writeln('b=',b:2:2); writeln('b=',b:2:2); readln; readln;END. Проверить на четность введенное с клавиатуры число. program jkh; uses CRT; uses CRT; var a:Integer; var a:Integer; b:real; b:real;BEGIN clrscr; clrscr; writeln('введите число'); writeln('введите число'); readln(a); readln(a); if (a mod 2 = 0) if (a mod 2 = 0) then writeln('четное') then writeln('четное') else writeln('нечетное'); else writeln('нечетное'); readln; readln;END.
17 ! Составить программу самостоятельно. GOTO N - переход OR - или AND - и
18 В отличие от условного дает возможность выполнения большого количества различных блоков операторов. Его общая форма такова: Case expression of : ; : ;... Else End; ОПЕРАТОР ВЫБОРА. В отличие от условного дает возможность выполнения большого количества различных блоков операторов. Его общая форма такова: Case expression of : ; : ;... Else End; expression – проверяемое целое арифметическое, логическое или символьное выражение, которое в процессе выполнения программы принимает то или иное значение. представляют собой перечисления возможных значений выражения expression. При совпадении значения выражения хотя бы с одним из значений будет выполняться соответствующее и на этом выполнение команды выбора завершается.
19 Оператор выбора. Задача: program new; uses CRT; var m:Integer; BEGIN clrscr; writeln('введите номер месяца:'); readln(m); case m of 1,2,12: writeln('Зима'); 3,4,5: writeln('Весна'); 6,7,8: writeln('Лето'); 9,10,11: writeln('Осень'); end; readln; END. Оператор выбора. Задача: По введенному номера месяца написать какому времени года он принадлежит. program new; uses CRT; var m:Integer; BEGIN clrscr; writeln('введите номер месяца:'); readln(m); case m of 1,2,12: writeln('Зима'); 3,4,5: writeln('Весна'); 6,7,8: writeln('Лето'); 9,10,11: writeln('Осень'); end; readln; END.
20 Задание: По номеру введённого дня недели вывести количество уроков. алг расписание нач ввести дня (D) выбор если D >7 то «неверный день» если D=1 то « 3 урока» если D=2 то « 5 уроков» Если D=6 или D=7 То « выходной» кон Самостоятельно составить программу, используя оператор CASE
21 Подготовка к самостоятельной работе. Составить алгоритмы и программы для задач: Подготовка к самостоятельной работе. Составить алгоритмы и программы для задач: 1. Ввести любое число с клавиатуры. Найти его квадрат, если число отрицательное, в противном случае найти квадратный корень. 2. Вычислить значение функции Y в зависимости от заданного с клавиатуры значения аргумента X: X + 10 при Х >=0 Y = X – 10 при X =0 Y = X – 10 при X < 0 3. Ввести с клавиатуры переменную С. Переменной В присвоить значение, равное 10. Если С >B, вывести на экран их сумму (сложное условие: 0 <= Х <= 10 Если X>= 0 и X<=10 в алгоритме If (X>= 0) and ( X<=10) в программе )
22 САМОСТОЯТЕЛЬНАЯ РАБОТА (по карточкам: Типовые задачи_сл.21-22) САМОСТОЯТЕЛЬНАЯ РАБОТА (по карточкам: Типовые задачи_сл.21-22) Составить алгоритмы и программы для задач: Составить алгоритмы и программы для задач:5. 6. Решить квадратное уравнение. 7. Определить площадь треугольника по формуле Герона. 8. Сл.23
23 ! Составить программу самостоятельно. GOTO N - переход OR - или AND - и