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

blok-shema.ppt

  • Количество слайдов: 27

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

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

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

Задание: Составить блок-схемы следующих алгоритмов: 1. Дана длина ребра куба (r). Найти площадь грани(SG), Задание: Составить блок-схемы следующих алгоритмов: 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 Решения всех этих задач имеют линейный алгоритм

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

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

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

Program modul; Var x, y: real; Begin Write(‘x=’); read(x); If x<0 then 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 В программе для проверки условия используется условный оператор. Условный оператор в общем виде IF <условие>THEN<оператор> – короткая форма условного если то оператора IF <условие>THEN<оператор>ELSE<оператор> – полная если то иначе форма условного оператора Короткая форма условного оператора не содержит ветвь НЕТ. Подробнее – если проверка условия дает ответ ДА, выполняется оператор стоящий после THEN. Если проверка условия дает ответ НЕТ, программа переходит к следующему оператору. Полная форма условного оператора содержит ветвь ДА и ветвь НЕТ. Подробнее – если проверка условия дает ответ ДА, выполняется оператор, стоящий после THEN. Если проверка условия дает ответ НЕТ, выполняется оператор, стоящий после ELSE.

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

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

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

1. Алгоритм удвоения меньшего Program udvoenie; Var x, y: real; Begin Write(‘x, y=’); read(x, 1. Алгоритм удвоения меньшего Program udvoenie; Var x, y: real; Begin Write(‘x, y=’); read(x, y); If x

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

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

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

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

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

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

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

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

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

Сложное условие в условном операторе Сложное условие – это объединение нескольких простых условий с Сложное условие в условном операторе Сложное условие – это объединение нескольких простых условий с помощью логических операций: И, ИЛИ, НЕ И – логическое умножение (конъюнкция) – 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 и при х = 1 выражение не имеет смысла. начало ввод Х ДА Х<>0 and X<>1 НЕТ вывод y конец program primer 1; 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. В сложном условии каждое простое условие берется в круглые скобки

2. Написать алгоритм определения принадлежности точки с координатами x, y части плоскости, лежащей между 2. Написать алгоритм определения принадлежности точки с координатами x, y части плоскости, лежащей между прямыми x=m и x=n. Известно, что mm) and (x

2. Алгоритм принадлежности точки части плоскости Program tochka; начало Ввод x, m, n Var 2. Алгоритм принадлежности точки части плоскости Program tochka; начало Ввод x, m, n Var x, m, n: real; Begin НЕТ Вывод Нет Write(‘x, m, n=’); read(x, m, n); ДА mm)and(x

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