Лекции, страница 4
Описание файла
PDF-файл из архива "Лекции", который расположен в категории "". Всё это находится в предмете "основы конструкторско-технологической информатики (окти)" из 2 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 4 страницы из PDF
Первыепять ключевых слов определяют целые типы данных, последние два - типы данных с плавающей точкой.Описание различных типов, переменные и константыЦелые числа. У целого числа никогда не бывает дробной части. Представив целое число в двоичном виде,его нетрудно разместить в машине. Например, число 3 в двоичном виде выглядит как 11. Если его поместить вслово 32-разрядной машины, необходимо первые 30 бит установить в 0, а последние 2 бита - в 1.Числа с плавающей точкой. Числа с плавающей точкой соответствуют тому, что математики называютвещественными числами.
Способ кодирования, используемый для помещения в память числа с плавающей точкой,полностью отличается от размещения целого числа. Числа с плавающей точкой представляют в виде дробнойчасти и порядка числа, а затем обе части размещают в памяти.Все данные типов int, short, long являются числами со знаками, т.е. значениями этих типов могут бытьтолько целые числа - положительные, отрицательные и нуль. Один бит используется для указания знака числа,поэтому максимальное число со знаком, которое можно представить в слове, меньше, чем максимальное число беззнака.Описание данных целого типа.
При описании данных необходимо написать только тип, за которым долженследовать список имен переменных. Например, int dog, rad, nina. В качестве разделителя между именамипеременных необходимо использовать запятую. Целые константы. Согласно правилам языка Си, число бездесятичной точки и без показателя степени рассматривается как целое. Поэтому компилятор по записи константыопределяет, целая она или вещественная. Если нужно ввести константу типа long, то нужно указать признак L или lв конце числа.
Если при записи константы целое начинается с цифры 0, то эта константа интерпретируется каквосьмеричное число, если же целое начинается с символа 0x или 0X - как шестнадцатеричное число.Инициализация переменных целого типа. Константы применяются при инициализации переменных. Этоозначает присваивание переменной некоторого значения перед началом обработки. Можно инициализироватьпеременную в операторе описания.Например,int dog=5;int rad=077;int nina =0X99;Описание данных типа unsigned. Этот тип является модификатором типов: int, short, long. Мы можемиспользовать комбинацию ключевых слов unsigned int, unsigned short, unsigned long, т.е. переменная не можетпринимать отрицательного значения.
Для указания типа unsigned int достаточно написать unsigned. Целыебеззнаковые константы записываются так же, как и обычные константы, запрещено только использование знакаминус. Например:short s = 65535;unsigned short u = 65535;printf("short = %d \n unsigned short = %d ", s, u);Выдас для первой переменной значение -1, а для второй 65535.Рис. 1.9 Вывод значений short и unsigned shortОписание данных типа char. Этот тип определяет целые числа без знака в диапазоне от 0 до 255. Такоецелое обычно размещается в одном байте памяти. Для описания символьной переменной применяется ключевоеслово char. Правила описания более чем одной переменной и инициализации переменных остаются теми же, что идля других основных типов.
Например:11char dog, cat;Символьные константы. Символы в языке Си заключаются в апострофы. Например:char dog;dog='b';Если апострофы опущены, то компилятор считает, что используется неописанная переменная b. В стандартномязыке Си значением переменной или константы типа char могут быть только одиночные символы. Примерысимвольных констант:'A', 'a', '7', '$'.Специальные (управляющие) символьные константы.Новая строка (перевод строки) '\n'Горизонтальная табуляция'\t'Вертикальная табуляция'\v'Возврат на шаг'\b'Возврат каретки'\r'Перевод формата'\f'Обратная косая'\\'Апостроф'\''Кавычки'\"'Нулевой символ (пусто)'\0'Строковые константы.Строковая константа представляется последовательностью символов кода ASCII, заключенной в кавычки.Например:"Это строковая константа"В конце каждой строки компилятор помещает нулевой символ '\0', отмечающий конец данной строки.Каждая строковая константа, даже если она идентична другой строковой константе, сохраняется в отдельном местепамяти.
Если необходимо ввести в строку символ кавычек ("), то перед ними надо поставить символ обратнойкосой (\). В строку могут быть введены любые специальные символьные константы, перед которыми стоит символ\. Символ \ и следующий за ним символ новой строки игнорируется.Данных типа float и double. Числа с плавающей точкой в языке С++ описываются типом float. Числа сплавающей точкой аналогичны числам в обычной алгебраической записи, используемой при работе с оченьбольшими или малыми числами.Обычно для размещения в памяти числа с плавающей точкой отводится 32 бита - 8 бит для представления порядкаи знака и 24 бита - для мантиссы, т.е. коэффициента при степени десяти.
Для представления данных типа double(вычисление с двойной точностью) используется удвоенное число битов. Другой способ определения данных типаdouble заключается в использовании ключевых слов long float. Переменные с плавающей точкой описываются иинициализируются таким же образом, что и переменные целого типа. Например:float dog, cat, bigword=5.77e+34;Константы с плавающей точкой. В языке Си имеется несколько возможностей записи констант сплавающей точкой. Наиболее общая форма записи константы - это последовательность десятичных цифр сознаком, включающим в себя десятичную точку, затем символ e или Е и показатель степени по основанию 10 сознаком.
Знак (+) можно не писать. Ниже приведено несколько правильно записанных констант с плавающейточкой:1.1e+123.14159Символьные строки. Символьная строка - это последовательность символов, возможно пустая ("").Рассмотрим пример:"Большой спрос на образование в областиинформационных дисциплин объясняется не толькопопулярностью компьютеров в современном обществе,но и реальной пользой от их применения."Кавычки не являются частью строки. Они вводятся только для того, чтобы отметить ее начало и конец.
Вязыке Си нет специального типа, который можно было бы использовать для описания строк. Вместо этого строкипредставляются в виде "набора" элементов типа char. Это означает, что символы в строке можно представитьрасположенными в соседних ячейках памяти - по одному символу в ячейке. Символ \0 в языке Си используется длятого, чтобы отмечать конец строки. Нуль-символ не выводится на печать и в таблице кода ASCII (AmericanStandard Code for Information Interchange) имеет номер 0.
Наличие нуль-символа означает, что количество ячеекмассива символов должно быть на одну больше, чем число символов строки.12Массив можно представить как совокупность нескольких ячеек памяти, объединенных в одну строку.Массив - это упорядоченная последовательность элементов данных одного типа. Массив из 177 ячеек памяти, вкаждую из которых, к примеру, помещается один символ типа char, можно задать с помощью оператора описания:char String[177];Квадратные скобки указывают, что переменная String - массив из 177 элементов, а char задает тип каждогоэлемента.
Длину строки в символах (без завершающего символа) определяет функция strlen( ). Обращение к ней внашем примере выглядит так:strlen(String);Результат - целое число.ЗАДАНИЯ1. Напишите программу, которая переводит секунды в дни, часы, минуты и секунды. Количество переводимыхсекунд запрашивать у пользователя.Результат выводить в виде:N секунд это:дней:dчасов: hминут: mсекунд: sДля ввода чисел используйте оператор scanf(“%format”,a), гдеformat: %d – для переменных типа int, %3.2f – для переменных типа double, float (первое число – количествосимволов целой части, второе число – количество десятичных разрядов), %c – для переменных типа char, %s – длястроковых переменных.2.
Напишите программу, переводящую скорость из километров в час в метры в секундах.Количество переводимых км/ч запрашивать у пользователя.Результат выводить в виде: N км/ч = M м/cAрифметические и логические операцииОператор присваиванияОператор присваивания является основой любого алгоритмического языка (см. лекцию3). В Си он записывается с помощью символа равенства, например, строкаx = 100;означает присвоение переменной x значения 100. Для сравнения двух значений используетсядвойное равенство ==, например, строкаbool f = (2 + 2 == 5);присваивает логической переменной f значение false (поскольку 2+2 не равно пяти, логическоевыражение в скобках ложно).Непривычным для начинающих может быть то, что оператор присваивания "=" в Си бинарная операция, такая же, как, например, сложение или умножение.
Значением операцииприсваивания = является значение, которое присваивается переменной, стоящей в левой части.Это позволяет использовать знак присваивания внутри выражения, например, x = (y = sin(z)) +1.0;Здесь в скобках стоит выражение y = sin(z), в результате вычисления которого переменной yприсваивается значение sin z. Значением этого выражения является значение, присвоенноепеременной y, т.е. sin z. К этому значению затем прибавляется единица, т.е. в результатепеременной x присваивается значение sin z+1.Выражения, подобные приведенному в этом примере, иногда используются, когданеобходимо запомнить значение подвыражения (в данном случае sin (z)) в некоторойпеременной (в данном случае y), чтобы затем не вычислять его повторно.
Еще один пример:n = (k = 3) + 2;В результате переменной k присваивается значение 3, а переменной n - значение 5. Конечно, внормальных программах такие выражения не встречаются.Арифметические операцииК четырем обычным арифметическим операциям сложения +, вычитания -, умножения * иделения / в Си добавлена операция нахождения остатка от деления первого целого числа навторое, которая обозначается символом процента %. Приоритет у операции вычисления остатка13% такой же, как и у деления или умножения. Отметим, что операция % перестановочна соперацией изменения знака (унарным минусом), например, в результате выполнения двух строкx = -(5 % 3);y = (-5) % 3;обеим переменным x и y присваивается отрицательное значение -2.Операции увеличения и уменьшенияВ Си добавлены операции увеличения и уменьшения на единицу, которые, к примеру,очень удобно применять к счетчикам.
Операция увеличения записывается с помощью двухзнаков сложения ++, операция уменьшения - с помощью двух минусов --. Например, операция++, примененная к целочисленной переменной i, увеличивает ее значение на единицу:++i;эквивалентно i = i+1Операции увеличения и уменьшения на единицу можно применять только к дискретнымтипам - целочисленным переменным различного вида и указателям. Операцию нельзяприменять к вещественным переменным! Например, следующий фрагмент программы являетсяошибочным:double x;.