Основы алгоритмизации. Назначение алгоритма
Основы алгоритмизации. Алгоритмы
Основы алгоритмизации. Практикум по алгоритмам
Основы алгоритмизации. Вспомогательные алгоритмы
Основы алгоритмизации. Практикум по вспомогательным алгоритмам
Выполнив задания этой темы, вы научитесь:
- представлять линейный алгоритм в различных формах;
- использовать линейные алгоритмы при решении задач;
- применять переменные для хранения данных; осуществлять ввод-вывод информации.
Как вам уже известно, существуют различные типы алгоритмов и разные формы их представления.
Для представления линейного алгоритма в виде блок-схемы используются блоки ввода-вывода, выполнения действий, вызова вспомогательного алгоритма.
Для представления линейного алгоритма в виде программы используются операторы ввода-вывода, оператор присваивания, оператор вызова вспомогательного алгоритма.
Коллекция Эрмитажа содержит более 2 800 ООО единиц хранения. Если у каждого музейного экспоната задержаться всего на 5 минут и проводить в Эрмитаже по 8 часов каждый день, то может не хватить жизни, чтобы ознакомиться со всей коллекцией. Требуется вычислить суммарное время просмотра всей коллекции в минутах, часах, днях, годах, «жизнях», считая, что средняя продолжительность жизни в Роcсии составляет 70 лет.
Словесный алгоритм
|
Алгоритм в виде программы
В табл. 8.1 приведена программа к заданию на школьном алгоритмическом языке Кумир (с пояснениями). В табл. 8.2 приведены тексты программ на языках программирования Паскаль и Visual Basic.
Таблица 8.1. Программа на Кумире с пояснениями (к заданию 8.1)
Таблица 8.2. Примеры программ на Паскале и Visual Basic (к заданию 8.1)
Требуется рассчитать параметры прямоугольного треугольника с углом 30° по заданному катету, лежащему против угла 30°.
Словесный алгоритм
|
Алгоритм в виде программы
В табл. 8.3 приведена программа к заданию на школьном алгоритмическом языке Кумир. В табл. 8.4 приведены тексты программ на языках программирования Паскаль и Visual Basic.
Таблица 8.3. Программа на Кумире с пояснениями (к заданию 8.2)
Таблица 8.4. Примеры программ на Паскале и Visual Basic (к заданию 8.2)
На памятнике Пифагору высечен чертеж вписанного в цилиндр шара, так как Пифагор нашел соотношение между их объемами. Современный почитатель гения Пифагора решил создать объемный памятник в честь этого открытия. Городские власти определили статус памятника — скульптура малой формы, и выделили для него небольшую площадь. Требуется рассчитать объем цилиндра и вписанного в него шара по заданной площади основания памятника (цилиндра) и убедиться в правильности выведенного Пифагором соотношения.
Словесный алгоритм
|
Рис. 8.3. К заданию 8.3 |
Алгоритм в виде программы
В табл. 8.5 приведена программа к заданию на школьном алгоритмическом языке Кумир. В табл. 8.6 приведены тексты программ на языках программирования Паскаль и Visual Basic.
Таблица 8.5. Программа на Кумире с пояснениями (к заданию 8.3)
Таблица 8.6. Примеры программ на Паскале и Visual Basic (к заданию 8.3)
К заданию 8.1
1. Разработчик алгоритма к заданию 8.1 (рис. 8.1), введя переменную п, хотел придать алгоритму свойство массовости. Какие еще переменные следует ввести, чтобы алгоритм соответствовал этому свойству в полной мере?
2. В приведенном последовательном алгоритме порядок вывода расчетных данных можно изменять. Какие команды в приведенных программах нельзя переставлять? Почему?
3. На блок-схеме представлены два блока вывода информации на экран. В чем их различие?
4. Запишите в тетради имена переменных, которые были использованы в процессе решения задания. Напишите под ними значения переменных, полученные в результате тестирования.
5. Что происходит в результате выполнения блока 3 представленного алгоритма?
6. Добавьте в программу блок вычислений, определяющий, сколько экспонатов в день удастся посмотреть посетителю.
К заданию 8.2
1. Замените в программе формулу расчета катета b = a-j3 и убедитесь, что результат от этого не изменится.
2. Используя готовый каркас блок-схемы, заполните его таким образом, чтобы по новой блок-схеме вычислялись высота и площадь равнобедренной трапеции с углом при основании 45° (рис. 8.5). Задание выполните в тетради.
3. Напишите текст программы на Кумире или другом языке для полученной блок-схемы.
4. Что надо изменить в условии задачи, чтобы расширить границы применимости алгоритма?
5. Из пояснительного рисунка видно, что а > b. Что произойдет, если при вводе а и b это соотношение будет нарушено?
К заданию 8.3
1. При расчетах радиуса и объемов используется константа 3,1415926. Что нужно изменить в программе, чтобы не набирать ее каждый раз заново?
2. В примере программы на языке Кумир тип используемых переменных описан следующим образом: вещ r, s, vshara, veil, k. Что означает эта запись? Почему для переменных выбран такой тип?
3. В формуле вычисления объема шара используется формула V — r3. В примерах программ на разных языках она записана по-разному. Есть ли здесь ошибки? Объясните, что означают разные записи? Придумайте такой вид записи, который будет верен для всех языков.
Рис. 8.5. Чертеж для вычисления высоты и площади равнобедренной трапеции
4. Можно ли изменить последовательность операторов расчета?
Выполнив задания этой темы, вы научитесь:
- использовать различные структуры ветвления;
- использовать простые и сложные условия;
- использовать вложенные ветвления;
- использовать структуру множественного выбора при наличии более чем двух ситуаций;
- тестировать алгоритм в пошаговом режиме для проверки всех его ветвей.
Для представления разветвляющегося алгоритма в виде блок-схемы используются блоки принятия решения. Для представления разветвляющегося алгоритма в виде программы используются условные операторы и операторы выбора (если вариантов выбора больше двух).
Требуется разработать алгоритм проверки принадлежности введенного числа данной арифметической прогрессии. Прогрессия задается двумя последовательными членами.
Словесный алгоритм
Начало алгоритма
1. Введите два последовательных члена арифметической прогрессии.
2. Введите произвольное целое число.
3. Найдите разность (d) арифметической прогрессии.
4. Найдите разность между введенным числом и членом арифметической прогрессии.
5. Найдите остаток от деления нацело найденной разности на d.
6. Организуйте проверку остатка:
- если остаток от деления равен 0, выведите сообщение:
«Число принадлежит рассматриваемой арифметической прогрессии»;
- иначе выведите сообщение:
«Число не принадлежит рассматриваемой арифметической прогрессии».
Конец алгоритма
Алгоритм в виде блок-схемы
Алгоритм в виде программы
В табл. 8.7 приведена программа к заданию на алгоритмическом языке Кумир. В табл. 8.8 приведены тексты программ на языках программирования Паскаль и Visual Basic.
Таблица 8.7. Программа на Кумире с пояснениями (к заданию 8.4)
Таблица 8.8. Примеры программ на Паскале и Visual Basic (к заданию 8.4)
Из «Арифметики» таджикского ученого Авиценны (X-XI вв.) известно следующее свойство целых чисел: если число, будучи разделено на 9, дает в остатке 1 или 8, то квадрат этого числа, деленный на 9, даст 1. Требуется подтвердить верность свойства или опровергнуть его.
Словесный алгоритм
Начало алгоритма
1. Введите целое число.
2. Найдите остаток от деления этого числа на 8.
3. Организуйте проверку остатка на равенство 1 или 8:
• если остаток от деления равен 1 или 8, то:
а) найдите квадрат введенного числа;
б) найдите остаток от деления квадрата числа на 9;
в) организуйте проверку остатка от деления:
если остаток равен 1, то выведите сообщение «Свойство верно»,
иначе выведите сообщение «Свойство не верно»;
• иначе (остаток от деления не равен 1 и остаток от деления
не равен 8) выведите сообщение «Остаток от деления < > 1
и Остаток от деления < > 8».
Конец алгоритма
Алгоритм в виде блок-схемы
Рис. 8.7. Блок-схема алгоритма (к заданию 8.5)
Алгоритм в виде программы
В табл. 8.9 приведена программа к заданию на алгоритмическом языке Кумир. В табл. 8.10 приведены тексты программ на языках Паскаль и Visual Basic.
Таблица 8.9. Программа на Кумире с пояснениями (к заданию 8.5)
Таблица 8.10. Примеры программ на Паскале и Visual Basic (к заданию 8.5)
Требуется определить тип треугольника по двум введенным углам. При выполнении задания необходимо учесть ситуации некорректного ввода данных, например: 90, 90 или 120, 80.
Словесный алгоритм
Начало алгоритма
1. Введите два угла треугольника в градусах.
2. Организуйте проверку типа треугольника:
• если сумма двух углов меньше 180°, то вычислите значение третьего угла и рассмотрите три ситуации:
а) если все углы острые, то выведите сообщение «Треугольник остроугольный»;
б) если один из углов равен 90°, то выведите сообщение «Треугольник прямоугольный»;
в) в противном случае выведите сообщение «Треугольник тупоугольный »;
• иначе (если сумма углов больше 180°) выведите сообщение «Некорректный ввод».
Конец алгоритма
Алгоритм в виде блок-схемы
Фраза «один из углов равен 90°» в словесном алгоритме понятна человеку. Для компьютера ее следует детализировать, рассмотрев три ситуации (для каждого из углов ul, u2, u3). На алгоритмическом языке эта проверка может выглядеть следующим образом: ((ul = 90) и (и2 о 90) и (иЗ < > 90)) или ((и2 = 90) и (ul о 90) и (u3 < > 90)) или ((иЗ = 90) и (ul < > 90) и (и2 < > 90)).
Чтобы упростить проверку, в алгоритм должен быть введен блок, обеспечивающий условие «сумма углов = 180». После этого достаточно рассмотреть выполнение условия «(ul = 90) или (и2 = 90) или (иЗ = 90)».
Алгоритм в виде программы
В табл. 8.11 приведена программа к заданию на алгоритмическом языке Кумир. В табл. 8.12 приведены тексты программ на языках Паскаль и Visual Basic.
Таблица 8.11. Программа на Кумире с пояснениями (к заданию 8.6)
Таблица 8.12. Примеры программ на Паскале и Visual Basic (к заданию 8.6)
К заданию 8.4
1. Какое сообщение будет получено в результате выполнения алгоритма и программ, если введенное число с будет равно al или а2?
2. Могут ли быть введены различающиеся по знаку или отрицательные числа al и а2?
3. Что надо изменить в блок-схеме и программе, чтобы они работали с тремя последовательными членами геометрической прогрессии (al, а2 — являются членами, с — следует проверить)?
4. Найдите на блок-схеме (см. рис. 8.6) блок ветвления и определите, является ли ветвление полным или нет.
К заданию 8.5
1. Заполните таблицу тестирования для числа 10 (см. табл. 8.9).
2. Почему в 7-й строке табл. 8.9 тестирования (первый тест) ничего нет?
3. Достаточно ли представленных в табл. 8.9 тестов, чтобы проверить все ситуации, которые могут возникнуть при выполнении программ (все ветви алгоритма)?
4. Можно ли объединить оба условия проверки (пп. 5 и 8) в одно сложное условие? Напишите логическое выражение для подобной проверки.
5. Составьте самостоятельно фрагмент блок-схемы алгоритма для приема менеджера на работу по следующим условиям:
• возраст от 30 до 40 лет;
• знание персонального компьютера или стаж работы по специальности не менее 5 лет.
К заданию 8.6
1. Почему при формировании сложного условия (см. табл. 8.11, п. 6) использована логическая связка И, а не ИЛИ?
2. Почему при формировании сложного условия (см. табл. 8.11, п. 8) использована логическая связка ИЛИ, а не И?
3. В алгоритме и программе тупоугольный треугольник определяется по веткам «иначе» (не прямоугольный и не остроугольный). Напишите самостоятельно сложное условие, определяющее, является ли треугольник тупоугольным.
4. Выполните тестирование программы для угла 90°.
5. Дополните алгоритм и программу блоком проверки положительных значений углов.
Основы алгоритмизации. Назначение алгоритма
Основы алгоритмизации. Алгоритмы
Основы алгоритмизации. Практикум по алгоритмам
Основы алгоритмизации. Вспомогательные алгоритмы
Основы алгоритмизации. Практикум по вспомогательным алгоритмам