Вычисление арифметических выражений на языке Turbo Pascal 7.0

Страницы работы

Содержание работы

Балтийский Государственный

Технический Университет

«ВоенМех»

имени Д.Ф. Устинова

Отчет

По лабораторной работе по информатике №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), в которых использовались эти функции. Произведенные тесты этих программ позволяют сделать вывод об их правильности. Особенностью написания программ на компьютере является отсутствие информации о вводимых значениях. То есть мы не можем сказать, какое число пользователь захочет ввести, поэтому обязательным условием правильности программы является проверка вводимых пользователем данных на корректность.

Похожие материалы

Информация о работе