- •Ю.П. Чернов, о.П. Шафеева программирование для начинающих
- •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
- •Клавиши с кодами из двух частей
- •Содержание
Лабораторная работа 4 Программирование циклических алгоритмов с предусловием
Цель работы: научиться разрабатывать и отлаживать программы с неразветвленными и разветвленными циклами, управляемыми условиями.
Структура оператора цикла с предусловием (с предварительной проверкой условия):
WHILE <условие_выполнения> DO <оператор>;
пока делать
где <условие> - это любое логическое выражение, <оператор> - это произвольный оператор Турбо Паскаля, в том числе и составной.
Пример. Для трех значений а = 0.1, 0.2,0.3 протабулировать функцию y=a.tg(x/4) при изменении аргумента x на интервале [0.5,0.9] с шагом, равным a.
Для СА (рис.5) решения данной задачи программа может быть следующей:
Program a4_1;
var
a,x,y:real;
begin
writeln('-------------------------');
writeln(' a | x | y |');
а≤0,3;х=0,5
a:=0.1;
while a<=0.31 do
begin
writeln(a:5:2);
x:=0.5;
while x<=0.91 do
begin
y:=a*sin(x/4)/cos(x/4);
writeln(x:12:2,' | ', y:10:2);
x:=x+a;
end;
writeln('-------------------------');
a:=a+0.1
end;
end.
Задание 1 (программа 4_1)
Начертите структурную схему алгоритма, напишите и
отладьте программу для табуляции следующих функций:
1. S = ae-xsin ax+ при -1 <= x <=1 с шагом 0.2,
a = 0.75, 1<=y <=5 с шагом 1.5.
2. Z = + 1,3 sin(x-a) при 2 <=x <=5 с шагом 0.5,
a = 1.9, -1<=y<=1 с шагом 0.5.
3. S = e2 t ycos(t-a) при 1<=t<=2 с шагом 0.2,
a = -2.1, 2<= y<=3 с шагом 0.3.
4. Z = bx(tx+2.1) при 1<= x<=2 с шагом 0.2,
b= 3.5, 0<= t<=1 с шагом 0.2.
, , если 0 <=x <= 2, a = 0.5; 0.75,
Z= если 2 < x <= 3.6, шаг dx=a/2.
6. sin ax -,если 0.1 <=x <= 0.4,
Y= a cos2(px), если 0.4 < x <= 1.2, a = 1.0; 1.5,
2 - sin ax, если 1.2 < x <=1.6, шаг dx=a/5.
7. Z= ln(a+x2/) ,если 0 <=x <= 2, a=1.0; 1.3; 1.6,
2 e2x , если 2 < x <= 3.6, шаг dx=a/4.
8. a(ex+2a+e-(x-3a), если 0.1 <= x < 0.5,
Z = sin x, если x = 0.5, a = 2; 2.1,
a + a cos(x+3a), если 0.5 < x <= 1.5, шаг dx=a/10.
9. -a ex-3a, если 0 < x<= 3, a = 1; 1.5,
Z= -a(1+ln(x-3a)), если 3 < x <= 4, шаг dx=a/2.
10. - (x+3a)2 - 2a, если -1 <=x <= 0,
Y= a cos(x+3a) - 3a,если 0 < x < 1, a = 0.7; 1,
a ex, если x = 1, dx=(a+0.2)/2.
11. Z= a(x-a)3/2, если 1 <= x <= 2.5, a = 0.5; 1.0,
a/2(ex/a+e-x/a), если 2.5 < x <= 4, шаг dx=a/2.
12.,если 0.5 <= x < 1.5,
Y = a cos x, если x = 1.5, a=0.1; 0.2; 0.3,
(a x2 + 1)x, если 1.5 < x <= 3, шаг dx=2a.
13. (sin2x +a)2 ea sinX , если 0.1<=x<= 0.5, a=0.1;0.2;0.3,
Z = tg(x/4), если 0.5 < x <=0.9, шаг dx=a.
14. tg(a2 +sin px), если 0 <= x <= 1,
Y = a sin(p- cos px), если 1 < x <= 2, a=0.5; 0.75; 1;
lg x, если 2 < x < 3, шаг dx=a/4.
15. Z= ecos x -a sin2(px), если 0.5 <= x <= 1.5 a=0.1;0.7;1.3,
a x2 - cos px, если 1.5 < x <= 2 шаг dx= a/4.
16. 1/x, если 0.1 <= x <= 0.4
Y = ln(x2+ ax), если 0.4 < x <= 1.2 a = 1.0; 1.5,
x2, если 1.2 < x < 1.6 шаг dx = a/5.
17. Дана непустая последовательность различных натуральных чисел, за которой следует нуль (признак конца последовательности). Определить порядковый номер наименьшего из них и его значение.
18. Найти первый отрицательный член последовательности cos (ctg(n)), где n = 1, 2, 3, ..., x . Напечатать его номер и значение. Распечатать всю последовательность
19. Вычислить наибольший общий делитель (k) натуральных чисел d и f. Оператор FOR не использовать.
20. Дан ряд неотрицательных вещественных чисел. Определить, сколько из них больше своих «соседей»: предыдущего и последующего чисел. Признаком окончания ряда чисел считать появление отрицательного числа.
Задание 2 (программа 4_2)
Модифицировать (изменить) программу 3_2 для вычисления функций F1(x) и F2(x) с применением вместо счетного цикла оператора цикла с предусловием. Выполнить ее и сравнить результаты с полученными в предыдущей работе.