bmstu_iu6_Cpp1 (823967), страница 4

Файл №823967 bmstu_iu6_Cpp1 (Методические пособия по C++ Г.С.Иванова 3 части) 4 страницаbmstu_iu6_Cpp1 (823967) страница 42021-07-27СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 4)

Этот описатель отключает оптимизацию компилятора для указанной переменной, и чаще всего применяется при реализации программ с параллельным выполнением;<Тип> – описатель типа данных: int, char, float, double и т.д., если описательтипа отсутствует, то по умолчанию берется int;<Имя> – идентификатор переменной или константы;<Значение> – начальное значение переменной или значение константы.Примеры:// объявление неинициализированных переменныхint f,c,d;// три переменных для хранения целых чиселfloat r;// одна переменная для хранения вещественного числаI,j;// две переменные типа int (по умолчанию)unsigned int max,min; // две беззнаковые целочисленные переменныесhar c1,c2;// две символьные переменныеunsigned char c5;// переменная для хранения беззнакового кода символа// объявление инициализированных переменныхdouble k=89.34; float eps=0.1e-4; char ch=’G’;// поименованные константыconst long a=6;const float pp=6.6e-34;Переменные и поименованные константы могут быть объявлены в любом месте программы: вне всех функций, внутри функций, в любом месте функции, а в С++ – даже внутри управляющих операторов, например:for(s=0,int i=1;i<n;i++)s+=i;//переменная i объявлена внутри оператораОглавление16Переменные, объявленные внутри оператора, существуют только во время его выполнения.

Использование таких переменных часто приводят к ошибкам, а потому – не рекомендуется.Основное условие размещения объявлений: объявление должно стоять до первогообращения к переменной или константе. Однако технология создания надежных программрекомендует все необходимые объявления делать в начале соответствующей функции.Кроме того, в объявлении может присутствовать описатель класса памяти, определяющий видимость переменной в подпрограммах и время хранения ее значения, например:static, extern и т. д. (см. раздел 4.1.1).1.3.4 * Перечисляемый типПеречисляемый тип появился еще в Си, он позволяет определить собственный наборпоименованных целочисленных значений для объявляемой переменной.

Тип описываетсяследующим образом:enum [<Имя типа>]{<Имя>[=<Целое>][,<Имя>[=<Целое>]…]} <Список именпеременных>;где<Имя типа> – идентификатор перечисляемого типа, обязательно указывается, еслиобъявление переменных предполагается выполнять в отдельной конструкции;<Имя> – идентификатор целочисленного значения;<Целое> – присваиваемое целое значение, может быть опущено, если значение, сопоставляемое идентификатору, при описании типа не указано, то берется предыдущее значение и к нему добавляется единица, для первого значения по умолчанию берется 0, например:enum days (sun, mon, tue, fri=5, sat) day; // конструкции описывает// тип days и объявляет переменную day, которая может принимать// значения: sun=0, mon=1, tue=2, fri=5, set=6С переменными перечисляемого типа можно выполнять необходимые операции,например: Day=fri; .1.3.5 * Объявление нового типа данныхВ С++ появилась конструкция, позволяющая определять новые типы переменных:typedef <Описание типа> <Имя объявляемого типа>;Например:Оглавление17typedef unsigned int word; // переименовываем подтип беззнаковый целый// в wordtypedef enum {FALSE, TRUE} boolean; // объявляем новый тип boolean// и разрешаем переменным этого типа// принимать значения FALSE(0) и TRUE(1)В программе можно объявлять переменные указанных типов, например:word l,m;boolean flag;1.4 ОперацииПрограммирование вычислений предполагает, что над данными программы выполняются некоторые преобразования.

Для этого в Си и С++ определены операции соответствующих типов: арифметические, логические, отношений, логические поразрядные, порядковые, сдвига, условная и присваивания. Типы данных, над которыми можно выполнять перечисленные операции, указаны в таблице 1.3.Таблица 1.3 – Область действия операций С++Тип операцийАрифметическиеЛогическиеОтношенийЛогические поразрядныеПорядковыеСдвигиУсловнаяПрисваиванияТипы данныхИнтегральныеСимвольныйЛогический+––+++––++––++++Целые++++++++Адресный+–+–+–++Арифметические операции. Арифметические операции делятся на:•унарные «+» и «-», например: -beta, унарный плюс введен для симметрии сунарным минусом;•бинарные: сложение «+», вычитание «-», умножение «*», деление «/», получение остатка целочисленного деления «%».При делении двух целых чисел и при определении остатка от деления целых чиселоперация выполняется с точностью до целых (!), т.е.

5/2 = 2, 5%2=1.Неявное преобразование типов. Если бинарная операция выполняется над операндами различных типов, то перед операцией оба операнда преобразуются в тип c большейразрядной сеткой по следующим схемам:Оглавление18char⇒ short⇒ int ⇒ longfloat ⇒ double ⇒ long doubleЦелые числа при этом преобразуются в вещественные.Например:int a=5, b = 3; float c=9.3…a+b// результат 8, тип inta/b// результат 1, тип inta%b// результат 2, тип inta*b// результат 15, тип intc/b// результат 3.1, тип float(a+b)/(a-b*a) // результат 0, тип intДля выполнения операций над некоторыми типами данных требуется явное преобразование типов.

Такое преобразование может быть выполнено двумя способами: с использованием функции типа и применением канонической формы.Функциональное преобразование записывается следующим образом:<Имя типа> (<Выражение>)Например:int(3.14)=3// будет отброшена дробная часть числаfloat(2/3)=0.0// сначала будет выполнено целочисленное делениеint(’A’)=65// код символаОднако функциональная запись не подходит для подтипов, когда имя типа состоит изнескольких описателей. В этом случае применяется каноническая форма преобразования:(Имя типа)<Выражение>Например:(unsigned long)(x/3+2);(long)25;(unsigned char)123;Если определить новый тип – тогда можно использовать и функциональное преобразование, например:typedef unsigned long int uli;uli(x/3-123);Логические операции.

К логическим операциям относятся:! – логическое «не» – отрицание целочисленного операнда – унарная логическаяоперация, выполняется над целым числом, которое интерпретируются в логическое значе-Оглавление19ние по правилу Си (0 – false, не 0 – true), результат – целочисленный 0 или не 0, интерпретируемые по тем же правилам;&& – логическое «и» – конъюнкция целочисленных операндов, результат операции<Операнд1>&&<Операнд2> = «Истина» только тогда, когда оба операнда «Истина»;|| – логическое «или» – дизъюнкция целочисленных операндов, результат операции<Операнд1>||<Операнд2> = «Истина», если хотя бы один операнд «Истина».Чаще всего операндами логических операций являются результаты операций отношения.

Например:6>2&&3==3// результат «Истина»!(6>2&&3==3)// результат «Ложь»x!=0 && 20/x<5// второе выражение вычисляется, если х!=0, иначе результат// всегда «Ложь»Операции отношения. Операции меньше «<», больше «>», равно «==», неравно«!=», меньше или равно «<=», больше или равно «>=» применяют к числам и символам,точнее кодам этих символов, в результате получают логическое значение «Истина» или«Ложь».Например:int a = 5;int b = 3;…a > b // результат «Истина»a == b // результат «ложь»Логические поразрядные операции. В С++ реализованы следующие логическиепоразрядные операции:~ – поразрядная инверсия битов («не») в битовых представлениях целых чисел,& – поразрядная конъюнкция («и») битов в битовых представлениях целых чисел,| – поразрядная дизъюнкция («или») битов в битовых представлениях целых чисел,^ – поразрядное исключающее «или» битов в битовых представлениях целых чисел.Например:6&5 // результат 4: 00000110 & 00000101  000001006|5 // результат 7: 00000110 |00000101  000001116^5 // результат 3: 00000110 ^ 00000101  00000011Порядковые операции.

Существуют всего две порядковые операции, каждая из которых имеет две модификации:++<Идентификатор>, <Идентификатор>++(следующее);- -<Идентификатор>, <Идентификатор> - - (предыдущее).Оглавление20Местоположение знаков операций (до или после операнда) определяет, в какой момент осуществляется изменение операнда. Если знак стоит слева от операнда – то сначалазначение изменяется, а потом принимает участие в вычислении. Если знак стоит справа отоперанда – то сначала операнд принимает участие в вычислении, а затем меняется егозначение.Например:а) i++;б) a=5;i=3;c=a*++i; // результат операции с = 20, i=4Сдвиги.

В С++ используются две операции сдвига:>> – сдвиг вправо битового представления целого числа на количество разрядов, задаваемое правым целочисленным операндом,<< – сдвиг влево битового представления целого числа на количество разрядов, задаваемое левым целочисленным операндом.Например:4<<2// результат 16:00000100 << 000100005>>1// результат00000101 >> 000000102:Операции присваивания. В С++ присваивание относится к операциям.

При этомпомимо простого присваивания «=», при котором в переменную левого операнда копируется результат выражения правой части, определены также операции присваивания «с накоплением»: «+=», «-=», «*=», «/=», «%=», «&=», «^=», «|=», «<<=», «>>=». Эти операции присваивают левому операнду результат выполнения заданной операции, выполненной над левым и правым операндами.Например:int k;k=8;// операция простого присваиванияk*=3;// результат24k+=7;// результат31Условная операция позволяет организовать выбор одного из двух выражений в зависимости от результата заданного логического выражения, т.е.

реализовать простейшийвариант ветвления. Это единственная операция в С++, которая выполняется над тремя операндами, т.е. является триарной. Операция имеет следующий формат записи:<Выражение 1>?<Выражение 2>:<Выражение 3>При выполнении первым вычисляется значение выражения 1. Если оно истинно, т.е.результат не равен 0, то вычисляется выражение 2, которое и становится результатом. ЕслиОглавление21при вычислении выражения 1 получается 0, то вычисляется выражение 3, которое становится результатом.Например:x<0?–x:x;printf(”%3d%c%”,a,i==n?’ ’:’\n’);1.5 ВыраженияОбычно последовательно выполняемые операции в программе компонуются в выражения.

Различают простые и сложные выражения.Простые выражения представляют собой строковую запись формул, которая можетвключать литералы, поименованные константы, переменные, обращения к стандартнымфункциям и знаки операций, такие как «+», «-» и т.д.Порядок выполнения операций в выражении определяется приоритетами операций иих ассоциативностью (для последовательно записанных одинаковых операций).

Характеристики

Тип файла
PDF-файл
Размер
1009,74 Kb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6376
Авторов
на СтудИзбе
309
Средний доход
с одного платного файла
Обучение Подробнее