Лабораторная работа №1
Тема: Вычисления математических функций с помощью языка “Паскаль”.
Цель: Научится работать на языке программирования “Паскале”.
Теоретические сведения
Program – с этого ключевого слова начинается прога. После пишется название.
Var – Ключевое слово, открывающее раздел описания переменных.
Real – вещественный тип переменной с плавающей запятой
(6 байт).
Shortint – целый тип переменной с отрицательными и положительными значениями
(1 байт).
Begin – с этой команды начинается тело проги.
End – этой командой завершается последовательность операторов.
Write – команда вывод информации на дисплее.
Read – команда запись в переменную вводимой информации.
If – команда Если.
Then – команда То.
Else – команда Иначе.
Синтаксис If:If условие Then операции 1 Else операции 2.
; – этот символ означает конец команды или оператора
. – Этот символ ставят в конце проги.
:= – оператор присваивания.
+ – оператор суммы.
- – оператор разности.
* – оператор произведение.
/ – оператор частного.
аргумент1 Dir аргумент2 – оператор деления нацело.
аргумент1 Mod аргумент2 – оператор десятичного остатка от деления со знаком 1ого аргумента.
аргумент1 Rem аргумент2 – оператор десятичного остатка от деления со знаком 2ого аргумента.
Abs(аргумент) – оператор математической функции модуль.
Exp(аргумент) – оператор математической функции возведения экспоненты в степень.
Ln(аргумент) – оператор математической функции натурального логарифма.
Sqr(аргумент) – оператор математической функции возведения в квадрат.
Sqrt(аргумент) – оператор математической функции квадратного корня.
Sin(аргумент) – оператор математической функции синуса.
Cos(аргумент) – оператор математической функции косинуса.
Arctan(аргумент) – оператор математической функции арктангенса.
Int(аргумент) – оператор выделения целой части.
Tranc(аргумент) – оператор отсечения целой части.
Frac(аргумент) – оператор выделения дробной части.
Round(аргумент) – оператор округления до целых.
>– логический оператор больше.
< – логический оператор меньше.
= – логический оператор равно.
<= – логический оператор больше или равно.
>= – логический оператор меньше или равно.
<> – логический оператор не равно.
Not – логический оператор отрицание.
And – логический оператор пересечение.
Or – логический оператор объединение.
Xor – логический оператор исключение.
Программа
Program first_primer_XandZ;
Var X,Z,Y:real;A:shortint;
Begin
Write(' X= ');
Readln(X);
Write(' Z= ');
Readln(Z);
If X<0then write(' X may be bigger than 0')else Begin
If sin(X)<>0then Begin
If sin(X)>0then A:=1 else A:=-1;
Y:=A*exp(1/3*ln(sqr(sin(X))));End;
If X<>0then Y:=Y+sqrt(arctan(exp(3*ln(X))));
If Z<>X then Begin
If X>Z then A:=1 else A:=-1;
Y:=Y+A*exp(5*ln(A*(X-Z)))/(cos(sqrt(sqr(Z)+19)));End;
Writeln(' Y=',Y);
Writeln(' The whole part: ',int(Y):12:0);
Writeln(' The fraction part: ',frac(Y):0:12);
Write(' The express number: ');
If abs(Y)<sqr(46250)then Write(round(Y):10)else
Begin If frac(Y)>0.5 then Y:=Y+1;
Write(int(Y):12:0);End;End;
Readln;
End.
Работапрограммы
1. Запустить “Паскаль”.
2. Загрузить прогу “ first_primer_XandZ ” нажав F3 и выбрав прогу с именем “X_AND_Z.pas ”.
3. Запустить программу на выполнение, нажав Ctrl + F9.
4.1. Когда появится строка “ X= ”, то наберите X.
4.2. Когда появится строка “ Z= ”, то наберите Z.
5. Если X<0, то появится сообщение “X may be bigger than 0”
6. В остальных случаях на экране появится итог вычисления данной формулы в виде числа Y, его целой части, его дробной части и его округлённого значения.
7. После просмотра итогов работы проги, чтобы выйти надо нажать клавишу “Enter”.
Вычисления
X |
Z |
Результат |
-13 |
5 |
X may be bigger than 0 |
0 |
45 |
-5.4948582637E+08 |
0 |
-5 |
3.3267661314E+03 |
23 |
-18 |
1.2243461378E+08 |
14 |
14 |
2.2468971353E+00 |
93567 |
13254 |
-3.5961956675E+24 |
Вывод
В связи с тем, что при написании программы я наиболее широко использовал все доступные функции языка программирования “Паскаль”, то программа работает без всяких ограничений, кроме ограничения типом real и условием примера. Во-первых, я учёл, что корень из arctan(x^3) при отрицательных значениях аргумента X не извлекается. Во-вторых, т. к. в “Паскале” нет оператора возведения аргумента в произвольную степень, то пришлось использовать оператор Exp(аргумент) где аргументом была степень, умноженная на Ln(аргумент). Из-за того, что Ln можно извлечь только из не отрицательного числа, то при условии равенства аргумента нулю операция возведения в степень пропускалась, а при отрицательном значении я возводил аргумент в квадрат и степень понижал вдвое, или умножал аргумент на -1, а затем умножал полученный результат на -1. Для этого мне понадобилась 4ая переменная тип Shortint.В-третьих, при выводе результатов пришлось учесть, что оператор Round(аргумент) работает с числами, не превышающие 2,14*109. Если аргумент превышал ограничения, то при выполнение условия, что дробная часть аргумента >0.5 я к аргументу +1, а затем использовал вместо Round(аргумент) оператор Int(аргумент). Для удобства просмотра результатов в конце программы стоит пустой ввод и пока не будет нажата клавиша ”Enter” результаты ни куда не исчезнут.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.