Программы, содержащие операторы ветвления. Простые и составные условия
Тип урока: Урок объяснения нового материала и первичного закрепления знаний.
Цели урока:
Образовательная:
выработка навыков составления алгоритмов и программ, с использованием оператора ветвления при решении задач;
Развивающая:
способствовать развитию памяти, внимания, формирование у учащихся потребности в приобретении знаний;
Воспитательная:
содействовать формированию грамотной речи.
Используемые на уроке средства ИКТ:
— персональный компьютер (ПК) учителя, мультимедийный проектор, экран;
Электронные образовательные ресурсы:
— презентация «Операторы ветвления».
Этап | Деятельность учителя | Деятельность учащихся | УУД |
Актуализация | 1) Какой оператор описывает в программе вывод результата? 2) Какой оператор описывает в программе ввод данных? 3) Какой еще оператор может включать в себя линейные алгоритмы? (:=, writeln, readln) | - (write, writeln)
- (read, readln)
- Присваивание ( := ) | Регулятивные: умение взаимодействовать в учебной деятельности; планирование
Познавательные: поиск и выделение необходимой информации; знаково-символические действия; умение структурировать знания; выбор наиболее эффективных способов решения задачи; анализ объектов с целью выделения признаков; установление причинно-следственных связей; построение логической цепи рассуждения; выдвижение гипотез и их обоснование; - самостоятельное создание алгоритмов деятельности при решении проблем.
Коммуникативные: умение осознанно и произвольно строить речевое высказывание в устной форме; владение монологической и диалогической формами речи.
Личностные: воспринимать речь учителя; оценивать собственную учебную деятельность
|
Изучение нового материала | Операторы (команды) ввода и вывода, оператор (команда) присваивания позволяют составлять линейные программы, в которых все команды выполняются последовательно, одна за другой. Но в жизни, решая те либо иные задачи, часто приходится принимать решения в зависимости от создавшейся ситуации либо от некоторого условия (условий). Например, если холодно, то нужно теплее одеться. Принимая решения, человек рассуждает, анализируя ситуацию. В программировании можно также создавать программы, умеющие выполнять выбор. Для этого существуют команды, которые позволяют компьютеру принимать решения в зависимости от выполнения некоторого условия. Одной из таких команд является условный оператор языка программирования Pascal. Условный оператор может иметь две формы (структуры) – полную или неполную. If then else ; Выполнение условного оператора начинается с вычисления значения логического выражения, записанного в условии. Если (IF) условие истинно, тогда (THEN) выполняется оператор1, иначе (ELSE) выполняется оператор2 Оператор if анализирует некоторое условие. Действия, которые затем будут выполняться, зависят от того, выполняется либо не выполняется конкретное условие. Условие - это выражение, стоящее в операторе if…then сразу после слова if. В зависимости от этого условия (его истинности или ложности) компьютер выполняет ту либо иную ветвь программы.
Рассмотренная выше форма условного оператора if…then…else называется полной. Она позволяет выполнять программу по одной из двух ветвей. Такую алгоритмическую конструкцию называют ветвлением (по аналогии с развилкой ветвей дерева). В языке программирования Pascal существует также неполная форма условного оператора. Неполная форма условного оператора имеет вид: If условие then оператор;
Составим программу для решения следующей задачи: С клавиатуры ввести два различных числа. Найти большее из них и вывести его на экран.
Задание: определить форму ветвления (полная, неполная):
В некоторых структурах ветвления не представляется возможным поставить условие, которое записывается одним логическим выражением. Например, условие: 10 Состоит из двух условий, которые должны выполняться одновременно: а 10 и a Такие условия называются составными. Для записи составных условий на языке программирования используют следующие логические операции: and – логическое «и». or – логическое «или».
Составное условие, состоящее из двух простых условий, соединенных операцией and, верно (истинно) только тогда, когда верны оба простых условия. Составное условие, состоящее из двух простых условий,соединенных операцией or, верно тогда, когда верно хотя бы одно из простых условий.
С помощью логических операций простые условия объединяют в составные. Простые условия при этом обязательно заключаются в скобки, так как логические операции имеют более высокий приоритет, чем операции сравнения. Тогда условие примет вид: If (a 10) and (a Определите истинно или ложно составное условие:
Решим задачу: дан фрагмент программы, найдите значение переменных X и Y X:=21; Y:= 32; IF (X=32) and (Y=21) THEN X:=X*Y ELSE Y:=Y+X; Прежде хочу напомнить, что переменная величина в понимании информатики – это ячейка памяти, которая имеет свое имя и текущее значение. В результате выполнения оператора X:= 21; значение ячейки с именем X станет равным 21. Ребята, подскажите, что получится в результате выполнения команды Y := 32? Какое значение получат переменные X ,Y после выполнения условного оператора?
Решим задачу: Определить, принадлежит ли точка отрезку (0;5). 0
Пример: var a:integer; begin readln(a); if a=7 then writeln('Привет!'); end. Если введенное значение переменной a равно 7, то на экране мы увидим слово Привет! Если не равно — то на экран ничего выводится не будет. Рассмотрим другой пример: var a:integer; begin readln(a); if a=7 then writeln('Привет!'); writeln('До встречи'); end. Что мы увидим на экране, введя число 7? Что мы увидим на экране, введя число 10?
Почему так? Почему До встречи выводится на экран в любом случае? Команда writeln('До встречи'); не относится к конструкции If-Then var a:integer; begin readln(a); if a=7 then writeln('Привет!'); writeln('До встречи'); // условие подсвечено end. Как сделать так, чтобы оба действия относились к конструкции If-Then? Необходимо заключить эти действия в так называемые операторные скобки: begin… end; Получим: var a:integer; begin readln(a); if a=7 then begin writeln('Привет!'); writeln('До встречи'); end.
При составлении программ на языке программирования часто бывает так, что в случае выполнения либо невыполнения некоторого условия в операторе if необходимо осуществить несколько действий. В этом случае последовательность действий (несколько операторов подряд) объединяют в одну группу, заключенную между словами begin и end. IF THEN |
PROGRAM zadacha1; WRITE (‘Большее число : ‘);
X=21, Y=53
PROGRAM FUNC; VAR X:INTEGER; BEGIN WRITELN (‘Введите число’); READLN (X); IF (X0) AND (X THEN WRITELN (‘Число принадлежит промежутку’) ELSE WRITELN (‘Число не принадлежит промежутку’); END.
Привет!
До встречи
| |
Закрепление | Решим задачу: Даны три положительных числа: a, b, c. Проверить, могут ли они быть длинами сторон треугольника. Если да, то вычислить площадь этого треугольника.
Этапы решения задач. Для решения требуется ввод трех чисел: a, b, c, которые являются сторонами треугольника. Тип данных: real. В результате выполнения задачи будет найдена площадь треугольника по трем сторонам (формула Герона), понадобится нахождение полупериметра. Добавляются еще две переменные: р, s. Математическая модель. (a+ b c) или (a + c b) или (с + b a). (Формула Герона). (Формула полупериметра). |
Program pr; Var a, b, c, p, s: real; Begin Writeln (‘Введите стороны треугольника: a, b, c=’); Read (a, b, c); If (a+ b с + b Write (‘Треугольник невозможен’) Else Begin Writeln (‘Треугольник возможен’); p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)); Writeln (‘его площадь = ’, s); End; End. |
|
Итог урока | Важно помнить: Ø Нельзя ставить «;» перед словом else. Ø При записи составных операторов каждое слово begin должно быть «закрыто» словом end. |
|
|
Домашнее задание | Составьте программу, в которой значение переменной (например с) вычисляется по формуле: a+b, если а0 и a*b если а Сравнить два числа, большее из них уменьшить в два раза, а меньшее уменьшить на 2. |
|
|