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.

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

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


 

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

26296. Делопроизводственная служба 20.05 KB
  Задачи службы ДОУ: установление единого порядка работы с документами; создание условий обеспеих эффект использование компьютерных технологий при работе с докми; обеспечение сохранности документов. ведение контроля за исполнением документов информирование руководителя о состоянии исполнительской дисциплины организация изготовления документов копирования и проектирование бланков доков; разработка сводной номенклатуры дел организации обеспечение подготовки номенклатур дел структурных подразделений; организация работы архива...
26297. Организация архивного дела в РФ в 1991-2004 гг 21.09 KB
  Организация архивного дела в РФ в 19912004 гг. В 1990е гг в России была проведена Архивная реформа. В июне 1993 Основы архивного законодательства. Закрепили дальнейшую централизацию архивного дела АД Бывшие партахривы интегрированы в архивную систему бывшие архивы СССР стали принадлежать РФ объем архивного фонда увеличился в 2 раза.
26298. Организация архивного дела в РФ в 2000-е годы 17.95 KB
  На Росохранкультуру и ее территориальную сеть возложены: государственный контроль за вывозом из Российской Федерации и ввозом на ее территорию культурных ценностей и обеспечение экспертизы культурных ценностей соблюдение законодательства Российской Федерации в сфере архивного дела выдача лицензий разрешений на право деятельности по реставрации объектов культурного наследия памятников истории и культуры; оказание содействия законным собственникам в восстановлении их прав на культурные ценности при их незаконных вывозе и ввозе а также...
26299. Взаимоотношения органов управления архивным делом и госархивов с архивами организаций 46.5 KB
  Архив организации это структурное подразделение организации осуществляющее прием и хранение архивных документов учет и их использование. Все это отразилось на состоянии организации ведомственного хранения документов. Перед архивистами стояли задачи: разработки и обоснования критериев определения источников комплектования уточнение профильности установление состава документов архивов. Новый критерий источников комплектования форма собственности с государственными: на основе законодательства об архивном деле на основе...
26300. Использование документов АФ РФ и других архивных документов в архиве 30.29 KB
  Использование документов АФ РФ и других архивных документов в архиве. В современном архивоведении важнейшими направлениями использования архивных документов являются: укрепление российской государственности удовлетворение информационных потребностей общества обеспечения законных прав и интересов граждан. В процессе использования архивных документов участвуют 2 стороны архив хранящий информацию и пользователь которому нужна информация. Использование документов в управленческих целях предполагает информационное обеспечение работы данного...
26301. Архивное законодательство в 1990-е 50.5 KB
  правовые основы архивного дела иерархическая классификация архивного законодательства: федеральное законодательство: Конституция РФ ФЗ об архивном деле н р ФЗ Об обязательном экземпляре документов 1994г. норма архивного права воздействует на все сферы общественных отношений возникающих в области архивного дела: организация и фондирование документов АФ РФ комплектование и экспертиза ценности н р приказ Росархива Об утверждении примерного положения о центральноэкспертных комиссиях министерств и ведомств РФ...
26302. Внешняя политика индепендентской республики. Ирландская и шотландская экспедиции Кромвеля 25.49 KB
  Бежавшие в Ирландию роялисты установили контроль над большей частью Ирландии которую они надеялись использовать как базу для вторжения в Англию. Армия прекрасно помнила опыт 1641 года когда в ответ на восстание ирландцев парламент издал указ о конфискации в Ирландии 2. Офицеры армии надеялись что и теперь завоевание Ирландии приведет к улучшению их благосостояния. Завоевание Ирландии Сразу же после высадки в Дублине войска республики начали систематическое завоевание страны.
26303. Протекторат Кромвеля и причины Реставрации 22.61 KB
  Эту конституцию одобрил Государственный Совет 16 декабря 1653 года; новый документ осуществил разделение власти между лордомпротектором Англии Шотландии и Ирландии Государственным Советом и парламентом; впервые в него вошли представители Ирландии на самом деле это были представители англичанпротестантов которые в то время проживали в Ирландии и Шотландии. Несмотря на заключение мира в Англии сохранялись обременительные налоговые обложения военного времени акцизы. Недовольство в Англии росло быстрыми темпами и кавалеры в своих...
26304. Англия в годы Реставрации Стюартов. «Славная революция» 1688 г. 31.58 KB
  Восстановление королевской власти в Англии произошло не вследствие того что феодалыкавалеры оказались сильнее буржуазии и сумели оружием навязать свою власть. объясняется усилением консервативных настроений в рядах самой английской буржуазии а также в среде английского нового дворянства удовлетворенного превращением своей феодальной земельной собственности в неограниченную буржуазную собственность и расширением своего землевладения в Англии и особенно в Ирландии. В Англии была полностью восстановлена государственная англиканская церковь в...