
- •Алгоритмизация и программирование
- •Варианты домашних заданий
- •Основы программирования в среде Турбо Паскаля.
- •Приоритет операций в выражении
- •Задание 1 (программа 1_1)
- •Программирование разветвленных алгоритмов. Операторы передачи управления
- •Программирование циклических алгоритмов с заданным числом повторений
- •Программирование циклических алгоритмов с предусловием
- •Программирование циклических алгоритмов с постусловием
- •Модифицировать программу 3_2 для вычисления функций f1(X) и f2 (X) с применением оператора цикла с постусловием. Выполнить ее и сравнить результа-ты с полученными ранее.
- •Программирование алгоритмов обработки одномерных массивов
- •Задание 1
- •Порядок выполнения лабораторных работ
- •Сообщение об ошибках Сообщения об ошибках периода компиляции
- •Сообщения об ошибках периода исполнения Ошибки операционной системы dos
- •Ошибки вода - вывода
- •Критические ошибки
Программирование циклических алгоритмов с заданным числом повторений
Первая форма счетного оператора цикла позволяет наращивать параметр цикла на единицу (+1):
FOR <параметр цикла>:= <min значение> TO <max значение> DO <оператор>;
(Для) (увеличивая к) (выполнять)
где <параметр цикла> -это переменная целого либо любого порядкового типа; <min, max значения>-это начальное и конечное значения параметра цикла (выражения того же типа, что и параметр цикла).
Вторая форма позволяет уменьшать значение параметра цикла на единицу (-1):
FOR <параметр цикла>:= <max знач.> DOWNTO <min знач.> DO <оператор>; (Для) (уменьшая к) (делать)
Пример 1. Вычислить сумму элементов s=1+1/4+1/9+1/16+... .
На основе анализа изменения параметра знаменателя определим алгоритм решения задачи и напишем программу:
PROGRAM suma;
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=π.
Для реализации данной задачи разработана следующая программа:
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.
Задание 2 (программа 3_2)
Вычислить значения двух функций в n равномерно распределенных в диапазо-
№ п/п |
a |
b |
n |
F1(х) |
F2(х) |
1 2 3 4 5 6 7 8 9 10 11 12
|
0 1 -1 -2 0
- -1 -4 1 1 0
-
|
2 2 5 5 3 4 3 4
2
|
10 12 15 14 16 12 10 12 15 10 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|
|
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|
|
Лабораторная работа 4
Программирование циклических алгоритмов с предусловием
Цель работы: научиться разрабатывать и отлаживать программы с неразветвленными и разветвленными циклами, управляемыми условиями.
Структура оператора цикла с предусловием (с предварительной проверкой условия):
WHILE <условие_выполнения> DO <оператор>;
пока делать
где <условие> - это любое логическое выражение, <оператор> - это произвольный оператор Турбо Паскаля, в том числе и составной.
Пример. Для трех значений а = 0.1, 0.2,0.3 протабулировать функцию y=a.tg(x/4) при изменении аргумента x на интервале [0.5,0.9] с шагом, равным a.
Program a4_1;
var
begin
writeln('-------------------------');
writeln(' a | x | y |');
writeln('-------------------------');
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.
Задание 2 (программа 4_2)
Модифицировать (изменить) программу 3_2 для вычисления функций F1(x) и F2(x) с применением вместо счетного цикла оператора цикла с предусловием. Выполнить ее и сравнить результаты с полученными в предыдущей работе.
Лабораторная работа 5