Алгоритм – это четкий порядок действий для решения задачи. Алгоритм называется линейным, если все его действия выполняются в той последовательности, в.

Презентация:



Advertisements
Похожие презентации
ВетвлениеВетвлениеопределение Разветвляющимся называется процесс, в котором естественный порядок выполнения нарушается в зависимости от условия.
Advertisements

Условный оператор реализует «ветвление», т.е. изменяет порядок выполнения операторов в зависимости от истинности или ложности некоторого условия.
Алгоритмы ветвления. Условный оператор 9 класс. Повторение 1. Что такое алгоритм? 2. Какие типы алгоритмов вы знаете? 3. Какой алгоритм называется линейным?
Использование составных логических выражений в условном операторе Паскаля.
Условный оператор. Ветвление Ветвление – это такая форма организации действий, при которой в зависимости от выполнения или не выполнения некоторого условия.
Условный оператор Полная форма Неполная форма If условие Then оператор_1 If условие Then оператор Else оператор_2 Пример: Построить алгоритм вычисления.
Pascal Алгоритмы разветвляющейся структуры, программирование на языке Pascal 10 «А» класс.
1 Программирование на языке Паскаль Тема 2. Ветвления.
Разветвляющиеся структуры. Для изменения линейного выполнения операторов в программе применяются разветвляющие структуры: Условный оператор. Оператор.
Программирование ветвлений на Паскале. Оператор ветвления или условный оператор if then else if - " если ", then - " то ", else - " иначе "
Условный оператор. Ветвление Ветвление – это такая форма организации действий, при которой в зависимости от выполнения или не выполнения некоторого условия.
ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ АЛГОРИТМОВ НАЧАЛА ПРОГРАММИРОВАНИЯ.
Условный оператор Автор: Облицова Татьяна Александровна, учитель информатики МБОУ СОШ 6, г.Боготол, Красноярский край.
Использование составных логических выражений в условном операторе Паскаля.
ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ АЛГОРИТМОВ НАЧАЛА ПРОГРАММИРОВАНИЯ.
Условный оператор Автор: Облицова Татьяна Александровна, учитель информатики МБОУ СОШ 6, г.Боготол, Красноярский край.
1 Программирование на языке Паскаль © К.Ю. Поляков, ВведениеВведение 2.ВетвленияВетвления 3.Сложные условияСложные условия 4.ЦиклыЦиклы 5.Циклы.
Тема: Ветвления Ветвление – это такая форма организации действий, при которой в зависимости от истинности некоторого условия выполняется либо одна, либо.
1 Программирование на языке Паскаль Тема 3. Сложные условия © К.Ю. Поляков,
ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ АЛГОРИТМОВ НАЧАЛА ПРОГРАММИРОВАНИЯ.
Транксрипт:

Алгоритм – это четкий порядок действий для решения задачи. Алгоритм называется линейным, если все его действия выполняются в той последовательности, в которой они записаны, то есть по порядку

Начало/конец Ввод/вывод Вычисление Условие Блок-схема алгоритма это представление алгоритма в виде геометрических фигур, соединённых стрелками

Пример: Найти расстояние между двумя пешеходами, вышедшими одновременно навстречу друг другу. Начальное расстояние L0, скорость первого пешехода V1, второго V2, время в пути T. Начало Ввод V1,V2,L0,T L := L0 – T(V1 + V2) Конец Вывод L L0=20 км V1=4 км/час V2=5 км/час T=2 часа

Задание: Составить блок-схемы следующих алгоритмов: 1. Дана длина ребра куба (r). Найти площадь грани(SG), площадь полной поверхности(SP) и объем (V) этого куба. SG = r 2 ; SP = 6·SG; V = r 3 2. Дано А. Не используя никаких действий кроме умножения получить А 8 за три действия. 3. Найти периметр и площадь прямоугольного треугольника по длинам его катетов. Задать a=6, b=8. Ответ p=24, s=24 Решения всех этих задач имеют линейный алгоритм

Алгоритм называется разветвляющимся, если порядок выполнения его действий зависит от некоторого условия. Блок проверки условия - ромб Условие Ветвь НЕТ Ветвь ДА

Задача определения модуля числа с ветвью ДА конец Ввод Х Вывод Х X = - X Х < 0 ДА НЕТ начало IF X<0 THEN X:= - X если Х<0 то Х:= - X

конец Ввод Х Вывод Y Y=XY= –X X>0 ДА НЕТ начало Задача определения модуля числа с двумя ветвями ДА и НЕТ IF X>0 THEN Y:= X ELSE Y:= - X если Х>0 то Y:= X иначе Y:= - X

Program modul; Var x,y: real; Begin Write(x=);read(x); If x<0 then y:=-x else y:=x; Writeln(y=,y) End.

В программе для проверки условия используется условный оператор. Условный оператор в общем виде IF THEN – короткая форма условного если то оператора IF THEN ELSE – полная если то иначе форма условного оператора Короткая форма условного оператора не содержит ветвь НЕТ. Подробнее – если проверка условия дает ответ ДА, выполняется оператор стоящий после THEN. Если проверка условия дает ответ НЕТ, программа переходит к следующему оператору. Полная форма условного оператора содержит ветвь ДА и ветвь НЕТ. Подробнее – если проверка условия дает ответ ДА, выполняется оператор, стоящий после THEN. Если проверка условия дает ответ НЕТ, выполняется оператор, стоящий после ELSE.

После служебных слов THEN и ELSE может использоваться только один оператор. Им может быть любой оператор, в том числе и условный. Тогда получаются вложенные условные операторы. Познакомимся подробнее, что такое. В рассмотренной задаче это Х>0 или Х<0 Условие состоит их трех частей: Левая и правая части – арифметические выражения, т.е. числа, имена переменных, функции, соединенные знаками +,-,*,/ Знаки сравнения: = равно < меньше > больше >= больше или равно <= меньше или равно не равно Примеры условий: a>b; x*2=0; sin(a)*2 sqr(x); 2<=b*2

1. Написать алгоритм удвоения меньшего из двух чисел (учесть, что числа могут быть и равны). 2. Напечатать слово «да», если N=0, напечатать слово «нет», если иначе. 3. Построить алгоритм, по которому можно определить пройдет ли график функции Y=5X через заданную точку. 4. Составить алгоритм вычисления значений функции 2x, если х>0 Y= x 2, если х<0 5. Построить алгоритм определения принадлежности точки с координатами (x,y) кругу радиуса R, центр которого лежит в начале координат. Задание:

ДА НЕТ 1. Алгоритм удвоения меньшего из двух чисел ДА НЕТ конец Ввод X,Y Вывод X,2Y X<Y начало Y<X Вывод 2X,Y Вывод X,Y ДА НЕТ

1. Алгоритм удвоения меньшего Program udvoenie; Var x,y:real; Begin Write(x,y=);read(x,y); If x<y then writeln(2*x,y) else if y<x then writeln(x,2*y) else writeln(x,y) End.

Program dva; Var n:real; Begin Write(n=);read(n); If n=0 then writeln(yes) else writeln(no) End. ДАНЕТ конец Ввод N Вывод Да N=0 начало Вывод Нет 2. Алгоритм да_нет

Program tri; Var x,y:real; Begin Write(x,y=);read(x,y); If y=5*x then writeln(пройдет) else writeln(не пройдет) End. ДАНЕТ конец Ввод x,y Вывод пройдет y=5x начало Вывод не пройдет 3. Пройдет ли график Y=5x через точку

Program zadacha_4; Var x,y:real; Begin Write(x=);read(x); If x>0 then y:=2*x else if x<0 THEN y:=x*x; writeln(y=,y) End. ДА НЕТ ДА НЕТ 4. Алгоритм вычисления Y конец Ввод X X>0 начало Y=2X X<0 Y=X 2 Вывод Y

5. Принадлежит ли точка кругу Если точка лежит на окружности, то расстояние от этой точки до начала координат равно радиусу. Если точка лежит внутри круга, то расстояние от неё до начала координат меньше радиуса Если точка вне круга – расстояние больше радиуса Расстояние от любой точки до начала координат определяем по теореме Пифагора: S 2 =X 2 +Y 2 0,0 R Y X Y S

program zadacha_5; var x,y,r:real; begin write(x,y,r=); read(x,y,r); if x*x+y*y<=r*r then writeln(yes) else writeln(no) end. НЕТ ДА 5. Принадлежит ли точка кругу конец Ввод X, Y, R X 2 +Y 2 <=R 2 начало Вывод No Вывод Yes

Составной оператор – это объединение простых операторов с помощью операторных скобок Begin – открывающая скобка End – закрывающая скобка Составной оператор используется в том месте программы, где нужно использовать несколько операторов, а по правилам Паскаля можно написать только один

Составной оператор Решение квадратного уравнения: ax 2 +bx+c=0 program kwur; var a,b,c,x1,x2,d:real; begin write('a= (a<>0)');read(a); write('b=');read(b); write(c=');read(c); d:=b*b-4*a*c; if d>=0 then begin x1:=(-b-sqrt(d))/(2*a); x2:=(-b+sgrt(d))/(2*a); writeln(x1,x2); end; else writeln('НЕТ КОРНЕЙ'); end. конец Ввод a,b,c Вывод x 1, x 2 d >= 0 ДА НЕТ d = b 2 - 4ac начало Нет корней

В конце программы используется условный оператор: if d>=0 then... else... На месте многоточия должен стоять один (не более!) оператор. Но ведь при решении квадратного уравнения, если дискриминант неотрицателен, надо проделать несколько действий. Как уместить их в одном операторе? Для этого последовательность операторов помещается между словами BEGIN и END, после чего она превращается в один оператор – составной. Задание Составить программу, изменяющую два введенных числа следующим образом: меньшее число заменить их полусуммой, а большее их удвоенным произведением.

Составной оператор_задание Меньшее заменить полусуммой, большее – удвоенным произведением program zadanie; var a,b,s,p:real; begin write('a,b=');read(a,b); s:=(a+b)/2;p:=2*a*b; if a<b then begin a:=s;b:=p end else if a>b then begin a:=p;b:=s end; writeln(a=,a,b=,b); end. конец Ввод a,b Вывод a, b a = s; b = p a >b ДА НЕТ s = (a+b)/2; p = 2ab начало a <b a = p; b = s ДА НЕТ

Сложное условие – это объединение нескольких простых условий с помощью логических операций: И, ИЛИ, НЕ И – логическое умножение (конъюнкция) – AND ИЛИ – логическое сложение (дизъюнкция) – OR НЕ – логическое отрицание (инверсия) – NOT Например: A=5, B=4; (A>B) AND (A=0) равно A=0, B=5, C=10; (A>B) OR (B*2=C) равно A= 2; NOT(A=2) равно A=0, B=7, C=8; (A=0) or (B=0) or (C=0) равно A=6, B=4, C=1; (A>B) and (B>C) равно Сложное условие в условном операторе ДА НЕТ ДА

Примеры: 1. Построить алгоритм вычисления значений функции учитывая, что при х = 0 и при х = 1 выражение не имеет смысла. начало ввод Х Х<>0 and X<>1 вывод y конец ДА НЕТ program primer1; var x,y:real; begin write(x=');read(x); if (x<>0) and (x<>1) then begin y:=1/x+1/(x-1); writeln(y=,y); end end. В сложном условии каждое простое условие берется в круглые скобки

2. Написать алгоритм определения принадлежности точки с координатами x, y части плоскости, лежащей между прямыми x=m и x=n. Известно, что m<n mn y x,y Условие того, что точка принадлежит части плоскости: x=m x=n (x>m) and (x<n) x,y Составить блок-схему и написать программу

Program tochka; Var x,m,n:real; Begin Write(x,m,n=);read(x,m,n); If (x>m)and(x<n) then writeln(yes) else writeln(no) End. ДАНЕТ конец Ввод x,m,n Вывод Да m<x<n начало Вывод Нет 2. Алгоритм принадлежности точки части плоскости

АВС Ответ Условие 123В между А и С А<В<С 321В между С и А C<В<A 213А между В и С В<А<С 231А между С и В С<А<В 132С между А и В А<С<В 312С между В и А В<С<А 3. Даны три числа: A, B, C. Написать алгоритм поиска числа, лежащего между двух других чисел. Например: