
- •Введение
- •Блок-схема алгоритма
- •Общие требования к блок-схеме алгоритма
- •Линейные и разветвляющиеся процессы
- •Циклические процессы
- •Итерационные процессы
- •Основные понятия языка С(С++)
- •Комментарии
- •Типы данных
- •Данные целого типа
- •Данные вещественного типа
- •Модификатор const
- •Переменные перечисляемого типа
- •Константы
- •Структура программы на языке С(С++)
- •Операции и выражения
- •sizeof
- •Операция присваивания
- •Арифметические операции
- •Операции поразрядной арифметики
- •Логические операции
- •Операции отношения
- •Инкрементные и декрементные операции
- •Операция sizeof
- •Порядок выполнения операций
- •Приоритет операций
- •Преобразование типов
- •Операция приведения
- •Операция запятая
- •Ввод и вывод информации
- •Директивы препроцессора
- •Директива #include
- •Директива #define
- •Операторы языка С(С++)
- •Понятие пустого и составного операторов
- •Операторы организации цикла
- •Оператор цикла for
- •Оператор цикла while
- •Оператор цикла do … while
- •Вложенные циклы
- •Примеры программ
- •Массивы
- •Одномерные массивы
- •Примеры программ
- •Многомерные массивы (матрицы)
- •Примеры программ
- •Указатели
- •Понятие указателя
- •Описание указателей
- •Операции с указателями
- •Связь между указателями и массивами
- •Массивы указателей
- •Многоуровневые указатели
- •Примеры программ
- •Символьные строки
- •Ввод/вывод строк.
- •Функции работы со строками.
- •Примеры программ
- •Функции
- •Прототип функции.
- •Определение функции.
- •Параметры функции
- •Передача массива в функцию
- •inline функции
- •Класс памяти
- •Автоматические переменные
- •Статические переменные
- •Регистровые переменные
- •Блочная структура
- •Примеры программ
- •Указатели на функции
- •Примеры программ
- •Рекурсия
- •Примеры программ
- •Аргументы в командной строке
- •Функции с переменным числом параметров
- •Вершина стека
- •Примеры программ
- •Сортировка
- •Пузырьковая сортировка.
- •Шейкер сортировка
- •Сортировка вставкой
- •Сортировка выбором
- •Метод Шелла
- •Метод Хора
- •Структуры
- •Указатели на структуры.
- •Структуры и функции
- •Примеры программ
- •Поля бит
- •Объединения
- •Переменные с изменяемой структурой
- •Организация списков и их обработка
- •Операции со списками при связном хранении
- •Стек
- •Построение обратной польской записи
- •Односвязный линейный список, очередь
- •Двусвязный линейный список
- •Циклический список, кольцо
- •Двусвязный циклический список
- •Примеры программ
- •Деревья
- •Файлы
- •Примеры программ
- •Литература

начало
i = 0, n, 1
A[i]
A[i]<99 да
max=A[0]
i = 1, n, 1
A[i]>max
да
max=A[i] max
конец
Рис 4. Блок-схема 4.
Если требуется вычислить например сумму некоторых чисел, то переменной используемой для накопления результата перед циклом необходимо присвоить нулевое значение или значение первого слагаемого. Иначе конечный результат может быть не определен (иметь любое значение).
Итерационные процессы
Итерационным процессом называется циклический процесс, который продолжается до тех пор, пока разность между соседними, уточняемыми на каждом шаге цикла (итерации) значениями, не окажется меньше или равной некоторой заданной величине. В виде итерационных вычислительных процессов реализуется большинство численных методов высшей математики: нахождение корней уравнения, вычисление значений интеграла, поиск экстремума некоторой целевой функции и др.
Пример . Разработать блок-схему нахождения квадратного корня числа n. Значение ищется на интервале [a,b] с точностью e. Значение аргументов а, b, e ввести с клавиатуры.

начало
a, b, e
fa=f(a) fb=f(b)
нет fa*fb<0 да
c==(a+b)/2
В интервале [a,b] нет
решений fc=f(c)
|
да |
|
|
|
|
|
|
fc=0 |
|
|
|
||||
|
|
|
|
|
|||
|
|
|
нет |
|
|
|
|
Точное ре- |
|
|
|
|
|||
шение fc |
|
|
нет |
||||
fa*fc<0 |
|||||||
|
|
||||||
|
|
|
|
|
|||
|
|
|
да |
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
||
|
|
b=c |
|
a=c |
|||
|
|
fb=fc |
|
fa=fc |
|b-a|<e нет
да
a, b, c
конец
Рис 5. Блок-схема 5.
Характерной особенностью итерационного процесса является то, что в нем количество повторений вычислений (итераций, циклов) заранее неизвестно и становится определенным (известным) только после завершения вычислений. Решение об окончании вычислений принимается в том случае, когда результаты счета (значение функции, искомые величины) на очередной итерации отличаются от предыдущих или эталонных не более чем на некоторую, наперед заданную, величину, т.е. найдены с заданной точностью.