- •Ю.П. Чернов, о.П. Шафеева программирование для начинающих
- •1. Среда программирования turbo pascal 7.0
- •1.1. Структура меню среды
- •1.2. Правила оформления программ
- •1.3. Команды редактора тп
- •Команды удаления и вставки
- •1.4. Компиляция и исправление синтаксических ошибок
- •2. Элементы языка pascal
- •2.1. Алфавит языка
- •2.2. Константы. Идентификаторы
- •2.3. Операторы
- •2.3.1. Оператор присваивания
- •2.3.2. Оператор безусловного перехода
- •Стандартные функции
- •2.3.3. Условный оператор if
- •2.3.4. Опеpатоp варианта case
- •2.3.5. Составной и пустой операторы
- •2.3.6. Операторы цикла
- •2.4. Процедуры прерываний
- •2.5. Типизированные константы
- •2.6. Структура программы
- •2.7. Подпрограммы
- •2.7.1. Определение процедур и функций
- •2.7.2. Вложенные подпрограммы
- •2.7.3. Вызов подпрограмм
- •2.7.4. Процедуры
- •2.7.5. Функции
- •2.7.6. Передача в подпрограмму параметров-массивов и параметров-строк
- •2.7.7. Рекурсия
- •2.8. Типы в Турбо Паскале
- •2.8.1. Целые типы
- •Классификация целых типов
- •Встроенные процедуры и функции для целых типов
- •2.8.2. Логический тип
- •2.8.3. Символьный тип
- •Служебные символы
- •2.8.4. Строковый тип
- •Встроенные функции и процедуры для обработки строк
- •Процедуры преобразования
- •2.8.5. Перечислимый тип
- •2.8.6. Ограниченный тип (диапазон)
- •2.8.7. Вещественные типы
- •Вещественные типы
- •Встроенные функции
- •2.8.8. Структурированные типы данных. Массивы
- •2.8.9. Множества
- •2.8.10. Записи
- •2.9. Изменение типа выражения
- •2.10. Процедурные типы
- •2.11. Файлы
- •Общие процедуры и функции для работы с файлами
- •2.11.1. Текстовые файлы
- •2.11.2. Типизированные файлы
- •2.11.3. Нетипизированные файлы
- •2.12. Указатели и динамическая память
- •2.13. Модули
- •2.14. Библиотека Турбо Паскаля
- •2.14.1. Модуль crt
- •2.14.2. Модуль graph
- •Var driver, Mode: integer переменные драйвера и режима.
- •Управление графическим режимом
- •Управление экраном, окном, страницей
- •Управление цветом и палитрой
- •Работа с точками
- •Работа с линиями
- •Построение фигур из линий
- •Построение криволинейных фигур
- •Работа с текстом
- •Обмен с памятью
- •2.15. Динамические структуры данных
- •2.15.1. Связанные динамические данные. Списки
- •Чтобы сослаться на двунаправленный кольцевой список как на единый программный объект, используется указатель, значением которого является ссылка на заглавное звено списка.
- •2.15.2 Очередь
- •2.15.3. Стек
- •3. Практическое программирование Этапы подготовки и решения задач на компьютере
- •Порядок выполнения лабораторных работ
- •Лабораторная работа 1 Основы программирования в среде Турбо Паскаля.
- •Приоритет операций в выражении
- •Задание 1 (программа 1_1)
- •Лабораторная работа 2 Программирование разветвленных алгоритмов. Операторы передачи управления
- •Лабораторная работа 3 Программирование циклических алгоритмов с заданным числом повторений
- •Лабораторная работа 4 Программирование циклических алгоритмов с предусловием
- •Лабораторная работа 5 Программирование циклических алгоритмов с постусловием
- •Модифицировать программу 3_2 для вычисления функций f1(X) и f2 (X) с применением оператора цикла с постусловием. Выполнить ее и сравнить результаты с полученными ранее.
- •Лабораторная работа 6 Программирование алгоритмов обработки одномерных массивов
- •Задание 1
- •Лабораторная работа 7
- •Лабораторная работа 8 Программирование с использованием функций
- •Лабораторная работа 9 Программирование с использованием процедур
- •Лабораторная работа 10 Обработка символьных и строковых данных
- •Лабораторная работа 11 Файлы
- •Лабораторная работа 12 Записи
- •Лабораторная работа 13 Решение нелинейных уравнений
- •Задание (программа_13)
- •Лабораторная работа 14 Вычисление приближенного значения определенного интеграла
- •Лабораторная работа 15 Модульное программирование
- •Лабораторная работа 16 Графика
- •Библиографический список
- •Обозначения графические в схемах алгоритмов (гост 19.701-90)
- •Зарезервированные слова Turbo Pascal 7.0
- •Приложение в
- •Кодировка символов в соответствии с кодами ascii
- •Приложение г
- •Альтернативная кодировка госТа для кодов 128...255
- •Клавиши с кодами из двух частей
- •Содержание
Лабораторная работа 5 Программирование циклических алгоритмов с постусловием
Стpуктуpа оператора циклас постусловием
REPEAT <оператор 1>;
(повторять)
<оператор 2>;
...
<оператор N>
UNTIL <условие окончания цикла>;
(до тех поp, пока)
Пример. Вычислить 15 значений функций
y1(x) = tg(x) ; и y2(x) = ctg(x) при a ≤ x ≤ b,
a=0.6*Pi, b=0.7*Pi.
Для вычислений разработана СА (рис.6) и следующая
программа:
Program Lab5;
Const n = 14;
a = 0.6*Pi;
b = 0.7*Pi;
Var x, y1, y2, dx: real;
Begin
dx:=abs((a-b)/n);
x:=a;
Repeat
y1:=sin(x)/cos(x);
y2:=1/y1;
writeln('x=', x:6:4,' y1= ', y1:7:4,' y2=', y2:7:4);
x:=x+dx
Until x>b;
End.
Пример 2. Вычислить сумму элементов s = 1+1/4+1/9+1/16+... с точностью до E = 0.00001 (рис. 7).
PROGRAM sum;
CONST
E=0.00001; {точность}
VAR
s,r: REAL; {s - сумма, r – слагаемое}
i:INTEGER; {i - счетчик слагаемых}
BEGIN
s:=0;
i:=1;
REPEAT
r:=1/sqr(i); {вычисление слагаемого}
s:=s+r;
i:=i+1 {счет слагаемых}
UNTIL r<E; {сравнение слагаемого с Е}
WRITELN ('Сумма=',s:9:5); {вывод суммы}
END.
Задание 1 (программа 5_1)
Модифицировать программу 3_2 для вычисления функций f1(X) и f2 (X) с применением оператора цикла с постусловием. Выполнить ее и сравнить результаты с полученными ранее.
Задание 2 (программа 5_2)
Начертить структурную схему алгоритма, написать и отладить программу для одной из следующих задач.
1. Вычислить приближенное значение z = arctg x и сравнить с
x - x3/3 + x5/5 - ... + (-1)nx2n+1/(2n+1) + ... (|х|<1), прекращая вычисления, когда очередной член по абсолютной величине будет меньше eps=0.00001.
2. Вычислить y = x - x2/2 + x3/3 - ... + (-1)n-1xn/n + ... с точностью eps=0.00001,
где |x|<1. Сравнить результат с вычисленным через стандартную функцию значением y = LN(1+x).
3. Вычислить y = 1 + x/1! + x2/2! + ... + xn/n! + ... с точностью eps=0.00001 и срав-нить результат с вычисленным через стандартную функцию значением y = ЕXP(x).
4. Вычислить y = sin x = x - x3/3! +x5/5! -...+ (-1)nx2n+1/(2n+1)!+... с точностью eps=0.00001.
5. Вычислить y = 1 - x2/2! + x4/4! - ... + (-1)nx2n/(2n)! + ... с точностью eps = 0.0001 и сравнить результат с вычисленным через стандартную функцию значением y = cos (x).
6. Найти произведение цифр заданного натурального числа.
7. Определить число, получаемое выписыванием в обратном порядке цифр заданного натурального числа.
8. Определить номер первого из чисел sin x, sin(sin x), sin(sin(sin x)), ... , меньшего по модулю 10-3.
9. Дана непустая последовательность различных целых чисел, за которой следует нуль. Определить порядковый номер и величину наибольшего среди отрицательных чисел этой последовательности.
10. Вычислять периметры и площади прямоугольных треугольников по длинам катетов, пока один из заданных катетов не окажется нулевым.
11. Дана непустая последовательность положительных целых чисел, за которой следует отрицательное число (это признак конца последовательности). Вычислить среднее геометрическое этих чисел.
12. Дана непустая последовательность ненулевых целых чисел, за которой следует нуль. Определить, сколько раз в этой последовательности меняется знак.
13. Числа Фибоначчи (fn) определяются формулами
f0 = f1 = 1; f n = f n-1 + f n-2 при n = 2,3,... .
Вычислить сумму всех чисел Фибоначчи, которые не превосходят 1000.
14. Дана непустая последовательность положительных вещественных чисел х1, х2, х3,..., за которыми следует отрицательное число. Вычислить величину
х1 + 2х2 + ... + (N-1)xN-1 + N хN, где N заранее не известно.
15. Вычислить длины окружностей, площади кругов и объемы шаров для ряда заданных радиусов. Признаком окончания счета является нулевое значение радиуса.
16. Определить, есть ли среди цифр заданного числа одинаковые.
17. Определить, является ли заданное натуральное число палиндромом, т. е. таким, десятичная запись которого читается одинаково слева направо и справа налево.
18. Вычислить наименьшее общее кратное натуральных чисел a и b.
19. Дано число L. Определить первый отрицательный член последовательности х1, х2, х3,..., где х1= L, xi = tg(xi-1).
20. Определить, является ли заданное натуральное число совершенным, т.е. равным сумме всех своих (положительных) делителей, кроме самого этого числа (например, совершенное число 6=1+2+3).
Задание 3 (программа 5_3)
Модифицировать программу 4_1 с использованием оператора цикла REPEAT ... UNTIL и сравнить результаты с полученными в работе 4.