Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Dokument_Microsoft_Word_PROGA.docx
Скачиваний:
5
Добавлен:
28.09.2019
Размер:
156.22 Кб
Скачать

12) Вычисление размерности данных и массивов в байтах

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

Пример:

#include<iosteam.h>

int main()

{double fm[]={1,2,3,4},n,k,z,l=4;

n= sizeof fm/(sizeof)double; //размер массива

k=sizeof fm;//размер массива в байтах

z=sizeof l;//размер элемента в байтах

cout<<”n=”<<n<<endl;

cout<<”k=”<<k<<endl;

cout<<”z=”<<z<<endl;

return 0;}

13) Оператор выбора. Привести примеры

switch – оператор выбора

Применение:

switch (целое_выражение ){

[объявления]

[case константное_целое_выражение1:]

. . .

[case константное_целое_выражение2: ]

[операторы]

. . .

[case константное_целое_выражение m:]

. . .

[case константное_целое_выражение n:]

[операторы]

[default:] [операторы] }

пример:

#include<iostream.h>

int main()

{int a;

float b;

cin>>a>>b;

switch(a)

{case 1:cout<<b<<" kilogram";break;

case 2:cout<<b<<" miligramm";break;

case 3:cout<<b<<" gramm";break;

case 4:cout<<b<<" tonn";break;

case 5:cout<<b<<" zentner";break;

default:cout<<" oshipka";

}

return 0;

14) Операция вычисления размерности данных. Привести примеры.

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

Пример:

#include<iosteam.h>

int main()

{double fm[]={1,2,3,4},n,k,z,l=4;

n= sizeof fm/(sizeof)double; //размер массива

k=sizeof fm;//размер массива в байтах

z=sizeof l;//размер элемента в байтах

cout<<”n=”<<n<<endl;

cout<<”k=”<<k<<endl;

cout<<”z=”<<z<<endl;

return 0;}

15.Основные  и дополнительные операции в языке С++.

Основные операции

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

Операция присваивания: =

В языке Си знак равенства не означает "равно". Он означает операцию присваивания некоторого значения.

Операция сложения: +

Выполнение операции + приводит к сложению двух величин, стоящих слева и справа от этого знака.

Операция вычитания: -

Выполнение операции вычитания приводит к вычитанию числа, расположенного справа от знака -, из числа, стоящего слева от этого знака.

Операция изменения знака: -

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

Операция умножения: *

Операция умножения обозначается знаком *.

Операция деления: /

В языке Си символ / указывает на операцию деления.

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

Дополнительные операции

В языке Си имеется около сорока операций. Те операции, которые мы рассмотрели, являются наиболее общеупотребительными. Рассмотрим еще три операции, наиболее используемые программистами.

Операция деления по модулю: %

Эта операция используется в целочисленной арифметике.

Операция увеличения: ++

Операция увеличения осуществляет следующее простое действие: она увеличивает значение своего операнда на единицу.

Операция уменьшения: --

Каждой операции увеличения соответствует некоторая операция уменьшения, при этом вместо символов ++ мы используем --.

Перечень операций языка Си

Рассмотрим множество операций языка Си.

Операции, уровень приоритета которых равен 1

Операции вызова функции, индексирования и выбора. В качестве операций языка Си рассматриваются также скобки в вызове функции, квадратные скобки для индексирования массивов, точка и стрелка вправо для выбора компонентов структуры или объединения. Уровень этих операторов равен 1, все операции выполняются слева направо.

Операция вызова функции: ( )

Операция индексирования массива: []

Операция выбора компонентов структуры или объединения: .

Операция выбора компонентов структуры с указателем: ->

Операции, уровень приоритета которых равен 2

Унарные операции.

Операция косвенной ссылки: *

Операция получения адреса: &

Операция отрицания: -

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

Операция дополнения до 1: ~

Операция увеличения: ++

Операция увеличения, постфиксная: ++

Операция уменьшения: --

Операция уменьшения (постфиксная): --

Операция определения требуемой памяти в байтах: sizeof

Операции, уровень приоритета которых равен 3

Мультипликативные операции. Порядок выполнения мультипликативных операций - слева направо.

Основные операции в языке С++.

+ - * / % (остаток от деления целых чисел).

Например, a=b+c; x=y-z; c=a*b; d=r/t;

a= b%c; 12%4 (результатт равен 0), 25%3 (результат равен 1).

x++ (операция с постусловием) или ++x (операция с предусловием) - аналогично x=x+1;

x-- (операция с постусловием) или --x (операция с предусловием) - аналогично x=x-1;

Например,

int i=3, j, k=0;

k=++i; (k=4, i=4)

k=i++; (k=3, i=4)

k=i--; (k=3, i=2)

k=--i; (i=2, k=2)

I=j=k-- (k=-1, i=0, j=0)

Дополнительные операции в языке С++.

+= -= *= /= %=.

Например,

a+=b; аналогично a=a+b;

a-=b; аналогично a=a-b;

a*=b; аналогично a=a*b;

a/=b; аналогично a=a/b;

a%=b; аналогично a=a%b;

v=8*(v2=5); (результат равен 40).

Допускается одновременное присваивание нескольким переменным одинакового значения, например, v1=v2=v3=0;

16.Целый тип данных в языке С++.

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

Целые int (4 б , диапазон значений от –32768 до 32767), short ( 2 б.), long (4 б.), unsigned int, (unsigned) unsigned short, unsigned long;

Отметим, что ключевые слова signed и unsigned необязательны. Они указывают, как интерпретируется нулевой бит объявляемой переменной, т.е., если указано ключевое слово unsigned, то нулевой бит интерпретируется как часть числа, в противном случае нулевой бит интерпретируется как знаковый. В случае отсутствия ключевого слова unsigned целая переменная считается знаковой. В том случае, если спецификатор типа состоит из ключевого типа signed или unsigned и далее следует идентификатор переменной, то она будет рассматриваться как переменная типа int. Например:

unsigned int n;

unsigned int b;

int c; (подразумевается signed int c );

unsigned d; (подразумевается unsigned int d );

signed f; (подразумевается signed int f ).

Отметим, что модификатор-типа char используется для представления символа (из массива представление символов) или для объявления строковых литералов. Значением объекта типа char является код (размером 1 байт), соответствующий представляемому символу. Для представления символов русского алфавита, модификатор типа идентификатора данных имеет вид unsigned char, так как коды русских букв превышают величину 127.

Следует сделать следующее замечание: в языке СИ не определено представление в памяти и диапазон значений для идентификаторов с модификаторами-типа int и unsigned int. Размер памяти для переменной с модификатором типа signed int определяется длиной машинного слова, которое имеет различный размер на разных машинах. Так, на 16-ти разрядных машинах размер слова равен 2-м байтам, на 32-х разрядных машинах соответственно 4-м байтам, т.е. тип int эквивалентен типам short int, или long int в зависимости от архитектуры используемой ПЭВМ. Таким образом, одна и та же программа может правильно работать на одном компьютере и неправильно на другом. Для определения длины памяти занимаемой переменной можно использовать операцию sizeof языка СИ, возвращающую значение длины указанного модификатора-типа.

Например:

a = sizeof(int);

b = sizeof(long int);

c = sizeof(unsigned long);

d = sizeof(short);

Отметим также, что восьмеричные и шестнадцатеричные константы также могут иметь модификатор unsigned. Это достигается указанием префикса u или U после константы, константа без этого префикса считается знаковой.

Например:

0xA8C (int signed );

01786l (long signed );

0xF7u (int unsigned );

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