- •Министерство образования и науки украины
- •Составители: доц. Назаренко в. Асс. Чередникова о.Ю.
- •Общие методические указания
- •Программирование разветвляющихся процессов
- •Отчет по лабораторной работе №1
- •Пример выполнения задания
- •Var X,y : real; { координаты точки на плоскости }
- •Next, { признак ввода следующей точки }
- •Организация итерационных циклов
- •Результаты вычислений нужно напечатать в виде таблицы
- •Отчет по лабораторной работе №2
- •Пример выполнения задания Составить программу вычисления суммы
- •Варианты заданий к лабораторной работе № 2
- •Обработка одномерных массивов
- •Ввод и печать переменной n и массива a
- •Печать значения p
- •Отчет по лабораторной работе №3
- •Пример выполнения задания
- •Комментарии к программе
- •Варианты заданий к лабораторной работе № 3 "обработка одномерных массивов"
- •Указание. Две прямые
- •Указание. Гармоническое среднее вычислять по формуле
- •Примечание. Обход треугольника с вершинами в точках (), (), () производится по часовой стрелке, если его удвоенная площадь
- •Указание. Для каждого треугольника
- •Указание. Три вектора компланарные, если
- •3. Команды работы с блоками
- •4. Дополнительные команды
Ввод и печать переменной n и массива a
P:=0;
For i:=n downto 0 do
P:=P*x+a[i];
Печать значения p
End.
3. Программирование степенной функции.
В Турбо Паскале отсутствует операция возведения в степень, поэтому ее реализация выполняется программным способом.
Если показатель степени n- целое положительное число, то операция возведения в степень может быть заменена многократным умножением (для целочисленного показателя степени на Паскале разработаны эффективные программы возведения в степень, но эти программы имеют сравнительно сложную структуру алгоритма их организации). Если показатель степени - вещественное число, то вычисление функции
выполняется по формуле
.
Здесь следует обратить внимание на случай, когда вычисляемой функцией является корень нечетной степени. Поскольку значение такой функции существует и при положительном, и при отрицательном аргументе, а функция ln(x) определена только для положительного аргумента, то вычисление корня нечетной степени
где n- целое нечетное число, можно организовать, например, таким образом:
If abs(x)<1E-10 then
y:=0
Else
Begin
y:=exp(ln(abs(x))/n);
If x<0 then
y:=-y;
End;
Примечание. Записанную выше программу вычисления корня можно использовать для любого целого положительного показателя степени. При этом для четного показателя гарантируется значение y = 0, если аргумент x достаточно малое число.
4. Сравнение вещественных чисел.
Целочисленные переменные определяют в программе, как правило, объекты, которые по своему физическому содержанию могут иметь только целые значения (например, количество элементов в массиве, порядковый номер элемента и т.п.). Значения таких переменных имеют точное представление на машинном уровне, операции отношения для них всегда выполняются корректно.
Вещественные переменные, как правило, отображают в программе параметры измеряемых объектов (длина, площадь, масса, интервал времени и т.п.). Поскольку измерения всегда выполняются с определенной погрешностью, то значения вещественных переменных в общем случае считаются приближенными. Машинное изображение вещественных переменных также является приближенным, его точность определяется количеством разрядов в мантиссе, что в большинстве случаев ведет к округлению значения такой переменной. Например, десятичное число 0.9 в двоичной системесчисления- это бесконечная дробь 0.1111001100110011… = 0.11(1100). В этом случае машинное изображение числа в формате real равно исходному значению лишь с точностью последнего разряда мантиссы.
Непосредственное сравнение вещественных переменных в большинстве случаев является некорректным. Предположим для примера, что массы идвух грузов измерены с точностью 0.1кг. Если эти массы равны, то в программе нужно выполнить оператор, в противном случае - оператор. Тогда имеем:
Var P1,P2: real;
...................
If P1=P2 then S1 else S2;
Если = 110.301, а= 110.302, результат работы программы будет неверным. Очевидно, в этом случаеинужно считать равными, если они отличаются между собою не более чем на 0.1.
В общем случае сравнение вещественных переменных следует выполнять по отношению к малому числу , которое отображаетпогрешностьпредставления таких переменных. В частности, сравнение с нулевым значением наглядно иллюстрируется на числовой оси:
x< 0x= 0x> 0
-0
Следовательно, x= 0, еслиabs(x);x> 0, еслиx >;x< 0, еслиx<-.
Аналогично вместо сравнения a > b следует анализировать отношение a - b >0.