Скачать презентацию ТИПОВЫЕ РАЗВЕТВЛЯЮЩИЕСЯ АЛГОРИТМЫ ПРИМЕРЫ ТИПОВЫЕ РАЗВЕТВЛЯЮЩИЕСЯ АЛГОРИТМЫ Скачать презентацию ТИПОВЫЕ РАЗВЕТВЛЯЮЩИЕСЯ АЛГОРИТМЫ ПРИМЕРЫ ТИПОВЫЕ РАЗВЕТВЛЯЮЩИЕСЯ АЛГОРИТМЫ

Типовые разветвляющиеся алгоритмы.ppt

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

ТИПОВЫЕ РАЗВЕТВЛЯЮЩИЕСЯ АЛГОРИТМЫ ПРИМЕРЫ ТИПОВЫЕ РАЗВЕТВЛЯЮЩИЕСЯ АЛГОРИТМЫ ПРИМЕРЫ

ТИПОВЫЕ РАЗВЕТВЛЯЮЩИЕСЯ АЛГОРИТМЫ n n n Существует 3 типа задач, решаемых с помощью разветвляющихся ТИПОВЫЕ РАЗВЕТВЛЯЮЩИЕСЯ АЛГОРИТМЫ n n n Существует 3 типа задач, решаемых с помощью разветвляющихся алгоритмов: Поиск максимального или минимального значения. Попадание в интервал или исключение из него. Сортировка по возрастанию или убыванию (ранжировка). Первый и третий типы задач могут решаться двумя способами: по переменным и по значению.

Поиск минимума по значению Пример 2. 1. Разделить сумму трех заданных чисел (отличных от Поиск минимума по значению Пример 2. 1. Разделить сумму трех заданных чисел (отличных от нуля) на наименьшее из них.

начало 7 1 5, 6 A, B, C 2 8 Min=A R 3 B<Mi начало 7 1 5, 6 A, B, C 2 8 Min=A R 3 B

Поиск максимума по переменной Пример 2. 2. По итогам соревнований спортсмены Иванов, Петров и Поиск максимума по переменной Пример 2. 2. По итогам соревнований спортсмены Иванов, Петров и Сидоров набрали неравные количества баллов. Определить победителя.

начало 1 A, B, C 2 Да Нет A>B ^ A>C Да 4 «Петров начало 1 A, B, C 2 Да Нет A>B ^ A>C Да 4 «Петров » 7 конец Нет B>C 6 5 «Иванов » 3 «Сидоров »

Попадание в интервал Пример 2. 3. В зависимости от частоты колебаний звуки делятся на: Попадание в интервал Пример 2. 3. В зависимости от частоты колебаний звуки делятся на: - слышимый звук с частотой 16 Гц – 20 к. Гц; - инфразвук с частотой < 16 Гц; - ультразвук с частотой >= 20 к. Гц. По известной частоте колебаний определить класс, к которому принадлежит звук.

начало 1 F 2 Да Нет F<16 Да 4 5 «Инфразвук» «Слышимый звук» 7 начало 1 F 2 Да Нет F<16 Да 4 5 «Инфразвук» «Слышимый звук» 7 конец 3 Нет F<=2000 0 6 «Ультразвук»

Сортировка по значению Пример 2. 4. Расположить значения переменных a, b, c по возрастанию. Сортировка по значению Пример 2. 4. Расположить значения переменных a, b, c по возрастанию.

начало 1 A, B, C 2 A>B Да 3 Нет 4 B>C Да 5 начало 1 A, B, C 2 A>B Да 3 Нет 4 B>C Да 5 Нет 6 A>B Нет 8 A, B, C 9 конец P=A A=B B=P P=B B=C C=P Да 7 P=A A=B B=P

Сортировка по переменным Пример 2. 5. Отпечатать имена переменных в порядке возрастания значений неравных Сортировка по переменным Пример 2. 5. Отпечатать имена переменных в порядке возрастания значений неравных переменных a, b, c.

начало 1 A, B, C 2 Да A<B 3 Да Да 7 “A, B, начало 1 A, B, C 2 Да A

Сортировка по переменным Пример 2. 5. Три спортсмена во время соревнований набрали неравные количества Сортировка по переменным Пример 2. 5. Три спортсмена во время соревнований набрали неравные количества баллов. Покажите, как расположатся фамилии спортсменов в итоговой таблице соревнований.

начало 1 SA, A, SB, B, SC, C 2 A>B Да 3 Нет 4 начало 1 SA, A, SB, B, SC, C 2 A>B Да 3 Нет 4 B>C Да 5 P=B; SP=SB B=C; SB=SC C=P; SC=SP Нет 6 A>B Нет 8 9 SA, SB, SC конец P=A; SP=SA A=B; SA=SB B=P; SB=SP Да 7 P=A; SP=SA A=B; SA=SB B=P; SB=SP

Алфавит и словарь языка программирования Алфавит языка программирования – это фиксированный набор основных символов, Алфавит и словарь языка программирования Алфавит языка программирования – это фиксированный набор основных символов, из которых должен составляться любой текст на этом языке. С помощью этих символов могут быть записаны идентификаторы, выражения и операторы языка. В словаре языка программирования различают такие группы: n специальные символы; n составные спецсимволы, которые воспринимаются компилятором как единое целое: <= >= : = (*) (. . ) n зарезервированные (ключевые) слова; n идентификаторы (имена); n неименованные константы; n комментарии и директивы компилятора.

Алфавит и словарь языка программирования n n Символы языка программирования: большие (от A до Алфавит и словарь языка программирования n n Символы языка программирования: большие (от A до Z) и маленькие (от a до z) буквы латинского алфавита; десятичные цифры от 0 до 9; символ подчеркивания: «_» ; Разделительный символ пробела (основное назначение – разделение ключевых слов и имен); Управляющие символы (табуляция, символы, замыкающие строку) ; Специальные символы – символы, которые используют при построении разнообразных конструкций языка: + - / * = < > [] () {}, . : ; @ $ #.

Алфавит и словарь языка программирования n n Зарезервированные слова имеют строго определенный смысл. Их Алфавит и словарь языка программирования n n Зарезервированные слова имеют строго определенный смысл. Их назначение не может изменяться. Они используются для обозначения алгоритмических конструкций, разделов программы и т. п. Идентификатор – это имя, значение которого может меняться от программы к программе, а также в пределах одной программы. Различают стандартные идентификаторы и идентификаторы пользователя. Стандартными идентификаторами являются имена встроенных в язык процедур и функций (read, write, sin, cos), типов данных (real, integer) и директив (forward, absolute). Идентификатор пользователя – это имя, которое выбирает программист для обозначения элементов программы (именованных констант, переменных, типов, процедур, функций, программ и. т. п. ).

Алфавит и словарь языка программирования n n n n Правила записи идентификаторов: идентификатор начинается Алфавит и словарь языка программирования n n n n Правила записи идентификаторов: идентификатор начинается с буквы или символа подчеркивания, только для метки допускается использование целого числа без знака; идентификатор может состоять из букв, цифр, символа подчеркивания; буквы русского алфавита не могут входить в состав идентификатора Pascal, их можно использовать только в строковых константах; идентификатор может иметь произвольную длину, но значащими являются только первые 63 символа; в идентификаторах недопустимо использовать символы пробела, точки и др. символы пунктуации; малые и большие буквы в идентификаторах не различаются; зарезервированные слова не могут использоваться в качестве идентификаторов.

Алфавит и словарь языка программирования n n Например Правильная запись имен metka_13, B 5, Алфавит и словарь языка программирования n n Например Правильная запись имен metka_13, B 5, Error_Code, delta, Flag Неправильная запись имен 3 DGraph — начинается с цифры; Nomer. Doma — содержит точку; numberX — содержит специальный символ; My Program — содержит пробел; Div — зарезервированное слово.

Константы и переменные n n Переменная — ячейка оперативной памяти компьютера, которой присвоено определенное Константы и переменные n n Переменная — ячейка оперативной памяти компьютера, которой присвоено определенное имя (идентификатор). Содержимое ячейки (значение переменной) может меняться по ходу выполнения программы. Каждое новое значение, записанное в ячейку памяти, "затирает" предыдущее значение, поэтому в любой момент времени переменная имеет только одно, текущее, значение. Значение переменной в определенный момент времени иногда называют состоянием переменной. Константами называются элементы данных, значения которых в процессе выполнения программы не изменяются. Значения констант задаются непосредственно в тексте программы при ее разработке.

Константы и переменные n n Использование переменных в программе позволяет записать алгоритм решения задачи Константы и переменные n n Использование переменных в программе позволяет записать алгоритм решения задачи в общем виде и сделать программу пригодной для многократного использования с различными исходными данными. Константы и переменные можно использовать в выражениях. Выражение – это последовательность операций, операндами которой могут быть переменные, константы, вызовы функций и другие выражения. В математике значение переменной в рамках определенной задачи неизменно. Именно поэтому высказывание А : = А + 1 математик сочтет неверным (если знак : = будет трактоваться им как равенство). Для программиста это абсолютно правильная конструкция: она задает вычисление суммы содержимого ячейки А и числовой константы 1 и занесение полученного результата в ту же ячейку А.

Логический тип данных n n n Логический тип имеет всего два значения: true (да Логический тип данных n n n Логический тип имеет всего два значения: true (да — истина, 1) и false (нет — ложь, 0). Над данными логического типа нельзя выполнять обычные арифметические операции, для них определены логические операции и операции сравнения. Логические значения упорядочены, то есть в операциях сравнения true > false.

Логические операции К логическим значениям применяются логические операции: Операция Название Лексема И логическое умножение Логические операции К логическим значениям применяются логические операции: Операция Название Лексема И логическое умножение (конъюнкция) and ИЛИ логическое сложение (дизъюнкция) or НЕ отрицание not Исключающее ИЛИ xor

Логические операции A B A and B A or B A xor B Not Логические операции A B A and B A or B A xor B Not A false false true false true true false

Логические операции Таким образом, использование логических операций дает возможность записывать сложные логические выражения. Например, Логические операции Таким образом, использование логических операций дает возможность записывать сложные логические выражения. Например, (A > B) ^ (A > C) (A < B) v (C < B) при значениях А=5, В=3, С=1 (5 > 3) ^ (5 > 1) true и true (5 < 3) v (1 < 3) false или true Использование скобок в сложных логических выражениях обязательно. A>B and A>C 5 > 3 and 5 > 1 true and 5>1 ошибка!

МНОГОВАРИАНТНЫЙ ВЫБОР Пример 4. По номеру месяца определить соответствующее ему время года. Переменная Номер МНОГОВАРИАНТНЫЙ ВЫБОР Пример 4. По номеру месяца определить соответствующее ему время года. Переменная Номер месяца Время года Имя N Season Тип Назначение Целый Исходные данные Строковый Результат

начало 1 N Нет 2 Да N 3 12, 1, 2 7 Season= «Не начало 1 N Нет 2 Да N 3 12, 1, 2 7 Season= «Не сезон» Season= «Зима» 4 3. . 5 Season= «Весна» 5 6. . 8 Season= «Лето» 8 Season= «Осень» 9 Season 6 9. . 11 конец

Пример 4. Для электроснабжения завода необходимо построить две линии электропередач (ЛЭП): рабочую и резервную Пример 4. Для электроснабжения завода необходимо построить две линии электропередач (ЛЭП): рабочую и резервную от разных подстанций. От подстанции «Северная» можно провести кабельную ЛЭП и воздушную ЛЭП. От подстанции «Южная» также можно провести кабельную и воздушную ЛЭП (стоимость строительства каждого из вариантов ЛЭП известна). Определить минимальный по стоимости вариант электроснабжения завода. Рабочей ЛЭП считать более дешевую. Отпечатать сначала номер рабочей ЛЭП, потом резервной.

начало 1 C 1, C 2 C 3, C 4 2 Да C 1< начало 1 C 1, C 2 C 3, C 4 2 Да C 1< C 2 3 CMIN 1=C 1 NMIN 1=1 Нет 4 CMIN 1=C 2 NMIN 1=2 5 Да C 3< C 4 6 Нет 7 CMIN 2=C 4 NMIN 2=4 CMIN 2=C 3 NMIN 2=3 CMIN 1

Пример 5. Из пункта А в пункт В необходимо доставить автомобильным транспортом груз. Вес Пример 5. Из пункта А в пункт В необходимо доставить автомобильным транспортом груз. Вес автомобиля с грузом Р (т), высота Н (м), ширина В (м). Возможны три варианта доставки длиной С 1, С 2, С 3 (км), причем С 1>С 2>С 3. На первом маршруте есть мост с допустимой нагрузкой Р 1 (т) и участок узкой дороги шириной В 1 (м). На втором маршруте есть тоннель высотой Н 2 (м) и шириной В 2 (м). На третьем маршруте есть мост с допустимой грузоподъемностью Р 3 (т) и проезд под линией электропередачи высотой Н 3 (м). Определить допустимый маршрут минимальной длины и отпечатать его номер. В случае невозможности доставки груза отпечатать текст «пути нет» .

начало 1 Да Р, Н, В Р 1, В 1 Н 2, В 2 начало 1 Да Р, Н, В Р 1, В 1 Н 2, В 2 Р 3, Н 3 2 Нет Р<Р 3 ^ Н<Н 3 Да 4 Нет Н<Н 2 ^ В<В 2 Да 3 5 ‘Путь № 3’ 7 ‘Путь № 2’ ‘Путь № 1’ 9 конец 6 Р

Пример 6. Имеются слитки прямоугольной формы одинакового размера из металла А, металла В и Пример 6. Имеются слитки прямоугольной формы одинакового размера из металла А, металла В и сплава этих металлов D с соотношением компонентов 2: 1. Удельный вес металлов А и В известны. Определить по известным линейным размерам и весу слитка G (определенному с точностью до 0, 02 G), из какого он металла, а если слиток состоит из сплава , то определить дополнительно, какого металла в сплаве две части, а какого – одна. Предусмотреть вывод на печать соответствующих признаков.

Таблица имен переменных Назначение Имя Тип Плотность металла А P 1 Плотность металла В Таблица имен переменных Назначение Имя Тип Плотность металла А P 1 Плотность металла В Real Назначение Имя Тип Ширина слитка A P 2 Высота слитка B Плотность сплава 2 А+В PS 1 Глубина слитка C Плотность сплава А+2 В PS 2 Объем слитка V Вес слитка G Real

начало 1 Р 1, Р 2 А, В, С G 2 V=A*B*C PS 1=(2 начало 1 Р 1, Р 2 А, В, С G 2 V=A*B*C PS 1=(2 P 1+P 2)/3 PS 2=(P 1+2 P 2)/3 P 1 0. 98 G/ V P 1 1. 02 G/ V Да 3 P 2 0. 98 G/ V P 2 1. 02 G/ V Нет 5 Да PS 1 0. 98 G/ V PS 1 1. 02 G/ V Нет Да 7 Нет Да 4 6 ‘Металл А’ ‘Металл В’ 10 8 ‘Сплав 2 А+В’ 12 конец PS 2 0. 98 G/ V PS 2 1. 02 G/ V ‘Сплав А+2 В’ 9 Нет 11 ‘Неизвестный сплав’