Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпора2.doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
91 Кб
Скачать
☆

12. Пользовательские скалярные типы данных в языках Си

Иногда, при использовании некоторых операторов, API-функций, а также просто для своих нужд необходимо создавать собственные типы данных. Часто их называют структурами. По своей сути структура - это как бы одномерный массив , который мы запихиваем в одну переменную. Но в него могут входить данные разных типов. Создание собственного типа данных осуществляется с помощью инструкции Type, который используется в секции General кода формы. Например, для какого-нибудь условного прайса нам нужно хранить следующие данные: Name - наименование товара Kolichestvo - количество товара Cost - цена товара С одной строны мы можем просто объявить эти три переменные с необходимым нам типом и использовать их каждую в отдельность по необходимости:

Dim Name As String Dim Kolichestvo As Long Dim Cost As Single

Но мы также можем объединить эти три переменные в единую структуру, создав тип данных, например, под названием Price. Однако, поскольку, инструкция Type предназначена для использования во всем проекте, то и пользовательский тип данных должен создаваться в стандартном модуле: Type Price Name As String Kolichestvo As Long Cost As Single End Type Хотя, в принципе, ее можно написать и в форме в разделе деклараций с ключевым словом Private: (Private Type Price) Теперь нам, там же, в стандартном модуле, надо объявить какую-нибудь глобальную переменную с нашим типом данных. Назовем ее Stroka: Public Stroka as Price

Теперь мы смело можем пользоваться нашей переменной.

13.Структурированые типы данных в языке си

Кроме фундаментальных арифметических типов, в языке С++

допускается использование практически неограниченного количества

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

следующим образом:

- массивы объектов данного типа;

- функции, аргументами которых являются переменные данных

типов, и возврщают объекты данных типов;

- указатели на переменные данного типа;

- ссылки на объекты данного типа;

- константы, которые имеют значения данного типа;

- классы, содержащие последовательности объектов различных

типов, набор функций для работы с этими объектами и набор

ограничений на доступ к этим объектам и функциям;

- структуры, которые являются классами без ограничений

доступа;

- объединения, которые являются структурами, способными

содержать переменные различных типов в разное время.

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

могут применяться рекурсивно.

14.Арифметические выражения

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

Наиболее простой формой арифметического выражения является операция преобразования знака

- Операция унарный минус.

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

+ Операция унарный плюс.

Операндом может быть любое выражение со значением арифметического типа. Унарный минус эквивалентен умножению значения операнда на -1. Унарный плюс эквивалентен умножению значения операнда на +1.

* Операция умножения.

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

/ Операция деления.

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

% Операция получения остатка от деления

целочисленных операндов (деление по модулю).

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

15%6=3, (-15)%6=-3, 15%(-6)=3, (-15)%(-6)=-3.

При ненулевом делителе для целочисленных операндов выполняется соотношение

(a/b)*b+a%b=a

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