
- •Ю.П. Чернов, о.П. Шафеева программирование для начинающих
- •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
- •Клавиши с кодами из двух частей
- •Содержание
Лабораторная работа 3 Программирование циклических алгоритмов с заданным числом повторений
Первая форма счетного оператора цикла позволяет наращивать параметр цикла на единицу (+1):
FOR <параметр цикла>:= <min значение>TO<max значение> DO <оператор>;
(Для) (увеличивая к) (выполнять)
где <параметр цикла> -это переменная целого либо любого порядкового типа; <min, max значения>-это начальное и конечное значения параметра цикла (выражения того же типа, что и параметр цикла).
Вторая форма позволяет уменьшать значение параметра цикла на единицу (-1):
FOR <параметр цикла>:= <max знач.> DOWNTO <min знач.> DO <оператор>; (Для) (уменьшая к) (делать)
Пример 1. Вычислить сумму элементов s=1+1/4+1/9+1/16+... .
На основе анализа изменения параметра знаменателя определим алгоритм решения задачи (pис. 3) и напишем программу:
PROGRAM
summa;
VAR s, r: REAL;
i, N: INTEGER;
BEGIN
s:=0;
WRITELN('введите N');
READ(N);
FOR I:=1 TO N DO
begin
r:=1/sqr(i);
s:=s+r;
end;
WRITELN('Сумма=',s:6:2);
END.
Пример 2. Вычислить значения
двух функций F1(x)=tg(x) и
F2(x)=sin(x) в n точках,
равномерно распределенных на
интервале a ≤ x ≤ b, где a=-π/4, b=π.
Для реализации данной задачи разработа-
на СА (pис. 4) и следующая программа:
Program Lab3;
Const а = -pi/4; b = pi;
Var F1, F2, x, dx: real; {dx - шаг изменения х}
i, n: integer; {i - пеpеменная цикла}
Begin
writeln ('введите число точек N');
read(n);
dx: = abs(b-a)/(n-1);
x:=a;
writeln (' _____________________________');
writeln ('| I | X | F1 | F2 |');
writeln ('|---|--------------|------------|------------|');
for i:=1 to n do {опеpатоp цикла}
begin
F2:=sin(x);
F1:=F2/cos(x); {вычисление: tg x}
writeln('|', i:3,' |', x:8:3,'|', f1:8:4,' |', f2:8:4,' |');
x:=x+dx;
end;
writeln('|________________________|);
End.
Задание 1 (программа 3_1)
Для заданных с клавиатуры значений переменных x и n вычислить
1. X = 1 + 1/2 + 1/3 + ... + 1/10. 2. Z = 2. 4. 6. 8. ... .20.
3. Y = -x + 4x - 9x + ... - 81 x.. 4. Y = x + x/3 + x/5 + ... + x/17.
5. Y = n! = 1. 2 . 3 .....n. 6. Y = 1 - 3 + 32 - 33 + . . . + 310.
7.
Y=x2/(2i-1).
8. Z =
(x+i)/i.
9.
Y=x2/i.
10. Y = 1 + x/2 + x2/4
+ x3/6
+ ... + xi/2i
+ ... + x9
/18
.
11.
Y=1+x2/1!+x4/2!+x6/3!+…+x20/10!=I+x2i/i!.
12. Y =
1 - x +x3/3!
-x5/5!+
...+(-1)n
x2n-1/(2n-1)!+
... +x11/11!.
13. е = 1 + 1/1! + 1/2! + ... + 1/n! + ... (сравнить результат со значением функции EXP(1), определенной в Паскале).
14. π = 4(1-1/3+1/5-1/7+…+(-1)n/(2n+1)+…) (результаты сравнить с определенным в языке Паскаль числом Pi).
15. Y = arctg x = x-x3/3 +x5/5- ... +(-1)n x2n+1/(2n+1)+ ... (|х|<1).
16. Z = LN(1+x) = x - x2/2 + x3/3 - ... + (-1)n-1 xn/n + ... (|x|<1).
17. S = x - x3/3! + x5/5! - ... +(-1)n x2n+1/(2n+1)! + ... .
18. Вычислить суммы положительных и отрицательных значений функции
z = cos(nx+a) sin(nx-a), где n=1,2,...,5, a и x -вещественные числа.
19. Вычислить сумму четных и сумму нечетных чисел натурального ряда от 1 до N.
20.
Найти сумму факториала M=i
!.
Задание 2 (программа 3_2)
Вычислить значения двух функций в n равномерно распределенных в диапазоне а≤x≤b точках. Результаты оформить в виде таблицы.
№ п/п |
a |
B |
n |
F1(х) |
F2(х) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
0 1 -1 -2 0
- -1 -4 1 1 0
- 0 1 2 2 0 1 3 1
|
2 2 5 5 3 4 3 4
2 2 4 4 5 2 4 3
|
20 18 15 14 16 20 20 12 15 20 20 18 16 12 10 16 18
15 18
|
sin x cos x 1+2x+5 4e-|x|-1 | x+10|5 2 sin 2x +1 2-cos x 2-x/100 x3e2x
1/(1+ 5-3 cos x |sinx|+|cosx| e-x+cos2x
e-x
lg x cos x/2 2x lg x - 3x lg x 3-x/50
e2x
2x
arctg x - 5 1.5 arctg x
|
sin x + cos x -1 (x-1)3 cos x e-(x+5)
(x+5)3(1+sin2x)
20/(1+x2) ex sin x x ln2 x 2x/(1-4x) |sin x| - |cos x| e -2x x + sin x
ctg x x e -x +ln x 10/(2+x2) e axx е2x lg x - 33x |