ЛАБОРАТОРНАЯ РАБОТЫ № 2
Арифметические и логические операции и выражения
Цель работы : Приобрести навыки использования арифметических типов данных. Создания простейших программ на языке Паскаль
Литература : В.П. Попов TURBO PASСAL .для школьников. Версия 7.0.
Краткие теоретические сведения:
Целые(Integer, Byte, Word, Shortint, Longint) записываются в обычной форме целого числа со знаком или без знака , например 25, -24712,376
(Real, Singl,Double,Expended)Вещественные числа с фиксированной точкой записываются в обычной форме десятичного числа с дробной частью. Разделитель целой и дробной части –точка, например : 56.346, 0.000055,-3456.00
Вещественные с плавающей точкой имеют форму: <мантисса>E<порядок>, здесь мантисса-целое или вещественное число с фиксированной точкой, порядок – целое число со знаком или без, например 7Е-2(7*10-2), 12.25Е6(12,25*106),1Е-25( 10-25)
Символьная константа( Char)-любой символ алфавита, заключенный в апострофы, например 'W', '!', '9'.
Логическая константа(Boolean)- одно из двух слов : true, false.
Строковая константа(String)- строка символов, заключенная в апострофы, например 'Turbo Pascal', 'Ответ: ', '35-45-79', 'Введите исходные данные: ', 'Сумма чисел А+В равна'. Максимальная длина -255 символов.
Арифметические операции с целыми числами :DIV -Целое часть от деления целого числа на целое число (Данная операция еще называется делением нацело, т.к. округляет результат деления путем отбрасывания дробной части); MOD-Остаток от деления целого числа на целое число. Например: 4 div 2=2, 5 div 2 = 2, 4 mod 2 = 0, 5 mod 2=1, 4 mod 10 = 4,4 div 10=0.
Математические стандартные функции
Обращение
|
Тип аргумента
|
Тип результата
|
Функция
|
Пример
|
PI
|
|
R
|
Число π=3.1415926536Е+00
|
A:=pi;
|
ABS(X)
|
I,R
|
I,R
|
Модуль аргумента Х
|
abs(-4)=4
|
ARCTAN(X)
|
I,R
|
R
|
Арктангенс Х(радианы)
|
|
COS(X)
|
I,R
|
R
|
Косинус Х (х в радианах)
|
|
EXP(X)
|
I,R
|
R
|
ех-экспонента
|
|
FRAC(X)
|
I,R
|
R
|
Дробная часть х
|
Frac(6.9)=0.90
|
INT(X)
|
I,R
|
R
|
Целая часть х
|
Int(6.9)=6.00
|
LN(X)
|
I,R
|
R
|
Натуральный логарифм Х
|
|
RANDOM
|
|
R
|
Случайное число в интервале [0..1]
|
A:=random;
Write(a);{выйдет цифра 0.3}
|
RANDOM(X)
|
I
|
I
|
Случайное число в интервале [0..x-1]
|
|
ROUND(X)
|
R
|
I
|
Округление до ближайшего целого
|
|
SIN(X)
|
I,R
|
R
|
Синус Х(ч в радианах)
|
|
SQR(X)
|
I,R
|
I,R
|
Квадрат Х
|
|
SQRT(X)
|
I,R
|
R
|
Корень квадратный из Х
|
|
TRUC(X)
|
R
|
I
|
Ближайшее целое, не превышающее Х по модулю
|
Trunc(6.9)=7
Trunc(6.4)=6
|
Пример: запишем по правилам Паскаля математическое выражение
На Паскале (2*a+Sqrt(0.5*Sin(x+y)))/(0.2*C-Ln(x-y))
На Паскале(1+y)*(2*x+sqrt(y)-(x+y))/(y+1/sqr(x)-4))
Для вычисления степенной функции используется следующая формула:x
y=e
yln(x) На Паскале Exp(y*Ln(x)).
Например это выражение на Паскале Exp(1/3*Ln(a+1))
Таблица истинности логических операций
A
|
B
|
NOT A
|
A or B
|
A and B
|
TRUE
|
TRUE
|
FALSE
|
TRUE
|
TRUE
|
TRUE
|
FALSE
|
FALSE
|
TRUE
|
FALSE
|
FALSE
|
TRUE
|
TRUE
|
TRUE
|
FALSE
|
FALSE
|
FALSE
|
TRUE
|
FALSE
|
FALSE
|
Приоритет выполнения операций по старшинству:
При наличии скобок сначала выполняются действия в скобках.
1)арифметические операции: *,/,+,-
2)операции отношений: >,<,<>,=,<=,>=
3)логические операции : NOT, AND, OR,XOR.
Пример 1:
Определить результат логического выражения:
( A>3) AND ( C=5 ) OR NOT(A+C
С заданными значениями переменных, входящих в логическое выражение, оно принимает вид
( 1>3 )
and ( 3=5)
or not(1+3<0)
Сначала, согласно приоритету, вычислим значение неравенства в скобках:
(False)
and ( False )
or not( False)
Затем вычислим логические операции по строгому порядку
NOT, AND, OR , XOR.
NOT (False) равно True
( False) AND (False) равно False
( False- результат 2-го действия) OR ( True- результат 1-го действия) равно True
Ответ:
( A>3) AND ( C=5 ) OR NOT(A+C =
( 1>3 )
and ( 3=5)
or not(1+3<0) =
(False)
and ( False )
or not( False) = TRUE
Порядок выполнения работы:
Включить ПЭВМ
Загрузить интегрированную среду TURBO PASCAL
Перейти в окно редактирования и создать текст программы:
Записать созданный текст программы в файл на диске.
-
Провести компиляцию программы. Если в процессе компиляции обнаружена ошибка, ее необходимо исправить. Сохранить откорректированный файл на диске и провести компиляцию снова
Выполнить программу. Правильные результаты представить преподавателю и переписать в отчет .
Выйти из среды TURBO PASCAL .
Содержание отчета:
Цель работы
Задание к лабораторной работе
Блок-схема алгоритма решения задачи
Текст программы на языке Паскаль.
Запись команд сеанса работы.
Результаты расчетов.
Ответы на контрольные вопросы
Вывод по результатам проделанной работы
Контрольные вопросы:
Для чего используется указание типа данных величины?
Как описывается тип величины в языке Паскаль?
Какие типы относятся к скалярным типам?
-
Охарактеризуйте целочисленные типы данных: какие они могут принимать значения, в каких операциях могут принимать участие, сколько места занимают в памяти?
Чем отличаются вещественные числа от целых?
Задание к лабораторной работе
1.Записать математические формулы:
а) (p+q)/ (r+s)-p*q / (r*s);
b) 1E3+beta/(x-gamma*delta);
c) a/b*(c+d)-(a-b)/ b / c+1E-8;
d) Exp(1/ 30*Ln(70/ 96))
2.Записать выражение на языке Паскаль:
a) (1+x)
2 ;
b)[(ax-b)x+c]x-d;
c) cos
2x
2; d)
d) e) f) g)
3. Составить блок-схему и постановку задачи по следующим программам. Перечислить служебные слова
Program benzin;
Var Rast:real;{расстояние до дачи}
Rash:real;{расход бензина на 100 км пути}
Cena:real;{цена одного литра бензина}
Sum:real;{стоимость поездки на дачу и обратно}
Begin
Writeln(‘Вычисление стоимости поездки ’);
Write(‘Расстояние до дачи (км)’);Readln(rast);
Write(‘Расход бензина (л на 100 км’);readln(rash);
Write(‘Цена литра бензина’);readln(cena);
Sum:=2*rast/100/*rash*cena;
Writeln(‘Поездка обойдется в’,sum:6:2,’руб.’);
End.
|
Program clock;
Var min:integer;{интервал в минутах}
H:integer;{количество часов}
m:integer;{количество минут}
Begin
Writeln(‘Введите величину врем-ого интерв.мин’);
Readln(min);
H:=min div 60;m:=min mod 60;
Writeln;
Writeln(min,’ мин.- это’, h ,’час.’, m ,’мин.’);
Readln;
End.
|
4.1.Вычислить значения логических выражений при заданных значениях переменных:
a) (x>0) and ( y=3) or (x+y>5) and (x-y<0) при x=5; y=15
b) (a<0) and(b<0) and(c<0) при a=5;b=-3;c=-25.3;
c) (x>2)or(y<3)or(z=y)and(x+y+z>0) при x=12;y=-20;z=0
d) (x>0)and(y>0)or(x<0)and(y<0) при x=-2; y=9;
e) (x*x+y*y<49)and(x*x+y*y>1) при x=3;y=4
f) (A
4.2 Зимние каникулы начинаются 29 декабря и заканчиваются 12 января . Напишите условие , когда проводятся каникулы, для обозначения номера месяца использовать M, для номера дня D.
4.3. Напишите условие не превышения значения переменной J числа -30
4.4. Напишите условие одновременного превышения значений переменных А и В, значения С
4.5. Напишите условия принадлежности значений переменной В диапазону чисел от L до M .
Задачи для самостоятельного выполнения:
Ввести с клавиатуры 2 целых числа m. n>0. Если m делится на n или n делится на m, то вывести 1, в противном случае - любое другое число.
Ввести с клавиатуры 2 целых числа m, n>0. Если n<=m, то вывести 1, в противном случае - любое другое число.
Если в четырехзначном числе, введенном с клавиатуры, есть одинаковые цифры, то вывести 1, в противном случае- любое другое число.
Часовая стрелка образует угол alf с лучом, проходящим через центр и через точку, соответствующей 12 часам на циферблате, 0<=alf <= 360. Ввести с клавиатуры значение alf и определить значение угла для минутной стрелки, а также количество часов и полных минут. Указание: на 360/12=30 градусов поворачивается часовая стрелка, передвигаясь между соседними цифрами. За это время минутная стрелка проходит целый круг, т.е. 60 минут .360/60=6 градусов –одно минутное деление. При 1 градусе часовой стрелки, минутная проходит 2 мин.деления.