Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
19-25.docx
Скачиваний:
9
Добавлен:
12.09.2019
Размер:
49.65 Кб
Скачать

19. Множества. Операции с множествами. Ввод, вывод множества

Множество- неупорядоченная совокупность неповторяющихся объектов

Type<идентифик. типа>=set of<тип компонент>

Пример:

Type interval=5..10;

Mn set of interval;

Var pr:mn;

Ввод и вывод множества:

S:=[];

Readln(str);

For i=’a’ to ‘z’ do

If I in S then Write (i:30);

Операции:

Пересечение(*)

X=[1,2,3,4,7,9] Y=[1,2,3,10,5]

Z:=X*Y;

Z=[1,2,3]

Объединение(+)

X=[1,2,3,4,7,9] Y=[1,2,3,10,5]

Z:=X+Y

Z=[1,2,3,4,7,9,10,5]

Разность

X=[1,2,3,4,7,9] Y=[1,2,3,10,5]

Z:=X-Y Z=[4,7,9]

Проверка на равенство

F:=X=Y F=false

Проверка на неравенство

F:=X<>Y F=true

Проверка на включение

X=[1,2,3,4,5] Y=[1,2,3]

F:=X>=Y; F=true

IN проверка принадлежности

F=5 F:=A in Y F=true

24. Числовые константы языка С++. Символьные и строковые константы языка С++. Типы переменных в языке С++.

Константы

Константа

Формат

Примеры

Целая

Десятичный: последовательность десятичных цифр, начинающаяся не с нуля, если это не число нуль

8, 0, 199226

Восьмеричный: нуль, за которым следуют восьмеричные цифры (0,1,2,3,4,5,6,7)

01, 020, 07155

Шестнадцатеричный: 0х или 0Х, за которым следуют шестнадцатеричные цифры (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)

0xA, 0x1B8, 0X00FF

Вещественная

Десятичный: [цифры].[цифры]

5.7, .001, 35.

Экспоненциальный: [цифры][.][цифры]{E|e}[+|–][цифры]

0.2E6, .11e–3, 5E10

Символьная

Один или два символа, заключенных в апострофы

'A', 'ю', '*', 'db', '\0', '\n', '\012', '\x07\x07'

Строковая

Последовательность символов, заключенная в кавычки

"Здесь был Vasia", "\tЗначение r=\0xF5\n"

Основные (стандартные) типы данных:

  • int (целый); char (символьный);

  • wchar_t (расширенный символьный);

  • bool (логический);

  • float (вещественный);

  • double (вещественный с двойной точностью).

Существует четыре спецификатора типа, уточняющих внутреннее представление и диапазон значений стандартных типов:

  • short (короткий);

  • long (длинный);

  • signed (знаковый);

  • unsigned (беззнаковый).

Таблица 1.4. Диапазоны значений простых типов данных для IBM PC

Тип

Диапазон значений

Размер (байт)

bool

true и false

1

signed char

–128 … 127

1

unsigned char

0 … 255

1

signed short int

–32 768 … 32 767

2

unsigned short int

0 … 65 535

2

signed long int

–2 147 483 648 … 2 147 483 647

4

unsigned long int

0 … 4 294 967 295

4

float

3.4e–38 … 3.4e+38

4

double

1.7e–308 … 1.7e+308

8

long double

3.4e–4932 … 3.4e+4932

10

25. Числовые операции в языке С++. Логические операции в языке С++. Оператор присваивания в языке С++. Составной оператор в языке С++.

Математические операции

Знак

Математическая операция

*

Умножение

/

Деление и целочисленное деление нацело

%

Деление по модулю и остаток от деления

+

Сложение

-

Вычитание

Присваивание

В одной строке может стоять больше одной операции присваивания =.

Пример.

a=b=c=d=100;

Знак присвоить может стоять даже внутри математического выражения:

value=5+(r=9-c)

Присваивание имеет более высокий приоритет, чем сложение и вычитание. Поэтому сначала переменной r будет присвоено значение 9-с. А затем переменная value получит значение 5+9-с.

Составное присваивание

При написании программы часто требуется изменить значение переменной. Например, требуется взять текущее значение переменной, прибавить или умножить это значение на какое-то выражение, а затем присвоить это значение той же переменной. Такие операции выполняют операторы составного присваивания.

Операция

Пример

Эквивалент

+ =

B+ = 500;

B= b+ 500;

- =

С- = 50;

C = с - 50;

* =

D* = 1.2;

D = d*1.2;

/ =

F/ = 50;

f = f/.50;

% =

m% = 7;

M = m% 7;

Операции отношения

Операции

Описание

= =

Равно

>

Больше

<

Меньше

>=

Больше или равно

<=

Меньше или равно

!=

Не равно

Операции инкремента (++) и декремента (-)

В языке C++ предусмотрены две уникальные операции, которые увеличивают или уменьшают значение переменной на 1

Оператор

Пример

Описание

Эквивалентное выражение

+ +

i + +;

Постинкремент

i =i+1; или i+=1;

+ +

+ + i;

Преинкремент

i =i+1; или i+=1;

- -

i - -;

Постдекремент

i =i-1; или i-=1;

- -

- - i;

Предекремент

i =i-1; или i-=1;

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

Пример.

float a, b=2, c=1, d=1;

a = b + c++;

cout << "\n a=" << a <<"\t c= "<< c;

/* Даст результат a=3 c=2.

Используется постфиксный инкремент. Сначала произойдет сложение b и c, результат запишется в а, затем с будет увеличена на 1 */

Операция sizeof

sizeof (тип данных)

Операция sizeof возвращает размер в байтах указанного в ней данного или типа данных.

Пример.

cout " "Размер типа float в байтах=\t" "sizeof (float)

Результат: 4.

Операция "запятая"

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

Пример

main()

{

int i = 10,

j = 25;

}

Результат выполнения: j=20. Сначала i получает значение 10, затем использование операции "запятая" приведет к тому, что i получит значение 12, а затем значение i+8, т.е. 12+8=20. Результат будет присвоен j.

Оператор ?:

(Условие) ? (выражение1):(выражение2)

Если условие истинно, то выполняется выражение1, а если ложно, то выражение2.

Пример.

(а>b) ? (ans =10):(ans=25);

Если а>b, то переменная ans получается значение 10, иначе - значение 0.25

  1. С и С++. Препроцессор языка С++. Основная функция в языке С++. Алфавит языка С++. Идентификаторы языка С++.

   "ПРЕПРОЦЕССОР - это специальный блок транслятора (или специальная программа), подготавливающий обработку данных, поступающих на вход процессора".

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

     Существует одно важное правило, которое нужно знать и учитывать. Согласно этому правилу, если имя файла в директиве #include <stdio.h> заключено в угловые скобки, то процессор Borland C/C++ ищет файл в стандартных системных каталогах.

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

 Входит в состав компилятора и выполняет:

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

    Работает с текстом и не анализирует синтаксис.

Строки начинающиеся со знак # - директивы процессора. У них свой независимый от языка синтаксис, они могут появляться в любом месте программы, их влияние распространяется до конца файла исходного текста программы. (Ex. #include #define.)

Алфавит языка

Алфавит С++ включает:

  • прописные и строчные латинские буквы и знак подчеркивания;

  • арабские цифры от 0 до 9;

  • специальные знаки:

    "

    { }

    ,

    |

    [ ]

    ( )

    +

    -

    /

    %

    *

    .

    \

    '

    :

    ?

    <

    =

    >

    !

    &

    #

    ~

    ;

    ^

     

  • пробельные символы: пробел, символы табуляции, символы перехода на новую строку.

Из символов алфавита формируются лексемы языка:

  • идентификаторы;

  • ключевые (зарезервированные) слова;

  • знаки операций;

  • константы;

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

Границы лексем определяются другими лексемами, такими, как разделители или знаки операций.

Идентификаторы

Идентификатор — это имя программного объекта. В идентификаторе могут использоваться латинские буквы, цифры и знак подчеркивания. Прописные и строчные буквы различаются.

При выборе идентификатора необходимо иметь в виду следующее:

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

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

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

Функция main.

Аргументы функции main (argc, argv и env) всегда передаются функции main подпрограммой инициализаци и Borland С++.

argc (тип integer) - число аргументов командной строки.

argv - массив указателей на строки (char *[]). В версиях DOS 3.x argv[0] - полное (т.е. включая маршрут доступа) имя запускаемой программы. argv[x] - параметр, набранный в командной строке после функции (порядковый номер - x).

env - также массив указателей на строки. Каждый элемент env[] содержит строку вида ENVVAR = value. Аргумент env доступен также через глобальную переменную environ. argc и argv также доступны через глобальные переменные _argc и _argv.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]