Опорний конспект з курсу “Конституційне право України”.

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

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

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

Type

Type

Понятие типов данных. Переменные и константы

Составляющие ЯПВУ

Этапы прогонки программы. Назначение препроцессора, компилятора, редактора связей

Порядок решения задач на компьютере

Основные этапы разработки программ

Язык программирования QBASIC (QB) является языком высокого уровня и предназначендля составления программ для решения вычислительных задач на ЭВМ.

Порядок решения задачи на компьютере следующий:

1 Постановка задачи.

2 Разработка схемы алгоритма.

3 Составление программы по алгоритму решения задачи

4 Ввод программы в ЭВМ и отладка её работы.

5 Решение задачи.

 

Препроцессорслужит для обработки исходного текста программы до её компиляции, он выявляет ошибки синтаксиса программы, подключает необходимые блоки (#include), создавая предметный файл программы. Редактор связей объединяет служебные блоки с текстом программы в одну программу, создавая объектный файл. Компилятор переводит объектный файл программы в двоичные коды, создавая исполняемый, ехе – файл и запускает программу на выполнение.

 

§ Идентификаторы – имена переменных и функций,

§ Константы

§ Выражения

§ Типы данных – целые, строковые, массивы, вещественные

§ Операторы (выбора, цикла, передачи управления)

§ Массивы, указатели

§ Функции, процедуры

§ Классы

§ Знаки операций, алфавит, разделители, служебные слова

 

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

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

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

· Целый

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

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

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

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

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

 

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

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

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

 

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

gradus = 0..100;

Week = Monday..Friday);

 

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

o Массив

o Запись

o Строка

o Множество

o файл

 

Стандартные типы данных - см. вопрос №10, пользовательские создаются самим пользователем – см. Классы – вопрос №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

 

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

а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. // конец тела основной программы