Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
учебное пособие ОАиП.doc
Скачиваний:
11
Добавлен:
25.04.2019
Размер:
2.63 Mб
Скачать

Итерационные процессы

Итерационным процессом называется циклический процесс, который продолжается до тех пор, пока разность между соседними, уточняемыми на каждом шаге цикла (итерации) значениями, не окажется меньше или равной некоторой заданной величине. В виде итерационных вычислительных процессов реализуется большинство численных методов высшей математики: нахождение корней уравнения, вычисление значений интеграла, поиск экстремума некоторой целевой функции и др.

Пример . Разработать блок-схему нахождения квадратного корня числа n. Значение ищется на интервале [a,b] с точностью e. Значение аргументов а, b, e ввести с клавиатуры.

Рис 7. Блок-схема итерационного процесса.

Характерной особенностью итерационного процесса является то, что в нем количество повторений вычислений (итераций, циклов) заранее неизвестно и становится определенным (известным) только после завершения вычислений. Решение об окончании вычислений принимается в том случае, когда результаты счета (значение функции, искомые величины) на очередной итерации отличаются от предыдущих или эталонных не более чем на некоторую, наперед заданную, величину, т.е. найдены с заданной точностью.

Второй особенностью итерационного процесса является то, что результаты вычислений очередного выполнения цикла используются как исходные данные при следующем выполнении цикла, т.е. решение находится последовательными приближениями, путем уточнения на каждом шаге цикла.

При решении задач вычислительный процесс, реализующий алгоритм, обычно является комбинированным, т.е. он содержит разветвления, является и циклическим и итерационным. Поэтому рекомендуется разделять весь процесс вычислений на отдельные участки, соответствующие типам рассмотренных процессов.

Основные понятия языка С(С++)

Программа на языке С(С++) состоит из последовательности инструкций (операторов), описывающих действия, выполняемые программой. Операторы используют ключевые слова, значение которых зафиксировано и не может использоваться для других целей (например, в качестве имени переменных). В С(С++) все операторы (за исключением команд препроцессора и описаний функций, расположенных в начале программной единицы) оканчиваются точкой с запятой ’;’. Фигурные скобки {} в С(С++) применяются для обрамления начала и конца функции и некоторых других целей.

Алфавит языка (набор символов и цифр), используемый при составлении инструкций (операторов), включает латинские прописные и строчные буквы, цифры и специальные символы (. , ’ : и др.).

Идентификатор – это имя, которым обозначается некоторый объект (данное) в программе. Данные в оперативной памяти размещаются по некоторым адресам, которые программисту заранее неизвестны. Для того чтобы в программе иметь возможность обращаться к этим данным и обрабатывать их, программист этим данным даёт условные имена, которые компилятор в программе заменит адресами данных в оперативной памяти.

Идентификатор должен удовлетворять следующим требованиям:

- начинаться с латинской буквы или символа _ (подчеркивание);

- содержать только символы латинского алфавита, цифры и символ подчеркивания. Использование других символов запрещено.

Нет ограничения на количество символов в идентификаторе, однако воспринимаются и анализируются только первые 32.

Примеры записи идентификаторов:

sum, result, n, m, c10, Beta, beta, _function, letter, array и т.д.

Ошибочные идентификаторы: a+b, -omega, 9c, if, int, long, &b, %f.

Так как строчные и прописные буквы различаются, то идентификаторы BETA, beta, Beta (main, Main, MAIN) будут различными. При выборе идентификатора необходимо учитывать следующее:

идентификатор не должен совпадать с ключевыми словами языка и именами функций из библиотеки языка С(С++) (С++);

не рекомендуется начинать идентификатор со знака подчеркивания, т.к. этот символ используется в именах некоторых библиотечных функций и при совпадении имен эти функции будут недоступны программе. Кроме того, к именам транслируемых функций, составляющих программу, компилятор автоматически добавляет первым символом знак подчеркивания.

Ключевые слова – это зарезервированные имена, используемые в языке С(С++) с некоторым заранее определённым смыслом. Все зарезервированные слова пишутся строчными буквами иначе эти имена будут восприняты как имена переменных. Эти слова нельзя использовать в качестве идентификаторов объектов (данных) пользователя. Ключевые слова сообщают компилятору о типе данных, способе их организации, о последовательности выполнения оперторов. Ниже приведены некоторые ключевые слова:

auto break case char const continue default do double

else enum extern float for if int long register

return short signed sizeof struct switch typedef union unsigned

void volatile while.

Ключевые слова near, far, huge определяют тип (размер) указателя на данные, а слова _asm, cdecl, fortran, pascal используются для организации связи с функциями, написанными на других языках программирования.

Переменные. Программы в процессе своего функционирования оперируют различными данными. Некоторые данные в процессе выполнения программы не могут изменять своего значения - константы, значение других может быть модифицировано - переменные.

Все переменные, массивы и т.д., которые используются в программа, необходимо декларировать. Возможны две формы декларации: описание (объявление), не приводящее к выделению памяти, и определение, при использовании которого в зависимости от типа данного будет выделен определенный, в соответствии с типом, объем оперативной памяти. Выделенному участку памяти присваивается имя, которое в дальнейшем используется в программе.

Описание переменных имеет следующий формат:

[спецификатор класса памяти][модификатор]типидентификатор_1

[=начальное значение][,идентификатор_n]=начальное значение]];

В описании идентификатор может содержать квадратные или круглые скобки, а также перед ним может быть один или несколько знаков *(звёздочка). Эти случаи объявления будут рассмотрены далее.

Спецификатор типа - одно или несколько ключевых слов, определяющих тип переменной. Язык Cu определяет стандартный набор основных типов данных(int, char, double), используя которые пользователь может объявлять свои производные (структурированные) типы (массив, структура, объединение и др.). При определении переменных им можно присвоить начальное значение.

Четыре ключевых слова: auto, extern, registеr и static определяют класс памяти, или каким образом для объявляемой переменной распределяется память и в каких фрагментах программы можно использовать её значение. Если ключевое слово, определяющее класс памяти, опущено, то класс памяти определяется по контексту.

Определения и описания переменных рекомендуется размещать в начале программного модуля.