Добавлен: 30.06.2023
Просмотров: 64
Скачиваний: 3
Введение
Мы живем в материальном мире. Все, что нас окружает, и с чем мы сталкиваемся ежедневно, относится либо к физическим телам, либо к физическим полям. Из курса физики мы знаем, что состояния абсолютного покоя не существует, и физические объекты находятся в состоянии непрерывного движении и изменения, которое сопровождается обменом энергией и ее переходом из одной формы в другую.
Все виды энергообмена сопровождаются появлением сигналов, то есть, все сигналы имеют в своей основе материальную энергетическую природу. При взаимодействии сигналов с физическими телами в последних возникают определенные изменения свойств – это явление называется регистрацией сигналов. Такие изменения можно наблюдать, измерять или фиксировать иными способами – при этом возникают и регистрируются новые сигналы, то есть, образуются данные.
Данные – это зарегистрированные сигналы.
Обратим внимание на то, что данные несут в себе информацию о событиях, произошедших в материальном мире, поскольку они являются регистрацией сигналов, возникших в результате этих событий. Однако данные не тождественны информации. Наблюдая излучения далеких звезд, человек получает определенный поток данных, но станут ли эти данные информацией, зависит еще от очень многих обстоятельств.
Прослушивая передачу радиостанции на незнакомом языке, мы получаем данные, но не получаем информацию в связи с тем, что не владеем методом преобразования данных в известные нам понятия. Если эти данные записать на лист бумаги или на магнитную ленту, изменится форма их представления, произойдет новая регистрация и, соответственно, образуются новые данные. Такое преобразование можно использовать, чтобы все-таки извлечь информацию из данных путем подбора метода, адекватного их новой форме. Для обработки данных, записанных на листе бумаги, адекватным может быть метод перевода со словарем, а для обработки данных, записанных на магнитной ленте, можно пригласить переводчика, обладающего своими методами перевода, основанными на знаниях, полученных в результате обучения или предшествующего опыта.
Таким образом, чтобы данные стали информацией, необходимо производить с ними определенные операции.
Цель работы – рассмотреть операции, производимые с данными.
Данные – диалектическая составная часть информации. Они представляют собой зарегистрированные сигналы. При этом физический метод регистрации может быть любым: механическое перемещение физических тел, изменение их формы или параметров качества поверхности, изменение электрических, магнитных, оптических характеристик, химического состава и (или) характера химических связей, изменение состояния электронной системы и многое другое. В соответствии с методом регистрации данные могут храниться и транспортироваться на носителях различных видов [3, с.56].
Самым распространенным носителем данных, хотя и не самым экономичным, по-видимому, является бумага. На бумаге данные регистрируются путем изменения оптических характеристик ее поверхности. Изменение оптических свойств (изменение коэффициента отражения поверхности в определенном диапазоне длин волн) используется также в устройствах, осуществляющих запись лазерным лучом на пластмассовых носителях с отражающим покрытием (CD-ROM). В качестве носителей, использующих изменение магнитных свойств, можно назвать магнитные ленты и диски. Регистрация данных путем изменения химического состава поверхностных веществ носителя широко используется в фотографии. На биохимическом уровне происходит накопление и передача данных в живой природе.
Носители данных интересуют нас не сами по себе, а постольку, поскольку свойства информации весьма тесно связаны со свойствами ее носителей. Любой носитель можно характеризовать параметром разрешающей способности (количеством данных, записанных в принятой для носителя единице измерения) и динамическим диапазоном (логарифмическим отношением интенсивности амплитуд максимального и минимального регистрируемого сигналов). От этих свойств носителя нередко зависят такие свойства информации, как полнота, доступность и достоверность. Так, например, мы можем рассчитывать на то, что в базе данных, размещаемой на компакт-диске, проще обеспечить полноту информации, чем в аналогичной по назначению базе данных, размещенной на гибком магнитном диске, поскольку в первом случае плотность записи данных на единице длины дорожки намного выше. Для обычного потребителя доступность информации в книге заметно выше, чем той же информации на компакт-диске, поскольку не все потребители обладают необходимым оборудованием. И, наконец, известно, что визуальный эффект от просмотра слайда в проекторе намного больше, чем от просмотра аналогичной иллюстрации, напечатанной на бумаге, поскольку диапазон яркостных сигналов в проходящем свете на два-три порядка больше, чем в отраженном.
Задача преобразования данных с целью смены носителя относится к одной из важнейших задач информатики. В структуре стоимости вычислительных систем устройства для ввода и вывода данных, работающие с носителями информации, составляют до половины стоимости аппаратных средств.
Типы данных
Понятие типа программного объекта образовалось постепенно из понятия типа, вошедшего в употребление для описания типов данных, над которыми выполняются операции в программе. На заре программирования типы данных определялись тем, какой машинный формат применялся для отображения данных. Программисты раньше говорили не о типе процессора и его частотных характеристиках, они говорили «Я работаю на машине с длиной слова 64 разряда». (Такой длиной слова обладали отечественные ЭВМ БЭСМ-6, в отличие от распространенных тогда копий с машин IBM/360, имеющих длину слова 32 разряда). Вскоре данные с плавающей точкой стали называть данными вещественного типа. Данным логического типа стали приписывать значения «истина» или «ложь», хотя они представлялись единицей или нулем в одном единичном разряде.
Современное понятие типа базируется на множестве значений, которые могут принимать переменные данного типа, и наборе операций, которые можно к ним применять [2, с.39].
Теперь перед нами встает вопрос: как правильно задать тип данных в программе, и каким образом типы данных можно представить в памяти машины? Прежде всего, следует различать классы типов данных. Самой важной отличительной чертой является структурность значений того или иного типа. Если значение не структурное, т.е. не распадается на компоненты, то оно называется скаляром. Остановимся вначале на таких типах.
Почти все современные языки программирования поддерживают целый, вещественный и литерный типы данных. Многие, кроме того, поддерживают булевский или логический тип.
Любой тип данных определяет множество значений, которые может принимать переменная или выражение, а также возвращать операция или функция. Каждая операция или функция требует аргументов также фиксированного типа и выдает результат фиксированного типа.
Тип определяет:
- возможные значения переменных, констант, функций, выражений, принадлежащих к данному типу;
- внутреннюю форму представления данных в ЭВМ;
- операции и функции, которые могут выполняться над величинами, принадлежащими к данному типу.
Большинство языков программирования требуют явно описывать тип переменной, некоторые используют специальные символы для обозначения типа.
В большинстве языков программирования существуют следующие базовые типы данных: целый, вещественный, строковый, логический.
Таблица 1
Типы данных
Тип |
Описание |
Диапазон значений |
нат |
натуральные числа |
от 1 ДО — ∞ |
цел |
целые числа |
от — ∞ до + ∞ |
действ |
действительные числа, десятичные дроби |
от — ∞ до + ∞ |
лит |
литерный (строковый) |
любые символы или группы символов |
лог |
логический |
истина, ложь |
Целый тип (int) Размер типа int не определяется стандартом, а зависит от компьютера и компилятора. Для 16-разрядного процессора под величины этого типа отводится 2 байта, для 32-разрядного – 4 байта. Для точного определения количества байт следует написать тестовую программу и включить в нее операцию: s=sizeof(int); Значение переменной s будет равно количеству байт занимаемому объектами указанного в скобках типа. Для определения диапазона значений целого типа данных следует воспользоваться формулой: для знаковых типов (int – знаковый тип) и для беззнаковых (unsigned) типов. Спецификатор short перед именем типа указывает компилятору, что под число требуется отвести 2 байта независимо от разрядности процессора. Спецификатор long означает, что целая величина будет занимать 4 байта. Таким образом, на 16-разрядном компьютере эквиваленты int и short int, а на 32-разрядном – int и long int. Внутреннее представление величины целого типа – целое число в двоичном коде. При использовании спецификатора signed старший бит числа интерпретируется как знаковый (0 – положительное число, 1 – отрицательное). Спецификатор unsigned позволяет представлять только положительные числа, поскольку старший разряд рассматривается как часть кода числа. Таким образом, диапазон значений типа int зависит от спецификаторов. По умолчанию все целочисленные типы считаются знаковыми, то есть спецификатор signed можно опускать. Константам, встречающимся в программе, приписывается тот или иной тип в соответствии с их видом. Если этот тип по каким-либо причинам не уст-раивает программиста, он может явно указать требуемый тип с помощью суффиксов L, l (long) и U, u (unsigned). Например, константа 32L будет иметь тип long и занимать 4 байта. Можно использовать суффиксы L и U одновременно, например, Ox22UL или 05Lu. Типы short int, long int, signed int и unsigned int можно сокращать до short, long, signed и unsigned соответственно. Таблица 2 Алгоритмический язык |
Тип |
Описание |
Диапазон значений |
Использование |
Integer |
целые числа |
от-32 768 до 32 767 |
Var% |
Long |
целые числа |
от-2 147 483 648 до 2 147 483 647 |
Var& |
Single |
действительные числа |
от -3.4*1038 до -1.4*10-45 0 и от 1.4*10-45 до 3.4*1038 |
Var! |
Double |
действительные числа |
от -1.8*10308 до -4.9*10-324 0 и от 4.9*10-324 до 1.8*10308 |
Var # |
String |
набор символов |
от 0 до приблизительно 2 миллиардов символов |
Var$ |
Таблица 3 Бейсик |
Тип |
Описание |
Диапазон значений |
byte |
короткое целое без знака |
от 0 до 255 |
shortint |
короткое целое со знаком |
от-127 до 127 |
word |
целое без знака |
от 0 до 65536 |
integer |
целое со знаком |
от -32 768 до 32 767 |
longint |
длинное целое |
от -2 147 483 648 до 2 147 483 647 |
real |
действительное |
от -3.4*1038 до -1.4*10-45 0 и от 1.4*10-45 до 3.4*1038 |
double |
двойное действительное |
от -1.8*10308 до -4.9*10-324 0 и от 4.9*10-324 до 1.8*10308 |
char |
символьное |
один символ |
string |
строковое |
до 255 символов |
boolean |
логическое |
true (истина) и false (ложь) |
Паскаль
Существуют и более сложные типы данных, например массив, связанные списки, структуры и прочее. Массив – упорядоченное множество величин одного типа. Массивы описываются следующим образом:
Алгоритмический язык:
<тип даниых> таб <имя массива>[<нижняя граница>:<верхняя граница>]
<тип данных> — один из базовых типов данных;
<имя массива> — идентификатор в соответствии с правилами языка;
<нижняя граница> — наименьший номер элемента в массиве;
<верхняя граница> — наибольший номер элемента в массиве.
Все элементы массива имеют свой номер, изменяющийся от <нижняя граница> до <верхняя граиица>.
Бейсик:
DIM <имя массива>(<верхняя граница>)
Первый элемент массива в Бейсике всегда имеет номер 0. Тип элементов определяется именем массива.
Паскаль:
<имя массивам:array (<нижняя граница>:<верхняя граница>] of <тип данных>;
Обращение к элементу массива производится по имени массива и номеру элемента:a (i) (Паскаль) или а(1) (Бейсик).
Массивы могут быть как одномерными (то есть иметь только одно измерение), так и многомерными. Двухмерный массив представляет собой таблицу, в которой первый номер обозначает ряд, а второй — столбец.
Литерный (char). Этот тип обозначает конечное упорядоченное множество литер. Помимо диапазонов чисел, следует определять набор литер, с помощью которых компьютер общается с внешним миром. Литерами из этого набора снабжаются все периферийные устройства (читающие и печатающие). Существует несколько общепринятых стандартов наборов литер:
- Международной организации стандартов ISO - International Standards Organisation;
- Американский стандартный код для обмена информацией ASCII - American Standard Code for Information Interchange
- 8-ми и 7-ми битовые коды обмена информацией КОИ-8 и КОИ-7
Наиболее популярный ASCII код поддерживает 26 букв латинского алфавита, 10 десятичных арабских цифр, некоторое количество специальных литер, таких, как знаки пунктуации. Стандарт определяет 128 литер, подразделяющихся на печатаемые и управляющие. Управляющие литеры играют большую роль при передаче данных. Например, литеры Carriage Return и Line Feed обрабатываются всеми построчно печатающими устройствами. Оставшиеся 128 кодов от 128 до 255 могут определять коды национального языка. Существуют четыре варианта кодировки символов кириллицы. Стандартом de facto стал так называемый альтернативный вариант кодировки. Сейчас, когда отечественная промышленность перестала производить ЭВМ, проблемы нескольких стандартов стали не такими острыми. Хотя еще попадаются файлы с документацией, набранные в основном варианте кодировки. Тогда мы видим по преимуществу, не буквы, а символы псевдографики. А всего лишь несколько лет назад выпускаемые различными министерствами ПЭВМ (скопированные с одного и того же образца IBM PC XT) имели различные кодировки [4, с.58].
Отображение битов на множество литер называется кодом. Следовательно, каждой литере соответствует целое неотрицательной число. Таким образом, тип char можно интерпретировать как множество неотрицательных целых чисел в интервале от 0 до 255, или множество целых чисел в интервале от -128 до +127. Некоторые языки имеют функции преобразования из целого числа в литерное и наоборот (например, BASIC).