Тип данных – это характеристика данных, которая задаёт их вид, границы изменения данных и операции над ними

Делятся на простые и структурированные.

Простые (базовые) типы данных:

·  Целый

·  Вещественный (с дробной частью)

·  Логический (Да - true или Нет - false)

·  Символьный (текст + числа)

·  Перечисляемый

·  Тип-диапазон

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

Type

Color = (Red, Blue, Green, Black);

Week = Monday, Tuesday, Wensday, Thersday, Friday);

Тип-диапазон – это диапазон значений порядкового типа, указываются только начальные и конечные значения

Type

gradus = 0..100;

Week = Monday..Friday);

Структурированные типы данных:

o  Массив

o  Запись

o  Строка

o  Множество

o  файл

11 Cтандартные и пользовательские типы данных

Стандартные типы данных - см. вопрос №10, пользовательские создаются самим пользователем – см. Классы – вопрос №12.

12 Понятие класса и экземпляра класса. Конструкторы и деструкторы

Класс в ЯП С++ - это абстрактный тип данных, который вместе с описанием полей содержит определения функций, предназначенных для работы с этими полями. Класс состоит из данных и методов, они называются элементами класса.

В С++ данные называются полями, а функции обработки данных – методами данного класса.

Пример: класс avto – для описания данных автомобиля, пригнанного в ремонтную мастерскую:

Класс состоит из определения класса и его метода.

Определение (или описание) класса avto:

НЕ нашли? Не то? Что вы ищете?

Class avto{ // класс с именем avto. Далее, в фигурных скобках – описание полей класса avto

Char model[15]; // символьное (Char) поле для модели автомобиля, массив-строка из 15 символов

Char color[10]; // символьное (Char) поле для цвета автомобиля

Char No[10]; // поле номера авто

Void avto_output(); //заголовок метода avto_output(), который работает с полями класса avto,

}; /* а именно выводит на монитор содержимое полей класса. Список параметров

*/ пуст (внутри скобок параметров нет), т. к. метод работает только с данными этого класса;

Метод класса avto:

void avto::avto_output()

{

cout<<"\n Model is"<<model;

cout<<"\n Color is"<<color;

cout<<"\n No is"<<No;

}

Знак (::) - это оператор области видимости, показывает принадлежность метода avto_output() к классу avto.

Экземпляром (или объектом) класса называется переменная, принадлежащая к классу, т. е. его конкретное значение. Например, avto bmv, honda[12] - экземпляры класса avto.

Bmv означает модель автомобиля, а honda [12] – что модель honda может быть описана 15-ю символами, напр., honda_civic_exi.

Конструктор – это специальный метод, который выделяет память под объект некоторого класса. Имя конструктора совпадает с именем класса, он вызывается каждый раз, когда в программе встречается описание любого объекта (переменной) класса, к которому он принадлежит. Если конструктор не указан, то он генерируется компилятором автоматически. Например, описание

avto volga;

создаст новый объект – переменную volga, для которой компилятор автоматически выделит ячейки памяти. Можно создать конструктор, который не только отведёт память под переменную, но и присвоит её полям начальные значения.

Деструктор – особый метод, предназначенный для освобождения памяти от объекта какого-либо класса. Деструктор является элементом данного класса и может быть только один в данном классе. Имя класса и деструктора совпадают, но перед деструктором ставится значок "тильда". Напр., для класса avto деструктором будет ~ avto

13 Классы памяти

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

аuto – автоматически выделяемая, локальная память

register - автоматически выделяемая регистровая память,, использует не ОЗУ, а регистры памяти

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

Extern – приписывается переменным и функциям и доступен во всех модулях программы.

14 Подпрограммы. Их назначение. Типы подпрограмм в ЯП Паскаль и С\С++

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

Бывают подпрограммы-функции и подпрограммы-процедуры.

Функция – это подпрограмма, вычисляющая и возвращающая некоторое значение. Если в ходе выполнения программы требуется часто вычислять какое-либо выражение (например, факториал, сложную формулу и т. п.), то можно вставить в программу функцию, которая будет вычислять это выражение и вызывать её в основную программу каждый раз, когда требуется его вычислить.

Подпрограмма-функция имеет ту же структуру, что и основная программа, то есть может содержать разделы описания переменных, типов, констант и т. д. Кроме того, подпрограмма может иметь собственные процедуры и функции.

1 Описание функций

В заголовке функции определяется идентификатор функции, формальные параметры (если они имеются) и тип результата функции.

Формат функции:

function <идентификатор>[(<список формальных параметров>)]: <тип результата>;

Функция активизируется при ее вызове. При вызове функции указывается идентификатор функции и какие-либо параметры, необходимые для вычисления функции. Вызов функции может включаться в выражения в качестве операнда, т. е. одного из аргументов. Когда выражение вычисляется, функция выполняется и значением операнда становится значение, возвращаемое функцией.

Описание функции приводится в разделе описаний основной программы после раздела переменных var. В теле программы функция вызывается по её имени с фактическими параметрами для вычисления.

Пример 1 Вычислить у = (х2 + 5!).

(Факториал – это произведение натуральных чисел, напр., 5! = 1*2*3*4*5)

Оформим вычисление факториала как подпрограмму-функцию:

program funct1;

var x, y: real; // начало раздела описаний программы

F: integer;

function Factоrial (N:integer): integer; //описание

// функции Factоrial типа integer с параметром N типа integer

var i, N: integer;

begin

F:= 1;

for i:=2 to N do

F:=F*1;

Factorial:= F;

End function; // конец описания функции

begin // начало тела основной программы

x:=3.45;

y:=sqr(x – Factorial(5)); // Вызов функции Factоrial с аргументом N =5 как операнда

write ('y=', y);

end. // конец тела основной программы

Параметры, описанные внутри функции (i, N) называются локальными и действуют только внутри функции. Параметры, описанные в разделе описаний программы (х, у, F) называются глобальными и действуют в самой программе и во всех её подпрограммах – функциях и процедурах, поэтому глобальную переменную F в описании функции Factоrial объявлять не надо.

Процедура - это часть программы, предназначенная для решения задачи или подзадачи. Это последовательность операторов, вычисляющая одну или несколько функций или выполняющая другую задачу (рисование рамки таблицы, оформление экрана и т. п.). Перед использованием процедуру необходимо объявить.

Формат объявления процедуры:

sub <имя процедуры>[(<список формальных параметров>)];

end sub

Процедура активизируется с помощью оператора процедуры, в котором содержатся имя процедуры и необходимые параметры (если это необходимо). Вызов процедуры приводит к выполнению операторов, составляющих тело процедуры. Отличие подпрограммы-процедуры от подпрограммы-функции только в том, что процедура вызывается в основную программу отдельной строкой, а не входит в состав вычисляемых выражений.

Пример Вычислить у = (х2 + 5!).

program vybor;

var y, X: real; // начало раздела описаний основной программы vybor

sub Factоrial (N:integer); // начало процедуры Factоrial

var i: integer;

begin

F:= 1;

for i:=2 to N do

F:=F*1;

end sub; // конец процедуры Factоrial

begin // начало тела основной программы

Х:= 5.1; N:= 5;

Factоrial (N); // вызов процедуры с параметрoм N

y:= X + N;

end. // конец тела основной программы

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4