- •Кафедра математики и информатики
- •Практикум
- •Введение
- •1. Арифметические основы построения эвм
- •2. Интегрированная среда Turbo Pascal 7.1
- •2.1. Основные элементы ide Turbo Pascal 7.1
- •2.2. Ввод программы в среде Turbo Pascal
- •2.3.Сохранение программы в файле
- •2.4. Работа с существующей программой
- •2.5. Компиляция программы в среде Turbo Pascal
- •(Успешная компиляция: Нажмите любую клавишу...)
- •2.6. Выполнение программы в среде Turbo Pascal
- •2.7. Выход из среды Turbo Pascal
- •3. Элементы языка Turbo Pascal
- •3.1. Алфавит
- •3.2. Идентификаторы
- •3.3. Разделители
- •3.4. Основные типы данных и операции с ними
- •3.5. Константы и переменные
- •3.6. Выражения
- •3.7. Стандартные математические функции языка Турбо - Паскаль
- •3.8. Структура программы на языке Pascal
- •X,y,z: Real; {переменные типа Real}
- •I,j,k: Integer; {переменные типа Integer}
- •3.9. Контрольные вопросы
- •4. Лабораторная работа №1: Программирование линейных вычислительных процессов
- •4.1. Оператор присваивания
- •4.2. Ввод исходных данных. Операторы Read и ReadLn
- •4.3. Вывод данных. Операторы Write и WriteLn
- •4.4. Примеры составления программы
- •4.5. Контрольные вопросы
- •Раздел Var;
- •4.6. Варианты заданий
- •5. Лабораторная работа №2: Программирование разветвляющихся процессов
- •5.1. Методические указания
- •5.2. Условный оператор If и составной оператор Begin … End
- •5.3. Логические операции
- •5.4. Оператор безусловного перехода Goto
- •5.5. Примеры составления программы
- •5.6. Контрольные вопросы
- •5.7. Варианты заданий
- •6. Лабораторная работа №3: Циклический процесс
- •6.1. Общие сведения
- •6.2. Цикл с параметром
- •6.3. Цикл с предусловием
- •6.4. Цикл с постусловием
- •6.5. Итерационные циклы
- •6.6. Контрольные вопросы
- •6.7. Варианты заданий
- •6.7.2. Циклы со счетчиками Составить программы используя разные циклы (с предусловием, с постусловием, с параметром)
- •6.7.2. Итерационные циклы
- •7. Лабораторная работа №4: Вложенные циклы
- •7.1. Общие сведения
- •7.2. Примеры выполнения задания
- •7.3. Контрольные вопросы
- •7.4. Варианты заданий
- •8. Лабораторная работа №5: Массивы
- •8.1. Одномерные и многомерные массивы
- •В квадратных скобках - индексы массива
- •8.2.Символьные массивы
- •8.3. Инициализация элементов массива
- •8.4. Примеры выполнения задания
- •8.5. Контрольные вопросы
- •8.6. Варианты заданий
- •9. Лабораторная работа №6: Сортировки
- •Приложение 1
- •Приложение 2 Структурограммы
- •Структурное программирование
- •Приложение 3
- •(Основная и дополнительная)
- •Приложение 4 Сообщения об ошибках компиляции
- •(Ошибка 15 : Файл не найден)
- •113. Error in statement (ошибка в операторе)
- •Приложение 5
- •21 Столетие Библиографический список
- •Содержание
6.5. Итерационные циклы
Циклический процесс называется итерационным, если каждое новое значение переменной цикла определятся через её предыдущее значение, число повторяющихся вычислений в цикле неизвестно и определить заранее (без реализации программы) его невозможно, если выход из цикла осуществляется по достижению решением заданной точности.
Другими словами, итерационный процесс имеет место в том случае, если невозможно предсказать заранее через которое количество шагов он закончится.
Итерационные циклы, реализующие метод последовательных приближений, широко используются в задачах с числовыми, функциональными и степенными рядами, при вычислении определённых интегралов, значений функций, в решении нелинейных алгебраических и трансцендентных (решающихся только графическим способом) уравнений.
Пример 4. Вычислить значение квадратного корня , по итерационной формуле Ньютона , где i:={0,1,2,…}, а y(i+1) и y(i) – два последовательных приближения к искомому корню. Начальные приближения корня вводится с клавиатуры.
Итерационный процесс для x>1 введется до тех пор, пока относительная погрешность при нахождения очередного приближения по абсолютному значению не станет меньше заданного значения h.
Program Example_6_4; {Задача решена с предусловием}
Uses Crt; {Подключаем модуль}
Var
x,y,h,y0,y1,y2:Real; {Описываем переменные}
Begin {Начало программы}
ClrScr; {Очищаем экран}
Write ('Введите число, из которого необходимо извлечь корень x=');
ReadLn (x); {Вводим с клавиатуры значение}
Write ('Введите начальное приближение y=');
ReadLn (y0); {Вводим с клавиатуры значение}
Write ('Введите точность значения');
ReadLn (h); {Вводим с клавиатуры значение}
y:=y0; {Задаем начальное приближение}
While Abs(y1-y)>=h Do {Начало итерационного цикла}
Begin
y2:=y+1/2*(x/y-y); {Вычисление очередного приближения}
y1:=y; y:=y2; {Переназначения}
End; {Конец итерационного цикла}
WriteLn ('значение корня равно',y); {Вывод на экран значения корня}
End. {Конец программы}
Program Example_6_5; {Задача решена с постусловием}
Uses Crt; {Подключаем модуль}
Var
x,y,h,y0,y1,y2:Real; {Описываем переменные}
Begin {Начало программы}
ClrScr; {Очищаем экран}
Write ('Введите число, из которого необходимо извлечь корень x=');
ReadLn (x); {Вводим с клавиатуры значение}
Write ('Введите начальное приближение y=');
ReadLn (y0); {Вводим с клавиатуры значение}
Write ('Введите точность значения');
ReadLn (h); {Вводим с клавиатуры значение}
y:=y0; {Задаем начальное приближение}
Repeat {Начало итерационного цикла}
y2:=y+1/2*(x/y-y); {Вычисление очередного приближения}
y1:=y; y:=y2; {Переназначения}
Until Abs(y1-y)<=h; {Конец итерационного цикла}
WriteLn ('значение корня равно',y); {Вывод на экран значения корня}
End. {Конец программы}
6.6. Контрольные вопросы
Как называются программы, в основе которых лежит структура повторения?
Сколько операторов цикла вам известно?
Каков тип выражения в операторе цикла с предусловием?
Верно ли, что в теле цикла с предусловием должен находиться один оператор?
Когда проверяется истинность выражения в цикле While?
Верно ли, что истинность выражения в цикле с предусловием является условием продолжения цикла?
Сколько раз выполнится оператор в теле цикла While, если с самого начала значение выражения равно False?
Сколько операторов можно записать между ключевыми словами Repeat и Until?
Когда проверяется истинность выражения в операторе цикла Repeat?
Какой тип имеет выражение в операторе цикла с постусловием?
Почему в цикле Repeat тело цикла всегда будет выполнен хотя бы один раз?
Верно ли, что истинность выражения в цикле Repeat является условием окончания цикла?
С помощью, каких служебных слов записывается цикл с параметром?
Верно ли, что цикл с параметром применяется в тех случаях, когда заранее известно число повторений?
Пусть цикл записан в виде: For V:=E1 To Е2 Do S;
Как называется E1?
Как называется Е2?
Как называется V?
Какой тип переменной должен иметь параметр цикла в цикле For?
Какой тип должны иметь начальное и конечное значения в цикле For?
Чему равно значение параметра цикла For после завершения цикла?
Могут ли быть разветвления внутри итерационного цикла?
Может ли управляющая переменная итерационного цикла использоваться в записи оператора For.
Какие утверждения являются верными (проиллюстрируйте ответ соответствующими примерами):
любой цикл For можно записать при помощи цикла While;
любой цикл While можно записать при помощи цикла For;
не любой цикл For можно записать при помощи цикла While;
не любой цикл While можно записать при помощи цикла For.
22. Могут ли быть разветвления внутри цикла с постусловием?
23. Могут ли быть разветвления внутри цикла с параметрами?