2808

Выражения как комбинация операндов и операций

Лекция

Информатика, кибернетика и программирование

Лекция 6 Выражения Выражение – это комбинация операндов и операций, задающая порядок вычисления некоторого значения и принимающая это значение. Операции – это инструкции, определяющие действия над операндами. В качестве операнда могут выст...

Русский

2012-10-19

30 KB

4 чел.

Лекция 6

Выражения

Выражение – это комбинация операндов и операций, задающая порядок вычисления некоторого значения и принимающая это значение. Операции – это инструкции, определяющие действия над операндами. В качестве операнда могут выступать:

  •  идентификатор – тип определяется объявлением идентификатора, значение идентификатора определяется типом (для целых и вещественных переменных – значение этого типа; для переменных перечислимого типа – значение одной из констант из соответствующего этому перечислению списка, тип значения - int; для структуры или объединения – совокупность всех значений структуры или объединения; для указателя – адрес некоторого объекта; для массива – массив значений специфицированного в его объявлении типа, либо константный адрес первого элемента массива; для функции – константный адрес точки входа в функцию и список её аргументов, которая возвращает значение определённого типа);
  •  константа – целочисленное значение, вещественное значение, символ (в выражениях всегда имеет тип int, значение – код символа) или строка (в выражении – константный адрес первого элемента строки);
  •  другое выражение.

Чтобы значение выражения было определено, значения всех операндов в выражении должны быть определены.

Скобочные выражения.

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

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

Пример 1.

Компилятор может вычислить выражение a*b/c для целочисленных операндов различными способами. Существует операция «унарный плюс», применение которой гарантирует, что сначала будут вычислены операции в скобках.

Для целочисленных a=30, b=4, c=3 возможные порядки вычислений:

(a*b)/c=(120)/3=40

(a*b)/c=30*(1)=30

(a*b)/c=4*(10)=40

+(a*b)/c=(30*4)/3=40

Константное выражение – это выражение, результатом которого является константа и которое вычисляется на этапе трансляции программы, то есть до её выполнения. Следовательно, операндами константного выражения могут быть только константы.

Пример 2

#define MAXLINE 1000

char line[MAXLINE+1];

int seconds = 60 * 60 ;

Неявное преобразование типов при вычислении выражений.

В выражениях языка C возможно смешение переменных разного типа. При этом происходит преобразование типов, то есть приведение переменной одного типа к другому типу. Это может происходить явно (операция преобразования типа задаётся программистом) и неявно (преобразование типа производится в процессе выполнения программы самой программой). При неявном преобразовании типа все операнды выражения преобразуются к типу операнда, имеющему максимальный диапазон значений.

char

unsigned char

short int

unsigned short int

int                                      Повышение диапазона значений

unsigned int

long int

unsigned long int

float

double

long double

В языке C действуют следующие правила преобразования:

  •  операнды типа float преобразуются к типу double;
  •  если один операнд имеет тип long double, то второй преобразуется к типу long double;
  •  если один операнд имеет тип double, то второй преобразуется к типу double;
  •  любые операнды типа char или short преобразуются к типу int;
  •  любые операнды типа unsigned char или unsigned short преобразуются к типу unsigned int;
  •  если один операнд имеет тип unsigned long, то второй преобразуется к типу unsigned long;
  •  если один операнд имеет тип long, то второй преобразуется к типу long;
  •  если один операнд имеет тип unsigned int, то второй преобразуется к типу unsigned int.

В операции присваивания конечный результат приводится к типу переменной в левой части операции присваивания, при этом диапазон значений может как повышаться, так и понижаться. Если идёт понижение диапазона значений, то результат может искажаться из-за того, что исходное число не помещается в новый диапазон, причём характер искажения зависит от соотношения диапазонов значений обоих операндов (например, при преобразовании вещественного числа к целому теряется дробная часть).

Операция явного преобразования типа будет рассмотрена позднее.


 

А также другие работы, которые могут Вас заинтересовать

24466. Понятие мышления, его виды. Фазы мыслительного процесса и мыслительные операции 70.5 KB
  Мышление это социально обусловленный неразрывно связанный с речью психический процесс поисков и открытия существенно нового процесс опосредованного и обобщенного отражения действительности в ходе ее анализа и синтеза. Мышление возникает на основе практической деятельности из чувственного познания и далеко выходит за его пределы. Мышление является базовым компонентом интеллекта. 1 Наиболее распространена среди них классификация рассматривающая такие разновидности мыслительной деятельности как нагляднодейственное нагляднообразное и...
24467. Речь и язык. Виды речи и ее функции 31 KB
  Речь и язык. Речь исторически сложившаяся форма общения людей посредством языковых конструкций создаваемых на основе определенных правил. Речь включает процессы порождения и восприятия сообщений для целей общения передачи информации или для целей регуляции и контроля собственной деятельности. Речь имеет полифункциональный характер.
24468. Эмоции и их функции. Психологические теории эмоций 32 KB
  Психологические теории эмоций. Эмоции выполняют следующие функции: Сигнальная функция эмоций выражается в том что переживания возникают и изменяются в связи с происходящими изменениями в окружающей среде или в организме человека. Регулирующая функция эмоций выражается в том что стойкие переживания направляют поведение человека поддерживают его заставляют преодолевать встречающиеся на пути преграды или мешают протеканию деятельности блокируют ее. Дифференцирующая и синтезирующая функция эмоций проявляется в таких феноменах как...
24469. Классификация эмоций. Эмоции и чувства 29.5 KB
  Эмоции и чувства. Виды эмоциональных явлений: эмоциональные реакции настроение аффект чувства эмоциональный стресс. Чувства еще более чем эмоции устойчивые психические состояния имеющие четко выраженный предметный характер: они выражают устойчивое отношение к какимлибо объектам реальным или воображаемым. Эмоции и чувства.
24470. Психические состояния их классификация 45 KB
  Психические состояния их классификация. Психическое состояние это целостная характеристика психической деятельности за определенный период времени показывающая своеобразие протекания психических процессов в зависимости от отражаемых предметов и явлений действительности предшествующего состояния и психических свойств личности. По параметру динамичности лабильности временной протяжённости состояния занимают промежуточное значение между процессами и свойствами. Функции психических состояний: Регулятивная состояния позволяют адаптироваться...
24471. Интеллект и креативность 45 KB
  intellectus понимание познание способность к осуществлению процесса познания и к эффективному решению проблем в частности при овладении новым кругом жизненных задач. Он выделил семь таких потенций: 1 счетную способность т. способность оперировать числами и выполнять арифметические действия; 2 вербальную словесную гибкость т. способность понимать устную и письменную речь; 4 пространственную ориентацию или способность представлять себе различные предметы и формы в пространстве; 5 память; 6 способность к рассуждению; 7...
24472. Темперамент: его свойства и типология 46.5 KB
  Тип темперамента тесно связан с врожденными анатомофизиологическими особенностями высшей нервной деятельности. К свойствам темперамента можно отнести те отличительные индивидуальные признаки человека которые определяют собой динамические аспекты всех его видов деятельности характеризуют особенности протекания психических процессов имеют более или менее устойчивый характер сохраняются в течение длительного времени проявляясь вскоре после рождения. Небылицин выделяет три ведущих свойства темперамента относящихся к сферам общей активности...
24473. Характер: его формирование и детерминанты 53 KB
  Последний представляет собой динамическую сторону характера. В состав характера человека входят следующие свойства личности: Свойства личности которые определяют поступки человека в выборе целей деятельности. Черты которые относятся к действиям направленным на достижение поставленных целей: настойчивость целеустремленность последовательность и другие а также альтернативные им как свидетельство отсутствия характера. Формирование характера и его детерминанты.
24474. Задатки, способности, одаренность 41.5 KB
  Способности индивидуальнопсихологические особенности личности являющиеся условием успешного выполнения той или иной деятельности. Теплова способности это индивидуальнопсихологические особенности отличающие одного человека от другого и имеющие отношение к успешности выполнения деятельности. Теплов считает индивидуальное своеобразие продуктивной деятельности оригинальность и самобытность приемов используемых в деятельности. 2 Способности служат успешному выполнению деятельности.