1 (развилка) – это такая форма организации действий, при которой в зависимости от выполнения или невыполнения некоторого условия совершается либо одна,

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



Advertisements
Похожие презентации
(развилка) – это такая форма организации действий, при которой в зависимости от выполнения или невыполнения некоторого условия совершается либо одна, либо.
Advertisements

Организация программ разветвляющейся структуры. Условный оператор.
ВетвлениеВетвлениеВетвление – участок программы, позволяющий выбрать для исполнения, в зависимости от истинности условия, одну из двух групп команд. If.
Шутилина Л.А. В жизни часто приходится принимать решения в зависимости от сложившейся ситуации, когда нужно сделать тот или иной.
Зеленый ? Ждем зеленый! Переходим дорогу! НЕТ ДА.
Оператор выбора позволяет программировать ветвления по многим направлениям. Этот оператор организует переход на одну из нескольких ветвей в зависимости.
PASCAL Условный оператор.. Этот оператор используется для выполнения одного из двух возможных вариантов программы. Условный оператор если логическое_условие.
Оператор выбора используется в тех случаях, когда в зависимости от значения какого-либо выражения необходимо выполнить один из нескольких последовательных.
1 Программирование на языке Паскаль Ветвления. 2 Разветвляющиеся алгоритмы Задача. Ввести два целых числа и вывести на экран наибольшее из них. Идея решения:
CASE – ОПЕРАТОР ВЫБОРА. РАССМОТРИМ СЛЕДУЮЩУЮ ЗАДАЧУ : Х, ЕСЛИ Х = 3 У = Х+1, ЕСЛИ Х=0 Х 2 + Х –2, ЕСЛИ Х = -2 Х 3, ЕСЛИ Х = -8.
1 Программирование на языке Паскаль © К.Ю. Поляков, ВведениеВведение 2.ВетвленияВетвления 3.Сложные условияСложные условия 4.ЦиклыЦиклы 5.Циклы.
Оператор варианта (выбора). Оператор варианта применяется для решения задач в которых необходимо использовать многократно вложенные друг в друга условные.
1 Программирование на языке Паскаль Тема 2. Ветвления © К.Ю. Поляков,
Тема урока : Оператор множественного выбора CASE.
Оператор выбора. Оператор выбора позволяет выбрать одно из нескольких возможных продолжений программы. Параметром, по которому осуществляется выбор, служит.
Команда 1 Команда 2 Команда N... Как называются алгоритмы такой структуры? Линейные.
Оператор выбора позволяет программировать ветвления по многим направлениям.
Организация программ разветвляющейся структуры. Условный оператор.
Тест по теме «Линейный алгоритм». 1.Определите значение целочисленной переменной а после выполнения фрагмента алгоритма. а:=247; b:=(a div 100)*10+9;
«Программирование разветвляющихся алгоритмов» Учитель информатики гимназии 12 г. Тюмени Бугаева Елена Викторовна.
Транксрипт:

1 (развилка) – это такая форма организации действий, при которой в зависимости от выполнения или невыполнения некоторого условия совершается либо одна, либо другая последовательность действий Ветвление

2 IF <УВ> THEN <X>; IF <УВ> THEN <X1> ELSE <X2> ; Неполное Полное Х УВ да нет Х1Х2 УВ да-нет Выполнение программы может пойти двумя различными (альтернативными) путями.

3 да нет НЕПОЛНОЕ ветвление При выполнении одной из ветвей никаких изменений данных, поступающих на вход, не происходит.

4 да-нет ПОЛНОЕ ветвление

5 РЕШЕНИЕ ЗАДАЧ Даны значения двух величин, выбрать большее из них. Program Primer1; Var A, B, Max: real; Begin Write(Введите два числа ); Readln(A,B); If A > B then Max:= A else Max:=B; Writeln( Большее:, Max:5:1); Readln; End. ДАНО: значения данных переменных определим как А и В. ПОЛУЧИТЬ: результат сохраним в Max А, В, Max – числа веществвенного типа. МАТЕМАТИЧЕСКИЕ СВЯЗИ: Max = A, если А > В Max = В, если В > А А > В Начало Ввод А, В Max:=AMax:=B Вывод Max Конец да-нет Анализ результатов. Для проверки работоспособности данной программы ее необходимо выполнить как min 2 раза: 1. А = 1, В = А = 2, В = 1. Результат: Большее: 2.0 Вопрос: по какой ветви пойдет выполнение программы в случае А = В ?

6 Program Primer2; Var A, B, Max: real; Begin Write(Введите два числа ); Readln(A,B); Max:= A; If B > Max then Max:= B; Writeln( Большее:, Max:5:1); Readln ; End. Другой вариант решения этой же задачи В > Max Начало Ввод А, В Max:=В Вывод Max Конец Max:=A да-нет Анализ результатов: 1. Введите два числа 1 2 Большее: Введите два числа 2 1 Большее: 2.0

7 Домашнее задание Стр , 156(последний абзац), 157(первый абзац) Для всех примеров стр представить алгоритм в виде блок- схемы (как на стр. 157) Составить алгоритм на бытовую тему алгоритм на бытовую тему

8 Даны значения трех величин, выбрать большее из них. Напишите в тетради условие задачи что дано; что получить; тип данных; связи между исходными данными и результатами Напишите программу для данного алгоритма. Проведите анализ результатов. Спишите предложенный алгоритм Начало Ввод А,В,C Вывод Max Конец Max:=A А > В Max:=B Max:=C С > Max да нет

9 Начало Ввод А,В,C Вывод Max Конец Max:=B B > CB > C Max:=C A > BA > B Max:=A А > C Max:=C нет да Второй вариант решения задачи ЗАДАНИЕ. 1. Проанализируйте каким образом соединяются алгоритмические конструкции при решении данной задачи первым и вторым вариантами. соединяются алгоритмические конструкции

Program Primer4; Var A, B, C, Max: real; Begin Write(Введите три числа ); Readln(A,B,С); If A > B then if A > C then Max:=A else Max:=C else if B > C then Max:=B else Max:=C; Writeln( Большее:, Max:5:1); Readln; End. Анализ результатов: 1. А = 1, В = 2, С = 3; 2. А = 1, В = 3, С = 2; 3. А = 2, В = 1, С = 3; 4. А = 2, В = 3, С = 1; 5. А = 3, В = 1, С = 2; 6. А = 3, В = 2, С = 1. Для какого варианта написана данная программа? Спишите программу в тетрадь рядом с соответствующим ей вариантом алгоритма.

11 R A Известны радиус круга и сторона квадрата. У какой фигуры площадь больше? Распечатать сообщение: «Площадь … больше. S…=…» Skv = A*A Skr = Pi*R 2 Задача

12 Skr=Pi*R*R Skv=A*A Skv >Skr да нет Площадь квадр > Площадь круга > R, A SkvSkr Дано: R – радиус круга; A – сторона квадрата. (веществвенные числа) Получить: Сообщение «Площадь квадрата больше. Skv = …» или «Площадь круга больше Skr = …» S круга = πR 2 ; S квадрата = А 2

13 Program Primer5; Var r,a,skr,skv: real; Begin write(Введите радиус круга ); readln(r); write( Введите сторону квадрата ); readln(а); skr:= Pi*r*r; skv:=a*a; If skr > skv then begin writeln( Площадь круга больше больше ); writeln( Skr =,skr:5:1) end else begin writeln( Площадь квадрата больше ); writeln( Skv =,skr:5:1) end; End. В случае, если после Then (Else) более одного оператора используются операторные скобки (Begin – End) ВНИМАНИЕ!

14 При вложении более трех структур ВЕТВЛЕНИЯ возрастает вероятность появления ошибок. В этом случае рекомендуется использовать алгоритмическую конструкцию ВЫБОР

15 ВЫБОР Предназначен для выбора из многих вариантов Case k of k1: D1; k2: D2; … kn: Dn; else Dx; End; k D1 D2D2 Dn Dx k1 k2 kn … да нет Переменные k, k1, …kn – порядкового типа: целый, символьный, …

16 Написать программу для вывода дня недели по номеру дня. Program namber; var n: integer; Begin write( Введите номер дня недели ); readln(n); Case n of 1: writeln( Понедельник); 2: writeln( Вторник); 3: writeln( Среда); 4: writeln( Четверг); 5: writeln( Пятница); 6: writeln( Суббота); 7: writeln( Воскресенье); Else writeln( Такого дня в неделе нет); End; Readln End.

17 Решение задач 1. Составить программу, которая в зависимости от порядкового номера месяца (1,2,…,12) выводит на экран количество дней в этом месяце. 2. Написать программу, которая на ввод времени суток выводит соответствующее пожелание доброго утра, доброго дня, доброго вечера или спокойной ночи. 3. Для целого числа k от 1 до 99 вывести фразу: «Мне k лет», учитывая при этом, что при некоторых значениях k слово «лет», надо заменить словом «год» или «года». Например, 11 лет, 22 года, 51 год.

18 4. Дата некоторого дня определяется тремя натуральными числами: g (год), m (порядковый номер месяца) и n (число). По заданным номерам g, m и n определить: дату предыдущего дня; дату следующего дня. 5. Составить программу, позволяющую по последней цифре числа, определить последнюю цифру куба этого числа. 6. На ввод в программу натурального числа из диапазона [1,25] программа выводит это число и согласованное с ним слово «книга». Например, «1 книга», «2 книги», «12 книг».

19 Задача В древнем японском календаре был принят 60-летний цикл, состоящий из пяти 12-летних подциклов. Подциклы обозначались названиями цветов: зеленый, красный, желтый, белый и черный. Внутри каждого подцикла годы носили название животных: крыса, корова, тигр, заяц, дракон, змея, лошадь, овца, обезьяна, курица, собака и свинья. Например, 1984 год – год начала очередного цикла – назывался годом зеленой крысы. Составить программу, которая по заданному номеру года нашей эры n выводит его название по древнему японскому календарю. Рассмотреть два случая: Значение n>= 1984; Значение n может быть любым натуральным числом.

20 Задача Дано X, вычислить Y(x) 20 -x, если х 0; Y = x, если 0 < х 2; 2, в остальных случаях. x y 2

21 X<= 0 Y = - X X X, Y да-нет Анализ результатов: 1. Х = -1, Y = 1; 2. Х = 0, Y = 0; 3. Х = 1, Y = 1; 4. Х = 5, Y = 2; 5. Х = 2, Y = 1; Y = X да-нет Y = 2 X<= 2 Обратите внимание на условие! X<= 2 Напишите программу для данного алгоритма. (При написании применяйте отступы для вложенной конструкции.)

22 Cамостоятельная работа Дано X, вычислить Y(x) x y x, если х 0; x, если х > 0; Y = Написать алгоритм, программу. Провести анализ результатов

23 x y Y= - x - 1 Y= x + 1Y= - x + 1Y= x - 1 Определить что дано, что надо получить. Написать условие задачи в виде функции. Написать алгоритм, программу. Провести анализ результатов

24 Какое значение будет иметь переменная x после выполнения операторов? 1. y := 7; z:= 4; If y - z >= 3 Then x := y Else x := z; x:= x +4; 2. y := 7; z:= 4; If y - z >= 3 Then x := y Else begin x := z; x:= x +4; end; 3. x := 0; z := 5; y := 5; If z > 2 Then If y > 2 Then x:= 1 Else x := 2;

25 y := 7; z:= 4; If y - z >= 3 Then x := y Else x := z; x:= x +4; y := 7 z:= 4 y - z >= 3 x := y x := z x:= x +4 да нет

26 y := 7; z:= 4; If y - z >= 3 Then x := y Else begin x := z; x:=x +4; end; y := 7 z:= 4 y - z >= 3 x := y x := z x:= x +4 да нет

27 x := 0; z := 5; y := 5; If z > 2 Then If y > 2 Then x:= 1 Else x := 2; x := 0 z := 5 y := 5 z > 2 x := 1 x:= 2 да-нет y > 2 да нет

28 Задача: «Оптимальный вес» Написать программу, которая вычисляет оптимальный вес пользователя, сравнивает его с реальным и выдает рекомендацию о необходимости поправиться или похудеть. Оптимальный вес вычисляется по формуле: рост (в см) – 100. Рекомендуемый вид экрана во время работы программы: Введите в одной строке через пробел рост (см) и вес (кг) затем нажмите <Enter> --> Вам надо поправиться на 2.00 кг.

29 Математическая модель Дано: rost – рост пользователя; ves – вес пользователя. (Вещественные числа) Получить: оптимальный вес – opt_v (веществ. число), сравнить его с реальным и дать рекомендацию: Связи: opt_v = rost – 100 «Вам надо поправиться на opt_v – ves кг», если ves < opt_v «Вам надо похудеть на ves – opt_v кг», если ves > opt_v «Ваш вес оптимален!», если ves = opt_v

30 Задание: Написать алгоритм в виде блок-схемы. Проверить верно ли написан алгоритм для теста. (Сколько раз надо проверять?) Набрать программу. Проанализировать полученный результат. Списать программу в тетрадь

31 R A Известны площадь круга и площадь квадрата Уместится ли круг в квадрате? Skv = A*A A = Skv R = Skr/Pi Skr = Pi*R 2

32 A R 2R = A A R A R 2R > A 2R < A

33 В 19 часов будет дождь? Почитаю книгу Пойду гулять да нет Планы на вечер Алгоритм ветвления на бытовую тему

34 Решение задач 1) Задача: Известны два расстояния: одно в километрах, другое – в футах (1 фут = 0.45 м). Какое из расстояний меньше? Задание: Написать алгоритм и программу на ЯП Паскаль. Проанализировать полученный результат. 2) Задача: Известны две скорости: одна в километрах в час, другая – в метрах в секунду. Какая из скоростей больше? Задание: Написать алгоритм и программу на ЯП Паскаль. Проанализировать полученный результат.

35 Перевод: 1 фут = 0.45 м = км 1 м = 20/9 фут 1 км = 20000/9 фут Перевод: 1 км/час = 1000/3600=10/36 м/сек. 1 м/сек = 36/10 км/час

36 Известны два расстояния: одно в километрах, другое – в футах (1 фут = 0.45 м). Какое из расстояний меньше? Fut_km= *Fut Km < Fut_km да нет В км < В фут < Km,Fut

37 A R Известны площадь круга и площадь квадрата Уместится ли квадрат в круге? A R A <= R2 A > R2 Решение задач