- •Информатика
- •Введение
- •1. Правило выбора заданий и оформления контрольных работ
- •2. Позиционные системы счисления
- •2.1. Перевод целых десятичных чисел
- •2.2. Перевод дробных десятичных чисел
- •2.3. Взаимосвязь двоичной, восьмеричной и шестнадцатеричной систем счисления
- •3. Подготовка задач для программирования
- •4. Разработка схемы алгоритма
- •4.1. Разветвляющиеся вычислительные процессы
- •4.2. Циклические вычислительные процессы
- •Останов.
- •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. Контрольные вопросы
- •Литература
- •Содержание
Конец цикла по параметру i. Цикл, т.е. вычисление S и P выполняется до тех пор, пока параметр i меньше или равен конечному значению. Как только параметр будет больше конечного значения, то цикл заканчивается и следующим будет выполняться печать результатов.
Документ, который выводит на печать вычисленные сумму S и произведение P.
Останов.
Схема вычисления представлена на рис. 4.
|
Рис. 4. Схема вычисления суммы и произведения элементов массива.
Пример 5. Задан массив по имени Х, состоящий из 10 элементов, Хj, j=1,..,10. Составить схему вычисления произведения положительных элементов этого массива.
Для вычисления произведения используем приём накопления, который был подробно описан выше. Но в данном примере вычисляется произведение только положительных элементов, поэтому внутри цикла нужно выполнить проверку очередного элемента массива Хj на знак. Если элемент положителен, то он умножается на произведение, если нет – то он не рассматривается.
Параметром цикла будет индекс j, который изменяется от 1 до 10 с шагом равным 1. Переменную произведения обозначим через P.
Схема вычисления будет состоять из следующих символов действий.
1. Начало.
2. Ввод массива Хj, j=1,..,10.
3. Процесс. Переменной P задаётся начальное значение равное 1.
4. Начало цикла. Указывается начальное и конечное значение параметра цикла j и шаг цикла.
5. Решение. Очередной элемент массива проверяется на знак. Хj >0?
6. Процесс, вычисляющий произведение P=P*Хj
7. Конец цикла по параметру j. Цикл выполняется до тех пор, пока параметр j меньше или равен конечному значению, иначе цикл будет закончен и следующим будет выполняться Документ.
8. Документ, выводящий на печать вычисленное произведение Р.
9. Останов.
Схема вычисления представлена на рис. 5.
|
Рис. 5. Схема вычисления произведения положительных элементов.
При вычислении произведения отрицательных элементов массива в схеме изменится только содержание п.5 Решение.
Пример 6. Задан массив Х, состоящий из 20 элементов, Хi, i=1,..,20. Составить схему вычисления суммы и количества положительных элементов массива.
Приём вычисления суммы S описан в примере 4. тот же приём используется и при вычислении количества элементов. Обозначим через k – накопленное количество элементов. Такую переменную k называют счётчиком. Перед входом в цикл k нужно «почистить», т.е. присвоить 0. И при каждом цикле увеличивать счётчик на 1.
В данном примере вычисляется сумма и количество только положительных элементов, следовательно, внутри цикла нужно сделать проверку очередного элемента массива Хi на знак, как это было сделано в примере 5. Параметр цикла – индекс i, изменяющийся от 1 до 20 с шагом 1.
Схема вычисления будет состоять из следующих символов действий.
1. Начало.
2. Ввод массива Хi , i=1,..,20.
3. Процесс. Переменным S и K задаются начальные значения S=0, K=0.
4. Начало цикла. Задаётся начальное и конечное значение параметра i и шаг цикла.
5. Решение. Проверяется положительность очередного элемента массива, т.е. Хi >= 0?
6. Процесс. Происходит процесс накопления суммы S и увеличения счетчика К на 1, т.е. S=S+Xi , К=К+1.
7. Конец цикла по параметру i. Цикл повторяется до тех пор, пока параметр i меньше или равен 20. Если i больше, то следующим выполняется Документ.
8. Документ. Печатаются значения S и К.
9. Останов
Схема вычисления представлена на рис.6
Пример 7. Для массива Х, описанного в примере 6, вычислить среднее арифметическое значение положительных элементов.
Схема вычисления будет совпадать с предыдущей до п.7. Конец цикла.
Среднее арифметическое значение элементов – это сумма этих элементов, деленная на их количество. Возможен такой набор данных, когда все элементы массива Xi имеют отрицательное значение, тогда переменная, в которой хранится значение количества положительных элементов массива, примет значение равное нулю. Возникает ситуация деления на нуль, а это системная ошибка, по которой программа завершается аварийно. Для устранения деления на нуль, проверяется количество этих элементов. И если количество равно нулю, то на печать выводится сообщение об этом.
Обозначим среднее арифметическое значение положительных элементов через переменную R. Схема вычисления, начиная с п.8 состоит из следующих действий.
|
Рис. 6. Схема вычисления суммы и количества положительных элементов массива.
8. Решение. Проверка числа элементов К=0? Если Да – печать с сообщением ‘K=0’, если Нет – переход на вычисление R.
9. Документ, в котором на печать выводится сообщение ‘Положительных элементов нет’, и переход к символу Останов.
10. Процесс. Вычисляется R=S:K.
11. Документ, в котором печатается значение R.
12. Останов.
Схема вычисления представлена на рис.7.
|
Рис.7. Схема вычисления среднего арифметического значения положительных элементов массива.
Если будет вычисляться среднее арифметическое всех элементов массива, то в схеме не будет проверки очередного элемента массива на знак, т.е. не будет п.5 Решение.
При вычислении среднего арифметического отрицательных элементов массива в п.5 Решение будет проверка условия Хi<0? Остальные пункты останутся без изменения.
Пример 8. Заданы два массива Аi , i=1,…,25 и Вj , j=1,…,30 . Составить схему вычисления положительных элементов в каждом массиве. Определить в каком массиве больше положительных элементов.
Схема вычисления количества положительных элементов описана в примере 6. В данном примере нужно вычислить количество элементов в двух массивах А и В, имеющих разные размерности, т.е. содержащих разное количество элементов. Поэтому нужно организовать два цикла: первый для массива А с параметром цикла i, второй для массива В с параметром цикла j.
Обозначим через КА–количество положительных элементов в массиве А, КВ–количество положительных элементов в массиве В.
Схема вычисления будет состоять из следующих действий.
1. Начало.
2. Ввод массивов Аi , i=1,…,25 и Вj , j=1,…,30 .
3. Процесс. “Обнуление” счетчиков КА и КВ, т.е. КА=0, КВ=0.
Пункты 4-7 организуют цикл по обработке массива А, подсчитывая количество положительных элементов этого массива. Структурно эти пункты совпадают с п.4-7 примера 7.
Пункты 8-11 организуют цикл по обработке массива В. Подсчитывается количество положительных элементов этого массива. Структурно эти пункты совпадают с п.4-7 примера 7.
12. Документ. Печать КА и КВ.
13. Решение. Проверка, где больше положительных элементов в массиве А и В. Или количество элементов совпадает? Если КА>КВ, то выполняется п.14, если КА<КВ – то п.15, а если КА=КВ, то п.16.
14. Документ. Печать сообщения ‘В массиве А больше положительных элементов’. Переход на п.17. Останов.
15. Документ. Печать сообщения ‘ В массиве В больше положительных элементов’. Переход на п.17. Останов.
16. Документ. Печать сообщения ‘Количество элементов совпадает’.
17. Останов
Схема вычисления представлена на рис.8
Пример 9. Задан массив Yj, j = 1,..,30. Найти максимальный (наибольший) элемент этого массива.
Нахождение максимального (наибольшего) элемента массива выполняется в цикле путем сравнения значения текущего элемента массива с максимальным из всех предыдущих. При этом если значение текущего элемента больше максимального из всех предыдущих, то максимуму присваивается значение текущего элемента. Внутри цикла для выбора максимального значения используется следующая формула.
После окончания цикла значение Ymax будет максимальным из всех рассмотренных значений Yj.
Для применения указанной формулы необходимо перед началом цикла задать начальное значение Ymax. Обычно в качестве Ymax берут очень маленькое число. Тогда после первого выполнения цикла Ymax примет значение Y1. При втором выполнении цикла Ymax будет сравниваться с Y2 и находится наибольшее из Y1 и Y2 и т.д.
|
Рис. 8. Схема вычисления положительных элементов двух массивов и определение их числового соотношения.
Если выбирается максимальный элемент массива, как в нашем примере, то в качестве наибольшего значения Ymax берется значение первого элемента массива, а в цикле поиск максимального элемента начинается со второго элемента массива.
Схема вычисления будет состоять из следующих действий.
1. Начало
2. Ввод массива Yj; j = 1,..,30
3. Процесс. Присвоение начального значения Ymax = Y1.
4. Начало цикла. Задается начальное и конечное значение параметра цикла j и шаг цикла.
5. Решение. Сравнение значения j-го элемента массива и Ymax, т. е. Yj > Ymax? Если значение Yj больше значения Ymax, то следующим будет выполнятся п. 6. Процесс. Если – нет, то переход на Конец цикла.
6. Процесс. Присвоим Ymax значение j –го элемента
7. Конец цикла по параметру j.
8. Документ. Печать Ymax.
9. Останов.
Схема вычислений представлена на рис. 9.
|
Рис.9. Схема вычисления максимального элемента массива.
Если надо найти минимальный (наименьший) элемент массива, то для выбора минимального элемента используется формула
И алгоритм выбора аналогичен рассмотренному выше.
Как и в предыдущем примере в качестве начального значения Ymin берётся значение первого элемента массива и цикл начинается со второго элемента массива.
Пример 10. для массива Y, заданного в примере 9, найти минимальный элемент Ymin и его порядковый номер.
Особенностью данного примера является то, что нужно найти не только минимальный элемент, но и его порядковый номер. Для этого каждый раз, когда в цикле будет выполняться условие Yj < Ymin, нужно будет выполнить два присвоения: Ymin присвоить значение j-го элемента Yj, и переменной jmin, обозначающий порядковый номер Ymin, присвоить значение параметра j, т.е. jmin= j.
Так как цикл начнёт выполнятся со второго элемента, то может оказаться, что первый элемент Y1 будет минимальным. Поэтому перед циклом нужно задать не только начальное значение Ymin = Y1 , но и jmin = 1.
На печать в п. Документ следует выводить jmin и Ymin. Схема вычисления аналогична схеме на рис.9 с соответствующими дополнениями.
