Арифметические выражения




ЛАБОРАТОРНАЯ РАБОТА N1

Тема: "Стандартные типы данных и выражения"

Цель работы

Ознакомиться со стандартными типами данных и выражениями языка Паскаль.

Краткие сведения из теории

Стандартные типы данных

Тип данных определяет возможные значения констант, переменных, функций, выражений, принадлежащих к этому типу, форму представления в ЭВМ и операции, которые могут выполняться над ними.

Все типы данных делятся на простые и сложные.

Простые типы - это стандартные и переменные типы данных.

Переменные типы - это ограниченные, перечислимые, регулярные, строковые, структурные и ссылочные.

Сложные типы - это типы данных, которые задаются в разделе типов и строятся на базе простых.

В настоящей работе будут рассмотрены только стандартные типы.

Стандартными являются целый со знаком INTEGER, целые без знака BYTE и WORD, действительный REAL, логический BOOLEAN и символьный CHAR.

Данные представляются в программе в виде констант и переменных. При выполнении программы в каждый момент времени любая переменная имеет некоторое значение (константу). Это значение и переменная должны относиться к одному типу данных.

Данные целого типа со знаком

Константа целого типа (целая константа) - это последовательность цифр со знаком ('+', '-')или без него.

Примеры констант целого типа: -324,16, 0, +9352, 1024.

Диапазон целых чисел зависит от конкретного типа ЭВМ. Для 16-разрядногопроцессора диапазон изменяется в пределах от-32768до +32767.

Переменные, принимающие в качестве своих значений константы целого типа, относятся к целому типу (тип INTEGER).

Над данными целого типа можно выполнять следующие арифметические операции, которые дают целый результат:

+сложение;

- вычитание;

*умножение;

DIV деление с отбрасыванием дробной части;
MOD получение целого остатка при делении целого данного на целое.
Пример: A, B, N - переменные целого типа, принимающие значения A = 25, B = 2, N = -
17. В этом случае допустимы следующие операции:
  операция результат
  A + 51  
  B - A -23
  B * N -34
  A DIV B  
  A MOD B  

Данные целого типа без знака

Данные целого типа без знака предоставляет Турбо-Паскаль.К ним относятся числа без знака длиной в один или два байта. Им соответствуют типы BYTE и WORD. Диапазон представления данных типа BYTE изменяется от 0 до 255, а данных типа WORD - от 0 до 65535. Над данными указанных типов можно выполнять те же операции, что и над данными типа INTEGER.

Данные типа BYTE и WORD удобно использовать для индексации массивов, а также в тех случаях, когда переменные принимают только положительные значения.

Данные действительного типа

Константы действительного типа могут быть представлены в двух формах: с фиксированной точкой и плавающей точкой.

Константы с фиксированной точкой изображаются десятичным числом с дробной частью, которая может быть и нулевой. Дробная часть отделяется от целой с помощью точки. Примеры констант действительного типа с фиксированной точкой: 35.62; -12.005;55.0.

Константами с плавающей точкой являются числа, представленные с десятичным порядком. Они имеют вид:

± mE± p, где        
m - мантисса,      
E - признак записи числа с десятичным порядком,    
p - порядок числа.      
Для записи мантиссы m могут использоваться целые числа и действительные числа с
фиксированной точкой. В качестве p могут использоваться только целые числа.  
Примеры записи чисел с плавающей точкой:    
математическая запись запись на языке Паскаль    
2 * 10n, где n = -4 2E-4    
0,32 * 10n, где n = 4 0.32E+4    
-12,75* 10n, где n = 11 -12.75E11    
Примеры записи действительного числа 253 с плавающей точкой: 0.253E+3, 2.53E+2,

25.3E+1, 253.0E0, 2530E-1,25300E-2и т.д.

Переменные действительного типа REAL - это переменные, которые в качестве значений принимают числа с фиксированной или плавающей точкой.

Над данными действительного типа можно выполнять следующие операции, дающие действительный результат:

+сложение;

-вычитание;

* умножение;

/деление.

Данные целого и действительного типа называют арифметическими данными.

Диапазон представления чисел действительного типа изменяется от 10-n до 10n (n = 38). Для различных процессоров отличие в представлении действительных чисел состоит в количестве значащих цифр мантиссы; при работе с16-разряднымпроцессором - это 11 неполных шестнадцатеричных цифры (± 7FFFFFFFFFF).

Данные логического типа

В языке Паскаль имеются две логические константы: TRUE (истина), FALSE (ложь). Логическая переменная принимает одно из этих значений и имеет тип BOOLEAN.

Над данными логического типа выполняются следующие операции: OR логическое сложение (или);

AND логическое умножение (и); NOT логическое отрицание (не).

Логические операции OR и AND являются бинарными и выполняются над двумя величинами, операция NOT - над одной величиной и является унарной операцией. Логический тип определяется таким образом, что FALSE < TRUE.

Результатом любой логической операции является логическая переменная со значением

FALSE или TRUE.

Втаблице 1 приведены результаты операций над логическими данными.

Таблица 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
         

Примечание: каждая логическая операция имеет свой ранг старшинства. Самой старшей является операция отрицания. Далее в порядке убывания старшинства следуют умножение и сложение.

Данные символьного типа

Символьная, или литерная, константа - это любой символ языка, заключенный в апострофы. Примеры символьных констант: 'B', ';', '+', '5'.

Символьная константа занимает один байт памяти.

Примечание. Чтобы представить апостроф как символьную константу его повторяют дважды: ''. Внешние апострофы (по одному слева и справа) не входят в константу, они являются признаком символьной константы.

Символьная переменная типа CHAR - это переменная, принимающая значение символьной константы. Все символы языка Паскаль упорядочены, т.е. каждый символ имеет свой порядковый номер. Это позволяет применять к символьным данным операции сравнения: <, >, =, <>, >=, <=. Например, результат операции сравнения 'A' < 'B' будет истинным, так как сравниваются их порядковые номера, а они равны 66 и 67 соответственно.

Данные строкового типа

В Турбо-Паскале допускается использование последовательности символов, заключенной в апострофы, длиной не более 256 символов. Например: 'Sigma', 'Alfa', 'Группа623-1a'и т.д. Такие последовательности относятся к строковым типам данных. Более подробно строковые данные рассмотрены в лабораторной работе N 8.

Выражения

В любом языке программирования определены два типа выражений: арифметические и логические.

В состав выражения могут входить константы, переменные, стандартные функции, объединенные круглыми скобками и знаками операций. Константы, входящие в выражение, могут быть объявлены либо в разделе CONST, либо непосредственно в самом выражении. Переменные должны иметь уникальное имя, называемое идентификатором, и описываются в разделе VAR. Идентификаторы могут содержать до 16 символов, причем первый символ должен быть либо буквой, либо символом "_" (подчеркивание). В идентификаторах разрешается использовать как строчные, так и прописные буквы латинского алфавита, цифры и специальные символы.

Стандартные функции

При записи стандартных функций следует учитывать следующие правила:

1)имя функции записывается буквами латинского алфавита;

2)аргумент (параметр) функции записывается в круглых скобках после имени функции;

3)аргументом функции может быть константа, переменная или арифметическое выражение.

В таблице 2 приведены основные стандартные функции.

        Таблица 2
           
  Функция Назначение Тип Тип  
      аргумента функции  
           
  ABS(x) Вычисление абсолютного значения х REAL REAL  
  INTEGER INTEGER  
       
  SQR(x) Вычисление квадрата х (х*х) REAL REAL  
  INTEGER INTEGER  
       
  SIN(x) Вычисление синуса х REAL REAL  
  INTEGER REAL  
           
  COS(x) Вычисление косинуса х REAL REAL  
  INTEGER REAL  
           
  ARCTAN(x) Вычисление арктангенса х REAL REAL  
  INTEGER REAL  
           
  EXP(x) Вычисление экспоненты REAL REAL  
  INTEGER REAL  
           
  EXP10(x) 10n, где n=х   REAL REAL  
          INTEGER REAL  
  LN(x) ln x     REAL REAL  
      INTEGER REAL  
           
  LOG(x) log x     REAL REAL  
      INTEGER REAL  
           
  SQRT(x) Вычисление квадратного корня из х REAL REAL  
  INTEGER REAL  
           
  TRUNC(x) Определение целой части от х REAL INTEGER  
  INTEGER INTEGER  
           
  ROUND(x) Округление х в сторону ближайшего REAL NTEGER  
  целого     INTEGER INTEGER  
         
  ODD(x) TRUE, если x - нечетное INTEGER BOOLEAN  
  FALSE, если х - четное  
         
  SUCC(x) а) х+1     INTEGER INTEGER  
  б) следующий символ после х в  
  CHAR CHAR  
    упорядоченном множестве символов      
    а) х-1     INTEGER INTEGER  
  PRED(x) б) предыдущий по отношению к х  
  символ в упорядоченном множестве CHAR CHAR  
     
    символов          
  ORD(S порядковый номер символа S в CHAR INTEGER  
    упорядоченном множестве символов      
  CHR(I) определяет символ, стоящий под INTEGER CHAR  
  номером I в упорядоченном множестве  
    символов          
В данной таблице не приведены стандартные функции работы со строковыми данными.
Они рассмотрены в лабораторной работе N 8.      
Примеры использования стандартных функций:      
1) X = 21.53 TRUNC(X) = 21 ROUND(X) = 22      
2) X = -2.7 TRUNC(X) = -2 ROUND(X) = -3      
3) ORD('5') = 53   ORD('5') = 58      
4) CHR(66) = 'B',   CHR(57) = '9'      
5) PRED('B') = 'A' PRED(100)= 99      
6) SUCC('C') = 'D' SUCC(12) = 13      
Примечания:            
                   

1.В Паскале нет операции возведения в степень. При необходимости вычисления аn, n = х, используют имеющиеся стандартные функции, например: an = Exp(n * Ln(A)).

2.Из таблицы стандартных функций следует справедливость равенств:

PRED(S) = CHAR(ORD(S) - 1) CHR(ORD(S)) = S
SUCC(S) = CHAR(ORD(S) + 1) ORD(CHR(I)) = I

3. Значения FALSE и TRUE можно рассматривать как упорядоченное множество, состоящее из двух элементов. При этом определены следующие значения стандартных функций:

ORD(FALSE) = 0 SUCC(FALSE) = TRUE

ORD(TRUE) = 1 PRED(TRUE) = FALSE.

Арифметические выражения

Арифметическое выражение представляет собой совокупность одного или нескольких арифметических констант, переменных, функций, соединенных знаками арифметических операций и круглыми скобками.

Следовательно, константа, переменная, функция являются частными случаями арифметического выражения.

При записи выражений необходимо выполнять следующие правила:

1.Все составные части выражения записываются в одну строку. Поднимать и опускать символы над строкой не разрешается.

2.Использовать в выражениях можно скобки только одного типа - круглые. Применение в выражениях фигурных и квадратных скобок запрещается, так как они имеют особое назначение. Число открывающихся скобок всегда должно равняться числу закрывающихся скобок.

3.Нельзя записывать последовательно два знака арифметических операций, их необходимо разделить круглой скобкой.

4.Вычисление выражений производится слева направо в соответствии со старшинством операций.

Установлен следующий в порядке убывания приоритет арифметических операций: а) умножение, деление;

б) DIV, MOD;

в) сложение, вычитание.

Необходимый порядок вычислений в выражениях задается с помощью скобок. Выражения в скобках вычисляются первыми. Если выражений в скобках несколько, и они вложены друг в друга, то вычисление начинается в самых внутренних скобках и далее последовательно переходит во внешние скобки.

Если аргумент функции задан в виде выражения, то сначала определяется значение этого выражения, а затем значение функции.

Если операции, следующие одна за другой, имеют одинаковое старшинство, то они выполняются последовательно в порядке их записи.

Логические выражения

Логические выражения строятся из логических данных, логических операций и операций отношения.

Воперациях отношения могут участвовать арифметические и логические выражения, а также символьные данные.

Результатом логического выражения является значение TRUE или FALSE.

При вычислении логических выражений принят следующий приоритет операций (по старшинству):

1) арифметические операции;

2) операции отношений;

3) логические операции.

При наличии скобок сначала выполняются действия в скобках (в первую очередь самые внутренние), а затем вне скобок.

Вкруглые скобки обязательно заключаются части выражения, стоящие слева и справа от логических операций AND и OR.

Пример. Определить результат логического выражения

(A > 3) AND (C = 5) OR NOT (A + C < X) при A = 1, C = 3, X = 0.

 

C заданными значениями переменных, входящих в логическое выражение, оно принимает вид:

(1 > 3) AND (3 = 5) OR NOT (1 + 3 < 0)

Результат вычислений в скобках: (FALSE) AND (FALSE) OR NOT (FALSE).

Логические операции выполняются в следующей последовательности NOT - AND - OR:

1)NOT (FALSE) = TRUE;

2)(FALSE) AND (FALSE) = FALSE;

3)(FALSE) OR (TRUE) = TRUE;

Результат рассмотренного логического выражения равен TRUE.

Контрольные вопросы

1.Перечислите стандартные типы данных в Паскале.

2.Укажите отличие данных действительного и целого типов.

3.Какие переменные называют логическими и какие значения они могут принимать?

4.Какие логические операции вы знаете?

5.Что представляет собой условие?

6.Что понимается под символьными данными?

7.Какие данные называют арифметическими?

8.Перечислите правила записи стандартных функций.

9.Перечислите стандартные функции, предназначенные для работы с арифметическими данными?

10.Перечислите стандартные функции, предназначенные для работы с символьными данными?

11.Что представляет собой арифметическое выражение?

12.Перечислите правила записи арифметических выражений.

13.Что представляет собой логическое выражение?

14.В чем отличие арифметического выражения от логического?

15.Каков порядок вычисления значения логического выражения?

Содержание отчета

Контрольная работа по рассмотренной теме.

Варианты индивидуальных заданий

1. Какие из приведенных ниже записей являются неправильными и почему?
  а) 7. б) -6.1 в) 0.0 г) 9      
  д).0E-2 е) 0.1E-5 ж) -5.3E4 з) +2.3E+3.5    
  и) -71 к) 0.31 л).456 м) 2,1      
2. Чему равно значение следующих функций?      
а) TRUNC(5.61)     г) TRUNC(-5.61)      
б) ROUND(17.16)   д) ROUND(17.96)      
в) ROUND(-17.16)   е) ROUND(-17.96)      
3. Какие из приведенных ниже записей функций являются неправильными и почему?
а) ODD(17.1)     г) COS(32.1)        
б) COS(5)     д) SIN(0.5)        
в) SUCC(3.2)     е) PRED(7)        
4. Какие из приведенных выражений являются правильными с точки зрения языка Паскаль?
а) 'A' < 'C'   г) '1' > '9'        
б) FALSE < TRUE д) 'A' < 'B' AND 1 < 2      
в) 'O' OR '9'   е) ('D' > 'G') AND (1 < 2)      

 

в) x +               y                                                                    
c +           x                       a   a2 − b2         a    
                                         
                                             
                      x           г) x +                          
          d +                         b           c                 b    
          z +                                            
                                                                               
                1 − x                                                    
                                                                         
        4                 0,0001       x2−y2                       cos 2x −1    
                                       
д) x   ( a − b )             e) e                       +       (       )  
                      arctg2x en         ln x   y       sin   ( 2x −1
                                                                        )  
6. Вычислить значения логических выражений при заданных значениях переменных:
а) x>0 AND y=3 OR x + y > 5 AND x-y< 0 при х = 5 и у = 15;                              
б) a<0 AND b<0 AND c<0 при а = 5, в = -3,с =-25.3;                                            
в) x > 2 OR y < 3 OR z = y AND x + y + z > 0 при х = 12, у = -20,z = 0;                
г) x > 0 AND y > 0 OR x < 0 AND y < 0 при х = -2,у = 9;                                          
д) x * x + y * y < 49 AND x * x + y * y > 1 при х = 3, у = 4;                                    
е) (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.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-05-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: