Глава 3. Переменные и константы — КиберПедия 

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

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Глава 3. Переменные и константы

2017-09-28 266
Глава 3. Переменные и константы 0.00 из 5.00 0 оценок
Заказать работу

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

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

Во-первых, Си должен зарезервировать достаточное количество памяти для хранения введенной информации. Разные типы данных занимают больший или меньший объем памяти. Во-вторых, не все функции языка Си могут работать с данными любого типа. Если вы введете слово, в то время как программа требует введения числа, вы получите ошибку компиляции или ошибку выполнения.

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

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

Замечания по Си++
Си++ имеет те же типы данных, что и Си. Однако некоторые компиляторы Си и Си++ имеют дополнительные типы данных, не определенные в исходном K&R стандарте языка.

 

Символьные данные

Значением символьных данных (char, от английского character) может быть буква, цифра или другой символ клавиатуры. Для каждого элемента символьных данных программа отводит столько места, сколько необходимо для хранения единичного символа*, так что, если вы используете пять различных элементов символьных данных, ваш компьютер зарезервирует пять элементов памяти (рис.3.1).

____________________

* Переменная типа char имеет размер, естественный для хранения символа на данной машине, обычно 1 байт (8 бит). (Прим.перев.)

 


Рис. 3.1. Каждый элемент данных символьного типа занимает один элемент памяти

Набор употребляемых символов включает в себя латинские буквы, 26 прописных и 26 строчных:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Za b c d e f g h i g k l m n o p q r s t u v w x y z

десять арабских цифр:

1 2 3 4 5 6 7 8 9 0

и специальные символы клавиатуры:*

! @ # $ % ^ & * () _ + - = | \ } { " ':;? / >. <, ~ `

Например, если вы пишете тест, в котором испытуемый должен выбрать один из четырех вариантов ответа — А, Б, В или Г, — каждая буква будет являться отдельным элементом символьных данных.

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

Заметьте, что символьные данные могут быть представлены в виде цифр — 1, 2, 3, — однако Си проводит различия между символом «1» и числом 1. Как символ единица не может использоваться в математических операциях, поскольку она не рассматривается в этом случае как математическая величина. Как число единица участвует в вычислениях, при этом, как вы скоро увидите, для хранения символа «1» Си отводит объем памяти вполовину меньший, чем для хранения числа 1.

Строки

Строкой называют набор символов, слов, фраз или предложений. В отличие от некоторых других языков, в Си строка не выделяется в отдельный тип данных. Язык Си работает со строкой как с последовательностью данных символьного типа, используя так называемый массив. Строка может состоять из любой комбинации букв, цифр, знаков препинания и управляющих кодов, которые тоже могут использоваться в качестве символьных данных. Язык Си проводит различия между строкой цифр и числом. Строка «123» будет восприниматься не как математическое значение сто двадцать три, а как комбинация символов «1», «2», «3».

В этой книге мы будем оперировать понятием строки, начиная с настоящей главы, хотя массивы как отдельный тип данных подробно рассматриваются только в главе 10. Это обусловлено тем, что строки активно используются в самых разных программах, причем для работы с ними не обязательно иметь детальное представление об их, так сказать, «технической базе».

 

 

_____________________

 

* Сюда же относятся и буквы русского алфавита: 33 прописных и 33 строчных. (Прим.перев.)

 

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

 

Целочисленные величины

Если вы хотите производить математические операции, то должны использовать числовой тип данных. Язык Си имеет несколько типов числовых данных в зависимости от значения, которое может быть им присвоено, и занимаемого объема памяти.

Целые числа (int, от английского integer) — это числа, не имеющие дробной части. Их значение может быть положительным, отрицательным или нулевым, но никогда не имеет в своем составе знаков после точки. В языке Си есть простая аксиома, которая гласит: «Используйте для подсчетов целые числа». Используйте целые числа всегда, когда есть возможность представить некое значение в виде целого числа, например, при подсчете количества повторов определенного события.

Как показано на рис. 3.2, каждый элемент целочисленных данных занимает в памяти столько же места, сколько два элемента символьных, независимо от величины самого числа (и число 2, и число 2000 требуют для хранения одинакового объема памяти). Но для того чтобы занимаемое место не превышало двух элементов памяти, величина целочисленных данных в языке Си ограничена. К целочисленным данным (собственно тип int) относятся величины, значение которых находится в промежутке между –32768 и +32767. Величины, значение которых выходит за эти пределы, требуют для хранения больше двух элементов памяти.


Рис. 3.2. Целочисленные данные занимают два элемента памяти

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

short int короткие целые числа: положительные величины от 0 до 25
int целые числа: величины от –32768 до +32767
long int длинные целые числа: величины от –2147483648 до +2147483647
unsigned long длинные целые числа без знака: положительные величины от 0 до 4294967295

Вещественные числа

Числа, которые могут содержать десятичную часть (вещественные), называются числами с плавающей точкой (floating-point values). Для работы с ними в языке Си используется тип данных с плавающей точкой (float). Так как числа с плавающей точкой могут быть чрезвычайно маленькими или большими, для их записи часто используют экспоненциальную форму, например, значение числа с плавающей точкой может равняться 3.4е+38. Расшифровать это можно следующим образом: «передвинуть точку вправо на 38 пунктов, добавив соответствующее количество нулей». Существуют дополнительные типы данных для работы в очень широких пределах величин:

float величины от 3.4Е–38 до 3.4Е+38
double величины от 1.7Е–308 до 1.7Е+308
long double величины от 3.4Е–4932 до 1.1Е+4932

Тип данных с плавающей точкой имеет предел точности, диапазон которого зависит от компилятора. Например, число 6.12345678912345 в пределах допустимого диапазона для чисел типа float может быть записано компьютером только как 6.12345. Этот тип, как принято говорить, является типом с одинарной точностью, что означает, что точность его ограничена пятью или шестью знаками после точки. Тип double принято называть типом с двойной точностью, он имеет 15–16 знаков после точки.


Рис. 3.3. Требования к объему памяти данных различных типов

Для записи данных с одинарной точностью резервируется четыре элемента памяти; двойная точность требует резервирования восьми, повышенная (long double) — десяти.

На рис. 3.3 мы просуммировали сведения о типах данных в языке Си и их требованиях к резервированию памяти.


Поделиться с друзьями:

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

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



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.01 с.