№2 Этапы выплнеия программы
.rtfЛАБОРАТОРНАЯ РАБОТЫ № 2
Этапы выполнения программы в интегрированное среде ТП 7.0.
Цель работы : Приобрести навыки использования арифметических типов данных. Создания простейших программ на языке Паскаль
Литература : В.П. Попов 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))
Для вычисления степенной функции используется следующая формула:xy=eyln(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<X ) ПРИ A=1; C=3; X=0
С заданными значениями переменных, входящих в логическое выражение, оно принимает вид
( 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<X ) =
( 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) cos2x2; 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<B)and(X+A<B)or(C<M)or E при a=15.5;b=8.2;c=-10.6;m=0;x=7;e=true/
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 мин.деления.