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 Решение задач