- •1 Компьютер для программиста.
- •12. Пользовательские скалярные типы данных в языках Си
- •13.Структурированые типы данных в языке си
- •14.Арифметические выражения
- •18. Выражения с указателями
- •20.Константные выражения
- •21. Приоритет операций и скобочная структура выражений
- •22. Структура программы на си
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
Значение переменной или элемента структуры должно быть определено до их появления в арифметическом выражении. Другие арифметические выражения составляются из простых форм путем применения круглых скобок и арифметических операций. Приоритеты и порядок вычислений операций языка С влияют на способ группирования и вычисления операндов в выражениях. Приоритет операций имеет смысл только при наличии нескольких операций с разными приоритетами. Выражение с наивысшим приоритетом вычисляется первым.
