4. Типы данных в C

4.1 Числа и числовые системы

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

Значение числа Z = an an-1 ... a0 a-1 ... a-m в позиционной системе счисления по основанию B имеет вид:

 где 0 <= a <B.

Например, в десятичной системе счисления число 1972 выглядит так:

1972 = 1 * 103 + 9 * 102 + 7 * 101 + 2 * 100

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

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

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

Дробные числа возможно изображать в информатике двумя способами:

-    Изображение с фиксированной точкой (например, 1.25). При этом точка всегда стоит на своем месте в нужном разряде.

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

Z = М * BE, где M = 0.xxxxxxx...., 1/B <= М <1

Так как основа нам известна, то число может представляться мантиссой М и экспонентой E (нормализованное изображение). Например:

Z = 42.5456 --> 0.425456 * 102 --> M = 425456, E = 2

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

В этом разделе профессор перечисляет соответствующие категории языка C.

К элементарным типам данных, использующихся в C относятся: char (символьный), int (целый), float (вещественный тип с одинарной точностью), double (вещественный тип с двойной точностью), void (пустой, используется для функций и указателей).

Автор выделяет следующие виды констант, использующихся в языке Си:

·           целочисленные константы, которые имеют тип signed int.

·           Константы с плавающей точкой. Они представляются в десятичном или экспоненциальном виде и имеют тип double.

·           Символьные константы указываются в кавычках ‘’.

·           Литерные константы имеют тип String и расположены в кавычках “”.

Затем Плате рассматривает основные арифметические операторы («-», «+», «*», «/», «%»), используемые в языке C. Здесь, в отличие от других языков программирования, присваивание значений записывается прямо в операторах, поэтому арифметические операции применяются во всех структурах, где есть операторы. В C также используется также два специальных оператора:

o     Инкремент (приращение на 1) – «++»

o     Декремент (отрицательное приращение на 1) – «--»

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

Помимо этого в C используются логические операторы:

·           ! - логическое отрицание

·           && - логическое «и»

·           || - логическое «или»

Профессор отдельно выделяет операторы сравнения, используемые в языке:

·           < - меньше

·           <= - меньше равно

·           > - больше

·           >= - больше равно

·           == - равно (тождественно)

·           != - не равно

Специального логического типа данных Boolean в C не существует, а считается, что

Ø   Неравно 0 – правда (значение 1)

Ø   Равно 0 – ложь (значение 0)

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

Выражение1 op= Выражение2, которая эквивалентна записи –

Выражение1 = (Выражение1) op (Выражение2), где op – любой оператор.

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

§   Одномерные поля. Определим поле с 5 элементами - int n [5]; Тогда эти 5 переменных величин располагаются в памяти последовательно:
n [0] n [1] n [2] n [3] n [4]

Элементы массива начинаются всегда с индекса 0 и кончаются индексом [n-1].

При этом не происходит проверка на допустимую область памяти компилятором.

§   Многомерные поля. Для многомерных массивов переменные величины задаются несколько другими типами индексов. Пример определения двумерного массива: float x [8] [30];Здесь первый элемент - x [0] [0], и соответственно последний x [7] [29].

Юрген Плате подходит к объяснению работы с символами и строками как с одномерными полями, которые имеют несколько особенностей. Строки могут инициализироваться также в классе памяти auto и должны быть замкнуты '\0 '. Например: char s[] = {'s','t','r','i','n','g','\0'};

Массивы char могут инициализироваться также константами String –

char s[] = "string";

В C не имеется никаких специальных элементов языка для манипуляции строками символов. Ряд функций существуют в C-стандартной библиотеке (копирование, сравнение, длина строк).

В отличие от массивов, которые работают с объектами одного типа, записи задают структуру для описания различных типов под общим именем. Преимущества этих структур состоит в объединении комплексных данных. Например, это персональные данные (Ф.И.О., адрес, социальный статус и т.д.) или студенческие данные (Ф.И.О, адрес, дисциплина, отметка и т.д.).

Записи в языке C описываются с помощью ключевого слова struct:

struct имя структуры {компонент(n)} переменная структуры (n);

Для доступа к элементу записи используются 2 собственных оператора.

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

Структуры могут иметь также элементы, которые являются signed(со знаком) или unsigned(без знака) int, а некоторые имеют битовую длину. Поэтому обозначают эти элементы как поля бита. При определении структуры число битов таких переменных величин указывается определенно, согласно синтаксису:

typedef struct

{ unsigned b1 : 1;

unsigned b2 : 1;

int : 6;

int farbe : 4;

} bitpack;

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

5. Файлы

Следующей структуре, являющейся основным носителем информации в компьютере, автор посвятил отдельную главу.

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

Вместе с типом файла определяются и несколько стандартных операций с файлами (Open – открытие файла, Close – закрытие файла, Read – чтение из файла данных, Write – запись данных в файл).



Информация о работе «Алгоритмы и структуры данных. Программирование в Cи»
Раздел: Информатика, программирование
Количество знаков с пробелами: 61871
Количество таблиц: 4
Количество изображений: 0

Похожие работы

Скачать
29246
1
2

... , которая определяет последовательность действий над некоторыми объектами и после конечного числа шагов приводит к по лучению требуемого результата. ЭВМ — исполнитель алгоритмов. Обсуждение методических вопросов изучения темы «Алгоритмы работы с величинами» буде проводить в программистском аспекте. Составление любой программы для ЭВМ начинается с построения алгоритма. Как известно, всякий ...

Скачать
29193
3
0

... профессором Н. Виртом, язык назван в честь французского математика и по замыслу автора предназначался для обучения программированию. Однако язык получился на столько удачным, что стал одним из основных инструментов прикладных и системных программистов при решении задач вычислительного и информационно-логического характера. В 1979 году был подготовлен проект описания языка – Британский стандарт ...

Скачать
17900
0
0

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

Скачать
9572
0
0

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

0 комментариев


Наверх