
- •Алгоритмизация и программирование
- •Варианты домашних заданий
- •Основы программирования в среде Турбо Паскаля.
- •Приоритет операций в выражении
- •Задание 1 (программа 1_1)
- •Программирование разветвленных алгоритмов. Операторы передачи управления
- •Программирование циклических алгоритмов с заданным числом повторений
- •Программирование циклических алгоритмов с предусловием
- •Программирование циклических алгоритмов с постусловием
- •Модифицировать программу 3_2 для вычисления функций f1(X) и f2 (X) с применением оператора цикла с постусловием. Выполнить ее и сравнить результа-ты с полученными ранее.
- •Программирование алгоритмов обработки одномерных массивов
- •Задание 1
- •Порядок выполнения лабораторных работ
- •Сообщение об ошибках Сообщения об ошибках периода компиляции
- •Сообщения об ошибках периода исполнения Ошибки операционной системы dos
- •Ошибки вода - вывода
- •Критические ошибки
Программирование циклических алгоритмов с постусловием
Ст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.
Для вычислений разработана следующая программа:
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+... c точностью до
E = 0.00001
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) с применением оператора цикла с постусловием. Выполнить ее и сравнить результа-ты с полученными ранее.
Лабораторная работа 6
Программирование алгоритмов обработки одномерных массивов
Цель работы: научиться разрабатывать и отлаживать программы с использованием регулярных типов (векторов).
Массив - упорядоченная структура однотипных данных, хранящихся последовательно.
Массив обязательно имеет размеры, определяющие, сколько в нем хранится элементов. Описывается в разделе TYPE (или VAR). Структура описания одномерного массива:
<имя>=ARRAY[диапазон_индексов] OF <базовый_тип>;
Диапазон указывает значения индексов первого и последнего элементов в массиве.
Пример. Найти значение и номер наименьшего элемента в одномерном массиве. При задании элементов исходного массива типизированной константой используется следующая программа:
Program lr6_1;
const a: array[1..10] of integer=(5,2,7,1,8,3,4,5,6,6);
var i, min, n: integer;
begin
min:=a[1];
n:=1;
for i:=2 to 10 do
if a[i]<min then
begin
min:=a[i];
n:=i;
end;
writeln('минимальный элемент равен ',min, ' n=',n);
end.
Если элементы массива вводятся с клавиатуры, то текст программы изменится:
program lr6_2;
var a: array[1..10] of integer;
i, min, n: integer;
begin
read(a[1]);
min:=a[1];
n:=1;
for i:=2 to 10 do
begin
read(a[i]);
if a[i]<min then
begin
min:=a[i];
n:=i;
end;
end;
writeln('минимальный элемент равен ', min, ' n=',n);
end.