Балтийский Государственный
Технический Университет
«ВоенМех»
имени Д.Ф. Устинова
Отчет
По лабораторной работе по информатике №1
На тему
Вычисление арифметических выражений
на языке Turbo Pascal 7.0
Отчет выполнил студент
Факультета «И»
Суханов Александр
Группа И433
Санкт-Петербург 2003
Лабораторная работа по информатике №1
Тема: вычисление арифметических выражений на языке Turbo Pascal 7.0
Цель: научиться использовать стандартные процедуры и функции языка Pascal для вычисления арифметических выражений.
Вариант: первый
Исходное выражение 1:
Исходное выражение 2: x^a (x в степени a)
Исходное выражение 3: aÖx (корень a-той степени из x)
1) Листинг программы, вычисляющей выражение 1:
program lab1_1;
var a, b: real;
x,y,z: real;
k: shortint;
begin
write('Введите x: '); readln(x);
write('Введите y: '); readln(y);
write('Введите z: '); readln(z);
if (1-cos(y)*cos(y)>1e-5) then
begin
if x>0 then k:=1 else k:=-1;
if x<>0 then a:=2*cos(x-Pi/6)*exp(ln(abs(x))/3)*k/(1-cos(y)*cos(y))
else a:=0;
writeln('a=',a:10:4);
end else
writeln('Ошибка ввода переменной Y...');
if (z<>1) and (z<>0) then
begin
if z<0 then k:=-1 else k:=1;
b:=1+z*z/(3-3*k/exp(3*ln(abs(z))));
writeln('b=',b:10:4);
end else
writeln('Ошибка ввода переменной Z...');
end.
Пояснения к решению:
1) переменные: x, y, z – исходные данные (вещественного типа)
a, b – результаты вычислений (вещественного типа)
k – вспомогательная переменная, используется для изменения знака выражения принимает значения 1 и –1 (целого типа)
2) метод решения: После ввода исходных данных программа проверяет их корректность
(в данном случае проверяет отсутствие знаменателя равного 0). В случае, если данные некорректны, программа выдает сообщение об ошибке ввода соответствующей переменной. Иначе программа выдает результат вычисления на экран.
Тестовые данные к программе lab1_1:
X=0 Y=1 Z=0 :
A=0
Ошибка ввода переменной Z…
X=-1 Y=1 Z=1:
A=-1.3333
Ошибка ввода переменной Z…
X=1 Y=0 Z=12:
Ошибка ввода переменной Y
B= 49.0278
X=1 Y=1 Z=4:
A=2.5101
B=6.4180
2) Листинг программы, вычисляющей выражение 2:
program lab1_2;
var a, x: integer;
result: real;
begin
write('Введите число: '); readln(x);
write('Введите степень числа: '); readln(a);
if (a=0) and (x=0) then
begin
writeln('Error');
halt;
end
else
begin
if (a=1) or (x=1) or (x=0) then result:=x
else if (a=0) then result:=1
else
begin
result:=exp(a*ln(abs(x)));
if (x<0) and (a mod 2=1) then result:=-result;
end;
end;
writeln(result:7:4);
end.
Тестовые данные к программе lab1_2:
X=2 A=2
4.00
X=-2 A=2
4.00
X=-2 A=3
-8.00
X=1 A=12
1.00
X=0 A=1
0.00
X=4 A=-2
0.0625
3) Листинг программы, вычисляющей выражение 3:
program lab1_3;
var x, a: integer;
result: real;
begin
write('введите число: '); readln(x);
write('введите степень корня: '); readln(a);
if (a=0) or (x<0) and (a mod 2 = 0) then
begin
writeln('Error');
halt;
end
else
begin
if (x=1) or (x=0) or (a=1) then result:=x
else
begin
result:=exp(ln(abs(x))/a);
if (x<0) then result:=-result;
end;
end;
writeln(result:6:3);
end.
Тестовые данные к программе lab1_2:
X=8 A=3
2.00
X=4 A=-2
0.5
X=-8 A=2
Error
X=-8 A=3
-2.00
X=0 A=2
0.00
X=4 A=0
Error
Вывод: Я научился использовать стандартные функции языка Pascal для вычисления арифметических выражений. Для закрепления изученного материала были написаны программы (lab1_1, lab1_2, lab1_3), в которых использовались эти функции. Произведенные тесты этих программ позволяют сделать вывод об их правильности. Особенностью написания программ на компьютере является отсутствие информации о вводимых значениях. То есть мы не можем сказать, какое число пользователь захочет ввести, поэтому обязательным условием правильности программы является проверка вводимых пользователем данных на корректность.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.