Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Integer – целое число со знаком

Стандартные Pascal

Integer – целое число со знаком

Определение внешнего вида значений

Форма Бэкуса-Наура:

<целое без знака>::= <цифра> {<цифра>}

<целое>::= <целое без знака> | + <целое без знака> | – <целое без знака>

1.2.Определение диапазона и возможных зарезервированных констант:

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

От -32768 до 32767

Константы:

MaxInt = 32767

Определение операций

Арифметические: +, -, *, /

Арифметические дополнительные: div, mod

Сравнения: =, <, >, <>, >=, <=, in (присутствие в множестве)

Логические: и (and), или (or), не (not), исключающее или (xor)

1.4.Определение процедур и функций, которые могут применяться к этому типу:

Математические

abs(x) - модуль

sqr(x) – возведение в квадрат

sqrt(x) – квадратный корень (результат: real)

ln(x) – натуральный логарифм (результат: real)

randon(x) – случайное число от 0 до x

random – случайное число от 0 до 1

Тригонометрические:

sin(x) – синус (результат: real)

cos(x) – косинус (результат: real)

arctan(x) – арктангенс (результат: real)

Прочие:

pred(x) – предыдущее число

succ(x) – следующее число

odd(x) – выдает true если x нечетно

1.5.Ввод/вывод:

Допустимы (read/readln/write/writeln)

Допустимо изменение ширины поля печати – write(x:5);

1.6.Представление значений в памяти ЭВМ:

Занимает 2 байта

0..14 бит- значение числа

15 бит- знак

(нумерация бит идёт с конца)


Real – вещественное число

Определение внешнего вида значений

Форма Бэкуса-Наура:

<число с фиксированной точкой>::= <целое>. <целое без знака>

Например: 0.003 -2.71828 48.8900 +2.0

<число с плавающей точкой>::= <целое> E <целое> | <число с фикс. точкой> E <целое>

Например: -5.4E-3 3E5 9.43E-03 3E+2

2.2. Определение диапазона и возможных зарезервированных констант:

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

~ 2.9*10-39 – 1.7*1038

Константы:

Pi = 3.14159265358979

MaxReal = 1.7E308

MinReal = 4.94065645841247E-324

Определение операций

Арифметические: +, -, *, /

Сравнения: =, <, >, <>, >=, <=

2.4. Определение процедур и функций, которые могут применяться к этому типу:

Математические

abs(x) - модуль

sqr(x) – возведение в квадрат

sqrt(x) – квадратный корень

ln(x) – натуральный логарифм

int(x) – целая часть числа x, получаемая путем округления до ближайшего меньшего целого

frac(x) – дробная числа часть числа x

Тригонометрические:

sin(x) – синус

cos(x) – косинус

arctan(x) – арктангенс

2.5. Ввод/вывод:

Допустимы (read/readln/write/writeln)

Допустим вывод в экспоненциальной форме – write(x:5);

Допустим вывод определенного числа символов после запятой – write(x:5:5);

2.6. Представление значений в памяти ЭВМ:

Занимает 6 байт

0..39 бит-мантисса

40..45 бит-порядок

46 бит-знак порядка

47 бит-знак мантиссы


Char – символ

Определение внешнего вида значений

Формы Бэкуса-Наура:

<буква>::= A | B | C | … X | Y | Z | a | b | c | … x | y | z

<цифра>::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

<знак>::= ~ |! | @ |#| $| %| ^| & | *| (| - | + |) | = | \ |: |; |: |? | № |. |,

<char>::= ‘ <буква> | <цифра> | <знак> ‘

3.2. Определение диапазона и возможных зарезервированных констант:

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

Byte: 0..255

Константы:

Нет

Определение операций

Сравнения: =, <, >, <>, >=, <=

3.4. Определение процедур и функций, которые могут применяться к этому типу:

Succ(x) - возвращает следующий символ литерного множества;

Pred(x) - возвращает предыдущий символ литерного множества;

Ord(x) - возвращает значение кода литеры;

Chr(x) - возвращает значение литеры по ее коду, является обратной по отношению к функции Ord.

UpCase(x) – преобразование символа x из строчных букв латинского алфавита в прописные

3.5. Ввод/вывод:

Допустимы (read/readln/write/writeln)

3.6. Представление значений в памяти ЭВМ:

Занимает 1 байта

0..7 бита- значение числа


Boolean – логичесткий

Определение внешнего вида значений

Форма Бэкуса-Наура:

<boolean>::= True | False

4.2. Определение диапазона и возможных зарезервированных констант:

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

True/False

Константы:

Нет

Определение операций

Сравнения: =, <>

4.4. Определение процедур и функций, которые могут применяться к этому типу:

Нет

4.5. Ввод/вывод:

Только вывод (write/writeln)

4.6. Представление значений в памяти ЭВМ:

Занимает 1 байт

Значение = true

Значение = false


Сложные Pascal

Array – массив

Определение внешнего вида значений

Формы Бэкуса-Наура:

нет

1.2.Определение диапазона и возможных зарезервированных констант:

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

Определяется только для каждого элемента непосредственно, обусловлен базовым типом (зависит от того, массив чего задается)

Константы:

Нет

Определение операций

Работа с каждым элементом как с обычной переменной базового типа

Обращение к элементу – в квадратных скобках, например: a[1] – обращение к первому элементу массива a.

1.4.Определение процедур и функций, которые могут применяться к этому типу:

Для всего массива целиком не определяются

Определяются для каждого элемента непосредственно как для объекта базового типа

1.5.Ввод/вывод:

Допустимы поэлементно (read[i]/readln[i]/write[i]/writeln[i])

1.6.Представление значений в памяти ЭВМ:

Последовательно все элементы, размер каждого – размер базового типа


Record – запись

Определение внешнего вида значений

Формы Бэкуса-Наура:

нет

2.2. Определение диапазона и возможных зарезервированных констант:

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

Определяется только для каждого поля

Обусловлен базовым типом каждого поля непосредственно

Константы:

Нет

Определение операций

Для всей записи – оператор with

with <record> do

Begin

end;

Для каждого поля записи – соответствуют операциям базового типа этого поля

2.4. Определение процедур и функций, которые могут применяться к этому типу:

Sizeof(record) – объем занимаемого пространства в памяти

Для каждого поля записи – соответствуют процедурам и функциям базового типа этого поля

2.5. Ввод/вывод:

Допустимы по полям

(read(record1.variable)/readln(record1.variable)/write(record1.variable)/writeln(record1.variable))

или через «with» -

with record1 do

begin

readln(variable); // и т.п.

end;

2.6. Представление значений в памяти ЭВМ:

Все поля располагаются последовательно, размер каждого поля соответствует размерности его базового типа. При этом происходит «выравнивание». Также записи дополняются, для гарантии, что они закончены, 4-х байтовой границей.


Set

Определение внешнего вида значений

Формы Бэкуса-Наура:

нет

3.2. Определение диапазона и возможных зарезервированных констант:

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

Любой порядковый тип с элементами, для которых функция Ord возвращает значения в диапазоне от 0 до 255

Пример:

type
CharSet = set of char;
Digits = set of '0'..'9';
SeasonSet = set of (Winter,Spring,Summer,Autumn);

Константы:

Нет

Определение операций

+ объединение

- разность

* пересечение

Операция in проверяет принадлежность элемента множеству

3.4. Определение процедур и функций, которые могут применяться к этому типу:

Процедуры и функции:

Нет

3.5. Ввод/вывод:

Чтобы вывести значения элементов множества, необходимо перебрать всевозможные значения в цикле и проверить их на принадлежность множеству с помощью операции in:

for i:=0 to 255 do
if i in st then write(i,' ');

3.6. Представление значений в памяти ЭВМ:

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

Например, если множество определяется как ‘0’..’9’ (т.е. содержит десять элементов), в памяти будет выделено под него два байта. Один байт = 8 бит, а нам нужно разместить 10 бит, т.е. округляем «вверх» до шестнадцати и получаем два байта. Для пустого множества все биты равны нулям. Далее, в памяти все биты нумеруются и если элемент с определенным номером добавляется в множество, то каждый соответствующий бит (с этим же номером) принимает значение 1.


Перечислимый

Определение внешнего вида значений

Формы Бэкуса-Наура:

нет

Пример:

type
Season = (Winter,Spring,Summer,Autumn);
DayOfWeek = (Mon,Tue,Wed,Thi,Thr,Sat,Sun);

4.2. Определение диапазона и возможных зарезервированных констант:

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

Задаётся самостоятельно

Константы:

Нет

Определение операций

нет

4.4. Определение процедур и функций, которые могут применяться к этому типу:

нет

4.5. Ввод/вывод:

нет

4.6. Представление значений в памяти ЭВМ:

Значения перечислимого типа занимают 4 байта.


Ограниченный

Определение внешнего вида значений

Интервальный тип представляет собой подмножество значений целого, символьного или перечислимого типа и описывается в виде a..b, где a - нижняя, b - верхняя граница интервального типа:

var
a: 0..10;
c: 'a'..'z';
d: Mon..Thr;

5.2. Определение диапазона и возможных зарезервированных констант:

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

Задаётся самостоятельно

Константы:

Нет

Определение операций

нет

5.4. Определение процедур и функций, которые могут применяться к этому типу:

нет

5.5. Ввод/вывод:

нет

5.6. Представление значений в памяти ЭВМ:

Тип, на основе которого строится интервальный тип, называется базовым для этого интервального типа. Значения интервального типа занимают 4 байта.


File – типизированные файлы

Определение операций

нет

6.4. Определение процедур и функций, которые могут применяться к этому типу:

Assign(f, ‘путь’) – ассоциация файловой переменной с файлом

Reset(f) – открытие файла на чтение

Rewrite(f) – открытие файла на запись

Close(f) – закрытие файла

EoF(f) – проверка, достигнут ли конец файла (результат – boolean)

Seek(f, физический номер) – смещение на позицию в файле

FileSize(f) – получает размер файла

FilePos(f) – получает текущую позицию в файле (физический номер «предыдущего» элемента)

Truncate(f) – удаляет все элементы типизированного файла с текущей позиции файлового указателя до конца файла

6.5. Ввод/вывод:

Read(f, значение) – если файл открыт для чтения

Write(f, значение) – если файл открыт для записи

6.6. Представление значений в памяти ЭВМ:

Как на жестком диске


Pointer

Определение операций

Указатели можно сравнивать на равенство (=) и неравенство (<>). В дополнение к этому типизированные указатели можно сравнивать, используя операции <, >, <=, >=.

Для доступа к ячейке памяти, адрес которой хранит типизированный указатель, используется операция разыменования ^:

var
i: integer;
pi: ^integer;
...
pi:=@i; // указателю присвоили адрес переменной i
pi^:=5; // переменной i присвоили 5

Операция разыменования не может быть применена к бестиповому указателю.

Типизированный указатель может быть неявно преобразован к бестиповому:

type preal=^real;
var

p: pointer;
pr: ^real;
...
p:=pr;

Обратное преобразование может быть выполнено только явно:

pr:=preal(p);
pr^:=3.14;

7.4. Определение процедур и функций, которые могут применяться к этому типу:

New(p) - процедура; p - типизированный указатель; выделяет динамическую память размера, равного размеру типа, на который указывает p, и возвращает указатель на нее в переменной p

Dispose(p) - процедура; p - типизированный указатель; освобождает динамическую память по указателю p, ранее выделенную процедурой New

GetMem(p,n) - процедура; p - указатель любого типа, n - integer; выделяет динамическую память размера n байт и возвращает указатель на нее в переменной p

FreeMem(p) - процедура; p - указатель любого типа; освобождает динамическую память по указателю p, ранее выделенную процедурой GetMem

FillMem(v,count,x) - процедура; v - переменная любого типа, count - integer,

x - byte; заполняет count значениями x область памяти, занимаемую переменной v. Контроль выхода за границы не производится

CopyMem(src,dest,count) - процедура; src, dest - pointer, count - integer; копирует count байт из памяти, расположенной по адресу src, в память, расположенную по адресу dest. Допускается использовать перекрывающиеся диапазоны памяти.

7.5. Ввод/вывод:

Нет

7.6. Представление значений в памяти ЭВМ:

нет


 

String – строки

Определение операций

Сравнения: =, <, >, <>

Происходит «посимвольное» сравнение

1.4.Определение процедур и функций, которые могут применяться к этому типу:

Length(s) - функция; s - string; результат - integer; возвращает длину строки s.

Copy(s,index,count) - функция; s - string, index и count - integer; результат - string; возвращает подстроку строки s длины count, начиная с позиции index.

Delete(s,index,count) - процедура; s - string, index и count - integer; удаляет в строке s count символов начиная с позиции index.

Insert(subs,s,index) - процедура; s, subs - string, index - integer; вставляет подстроку subs в строку s с позиции index.

Pos(subs,s) - функция; s, subs - string; результат - integer; возвращает позицию первой подстроки subs в строке s (или 0 если подстрока не найдена).

SetLength(s,n) - процедура; s - string, n - integer; устанавливает длину строки s равной n.

Str(x,s), Str(x:n,s), Str(x:n:m,s) - процедура; s - string, x - integer, real и n, m - integer; преобразует x к строковому представлению (во втором и третьем случаях согласно формату вывода, устанавливаемому n и m) и записывает результат в строку s.

Val(s,v,code) - процедура; s - string, v - integer, real, и code - integer; преобразует строку s к числовому представлению и записывает результат в переменную v. Если преобразование возможно, то в переменной code возвращается 0, если невозможно, то в code возвращается ненулевое значение.

Concat(s1,...,sn) - функция; s1,..., sn - string; результат - string; возвращает строку, являющуюся результатом слияния строк s1,..., sn. Результат тот же, что у выражения s1+s2+...+sn.

 

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

1.5.Ввод/вывод:

Допустимы (read/readln/write/writeln)

1.6.Представление значений в памяти ЭВМ:

Де-факто строка – это массив символов. Занимает число байт, равное размерности строки + 1, т.е.первый байт отводится под значение размерности.


Text – текстовые файлы

Определение операций

Нет

2.4. Определение процедур и функций, которые могут применяться к этому типу:

Assign(f, ‘путь’) – ассоциация файловой переменной с файлом

Reset(f) – открытие файла на чтение

Rewrite(f) – открытие файла на запись

Append(f) – открытие файла на дозапись

Close(f) – закрытие файла

2.5. Ввод/вывод:

Read(f, значение) – если файл открыт для чтения

Readln(f, значение) – если файл открыт для чтения

Write(f, значение) – если файл открыт для записи или дозаписи

Writeln(f, значение) – если файл открыт для записи или дозаписи

EoF(f) – проверка, достигнут ли конец строки в файле (результат – boolean)

2.6. Представление значений в памяти ЭВМ:

Как на жестком диске

 


 

СИ

Int – целое число со знаком

Определение операций

Арифметические: + (сложение),- (вычитание),* (умножение),

/ (целочисленное деление), % (вычисление остатка)

++(инкремент)

--(декремент)

Сравнения: <,<=,>,>=,==,!=

Поразрядные: ~(НЕ),&(И),|(ИЛИ),^(исключающее ИЛИ)

Побитового сдвига: <<(сдвиг влево),>>(сдвиг вправо)

Составные операции присваивания: +=, –=, *=, /=, %=,>>=,<<=,&=,|=,^=,~=

Логические:!(НЕ),&&(И),||(ИЛИ),^(исключающее ИЛИ)

1.4.Определение процедур и функций, которые могут применяться к этому типу:

Математические: div(), abs()

прочие: raise(), exit(), assert(), isalnum(), isalpha(), isblank(), iscntrl(), isdigit(), isgraph(), islower(), isprint(), ispunct(), isspace(), isupper(), isxdigit(),, malloc(), tolower(), toupper(), sizeof(), _Exit(), putchar(), putc(), ungetc()

1.5.Ввод/вывод:

ПРИ ИСПОЛЬЗОВАНИИ БИБЛИОТЕКИ IOSTREAM

Ввод: cin >> <переменная>;

Вывод: cout << <переменная>;

ПРИ ИСПОЛЬЗОВАНИИ БИБЛИОТЕКИ STDIO.H

Ввод: scanf(<строка формата>,<список переменных>);

Вывод: printf(<строка формата>,<список переменных >);

ОСНОВНЫЕ ФОРМАТЫ: %d – аргумент рассматривается как целое 10-тичное число со знаком

%u – целое 10-тичное без знака

%x – 16-ричное целое без знака

%o – 8-ричное целое без знака

1.6.Представление значений в памяти ЭВМ:

Занимает 4 байта

0..30 бит- значение числа

31 бит- знак


 

Определение операций

Арифметические: + (сложение),- (вычитание),* (умножение),

/ (целочисленное деление), % (вычисление остатка)

++(инкремент)

--(декремент)

Сравнения: <,<=,>,>=,==,!=

Поразрядные: ~(НЕ),&(И),|(ИЛИ),^(исключающее ИЛИ)

Побитового сдвига: <<(сдвиг влево),>>(сдвиг вправо)

Составные операции присваивания: +=, –=, *=, /=, %=,>>=,<<=,&=,|=,^=,~=

Логические:!(НЕ),&&(И),||(ИЛИ),^(исключающее ИЛИ)

2.4.Определение процедур и функций, которые могут применяться к этому типу:

srand(), sizeof()

2.5.Ввод/вывод:

ПРИ ИСПОЛЬЗОВАНИИ БИБЛИОТЕКИ IOSTREAM

Ввод: cin >> <переменная>;

Вывод: cout << <переменная>;

ПРИ ИСПОЛЬЗОВАНИИ БИБЛИОТЕКИ STDIO.H

Ввод: scanf(<строка формата>,<список переменных>);

Вывод: printf(<строка формата>,<список переменных >);

ОСНОВНЫЕ ФОРМАТЫ: %d – аргумент рассматривается как целое 10-тичное число со знаком

%u – целое 10-тичное без знака

%x – 16-ричное целое без знака

%o – 8-ричное целое без знака

2.6.Представление значений в памяти ЭВМ:

Занимает 4 байта

0..31 бит- значение числа


 

Short-короткое целое

Определение операций

Арифметические: + (сложение),- (вычитание),* (умножение),

/ (целочисленное деление), % (вычисление остатка)

++(инкремент)

--(декремент)

Сравнения: <,<=,>,>=,==,!=

Поразрядные: ~(НЕ),&(И),|(ИЛИ),^(исключающее ИЛИ)

Побитового сдвига: <<(сдвиг влево),>>(сдвиг вправо)

Составные операции присваивания: +=, –=, *=, /=, %=,>>=,<<=,&=,|=,^=,~=

Логические:!(НЕ),&&(И),||(ИЛИ),^(исключающее ИЛИ)

3.4.Определение процедур и функций, которые могут применяться к этому типу:

sizeof()

3.5.Ввод/вывод:

ПРИ ИСПОЛЬЗОВАНИИ БИБЛИОТЕКИ IOSTREAM

Ввод: cin >> <переменная>;

Вывод: cout << <переменная>;

ПРИ ИСПОЛЬЗОВАНИИ БИБЛИОТЕКИ STDIO.H

Ввод: scanf(<строка формата>,<список переменных>);

Вывод: printf(<строка формата>,<список переменных >);

ОСНОВНЫЕ ФОРМАТЫ: %d – аргумент рассматривается как целое 10-тичное число со знаком

%u – целое 10-тичное без знака

%x – 16-ричное целое без знака

%o – 8-ричное целое без знака

3.6.Представление значений в памяти ЭВМ:

Занимает 2 байта

0..14 бит- значение числа

15 бит- знак

Определение операций

Арифметические: + (сложение),- (вычитание),* (умножение),

/ (целочисленное деление), % (вычисление остатка)

++(инкремент)

--(декремент)

Сравнения: <,<=,>,>=,==,!=

Поразрядные: ~(НЕ),&(И),|(ИЛИ),^(исключающее ИЛИ)

Побитового сдвига: <<(сдвиг влево),>>(сдвиг вправо)

Составные операции присваивания: +=, –=, *=, /=, %=,>>=,<<=,&=,|=,^=,~=

Логические:!(НЕ),&&(И),||(ИЛИ),^(исключающее ИЛИ)

4.4.Определение процедур и функций, которые могут применяться к этому типу:

sizeof()

4.5.Ввод/вывод:

ПРИ ИСПОЛЬЗОВАНИИ БИБЛИОТЕКИ IOSTREAM

Ввод: cin >> <переменная>;

Вывод: cout << <переменная>;

ПРИ ИСПОЛЬЗОВАНИИ БИБЛИОТЕКИ STDIO.H

Ввод: scanf(<строка формата>,<список переменных>);

Вывод: printf(<строка формата>,<список переменных >);

ОСНОВНЫЕ ФОРМАТЫ: %d – аргумент рассматривается как целое 10-тичное число со знаком

%u – целое 10-тичное без знака

%x – 16-ричное целое без знака

%o – 8-ричное целое без знака

4.6.Представление значений в памяти ЭВМ:

Занимает 2 байта

0..15 бит- значение числа


 

Long-длинное целое

Определение операций

Арифметические: + (сложение),- (вычитание),* (умножение),

/ (целочисленное деление), % (вычисление остатка)

++(инкремент)

--(декремент)

Сравнения: <,<=,>,>=,==,!=

Поразрядные: ~(НЕ),&(И),|(ИЛИ),^(исключающее ИЛИ)

Побитового сдвига: <<(сдвиг влево),>>(сдвиг вправо)

Составные операции присваивания: +=, –=, *=, /=, %=,>>=,<<=,&=,|=,^=,~=

Логические:!(НЕ),&&(И),||(ИЛИ),^(исключающее ИЛИ)

5.4.Определение процедур и функций, которые могут применяться к этому типу:

ldiv(), labs(), sizeof()

5.5.Ввод/вывод:

ПРИ ИСПОЛЬЗОВАНИИ БИБЛИОТЕКИ IOSTREAM

Ввод: cin >> <переменная>;

Вывод: cout << <переменная>;

ПРИ ИСПОЛЬЗОВАНИИ БИБЛИОТЕКИ STDIO.H

Ввод: scanf(<строка формата>,<список переменных>);

Вывод: printf(<строка формата>,<список переменных >);

ОСНОВНЫЕ ФОРМАТЫ: %d – аргумент рассматривается как целое 10-тичное число со знаком

%u – целое 10-тичное без знака

%x – 16-ричное целое без знака

%o – 8-ричное целое без знака

5.6.Представление значений в памяти ЭВМ:

Занимает 4 байта

0..30 бит- значение числа

31 бит- знак


 

Определение операций

Арифметические: + (сложение),- (вычитание),* (умножение),

/ (целочисленное деление), % (вычисление остатка)

++(инкремент)

--(декремент)

Сравнения: <,<=,>,>=,==,!=

Поразрядные: ~(НЕ),&(И),|(ИЛИ),^(исключающее ИЛИ)

Побитового сдвига: <<(сдвиг влево),>>(сдвиг вправо)

Составные операции присваивания: +=, –=, *=, /=, %=,>>=,<<=,&=,|=,^=,~=

Логические:!(НЕ),&&(И),||(ИЛИ),^(исключающее ИЛИ)

6.4.Определение процедур и функций, которые могут применяться к этому типу:

sizeof()

6.5.Ввод/вывод:

ПРИ ИСПОЛЬЗОВАНИИ БИБЛИОТЕКИ IOSTREAM

Ввод: cin >> <переменная>;

Вывод: cout << <переменная>;

ПРИ ИСПОЛЬЗОВАНИИ БИБЛИОТЕКИ STDIO.H

Ввод: scanf(<строка формата>,<список переменных>);

Вывод: printf(<строка формата>,<список переменных >);

ОСНОВНЫЕ ФОРМАТЫ: %d – аргумент рассматривается как целое 10-тичное число со знаком

%u – целое 10-тичное без знака

%x – 16-ричное целое без знака

%o – 8-ричное целое без знака

6.6.Представление значений в памяти ЭВМ:

Занимает 4 байта

0..31 бит- значение числа


 

Char-символьный

Определение операций

Арифметические: + (сложение),- (вычитание),* (умножение),

/ (целочисленное деление), % (вычисление остатка)

++(инкремент)

--(декремент)

Сравнения: <,<=,>,>=,==,!=

Поразрядные: ~(НЕ),&(И),|(ИЛИ),^(исключающее ИЛИ)

Побитового сдвига: <<(сдвиг влево),>>(сдвиг вправо)

Составные операции присваивания: +=, –=, *=, /=, %=,>>=,<<=,&=,|=,^=,~=

Логические:!(НЕ),&&(И),||(ИЛИ),^(исключающее ИЛИ)

7.3.Определение процедур и функций, которые могут применяться к этому типу:

sizeof()

7.4.Ввод/вывод:

ПРИ ИСПОЛЬЗОВАНИИ БИБЛИОТЕКИ IOSTREAM

Ввод: cin >> <переменная>;

Вывод: cout << <переменная>;

ПРИ ИСПОЛЬЗОВАНИИ БИБЛИОТЕКИ STDIO.H

Ввод: scanf(<строка формата>,<список переменных>);

Вывод: printf(<строка формата>,<список переменных >);

ОСНОВНЫЕ ФОРМАТЫ: %d – аргумент рассматривается как целое 10-тичное число со знаком

%u – целое 10-тичное без знака

%x – 16-ричное целое без знака

%o – 8-ричное целое без знака

%c – символ

7.5.Представление значений в памяти ЭВМ:

Занимает 1 байта

0..6 бит- значение числа

7 бит- знак


 

Unsigned Char-символьный

Определение операций

Арифметические: + (сложение),- (вычитание),* (умножение),

/ (целочисленное деление), % (вычисление остатка)

++(инкремент)

--(декремент)

Сравнения: <,<=,>,>=,==,!=

Поразрядные: ~(НЕ),&(И),|(ИЛИ),^(исключающее ИЛИ)

Побитового сдвига: <<(сдвиг влево),>>(сдвиг вправо)

Составные операции присваивания: +=, –=, *=, /=, %=,>>=,<<=,&=,|=,^=,~=

Логические:!(НЕ),&&(И),||(ИЛИ),^(исключающее ИЛИ)

8.3.Определение процедур и функций, которые могут применяться к этому типу:

sizeof()

8.4.Ввод/вывод:

ПРИ ИСПОЛЬЗОВАНИИ БИБЛИОТЕКИ IOSTREAM

Ввод: cin >> <переменная>;

Вывод: cout << <переменная>;

ПРИ ИСПОЛЬЗОВАНИИ БИБЛИОТЕКИ STDIO.H

Ввод: scanf(<строка формата>,<список переменных>);

Вывод: printf(<строка формата>,<список переменных >);

ОСНОВНЫЕ ФОРМАТЫ: %d – аргумент рассматривается как целое 10-тичное число со знаком

%u – целое 10-тичное без знака

%x – 16-ричное целое без знака

%o – 8-ричное целое без знака

%c – символ

8.5.Представление значений в памяти ЭВМ:

Занимает 1 байта

0..7 бита- значение числа


 

Float-вещественное

Определение операций

Арифметические: + (сложение),- (вычитание),* (умножение),/ (деление)

Сравнения: <,<=,>,>=,==,!=

Составные операции присваивания: +=, –=, *=, /=

9.4.Определение процедур и функций, которые могут применяться к этому типу:

ТРИГОНОМЕТРИЧЕСКИЕ: ВСЕ

МАТИМАТИЧЕСКИЕ: ВСЕ

ОСТАЛЬНЫЕ: sizeof()

9.5.Ввод/вывод:

ПРИ ИСПОЛЬЗОВАНИИ БИБЛИОТЕКИ IOSTREAM

Ввод: cin >> <переменная>;

Вывод: cout << <переменная>;

ПРИ ИСПОЛЬЗОВАНИИ БИБЛИОТЕКИ STDIO.H

Ввод: scanf(<строка формата>,<список переменных>);

Вывод: printf(<строка формата>,<список переменных >);

ОСНОВНЫЕ ФОРМАТЫ: %f – вещественное с фиксированной точкой

%e – вещественное с плавающей точкой

9.6.Представление значений в памяти ЭВМ:

Занимает 4 байт

0..22 бит-мантисса

23..30 бит-порядок

31 бит-знак

Определение операций

Арифметические: + (сложение),- (вычитание),* (умножение),/ (деление)

Сравнения: <,<=,>,>=,==,!=

Составные операции присваивания: +=, –=, *=, /=

10.4. Определение процедур и функций, которые могут применяться к этому типу:

ТРИГОНОМЕТРИЧЕСКИЕ: ВСЕ

МАТЕМАТИЧЕСКИЕ: ВСЕ

ОСТАЛЬНЫЕ: sizeof()

10.5. Ввод/вывод:

ПРИ ИСПОЛЬЗОВАНИИ БИБЛИОТЕКИ IOSTREAM

Ввод: cin >> <переменная>;

Вывод: cout << <переменная>;

ПРИ ИСПОЛЬЗОВАНИИ БИБЛИОТЕКИ STDIO.H

Ввод: scanf(<строка формата>,<список переменных>);

Вывод: printf(<строка формата>,<список переменных >);

ОСНОВНЫЕ ФОРМАТЫ: %f – вещественное с фиксированной точкой

%e – вещественное с плавающей точкой

10.6. Представление значений в памяти ЭВМ:

Занимает 8 байт

0..51 бит-мантисса

52..62 бит-порядок

63 бит-знак

Определение операций

Арифметические: + (сложение),- (вычитание),* (умножение),/ (деление)

Сравнения: <,<=,>,>=,==,!=

Составные операции присваивания: +=, –=, *=, /=

11.4. Определение процедур и функций, которые могут применяться к этому типу:

ТРИГОНОМЕТРИЧЕСКИЕ: ВСЕ

МАТИМАТИЧЕСКИЕ: ВСЕ

ОСТАЛЬНЫЕ: sizeof()

11.5. Ввод/вывод:

ПРИ ИСПОЛЬЗОВАНИИ БИБЛИОТЕКИ IOSTREAM

Ввод: cin >> <переменная>;

Вывод: cout << <переменная>;

ПРИ ИСПОЛЬЗОВАНИИ БИБЛИОТЕКИ STDIO.H

Ввод: scanf(<строка формата>,<список переменных>);

Вывод: printf(<строка формата>,<список переменных >);

ОСНОВНЫЕ ФОРМАТЫ: %f – вещественное с фиксированной точкой

%e – вещественное с плавающей точкой

11.6. Представление значений в памяти ЭВМ:

Занимает 10 байт

0..63 бит-мантисса

64..78 бит-порядок

79 бит-знак


 

Составные типы данных Си

Struct - структура

Определение операций

Определяется только для каждого поля

Обусловлен базовым типом каждого поля непосредственно

1.4.Определение процедур и функций, которые могут применяться к этому типу:

Обусловлен базовым типом каждого поля непосредственно

struct DATATYPE {

int value_1; //поле типа int - 2 байта

float value_2; //поле типа float - 4 байта

char value_3; //поле типа char - 1 байт

};

 

При последующем объявлении переменных, относящихся к DATATYPE, в Си обязательно использование ключевого слова struct, в С++ - не обязательно.

struct

DATATYPE type1; // объявление type1 типа DATATYPE (union) в Си

DATATYPE type1; // объявление type1 типа DATATYPE (union) в С++

 

Получить размер любой переменной, относящейся к DATATYPE можно через функцию sizeof.

Для type1 размер = sizeof(type1);

1.5.Ввод/вывод:

Операции ввода/вывода для каждого поля эквивалентны операциям, предусмотренным для типов этих полей.

Обращение к каждому полю происходит через «.» (точку).

type1.value_1 = 5; //присвоили полю value_1 значение 5

type1.value_2 = 3.1; //присвоили полю value_2 значение 3.1

1.6.Представление значений в памяти ЭВМ:

В памяти все поля структуры располагаются последовательно, общий размер структуры равен сумме размеров каждого поля (для type1 будет равен 2+4+1=7 байт).


 

Union - объединение

Определение операций

Определяется только для каждого поля

Обусловлен базовым типом каждого поля непосредственно

2.4.Определение процедур и функций, которые могут применяться к этому типу:

Обусловлен базовым типом каждого поля непосредственно

union DATATYPE // Объявление нового типа union («объединение») – DATATYPE

{

char ch; //поле типа char - 1 байт

int i; //поле типа int - 2 байта

float f; //поле типа float - 4 байта

double d; //поле типа double - 8 байт

};

 

При последующем объявлении переменных, относящихся к DATATYPE, в Си обязательно использование ключевого слова union, в С++ - не обязательно.

union DATATYPE var1; // объявление var2 типа DATATYPE (union) в Си

DATATYPE var1; // объявление var1 типа DATATYPE (union) в С++

 

Каждое поле, хранящееся в union-е, может содержать любое значение заданного типа.

var1.i = 6; // Использовать переменную как целое (int)

var1.d = 5.327; // Использовать переменную как дробную (double)

 

Получить размер любой переменной, относящейся к DATATYPE можно через функцию sizeof.

Для var1 размер = sizeof(var1);

2.5.Ввод/вывод:

Операции ввода/вывода для каждого поля эквивалентны операциям, предусмотренных для типов этих полей.

Обращение происходит через «.» (точку).

2.6.Представление значений в памяти ЭВМ:

Каждый новый тип, описанный как union, занимает в памяти число байт, равное размеру максимального поля этого типа. Так, например, описанный выше тип DATATYPE занимает 8 байт в памяти, т.к. его поле максимальной длины – d (double занимает в памяти 8 байт).


 

Enum – перечисление

Определение операций

После того, как определено перечисление, можно создавать переменные нового типа и работать с ними:

cardinal_dirs ch = north;

 

В данном случае переменные типа cardinal_dirs могут принимать только четыре значения: north, south, east, west. Элементы в перечислении нумеруются от нуля. Т.е. north = 0, east = 1, south = 2, west = 3. Вместо перечисления можно было создать четыре константы:

const int north = 0;

const int east = 1;

const int south = 2;

const int west = 3;

3.4.Определение процедур и функций, которые могут применяться к этому типу:

sizeof()

3.5.Ввод/вывод:

нет.

3.6.Представление значений в памяти ЭВМ:

В памяти cardinal_dirs также будет записана как ряд констант: четыре целые значения, по 2 байта каждое (итого: 2 байта * 4 элемента = 8 байт занимают все элементы). Имена (north/east/south/west) определены только в пределах исходного кода программы.


 

Статические массивы

Определение операций

Определяется только для каждого поля

Обусловлен базовым типом каждого поля непосредственно

 

Пример объявления одномерного массива:

int x[5]; //создать массив из шести элементов целого типа.

Далее можно обратиться к каждому элементу массива - например, использовать операцию присваивания:

x[0]=1;

x[1]=2;

x[2]=3;

x[3]=4;

x[4]=5;

Т.е. нумерация элементов всегда идет с нулевого элемента.

4.4.Определение процедур и функций, которые могут применяться к этому типу:

sizeof(),

4.5.Ввод/вывод:

операции ввода/вывода – как для переменных базового типа (в данном случае типа int). Можно последовательно ввести или вывести весь массив, циклически изменяя индекс элемента.

4.6.Представление значений в памяти ЭВМ:

В памяти элементы массива хранятся последовательно, «друг за другом». Размер каждого элемента равен занимаемому объему памяти базового типа. Так, массив из пяти элементов типа int займет 5*2=10 байт в памяти. В «многомерных» массивах элементы хранятся «по строкам», также последовательно.


 

Динамические массивы

Определение операций

Определяется только для каждого поля

Обусловлен базовым типом каждого поля непосредственно

* - взятие значения по адресу

& - взятие адреса

Пусть есть некоторая переменная n типа int, равная 5 – ее можно задать ранее каким-либо способом, либо получить в процессе работы программы. Далее нужно создать динамический массив размерности n.

 

int *p; //объявляем указатель

5.4.Определение процедур и функций, которые могут применяться к этому типу:

p = (int *) malloc (n*sizeof(int)); //выделили область памяти размером n*(размер типа int) – т.е. 2*5=10 байт, указатель на начало области памяти вернули в p

 

после работы с массивом необходимо освободить память:

free((void*) p);

 

sizeof()

можно применять функции указателей

5.5.Ввод/вывод:

операции ввода/вывода – как для переменных базового типа (в данном случае типа int). Можно последовательно ввести или вывести весь массив, циклически изменяя индекс элемента.

5.6.Представление значений в памяти ЭВМ:

В памяти элементы массива хранятся последовательно, «друг за другом». Размер каждого элемента равен занимаемому объему памяти базового типа..


 

Указатели

Определение операций

Присвоение указателю адреса переменной:

int c = 10;

int *ptr = &c;

* - взятие значения по адресу

& - взятие адреса (получение ссылки)

 

Ссылка - это, в принципе, тот же указатель, но с упрощенным синтаксисом.

int a; // - переменная типа int

int &b = a; // - ссылка на a

Если функции параметр передается как ссылка, то функция работает не с копией параметра, а с самим параметром.

 

Арифметические: +, -

Сравнения: <,<=,>,>=,==,!=

Логические:!(НЕ),&&(И),||(ИЛИ)

1.4.Определение процедур и функций, которые могут применяться к этому типу:

Прочее: free(), ctime(), asctime(), gmtime(), localtime(), setlocale(), strftime(),time(), realloc(), atexit(), atof(), atoi(), atol(), atoll(), bsearch(),getenv(), mblen(), mbstowcs(), mbtowc(), qsort(), signal(), strtod(),strtof(), strtol(), strtold(), strtoul(), system(), wcstombs(), wctomb(), memchr(), memcmp(), memcpy(), memmove(), memset(), strcat(),strchr(), strcmp(), strcoll(), strcpy(), strcspn(), strerror(), strlen(),strncat(), strncmp(), strncpy(), strpbrk(), strrchr(), strspn(), strstr(),strtok(), strxfrm(), sizeof(),

fclose(), feof(), ferror(), fflush(), fgetc(), fgetpos(), fgets(), fopen(), fprintf(), fputc(),

fputs(), fread(), freopen(), fscanf(), fseek(), fsetpos(), ftell(), fwrite(), getc(), gets(), perror(), printf(), putc(), puts(), remove(), rename(), rewind(), scanf(), setbuf(),setvbuf(), snprintf(), sp



Поделиться:


Последнее изменение этой страницы: 2016-08-06; просмотров: 288; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.58.45.238 (0.011 с.)