Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
инфа экзамен / семинарские вопросы.docx
Скачиваний:
157
Добавлен:
23.03.2016
Размер:
100.27 Кб
Скачать

1) Системы счисления. Перевод чисел из одной системы счисления в другую

Система счисления – это соглашение о представлении чисел посредством конечной совокупности символов (цифр) A = {a0, a1, …, an-1}, называемой алфавитом. Каждой цифре ставится в соответствие определенный количественный эквивалент.

Системы счисления разделяют на позиционные и непозиционные. Рассмотрим эти системы счисления.

Непозиционная система счисления – это система, в которой цифры не меняют своего количественного эквивалента в зависимости от местоположения (позиции) в записи числа.

К непозиционным системам счисления относится система римских цифр, основанная на употреблении латинских букв для десятичных разрядов I = 1, X = 10, С = 100, М = 1000 и их половин V = 5, L = 50, D = 500.

Непозиционные системы счисления обладают следующими недостатками:

- сложность представления больших чисел (больше 10000);

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

Из-за перечисленных недостатков числа принято записывать с помощью позиционных систем счисления.

Позиционная система счисления – это система, в которой количественный эквивалент цифры зависит от ее положения в числе. Примером позиционной системы счисления является используемая нами десятичная система счисления.

Основание позиционной системы счисления – это количество символов в ее алфавите. Например, в десятичной системе счисления десять цифр, поэтому она имеет основание n = 10. Позиционная система счисления с основанием n называется n-ичной.

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

Перевод целого числа X осуществляется по следующему алгоритму:

1) получить цифру числа n-ой системы счисления как остаток от деления числа X на основание новой системы счисления n; полученную цифру приписать слева от имеющихся цифр;

2) принять за X частное от деления числа X на основание системы счисления n;

3) выполнять шаги 1-2, пока X  0.

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

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

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

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

Перевод дробных чисел с нулевой целой частью из десятичной в n-ую систему счисления - дробное число X, у которого целая часть равна 0, переводится из десятичной в n-ую систему счисления по следующему алгоритму:

1) умножить X на n;

2) получить цифру как целую часть числа X и приписать ее справа от имеющихся цифр;

3) обнулить целую часть числа X;

4) выполнять шаги 1-3, пока X  0 (при точном переводе) или до получения нужного количества цифр в дробной части (при приближенном переводе с заданной точностью).

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

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

2) Операторы в С++ и приоритеты операций. Оператор присваивания и его сокращенные формы

Оператор – это символ, который указывает компилятору на выполнение конкретных математических действий или логических манипуляций. В С++ имеется четыре общих класса операторов: арифметические, поразрядные, логические и операторы отношений. Помимо них определены другие операторы специального назначения.

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

Операторы отношений и логические операторы: ||, &&, ==, !=, >, >=, <, <=, ! (расположены в порядке возрастания приоритета).

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

Поразрядные оператоы: &, |, ^, >>, <<, `.

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

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

 

int I=5, K; float X , Y=2.3;

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

 

K = -tan(pi/3); //K получит значение -1

Есть и сокращенные формы операторов присваивания. Они бывают двух видов: одноместные и двуместные.

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

Знаками двуместных операторов присваивания являются составные знаки, состоящие из знака операции (для числовых данных это знаки + - * / %) и знака =. Так, е с-ли X - переменная, которой присваивается новое значение, а W выражение, то оператор

X += W // эквивалентен оператору X = X + W.

3) Язык С++. Типы данных в C++. Стандартные библиотечные функции. #include. Математические функции "math.h"

В С++ определено 7 основных типов данных: символьный, символьный двубайтовый, целочисленный, с плавающей точкой, с плавающей точкой двойной точности, логический (или булев), и «не имеющий значения». Для объявления этих типов используются ключевые слова char, wchar_t, int, float, double, bool и void. Переменные типа char используюются для хранения 8-разрядных ASCII- символов( букв алфавита и пр.) либо других 8-разрядных значений. Чтобы задать символ, необходимо заключить его в одинарные кавычки. Тип wchar_t предназначен для хранения символов, входящих в состав больших символьных наборов. Например, в некоторых естественных языках( например китайском) определено очень большое количество символов, для которых 8-разрядное представление весьма недостаточно. Переменные типа int позволяют хранить целочисленные значения. Переменные этого типа часто используются для управления циклами и в условных конструкциях. К переменным типа float и double обращаются либо для обработки чисел с дробной частью, либо при необходимости выполнения операций надо очень большими или очень малыми числами. Они лишь различаются значением наибольшого( и наименьшего) числа, которые можно хранить с помощью переменных этих типов. Тип bool предназначен для хранения булевых( т.е. ИСТИНА/ЛОЖЬ) значений. В С++ определены две булевые константы: true и false, являющиеся единственными значения, которые могут иметь переменные типа bool.

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

Директива препроцессора #include обязывает компилятор включить либо стандартный заголовок, либо другой исходный файл, имя которого указано в директиве. Имя стандартных заголовков заключается в угловые скобки. При включении другого исходного файла его имя может быть указано в двойных кавычках или угловых скобках. Если имя файла заключено в угловые скобки, то поиск файла будет осуществляться в одном или нескольких специальных каталогах, определённых конкретной реализацией. Если же имя файла заключено в кавычки, поиск файла выполняется, как правило, в текущем каталоге.

math.h — заголовочный файл стандартной библиотеки языка программирования С++, разработанный для выполнения простых математических операций. Большинство функций привлекают использование чисел с плавающей точкой. Все эти функции принимают double, если не определено иначе. Для работы с типами float и long double используются функции с постфиксами f и l соответственно. Все функции, принимающие или возвращающие угол, работают с радианами.

Соседние файлы в папке инфа экзамен