Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 9 лет назад пользователемФёдор Юрасовский
1 Алгоритм – это четкий порядок действий для решения задачи. Алгоритм называется линейным, если все его действия выполняются в той последовательности, в которой они записаны, то есть по порядку
2 Начало/конец Ввод/вывод Вычисление Условие Блок-схема алгоритма это представление алгоритма в виде геометрических фигур, соединённых стрелками
3 Пример: Найти расстояние между двумя пешеходами, вышедшими одновременно навстречу друг другу. Начальное расстояние L0, скорость первого пешехода V1, второго V2, время в пути T. Начало Ввод V1,V2,L0,T L := L0 – T(V1 + V2) Конец Вывод L L0=20 км V1=4 км/час V2=5 км/час T=2 часа
4 Задание: Составить блок-схемы следующих алгоритмов: 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 Решения всех этих задач имеют линейный алгоритм
5 Алгоритм называется разветвляющимся, если порядок выполнения его действий зависит от некоторого условия. Блок проверки условия - ромб Условие Ветвь НЕТ Ветвь ДА
6 Задача определения модуля числа с ветвью ДА конец Ввод Х Вывод Х X = - X Х < 0 ДА НЕТ начало IF X<0 THEN X:= - X если Х<0 то Х:= - X
7 конец Ввод Х Вывод Y Y=XY= –X X>0 ДА НЕТ начало Задача определения модуля числа с двумя ветвями ДА и НЕТ IF X>0 THEN Y:= X ELSE Y:= - X если Х>0 то Y:= X иначе Y:= - X
8 Program modul; Var x,y: real; Begin Write(x=);read(x); If x<0 then y:=-x else y:=x; Writeln(y=,y) End.
9 В программе для проверки условия используется условный оператор. Условный оператор в общем виде IF THEN – короткая форма условного если то оператора IF THEN ELSE – полная если то иначе форма условного оператора Короткая форма условного оператора не содержит ветвь НЕТ. Подробнее – если проверка условия дает ответ ДА, выполняется оператор стоящий после THEN. Если проверка условия дает ответ НЕТ, программа переходит к следующему оператору. Полная форма условного оператора содержит ветвь ДА и ветвь НЕТ. Подробнее – если проверка условия дает ответ ДА, выполняется оператор, стоящий после THEN. Если проверка условия дает ответ НЕТ, выполняется оператор, стоящий после ELSE.
10 После служебных слов THEN и ELSE может использоваться только один оператор. Им может быть любой оператор, в том числе и условный. Тогда получаются вложенные условные операторы. Познакомимся подробнее, что такое. В рассмотренной задаче это Х>0 или Х<0 Условие состоит их трех частей: Левая и правая части – арифметические выражения, т.е. числа, имена переменных, функции, соединенные знаками +,-,*,/ Знаки сравнения: = равно < меньше > больше >= больше или равно <= меньше или равно не равно Примеры условий: a>b; x*2=0; sin(a)*2 sqr(x); 2<=b*2
11 1. Написать алгоритм удвоения меньшего из двух чисел (учесть, что числа могут быть и равны). 2. Напечатать слово «да», если N=0, напечатать слово «нет», если иначе. 3. Построить алгоритм, по которому можно определить пройдет ли график функции Y=5X через заданную точку. 4. Составить алгоритм вычисления значений функции 2x, если х>0 Y= x 2, если х<0 5. Построить алгоритм определения принадлежности точки с координатами (x,y) кругу радиуса R, центр которого лежит в начале координат. Задание:
12
ДА НЕТ 1. Алгоритм удвоения меньшего из двух чисел ДА НЕТ конец Ввод X,Y Вывод X,2Y X
13
1. Алгоритм удвоения меньшего Program udvoenie; Var x,y:real; Begin Write(x,y=);read(x,y); If x
14 Program dva; Var n:real; Begin Write(n=);read(n); If n=0 then writeln(yes) else writeln(no) End. ДАНЕТ конец Ввод N Вывод Да N=0 начало Вывод Нет 2. Алгоритм да_нет
15 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 через точку
16 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
17 5. Принадлежит ли точка кругу Если точка лежит на окружности, то расстояние от этой точки до начала координат равно радиусу. Если точка лежит внутри круга, то расстояние от неё до начала координат меньше радиуса Если точка вне круга – расстояние больше радиуса Расстояние от любой точки до начала координат определяем по теореме Пифагора: S 2 =X 2 +Y 2 0,0 R Y X Y S
18 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
19 Составной оператор – это объединение простых операторов с помощью операторных скобок Begin – открывающая скобка End – закрывающая скобка Составной оператор используется в том месте программы, где нужно использовать несколько операторов, а по правилам Паскаля можно написать только один
20 Составной оператор Решение квадратного уравнения: 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 начало Нет корней
21 В конце программы используется условный оператор: if d>=0 then... else... На месте многоточия должен стоять один (не более!) оператор. Но ведь при решении квадратного уравнения, если дискриминант неотрицателен, надо проделать несколько действий. Как уместить их в одном операторе? Для этого последовательность операторов помещается между словами BEGIN и END, после чего она превращается в один оператор – составной. Задание Составить программу, изменяющую два введенных числа следующим образом: меньшее число заменить их полусуммой, а большее их удвоенным произведением.
22 Составной оператор_задание Меньшее заменить полусуммой, большее – удвоенным произведением program zadanie; var a,b,s,p:real; begin write('a,b=');read(a,b); s:=(a+b)/2;p:=2*a*b; if ab 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
23 Сложное условие – это объединение нескольких простых условий с помощью логических операций: И, ИЛИ, НЕ И – логическое умножение (конъюнкция) – 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) равно Сложное условие в условном операторе ДА НЕТ ДА
24 Примеры: 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. В сложном условии каждое простое условие берется в круглые скобки
25
2. Написать алгоритм определения принадлежности точки с координатами x, y части плоскости, лежащей между прямыми x=m и x=n. Известно, что m
26
Program tochka; Var x,m,n:real; Begin Write(x,m,n=);read(x,m,n); If (x>m)and(x
27 АВС Ответ Условие 123В между А и С А<В<С 321В между С и А C<В
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.