
- •Часть 1
- •Содержание
- •Введение
- •1. Структура и принцип действия компьютера
- •2. Алгоритм и программа
- •2.1. Понятия об алгоритме и программе
- •2.2. Типовые алгоритмы
- •2.2.1. Вычисление суммы чисел произвольного ряда
- •Вычисление произведения чисел произвольного ряда
- •2.2.3. Определение наибольшего (наименьшего) числа заданного ряда чисел
- •2.2.4 Определение наибольшего (наименьшего) значения вычисляемой функции
- •2.2.5. Вычисление функции с одновременно изменяющимися несколькими аргументами
- •2.2.6. Итерационные циклы
- •2.2.7. Сортировка ряда чисел
- •Метод смежных пар
- •Метод поиска наименьшего (наибольшего)
- •2.2.8. Алгоритмы решения задач с использованием матриц
- •Общие методические указания по выполнению лабораторных работ
- •4.1. Порядок проведения лабораторных работ
- •4.2. Требования к оформлению отчета по выполненной лабораторной работе
- •5. Цели и содержание лабораторных работ
- •5.1 Лабораторная работа № 1 Вычисление выражений с использованием библиотечных
- •5.1.1. Задание
- •5.1.2. Общие сведения и рекомендации по выполнению работы
- •5.1.3. Контрольные вопросы и задания
- •5.2. Лабораторная работа № 2 Программирование разветвляющихся вычислительных процессов.
- •5.2.1. Задание
- •5.2.2. Общие сведения и рекомендации по выполнению работы
- •5.2.3. Контрольные вопросы и задания.
- •5.3. Лабораторная работа № 3 Программирование разветвляющихся вычислительных процессов с использованием оператора множественного выбора.
- •5.3.1. Задание
- •5.3.2. Общие сведения и рекомендации по выполнению работы
- •5.3.3. Контрольные вопросы и задания
- •5.4. Лабораторная работа № 4 Программирование с использованием простых циклов.
- •5.4.1. Задание
- •5.4.2. Общие сведения и рекомендации по программированию
- •5.4.3. Контрольные вопросы и задания
- •5.5. Лабораторная работа № 5 Программирование с использованием итерационных циклов.
- •5.5.1. Задание
- •Проверочный результат
- •Относительная погрешность, %
- •5.5.2. Общие сведения и рекомендации по программированию
- •5.5.3. Контрольные вопросы и задания
- •5.6. Лабораторная работа № 6 Расчет функций с несколькими одновременно изменяющимися аргументами.
- •5.6.1. Задание
- •5.6.2. Общие сведения и рекомендации по выполнению работы
- •5.6.3. Контрольные вопросы и задания
- •5.7. Лабораторная работа № 7 Программирование с использованием массивов и внешних файлов.
- •5.7.1. Задание
- •5.7.2. Общие сведения и рекомендации по программированию
- •5.7.3. Контрольные вопросы и задания
- •5.8 Лабораторная работа № 8 Программирование с использованием функций.
- •5.8.1. Задание
- •5.8.2. Общие сведения и рекомендации по выполнению работы
- •5.8.3. Контрольные вопросы и задания
- •5.9. Лабораторная работа № 9 Программирование с использованием операций над комплексными числами.
- •5.9.1. Задание
- •5.9.2. Общие сведения и рекомендации по выполнению работы
- •5.9.3. Контрольные вопросы и задания
- •Приложения Приложение 1.
- •Приложение 2.
- •Список литературы
2.2. Типовые алгоритмы
Алгоритмы большинства задач строятся на базе более простых, отработанных решений. Часто используемые алгоритмы называются типовыми. Таких алгоритмов не так уж и много, но их знание помогает облегчить разработку более сложных алгоритмов, составляющими которых могут быть типовые. Это позволяет сэкономить время разработки и сделать алгоритмы оптимальными. Ниже рассматриваются типовые алгоритмы.
2.2.1. Вычисление суммы чисел произвольного ряда
Дан: ряд произвольных чисел
,
обычно называемый массивом чисел и
изображаемым как а[n].
Здесь а - имя массива, а n
– количество его элементов.
Определить: сумму этих чисел
.
Алгоритм решения этой задачи приведен на рис.2.2.
Рис. 2.2 Блок – схема вычисления суммы ряда чисел
Алгоритм предусматривает использование
циклической операции, в которой параметром
цикла является индекс элемента ряда i
(его порядковый номер). Тело цикла
представлено рекуррентной формулой
,
с помощью которой последующее значение
суммы
вычисляется с использованием ее
предыдущего значения. Важной операцией
в этом алгоритме является операция
,
которая предусматривает очистку ячейки
оперативной памяти, выделенной для
размещения значений переменной
.
Такая операция обязательна и совершается
до начала работы цикла.
Дело в том, что при решении какой-либо задачи всем данным, участвующим в операциях вычислительного процесса (исходным, промежуточным, конечным), выделяются ячейки оперативной памяти. После завершения выполнения программы данные в используемых ячейках автоматически не удаляются (не обнуляются). Если после этого на компьютере будет решаться другая задача, то для ее переменных могут быть выделены ячейки памяти, которые использовались в предыдущей задаче, с сохранившимися в них данными. В случае, когда решается задача по представленному алгоритму, переменной может быть выделена ячейка с "остатками" от предыдущей задачи (их еще называют "мусор"), и это может исказить результат решения. Во избежание этого ячейку памяти для переменной вначале очищают от "мусора", устанавливая значение 0. Можно вместо нуля устанавливать значение первого слагаемого (первого числа ряда), но тогда параметр цикла i должен изменятся не от единицы, а от 2.
Чистка ячеек памяти предусматривается только для тех переменных, значение которых вычисляется по рекуррентным формулам. При использовании других формул вычисления такая операция не обязательна.
Вычисление произведения чисел произвольного ряда
Дан: ряд произвольных чисел .
Определить: произведение этих чисел
.
Блок-схема вычислительного процесса приведена на рис.2.3.
Рис. 2.3 Блок – схема вычисления произведения ряда чисел
Этот алгоритм подобен предыдущему.
Отличием является только то, что
вычисление произведения осуществляется
по рекуррентной формуле
,
а очистка ячейки памяти, выделенной под
переменную
,
осуществляется не нулем, а единицей по
понятным причинам.