Задание. Семакин, Информатика, 10 класс, , стр 234
Занятие №20 лекция, практическая работа
Тема: Запись и вычисление логических выражений
Практическая работа №9 Программирование ветвящихся алгоритмов
Дидактическая цель: познакомить учащихся с оператором ветвления на Паскале, с типами ветвления; с формой записи оператора ветвления на Паскале.
Литература: Семакин, Информатика, 10 класс, стр. § 19, стр 234
Видеоматериалы
https://www.youtube.com/watch?v=2TzkU2z9mgs
http://sdo.losev-it.ru/course/index.p...
https://www.youtube.com/watch?v=TpTJGOvzhtI
https://www.youtube.com/watch?v=vUI3psv1buY
http://losev-it.ru
https://www.youtube.com/playlist?list=PLT7luqA6b3njxrHHeAwzZ6atRbn4hET-z
Вопросы и задания
1 Повторить материал § 19.
2 Ознакомиться с видеоматериалами
3 Ознакомиться с материалом лекции и ответить на вопросы.
4 В тетради записать дату и тему занятия, привести блок-схему и условные операторы, описывающие структуру ветвления.
5 Внимательно ознакомьтесь с примерами программирования структуры ветвления на языке Паскаль
6 В тетради выполнить Практическую работу №9 Программирование ветвящихся алгоритмов
В начале занятия для повторения пройденного материала, найдите правильные ответы на вопросы:
1. Как записывается заголовок программы на Паскале? | Program (name) |
2. Как записывается раздел описания переменных? | Var |
3. С какими типами числовых величин работает Паскаль? | Целые и вещественные |
4. Как записывается оператор присваивания? | := |
5. Как записывается оператор ввода и вывода в Паскале? | Read (readln), write (writeln) |
Алгоритмическая структура ветвления программируется в Паскале с помощью условного оператора If. Условный оператор используется для выполнения одного из двух возможных вариантов программы.
|
|
Полное ветвление:
If < логическое выражение >
Then < оператор 1 >
Else < оператор 2 >
Неполное ветвление:
If < логическое выражение >
Then < оператор >
Перед else точка с запятой не ставится!
Логическое выражение:
- Простой формой логического выражения является операция отношения:
- < меньше,
- > больше,
- <= меньше или равно,
- >= больше или равно,
- = равно,
- <> не равно.
- Сложные формы логических выражений составляются с использованием логических операций:
- not логическое отрицание (НЕ),
- and логическое умножение (И),
- or логическое сложение (ИЛИ),
- xor исключающее ИЛИ
- Порядок действий:
- Отрицание, умножение, сложение, операции отношений.
Операторные скобки:
- Если после слов then или else нужно выполнить не один оператор, а несколько, то эти операторы заключают в операторные скобки: begin … end
- Конструкция такого вида:
Begin <последовательность операторов> end
относится к составным операторам.
- Операторы ветвления могут быть вложены друг в друга, необходимо только следить за тем, чтобы then и else одного и того же оператора располагались друг под другом.
В качестве примера рассмотрим следующую задачу:
|
|
- Из двух заданных целых чисел выбрать наибольшее.
- Математическая модель:
Данные: x, y
Результат:
- Варианты:
Если x=5, y=8, то max=8
Если x=6, y=1, то max=6
Если x=5, y=5, то max=5
Программа:
Program Vetv1en;
Var x, y, max: integer;
Begin
Writeln (‘Введите два числа’);
Readln (x, y);
if x >=y then max:=x
else max:=y;
Writeln (‘наибольшее = ’,max);
End.
То, что в алгоритмах называется условием, в Паскале является логическим выражением, которое вычисляется в первую очередь. Если его значение равно true, то будет выполняться < оператор 1 > (после Then), если — false, то < оператор 2 > (после Else) для полной формы или оператор, сразу следующий после условного, для неполной формы (без Else). На ветвях может быть как простой оператор, так и составной — серия операторов в операторных скобках Begin, End.
Пример 1. По длинам трех сторон треугольника а, b, с требуется вычислить его площадь.
Для решения задачи используется формула Герона
где р = (а + b + с)/2 — полупериметр треугольника. Исходные данные должны удовлетворять основному соотношению для сторон треугольника — длина каждой стороны должна быть меньше суммы длин двух других сторон, и длины сторон не могут быть отрицательными величинами.
|
|
Имея возможность в одном условном операторе записывать достаточно сложные логические выражения, используя логические операции, мы можем сразу «отфильтровать» все варианты неверных исходных данных.
Пример 2. Требуется перевести пятибалльную оценку в ее наименование: 5 — «отлично», 4 — «хорошо», 3 — «удовлетворительно», 2 — «неудовлетворительно».
Блок-схема алгоритма приведена на рис. 1.
Рисунок 1 – Алгоритм перевода числовой оценки в словесную
Этот алгоритм имеет структуру вложенных ветвлений и может быть запрограммирован с использованием условного оператора If следующим образом:
Пример 3. Решение рассмотренной в предыдущем примере задачи можно запрограммировать с помощью одного оператора выбора, имеющегося в языке Паскаль. Вот как будет выглядеть такая программа:
Оператор выбора имеет следующий формат:
Case < селектор > of
< список констант 1 > : < оператор 1 > ;
···
< список констант N > : < оператор N > ;
Else <оператор>
End
Здесь < селектор > — это выражение любого порядкового типа; < константа > — постоянная величина того же типа, что и селектор; < оператор > — любой простой или составной оператор.
|
|
Выполнение оператора выбора происходит так: вычисляется выражение-селектор; затем в списках констант ищется такое значение, которое совпадает с полученным значением селектора; далее исполняется оператор, помеченный данной константой. Если такой константы не найдено, то происходит переход к выполнению оператора, следующего после слова Else.
Пример 4. В этом примере демонстрируется использование списка констант в операторе выбора. Программа сообщает, сдал студент экзамен или не сдал. Если оценка одна из следующих: 3, 4, 5, то экзамен сдан; если 2, то не сдан.
Case N of
3, 4, 5: WriteLn(' Экзамен сдан ');
2: WriteLn('Экзамен не сдан');
Else WriteLn('Нет такой оценки')
End
Так же как условный оператор, оператор выбора может ис-пользоваться в неполной форме, т. е. без ветви Else.
Если применить условный оператор, то эта программа запишется так:
If (N=3) or (N=4) or (N=5)
Then WriteLn(' Экзамен сдан ')
Else If N=2
Then WriteLn(' Экзамен не сдан ')
Else WriteLn('Нет такой оценки');
В условии ветвления использовано сложное логическое выражение, содержащее операции логического сложения or (или).
Вопросы и задания
1. Какие операторы используются для программирования ветвящихся алгоритмов?
2. В каких случаях удобно использование оператора выбора?
3. Составьте на Паскале программу упорядочения по возрастанию значений в трех переменных: X, Y, Z.
4. Используя оператор выбора, составьте программу, которая по введенному номеру месяца будет выводить название соответствующего времени года (зима, весна, лето, осень).
Практическая часть
Задание. Семакин, Информатика, 10 класс, , стр 234
Для одной из задач задания 1 и 2 составить блок-сему алгоритма и программу с ветвящейся структурой, используя условный оператор IF, задания 3 - составить программу, выводящую значение TRUE, если указанное высказывание является истинным, и FALSE — в противном случае (использовать условный оператор нельзя).
Примеры решения задач
Задание. Для каждой задачи составить блок-сему алгоритма и программу с ветвящейся структурой, используя условный оператор IF.
1. Даны два угла треугольника (в градусах). Определить, существует ли такой треугольник. Если да, то прямоугольный ли он. | var a,b,c:real; begin writeln('введите два угла треугольника'); readln(a,b); if (a+b)>180 then write('треугольник не существует') else begin writeln('треугольник существует'); c:=180-(a+b); if (a=90) or (b=90) or (c=90) then writeln('треугольник прямоугольный') else writeln('треугольник не прямоугольный'); end; end. |
2. На плоскости XOY задана своими координатами точка А. Указать, где она расположена: на какой оси или в какой координатной четверти. | var x,y:real; begin writeln('введите координаты точки А'); readln(x,y); if (x=0)and (y=0) then write('в центре координат') else if (y=0) then write('на оси x') else if (x=0) then write('на оси y') else if (x>0) then if y>0 then write('в первой четверти') else write('в четвертой четверти') else begin if y>0 then write ('во второй четверти') else write ('в третьей четверти'); end; end. |
3. Грузовой автомобиль выехал из одного города в другой со скоростью V1 км/ч. Через t ч в этом же направлении выехал легковой автомобиль со скоростью v2 км/ч. Составить программу, определяющую, догонит ли легковой автомобиль грузовой через t ч после своего выезда. | var v1,v2,t,t1:real; begin writeln('v1='); read(v1); writeln('t='); read(t); writeln('v2='); read(v2); writeln('t1='); read(t1); if (v2*t1>=v1*(t+t1)) then write('догонит') else write ('не догонит'); end. |
4.Написать программу нахождения суммы большего и меньшего из 3 чисел. | var a,b,c,max,min:integer; begin write ('введите три числа'); 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; if (a<c)<="" span="" style="box-sizing: border-box;"> then min:=a else if (b else min:=c; writeln(max+min); end. |
5.Написать программу, распознающую по длинам сторон среди всех треугольников прямоугольные. Если таковых нет, то вычислить величину угла С. | var a,b,c,n,uc:real; f:boolean; begin writeln('введите стороны треугольника'); readln(a,b,c); if (a>b) and(a>c) then f:=(a*a=c*c+b*b) else if (b>c) and (b>a) then f:=(b*b=a*a+c*c) else f:=(c*c=a*a+b*b); if f=true then writeln ('Треугольник прямоугольный') else begin writeln ('треугольник не прямоугольный'); n:=(a*a+b*b-c*c)/(2*a*b); uc:=arctan(sqrt(1+1/n))*180/pi; writeln('Угол С равен: ',uc:8:2); end; end. |
6. Составить программу, осуществляющую перевод величин из радианной меры в градусную или наоборот. Программа должна запрашивать, какой перевод нужно осуществить, и выполнять указанное действие. | var gr,rad:real; s:char; begin writeln('Перевести в радианы или градусы р/г:'); read(s); if (s='р')or (s='r')or (s='R')or (s='Р') then begin writeln ('введите количество градусов'); read (gr); rad:=gr*pi/180; Write(gr:3:6,'градусов=',rad:3:6,'радиан'); end else begin write('введите количество радиан:'); read (rad); gr:=rad*180/pi; Write(rad:3:6,'радиан=',gr:3:6,'градусов'); end; end. |
Задание 2
Задание 3
2. Составить программу, которая по данному числу (1-12) выводит название соответствующего ему месяца на английском языке.
Обратная связь: выполненные задания, вопросы отправляем в комментариях или личные сообщения преподавателю или на электронную почту колледжа dktidistanc@mail.ru
Дата добавления: 2020-11-23; просмотров: 800; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!