Опорний конспект з курсу “Конституційне право України”.
Классы памяти
Понятие класса и экземпляра класса. Конструкторы и деструкторы
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. // конец тела основной программы