- •Информатика
- •Введение
- •1. Правило выбора заданий и оформления контрольных работ
- •2. Позиционные системы счисления
- •2.1. Перевод целых десятичных чисел
- •2.2. Перевод дробных десятичных чисел
- •2.3. Взаимосвязь двоичной, восьмеричной и шестнадцатеричной систем счисления
- •3. Подготовка задач для программирования
- •4.1. Разветвляющиеся вычислительные процессы
- •4.2. Циклические вычислительные процессы
- •4. Разработка схемы алгоритма
- •Останов.
- •5. Алгоритмические языки программирования инженерных задач
- •5.1. Основные понятия
- •5.2. Алгоритмический язык Fortran
- •5.2.1. Алфавит языка
- •5.2.2. Константы и переменные
- •5.2.3. Элементарные функции
- •5.2.4. Выражения
- •5.2.5. Основные операторы языка
- •5.2.6. Арифметический оператор присваивания
- •5.2.7. Задание исходных данных
- •5.2.8. Оператор вывода
- •5.2.9. Оператор stop
- •5.2.10. Оператор end
- •5.2.11. Операторы управления
- •5.2.12. Структура программы
- •5.2.13. Программирование алгоритмов разветвленной структуры
- •5.2.14. Оператор цикла
- •5.2.15. Массивы переменных
- •5.2.16. Ввод – вывод одномерных массивов
- •5.2.17. Программирование алгоритмов циклической структуры
- •5.3. Алгоритмический язык Basic
- •5.3.1. Алфавит языка
- •5.3.2. Переменные и константы
- •5.3.3. Элементарные функции
- •5.3.4. Выражение
- •5.3.5. Задание исходных данных
- •5.3.6. Оператор вывода
- •5.3.7. Оператор end
- •5.3.8. Операторы управления
- •5.3.9. Структура программы
- •5.3.10. Программирование алгоритмов разветвленной структуры.
- •5.3.11. Массивы переменных
- •5.3.12. Оператор цикла
- •5.3.13. Программирование алгоритмов циклической структуры
- •6. Образец выполнения контрольной задачи
- •6.1. Выбор номеров вариантов и заданий для контрольной работы
- •6.2. Задание 1. Позиционные системы счисления.
- •6.3. Задание 2. Разветвляющиеся вычислительные процессы.
- •6.4. Задание 3. Циклические вычислительные процессы.
- •7. Таблицы заданий контрольной работы
- •8. Контрольные вопросы
- •Литература
- •Содержание
4. Разработка схемы алгоритма
4.1. Разветвляющиеся вычислительные процессы
Разветвляющиеся вычислительные процессы – это вычислительные процессы, в которых предусмотрено разветвление выполняемой последовательности действий в зависимости от результата проверки какого-либо условия.
Пример 1. Составить схему вычисления Z = max(X,Y).
В рассматриваемом примере возможно два варианта ответа: X или Y. Выбор варианта будет проведён по результату проверки: x > y ? Для однозначности решения считаем, что при Х = Y max = X. В общем случае местоположения знака равенства определяется постановкой самой задачи.
Алгоритм вычисления будет иметь вид:
Фрагмент схемы вычисления представлен на рис.1. Фрагмент, так как в схеме не указаны символы действий Начало, Останов, Ввод исходных данных X, Y.
|
Рис.1. Фрагмент схемы вычисления Z = max(X,Y)
Пример 2. Составить схему вычисления Z = min(X,Y).
Как и в предыдущем примере будет два варианта ответа и алгоритм можно записать следующим образом:
Фрагмент схемы вычисления представлен на рис. 2.
|
Рис.2. Фрагмент схемы вычисления Z= min(X,Y)
Оба алгоритма имеют две ветви вычисления Z. Правая ветвь работает, если условие выполнено, т.е. Да. Левая ветвь работает, если условие нарушено, т.е. Нет. Одновременно обе ветви никогда не будут работать.
Пример 3. Составить схему вычисления Z = max(А,В,С). В данном примере возможны три варианта ответа: или А , или В , или С . Выбор может быть выполнен только по результатам проверки не менее двух условий, если при решении задачи используется промежуточная переменная. Следовательно, схема вычисления должна содержать следующие символы действий:
Начало и Останов;
Ввод данных А, В,С;
Два символа Решение, проверяющие условия;
Три символа Процесс, которые присваивают Z определённое значение;
Документ.
Введем промежуточную переменную R и следующие обозначения.
R = max (A, B), тогда
Z = max(R, C)
Алгоритм выбора max из двух переменных рассмотрен в примере 1. Если в примере 1 рассматривались исходные данные и ответ, то в этом примере введена дополнительная рабочая переменная R. Число вводимых рабочих переменных в любой программе не ограничено.
Алгоритм вычисления будет иметь вид:
Схема вычисления представлена на рис. 3
Возможны и другие схемы вычисления максимума из 3-х переменных, например, без использования промежуточной переменной, но схема на рис. 3 является наиболее рациональной, т. е. содержащая наименьшее число действий.
Хотя и эту схему можно уменьшить на один оператор присваивания, если в качестве промежуточной переменной R использовать выходную переменную Z и не вводить переменную R, и вычислять следующим образом.
Z = max(A,B), Z = max(Z,C)
Изменить схему предлагается самостоятельно.
4.2. Циклические вычислительные процессы
Большинство задач, решаемых в инженерной практике, имеют циклическую структуру. Циклический вычислительный процесс – это процесс, в котором предусмотрено неоднократное выполнение одной и той же последовательности действий при различных значениях входящих в них величин.
Многократно повторяющиеся участки называют циклами. Циклическая структура позволяет существенно сократить объём алгоритма и программы. Переменная алгоритма, которая при каждом выполнении цикла принимает новое значение, называется параметром цикла.
Для организации цикла необходимо: задать начальное значение параметра цикла; задать изменение значения параметра перед каждым новым повторением цикла и проверку условий окончания повторений и переход к началу цикла, если повторения не окончены.
|
Рис. 3. Схема вычисления Z=max(A,B,C). Способ с использованием промежуточной переменной.
Существуют различные типы циклов. Тип определяется по способу контроля окончания. Для инженерных задач наиболее характерен тип арифметической прогрессии. В этих циклах параметр изменяется от заданного начального до заданного конечного значения, получая при каждом выполнении цикла постоянное приращение (цикл с известным числом итераций).
Если в цикле изменяется простая переменная, то параметром цикла является эта переменная. Для переменных с индексом (массивов) параметром цикла является индекс переменной.
В контрольном задании №3 представлены задачи циклической структуры типа арифметической прогрессии.
Рассмотрим наиболее типичные алгоритмы циклической структуры.
Пример 4. Задан массив по имени А, состоящий из 20 элементов, Ai , i=1,..,20. Составить схему вычисления суммы и произведения элементов этого массива.
При вычислении суммы используется приём накопления – новое слагаемое прибавляется к сумме предыдущих. При выполнении при каждом цикле нужно накапливать сумму, прибавляя очередное слагаемое к этой сумме. Для этого необходимо перед циклом задать начальное значение суммы равное 0. В данном примере параметром цикла будет индекс i, который изменяется от 1 до 20 с шагом равным 1.
Тот же приём используется и при накоплении произведения. В алгоритмических языках Фортран и Бейсик, если переменная не определена, то ей присваивается значение 0, следовательно, произведение значений функции вычисляться не будет, поэтому перед циклом задаётся начальное значение произведения, равное 1. Внутри цикла вычисляется очередной сомножитель и умножается на произведение.
В соответствии со смыслом описываемых величин выбираем имя переменных: для суммы – S, произведения – P.
Схема вычисления будет состоять из следующих символов действий.
Начало.
Ввод массива Ai, i=1,..,20.
Процесс. Переменным S и P задаются начальные значения S=0, P=1.
Начало цикла. Указывается параметры цикла: начальное и конечное значение параметра i и шаг цикла, равный 1.
Процесс. Происходит накопление суммы S и произведения P.
S=S+Ai
P=P*Ai
