- •Содержание
- •Пояснительная записка
- •Раздел 1. Основы программирования
- •Тема 1.1 Понятие алгоритма
- •Понятие алгоритма. Свойства алгоритма
- •Алгоритмический язык
- •Понятие алгоритма. Свойства алгоритма
- •Хорезми
- •2. Алгоритмический язык
- •Тема 1.2 Методы описания алгоритма
- •Виды описания алгоритма
- •Тема 1.3 Типы алгоритмов
- •1.Типы алгоритмов
- •Алгоритм линейной структуры
- •3. Разветвляющийся алгоритм
- •4. Циклический алгоритм
- •5.Виды циклов
- •Цикл с предусловием (цикл пока)
- •2. Цикл с постусловием (цикл до)
- •3. Арифметический цикл (цикл для) – цикл с параметром.
- •Тема 1.4. Алгоритмический ряд.
- •Операторы цикла с условием
- •Операторы ограничения и прерывания цикла
- •Раздел 2. Решение задач на пэвм.
- •Тема 2.1. Основные этапы подготовки задачи к решению на пэвм.
- •Этапы решения задач
- •Тема 2.2 Программа на языке высокого уровня.
- •Тема 2.3. Методика Джексона
- •1. Методика Джексона
- •Шаг объект-действие
- •Раздел 3.Разработка программы на языке Турбо Паскаль
- •Тема 3.1 Основные элементы
- •История и классификация языков программирования
- •Элементы языка Турбо Паскаль
- •Тема 3.2. Типы данных
- •1. Типы данных Типы данных
- •Тема3.3 Программа на языке Турбо Паскаль
- •Структура программы на языке Паскаль
- •4. Вывод данных в тр
- •5. Ввод данных в тр
- •Тема 3.4 Массивы и их обработка
- •Строковый тип данных
- •Процедуры и функции для работы со строками
- •1. Определение массива
- •2 Описание массивов
- •3 Действия над массивами
- •4.Двумерный массив
- •6.Строковый тип данных
- •'Текстовая строка'
- •7. Процедуры и функции для работы со строками
- •Тема 3.5 Встроенные процедуры и функции
- •1. Арифметические процедуры и функции:
- •2. Функции преобразования типов:
- •3. Процедуры и функции для работы со строками:
- •Тема 3.6. Процедуры и функции пользователя
- •Отличия функции от процедур
- •3. Описание процедуры
- •4. Описание функций
- •5. Локальные и глобальные переменные.
- •6. Параметры в процедурах.
- •Тема 3.7. Записи
- •1. Структура записи в тр
- •2. Отличия записи от массива.
- •Тема 3.8 Файлы и их обработка
- •1. Понятие файла
- •2. Чтение и запись информации из файл или в файл
- •3.Доступ к файлам
- •4.Имена файлов
- •5. Связь файла с файловой переменной.
- •6. Открытие и переименование файла.
- •7. Типизированные фалы.
- •8. Нетипизированные файлы.
- •9.Текстовые файлы
- •Раздел 4. Объектно – ориентированная модель программирования
- •Тема 4.1. Основные характеристики ооп. Преимущества.
- •1. Основные характеристики ооп. Преимущества
- •Тема 4.2. Инкапсуляция.
- •Тема 4.3. Наследование.
- •Тема 4.4.Виртуальные методы и полиморфизм.
- •Перечень источников литературы для самостоятельного изучения учебной дисциплины «Основы алгоритмизации и программирования»
Операторы цикла с условием
В Турбо-Паскале применяются два оператора цикла с условием:
While "условие" DO "оператор";
- цикл с предусловием: проверка условия перед каждым выполнением "оператора",
Repeat "операторы" Until "условие";
- цикл с постусловием: проверка условия после каждого выполнения "операторов".
Здесь "условие" - выражение логического типа (Boolean).
Схема выполнения операторов имеет вид:
Цикл WHILE |
Цикл REPEAT |
|
|
В цикле While "оператор" выполняется если условие верно (True), если условие ложно (False), то цикл заканчивается, т. е. цикл While повторяется пока выполняется условие. Цикл While начинается проверкой условия, поэтому, если начальное условие ложно, то "оператор" не выполняется ни разу. Для включения в тело цикла нескольких операторов применяется составной оператор: Begin "операторы" end.
Цикл Repeat повторяется, если условие ложно (False), и заканчивается, если условие верно (True), т. е. цикл Repeat повторяется до выполнения условия.
Цикл Repeat заканчивается проверкой условия, поэтому "операторы" выполняются не менее одного раза. В теле цикла может записываться более одного оператора.
Циклы с условием обычно используются в тех случаях, если количество повторений блока операторов заранее не известно, например, при расчете суммы членов бесконечного ряда с заданной погрешностью.
Сумма членов бесконечной последовательности
a1, a2, a3, ... , an, ...
называется бесконечным рядом и записывается в виде:
a1 + a2 + a3 +... + an+...
Здесь an - общий член ряда.
Сумма конечного числа членов ряда называется частичной суммой и обозначается "Sn".
Если сумма членов бесконечного ряда имеет конечный предел "S", то ряд называется сходящимся. Для некоторых рядов получены формулы расчета суммы членов ряда. Например, сумма членов числового ряда:
1 + 1/32 + 1/52 + . . . + 1/(2*N-1)<sup2< sup=""> + ...</sup2<>
имеет предел S = Pi2/8 и общий член an = 1/(2*N-1)2, где N = 1, 2, 3, ...
Для сходящегося ряда вычисляется последовательность частичных сумм с заданной погрешностью. Абсолютная погрешность расчетов определяется по формуле Eps=abs(S-Sn), либо Eps=abs(an), если значение S неизвестно. Относительная погрешность расчетов определяется по формуле Eps_o=abs((S-Sn)/S), либо Eps_o=abs(an/Sn).
Частичные суммы вычисляются по формуле: Sn = Sn-1 + an
Для знакопеременного ряда следует добавить k1=-1, а в цикле: k1:=-k1, an=k1*an. В некоторых случаях "N"-ый член ряда выражается через "N-1"-ый, например, для ряда:
1 + 1/2! + 1/4! + 1/6! + ... + 1/(2*N)! + ... ; N = 0, 1, 2, ...
общий член ряда вычисляется по формуле: an = an-1*k;
Параметр k = an/an-1 - коэффициент роста вычисляется предварительно (до написания программы).
Для данного ряда
an = 1/(2*N)! = 1/( 1*2*...*(2*N-2)*(2*N-1)*2*N) an-1 = 1/(2*(N-1))! = 1/((2*N-2))! = 1/(1*2*...*(2*N-2)) k = an/an-1 = 1/((2*N-1)*2*N)
Здесь N! = 1*2*3*...*N; - вычисление факториала числа "N", причем 0! = 1.
Расчет частичных сумм производится в цикле с условием, например, для данного ряда операторами:
N := 0;
a := 1;
SN := 1;
S := (e+1)/e;
e := 2.7182828;
Repeat
N := N+1;
k := 1/((2*N-1)*2*N);
a := a*k;
SN := SN+a;
Writeln('Частичная сумма Sn= ', Sn:11:6);
Until abs(S-Sn) < eps; { eps - допустимая погрешность расчетов}
Writeln('Сумма ряда S = ', SN:11:6);