Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Вещественный тип

Читайте также:
  1. Материально – вещественный канал утечки информации
  2. Натурально)вещественный и стоимостной анализ всех рисковых обстоятельств, характеризующих параметры риска, - это __________ риска

Стандарт С++ определяет три вещественных типа данных:

float 4 байта 1.17*10-38 <|x|<3.4*10+38; x=0

double 8 байтов 2.2*10-308 <|x|<1.7*10+308; x=0

long double 10 байтов 3.4*10-4932 <|x|<1.19*10+4932; x=0

Операции для вещественного типа:

OP(вещественный)={+оо ; * /; + -; < <= >= >;==!= }

Функции для вещественного типа: #include<cmath>

Fun(вещественный)={fabs(x),sin(x),cos(x),log(x),log10(x),exp(x),pow(a,b),tan(x),atan(x), asin(x), acos(x),sqrt(x)}

Константы вещественного типа

Естественный вид: [xx…xx].[xx..xx], например, 136.25, 136.,.25

Константа с порядком:: [xx…xx][.][xx..xx] [{E/e} [{+/-}]x…x], например.15е1, 3Е5, 1.25Е-3 это константы 0.15*101,3*105,1.25*10-3

По умолчанию у вещественной константы тип double, можно явно указать тип с помощью суффиксов F,f (для float),L,l(для long double).

Логический тип: bool

Множество значений логического типа {false, true}(эти слова зарезервированы как константы логического типа), false представляется значением 0, любое другое значение интерпретируется как true, если true преобразуется к целому типу, оно имеет значение 1. Переменные логического типа чаще всего используются для хранения результатов сравнения.

Операции для логического типа:

O(bool)={!; < <= >= >;==!=; &&; ||}

Функции для логического типа: Fun(bool)= ø

Символьный тип: char Возможны типы

Signed char (≈ char) 1байт -128 ÷ 127

Unsigned char 1байт 0 ÷ 255

Множество значений типа char – множество символов ASCII,каждый символ в байте представлен своим кодом (0 ÷ 255), часть символов (с кодами 0÷31)является управляющими, они не имеют графического изображения, символы с кодами 32÷127 имеют фиксированное графическое написание,а наборы символов с кодами 128÷255 отличаются для разных операционных систем, платформ и часто не содержат русских букв.

Коды цифр 0….9 упорядочены по возрастанию и идут без пропусков. Коды больших латинских букв упорядочены по алфавиту и идут без пропусков. То же самое верно и для малых латинских букв.

Операции для символьного типа: -те же, что и для целого типа

(в операциях отношения сравниваются коды символов)

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

#include <cctype> //подключение функций классификации и преобразования символов

isalnum(int ch)- проверка является ли символ буквой или цифрой.

isalpha(int ch)- проверка является ли символ буквой.

isdigit(int ch)- проверка является ли символ цифрой.

iscntrl(int ch)- проверка является ли символ управляющим.

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

Символьные константы записываются в одиночных кавычках: 'А',’+' и т. д. (это символы, имеющие графическое изображение).

Управляющие символы не имеют графического написания и изображаются '\ символ', говорят в виде управляющей последовательности, это означает, что символ \ «управляет» интерпретацией следующих за ним символов последовательности. Так, ‘\t’ воспринимается не как символ 't', а как символ табуляции. (Символ табуляции означает, что весь поток вывода будет условно разделен на фрагменты одинаковой длины, определяемой шагом табуляции, и следующий символ будет напечатан в начале следующего фрагмента, а не сразу за предыдущим символом. В консольных программах шаг табуляции равен восьми позициям.) Символьная константа '\п' означает перевод курсора в начало следующей строки. Управляющие символы могут использоваться и в составе строк.

Символ обратной косой черты используется для представления символов ’ ” \?: ‘\’’, ‘\\’, ‘\”’, ‘\?’.

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

/*

Структура описания функции:

<Заголовок функции> {<тело функции >}

Void main()

{<тело функции >}

Программа содержит:

<Директивы препроцессора>

<описания>

< описание функции>

…….

< описание функции>

Функции не могут быть вложенными.Одна из функций обязательно есть функция main(). Программа может состоять из одного текстового файла(его наз. исходный модуль)или из нескольких исходных модулей. */ - это было в лекции 2

6.Переменная – объект программы, который может изменять значение в ходе выполнения программы, переменная имеет имя и значение.

Объявление и определение переменной

До первого использования переменной, её обязательно надо объявить(описать). Объявления переменных могут располагаться в любом месте программы. Не обязательно делать все объявления переменных до появления первого исполняемого оператора, как это было принято в С. Тем не менее, объявления наиболее часто употребляемых переменных целесообразно производить в начале программы, чтобы обеспечить ее удобочитаемость.

Объявление переменной предполагает указание имени переменной и ее типа (в простейшем случае):

имя типаимя переменной [ инициализатор ];

Возможно указпание нескольких имён:

тип имя [,имя … имя];

Например:

int a,b;

float x;

При описании можно присвоить переменной начальное значение, говорят инициализировать её, есть 2 способа сделать это:

short k,I=1; // тип имя =значение;

int x(10); // тип имя (значение);

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

const int=100;

По описанию переменной отводится область памяти размера, соответствующего типу, в которой хранится значение переменной. Доступ к этой памяти – по имени переменной.

Описание переменной определяет её область действия – часть программы, где её можно использовать для доступа к выделенной ей области памяти. Если переменная определена в блоке(внутри{ }), то она говорят явл. локальной и область её действия от места описания и до конца блока. Если переменная определена вне любого блока, она наз. глобальной, область её действия – весь файл, где она описана.

Есть разница между терминами объявление переменной и определение переменной.

Если при объявлении переменной одновременно выделяется память под нее, то происходит определение переменной. Предложения – объявления переменных, описанные выше, являются и объявлениями, и определениями.

7. Выражение –языковая конструкция, которая задаёт правило для вычисления значения. Тип этого значения – тип выражения. Выражение содержит операнды, знаки операции и круглые скобки. Операнды: переменные, константы, функции (вызовы функций) и выражения, заключённые в круглые скобки. В языке определены приоритеты операций.(см. спосок операций с их приоритетами). Записываются выражения в строку, без опущенных и приподнятых символов. a/(b+c)

При вычислении выражения операции выполняются в соответствии с их приоритетами.Чтобы изменить этот порядок, используют круглые скобки. Последовательные операции одного приоритета выполняются так: унарные, условная операция(тернарная)и операции присваивания справа налево, остальные слева направо.т.е. a+b+c-d ≈ (((a+b)+c)-d),а x=y=z ≈ x=(y=z).

Порядок вычисления подвыражений внутри выражений не определён: (sin(x+1)+cos(y-2)),какое слагаемое будет считаться раньше –неясно.

Компилятор С++ знает, как вычислять результат операции, если операнды имеют идентичные типы, тот же тип будет и у результата. Чтобы обеспечить одинаковый тип операндов (в случае когда они разных типов),компилятор выполняет операцию преобразования по умолчанию (так называемое неявное преобразование типа )над выделенными операндами.Например,

int x;

float z; // В выражении x+z x преобразуется к типу float.

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

Int < unsigned int < long < unsigned long < float < double < long double

Операнды типов char, unsigned char,short int, unsigned short int преобразуются к типу int.

Часто бывает необходимо значение одного типа преобразовать в значение другого типа. Есть два способа записи явного преобразования типа:

== традиционная в С запись приведения к типу, например (double)a. Это унарная операция.

==функциональная запись double(a), она не применима к типам, у которых нет простого имени.

char * p= (char *)0777;

Или

Typedef char * Pchar;

char * p= Pchar(0777);

Некоторые особенности выражений в С++:

1) Присваивание является операцией выражения, у неё самый низкий приоритет(кроме,). Простое присваивание:

операнд1 =операнд2; означает, что значение операнд2 получает и операнд1, который размещается слева и называется L-value (L-значение),т.е.то, чему можно присвоить значение.

Присваивание может быть и внутри выражения, но так,чтобы левый операнд был L-value, например, a+b*(c=2), но выражение a+c=3-b является ошибочным (с не явл. L-value).

В языке С++ есть сложное присваивание +=,-=, *=, /=, %=, <<=, >>= и др. При выполнении операции в правой части используется и L-значение из левой части: оператор a+=b; означает a=a+b; n%=b/10; эквивалентно n=n % (b/10);

2)Операция определения размера sizeof имеет две формы и применяется для вычисления размера в байтах некоторого объекта или типа:

a) sizeof выражение // cout << sizeof (x+1.0); (8)

b) sizeof (тип) // cout << sizeof(float); (4)

3)Операции инкремента (++)- увеличения на 1 и декремента (--) –уменьшения на 1 имеют две формы записи префиксную (++х или --х)и п остфиксную (х++ или х--). В префиксной операции сначала изменяется операнд, а затем его новое значение используется в следующей операции, а в постфиксной - используется исходное значение операнда, а после он изменяется на 1. Операнд в операции всегда является L-значением. Пример:

int a,b,c;

a=2; b=3;

c=a*b++ +a*a*b; // c=2*3+2*2*3; а затем b становится равным 4.

4) Операции отношения сравнивают два операнда арифметического типа(или указатели), результат логического типа true или false, причём приоритет операций сравнения на равенство или неравенство меньше приоритета остальных операций отношения.

4) Логические операции И(&&) и ИЛИ(||) выполняются над арифметическими операндами или указателями. Если операнды разных типов, то преобразования их не производится, каждый операнд оценивается с точки зрения его эквивалентности нулю. Результат операции true или false. Если по значению первого опранда можно определить результат операции, второй операнд не вычисляется.

5)Условная операция (?:)или тернарная(три операнда).Её формат:

Оп1? оп2: оп3 Результат операции - true или false. Оп1 сравнивается с нулём, если он равен true, результатом условной операции будет значение оп2, иначе – оп3. Например,

Int a,b,m;

m= (a<b)?a:b;

!!!!! 6) рассказать про xy

остальные операции рассмотрим позже.

8. Основные управляющие структуры С++.

Так называются операторы языка.Их количество в языке не минимально, это сделано для удобства пользователей. Доказано, чтобы иметь возможность описать любой алгоритм на некотором языке, достато иметь в нем оперпторы трех видов: структуры следования:

 

 

Развилки: Выбор:

 

 

Цикл «пока»:

 

 

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

Операторы С++.




Дата добавления: 2014-12-19; просмотров: 28 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.011 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав