|
|
|
Объявление и использование типов данных в языках программирования C++,C#.Net,Deplhi,VFP,Transact-SQL,PL-SQL,VBScript,JavaScript,JScript,Visual Basic5.Объявление и использование типов данных5.1 ВведениеНи один язык программирования не обходится без переменных и типов данных. Есть два основных типа переменных:
Переменная это ячейка памяти способная хранить и возвращать записанное в нее значение. Если тип переменный статический, то при объявление переменной необходимо указать тип данных, которые могут храниться в переменной, например только целые числа или только строки. Запись данных другого типа приведет либо к автоматическому преобразованию этих данных в тип переменной, либо к ошибке, если такое преобразование невозможно. То есть при статическом типе каждая переменная имеет постоянный тип, который не позволит записывать в переменную данные не правильного типа. Статические типы резко уменьшают количество ошибок в программах, но уменьшают гибкость программ и значительно увеличивают исходный код программ. Обычно, если на данном языке чаще всего пишут небольшие программы используется динамический тип, если очень большие только статический, иначе в большой программе будет много трудно уловимых ошибок. Если тип переменной динамический, то переменная не имеет постоянного типа и тип переменной определяется записанным в неё значением
Типы данных есть в любом языке программирования, хотя иногда неявно, то есть когда не программист задает тип данных переменной, а он определяется в зависимости от значения. При статическом типе при определении переменной необходимо указать один тип, после чего в данную переменную можно будет записывать только значение, указанного типа. При динамическом типе программист не указывает тип переменной при её определение, тип переменной определяется значением, записанным в неё, например если в переменную записать текст, то переменная будет строкового типа, число - числового и т.д. Динамический тип позволяет значительно уменьшить размер исходного кода программ и количество переменных в алгоритме, но при большом объеме исходного кода программы, использование динамического кода резко увеличивает количество сложных для обнаружения и отладки ошибок и сильно снижает надежность программы. Дело в том, что при статическом типе все попытки записать в переменную неверное значение будут выявлены ещё при компиляции программы, либо при первом её выполнение, причем будет сразу известно точное место ошибки. При динамическом типе ошибка может появиться, где угодно или вообще не будет сообщений об ошибок, но программа не будет работать правильно. Хуже всего то, что такая ошибка может возникать лишь в редких случаях и быть не заметна при отладке программы программистом и эту ошибку может обнаружить только конечный пользователь, в худшем варианте он из-за подобной ошибке не сможет нормально использовать вашу программу. Естественно, чем меньше программа, тем легче найти и устранить подобные ошибки, для работы больших программ такая ошибка может быть очень неприятной для программиста. Поэтому, динамический тип используется исключительно в языках программирования, на которых обычно разрабатываются небольшие программы или скрипты (это языки программирования для работы с интернетом или с базами данных), что позволяет в разы уменьшить исходный код программ и скриптов. В универсальных языках, где преимущественно создаются большие программы, используются исключительно статические типы, обеспечивающие наибольшую надежность программ (вернее раньше в некоторых универсальных языках ,например Visual Basic 6, кроме статичных типов, вводили один динамический тип, переменные которого, позволяли в них записывать и считывать данные любого другого типа, но это привело к тому, что новички в программировании начинали использовать его направо и налево и создавали очень программы с огромным количеством ошибок и в более современных универсальных языках от него старались отказаться ) 5.2 Логический тип данныхЛогический тип это тип, имеющий только два значения истина и ложь. Этот тип стоит отдельно от остальных, исключительно для работы с ним во всех языках программирования существуют специальные логические операции. Обычно этот тип используется в циклах и операторах If. Конечно, можно использовать обычный числовой тип, представив истину в виде единицы, а лож - нулем, но намного удобнее пользоваться логическим значением, так как существует большое количество операций и функций специально для данного типа. Как правило, логический тип представляется в языках программирования, как числовой тип, у которого одна группа чисел означает истину, другая ложь, но от языка программирования зависит, какие числа считаются ложью, а какие истиной. 5.3 Числовой типы данныx(целый и вещественный)Числовые типы данных позволяют хранить только числа. Есть три главных вида числовых типов: 1)Целые числовые типы. Это типы, которые могут хранить только целые числа. 2)Вещественные типы. Это типы, позволяющие хранить дробные числа, но при этом число всегда храниться приближенно. 3)Денежный тип. Хранит число, но при этом предназначен для хранения денежных сумм. Как правило, он позволяет точно хранить числа с двумя знаками после запятой. Числовые типы, различаются объемом памяти и максимальным числом, которое можно хранить в переменной. Есть много разных числовых типов, но основная квалификация такая:
Тип строкиРабота со строками присутствует в том или ином виде в любой программе. На заре программирования строки представлялись, как массив однобитовых переменных, каждая из которых хранила код символа (от 0 до 255). Естественно, 255 символов не хватало, чтобы представить символы всех языков, поэтому необходимо было знать в какой кодовой странице, представлялась строка. Кодовые страницы свои для разных операционных систем. Потом стало понятно, что представление в виде массива не очень удобно, так как необходимо где – то хранить длину массива и все время при работе со строкой проверять, чтобы не выйти за границы массива. Поэтому в языках Pascal и Delphi стали в нулевой элемент массива записывать длину массива, а в языках C, С++ в конец строки вставляли всегда нулевой символ, т.е. все функции работы со строками в языке заканчивают свою работу, как только им встретиться элемент равный нулю. Вскоре, стало понятно, что работа с кодовыми страницами очень не удобна, так как, вы наверное сталкивались с тем, что на экране при открытии файла или Web - страницы появлялась абракадабра из-за неверной кодовой страницы. Поэтому был придумана универсальная двух байтовая кодировка (более 65 тысяч символов) Unicode. Теоретически, строки в этой кодировке должны читаться нормально любой программой, поддерживающей кодировку Unicode. Последней ступенью развития строк стало представления строк в виде классов, со всеми преимуществами объектно – ориентированного программирования. Типы, работающие с датой и временем Есть много разных типов данных для работы с временем и датой. Основное отличие в следующем: 1)Тип, хранящий любую дату в течение несколько тысячелетий. 2)Тип, хранящий дату в диапазоне нескольких веков. З)Тип, хранящий дату и время. 4)??? Другие типы данных.Структуры это тип данных, объединяющий несколько переменных разных типов. Такой тип это по сути класс, но у которого нельзя определять методы.
Объединение это редкий тип, существующий только в языках С и С++, суть его такова в объединение, определяется несколько переменных разных типов, они занимают одну память и можно работать с этими переменными по очереди.
Перечисление тип, в котором при определение программист перечисляет все значения, которые может принимать переменная данного типа, и определяет индитификаторы для каждого значения. После можно использовать объявленные индитификаторы вместо значений, для наглядности и облегчения понимания. Например, можно создать тип данных цвета_радуги и задать значения 1 это красный,2 - синий,3 - голубой и т.д. Потом можно определить переменную радуга с типом цвета_радуги и присвоить ей значение красный или зеленый.
Множество это тип данных в котором при определении указываются все значения, которые присутствуют в множестве. Множество создается пустым, потом можно добавлять элементы и определять присутствует элемент в множества, так же выполнять операции с множествами. Например, можно в виде возможных значений множества можно задать всех учеников одного класса, тогда например в переменной такого множества можно хранить список всех учеников из классах, побывавших на экскурсии в музее, а в другой список всех учеников - членов кружка рисования. И с помощью одной операции можно получить переменную, хранящую всех учеников, которые являются членами кружка рисования и побывали на экскурсии. Множество аналогично массиву с элементами логического типа или нескольким переменным логического типа. Структуры Структуры - тип данных, позволяющий объединить несколько разных типов в один. По сути это тоже самое что класс, в котором можно определять только поля. В структуре можно определить любое количество полей, для каждого программист определяет имя и тип данных, после создания экземпляра данной структуры к полям структуры можно обращаться через операцию точка, также как полям классов. Вообще структуры существуют только в языках С и С++ и возникли в языке С, так как в нем отсутствовали классы, а языке С++ структуры оставили для совместимости с языком С.В других языках вместо структур используются классы. Структуры не поддерживают наследование, конструкторы, деструкторы и модификаторы видимости. Для совместимости с языком С можно объявить структуру и другой тип данных (или переменную) с одним именем. Одну переменную структуры можно присвоить другой переменной той же структуры. Кроме обычных полей у структур существует уникальная возможность объявлять битовые поля, то есть поля у которых указанно количество бит, которые оно занимает, при этом можно не указывать имя поля. Такие поля очень удобны когда необходимо работать с отдельными битами (например такая необходимость возникает при работе с заголовками файлов изображений или баз данных и при работе с сетевыми протоколами). Структуры позволяют предварительное объявление (для того чтобы можно можно в одну структуру вставлять поле имеющие тип другой структуры) Для предварительного объявления структуры используется ключевое слово struct имя_структуры; Окончательное объявление struct имя_структуры { тип1 имя1 [: кол_во_бит1]; ... типN имяN [: кол_во_битN]; };
Объединения. Объединение очень похоже на структуру, но имеют одно главное отличие: все её члены расположены по одному адресу и поэтому объединение в каждый момент хранит значение только одного члена, как только одному члену присваивается значение другие члены теряют свое значение. Объединение уникальный тип данных для существует языках С и C++ и лучше использовать объединение как можно реже,т.к. его имеет смысл использовать только при недостатке памяти и программист должен сам следить какому члену присвоено значение.
Множества. Множества тип данных, в котором программист при определение указывает все элементы, которые в принципе могут быть в данном множестве, а после создания объекта множества можно указывать какие элементы входят в множество в данный момент. То есть можно создать множество учеников одного, а дальше объекты этого множества можно использовать, например чтобы хранить сведения о том кто из учеников был на занятиях в определенный день. Более того существует большое число операций с множествами, например если есть множество учеников класса бывших в школе и множество учеников класса, сходивших на экскурсию в тот же день, то используя операцию пересечение можно получить множество учеников класса, которые и побывали в этот день и на занятиях и сходили после занятий на экскурсию.
|
Ваш комментарий
Добавить эту поисковую систему в Ваш Google Bar Разделы учебника