Тематические поисковые системы
и сайты проекта Vedenin.ru:

Танцевальная поисковая система Энциклопедическая поисковая система Поисковая система программиста Книжная поисковая система Банковская поисковая система Музыкальная поисковая система Автомобильная поисковая система Спортивная поисковая система Поисковая система видео и фильмов
Поисковая система и Online учебник по программированию и веб - дизайну

Поиск для программиста

  1. Все сайты по теме
  2. Статьи и книги
  3. Форумы и блоги

Шпаргалки
(краткий синтаксис
разных языков)

Операции
Приоритеты
Типы данных
Операторы
Переменные
Функции
Классы
Математика
Строки
Память

Учебник
(Сравнительный анализ синтаксиса десятка языков)

О языках
Комментарии
IF
CASE
FOR
FOREACH
DO.. WHILE
With
Метки
GOTO
BREAK
Операции
Типы данных
Переменные
Видимость
Функциями
ООП
Исключения
#IF
Память
Матем.функции
Коллекции
Cтроки
БД.SQL

<<Cтатьи>>
C++58
Delphi 138
Java
155
C#
3
Visual Basic
47
PHP
63
JavaScript 69
Perl 15
ASP 23
Ассемблер 35
C++ 102
Java 29
C# 20
JavaScript 2
Perl 2



Объявление и использование типов данных в языках программирования C++,C#.Net,Deplhi,VFP,Transact-SQL,PL-SQL,VBScript,JavaScript,JScript,Visual Basic

5.Объявление и использование типов данных

5.1 Введение

Ни один язык программирования не обходится без переменных и типов данных.

Есть два основных типа переменных:

  1. Динамический тип переменно
  2. Статический тип переменной

Переменная это ячейка памяти способная хранить и возвращать записанное в нее значение.

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

Если тип переменной динамический, то переменная не имеет постоянного типа и тип переменной определяется записанным в неё значением


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

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

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

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

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

Естественно, чем меньше программа, тем легче найти и устранить подобные ошибки, для работы больших программ такая ошибка может быть очень неприятной для программиста. Поэтому, динамический тип используется исключительно в языках программирования, на которых обычно разрабатываются небольшие программы или скрипты (это языки программирования для работы с интернетом или с базами данных), что позволяет в разы уменьшить исходный код программ и скриптов. В универсальных языках, где преимущественно создаются большие программы, используются исключительно статические типы, обеспечивающие наибольшую надежность программ (вернее раньше в некоторых универсальных языках ,например Visual Basic 6, кроме статичных типов, вводили один динамический тип, переменные которого, позволяли в них записывать и считывать данные любого другого типа, но это привело к тому, что новички в программировании начинали использовать его направо и налево и создавали очень программы с огромным количеством ошибок и в более современных универсальных языках от него старались отказаться )



5.2 Логический тип данных

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

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

5.3 Числовой типы данныx

(целый и вещественный)

Числовые типы данных позволяют хранить только числа. Есть три главных вида числовых типов:

1)Целые числовые типы. Это типы, которые могут хранить только целые числа.

2)Вещественные типы. Это типы, позволяющие хранить дробные числа, но при этом число всегда храниться приближенно.

3)Денежный тип. Хранит число, но при этом предназначен для хранения денежных сумм. Как правило, он позволяет точно хранить числа с двумя знаками после запятой.

Числовые типы, различаются объемом памяти и максимальным числом, которое можно хранить в переменной.

Есть много разных числовых типов, но основная квалификация такая:

  1. Размер данного типа (определяет максимальное число, которое может хранить данный тип). Размер, как правило, определяется в байтах или разрядах, то есть количестве бит, например 32 разрядной число это число, имеющее размер 32 бита или 4 байта (в одном байте 8 бит)

  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 Разделы учебника
<> Хостинг сайта: EOMY.NET