- •1. Понятие алгоритма: рекурсивные функции, системы текстовых замен.
- •2.Системы счисления, переводы чисел из одной позиционной системы в другую.
- •3/4.Понятие подпрограммы, функции, возвращающей/не возвращающей значение в
- •5.Передача параметров в подпрограмму,параметры входные и выходные,параметры,передаваемые по значению и по адресу.
- •6.Использование подпрограмм, параметры формальные, локальные, глобальные, обращения к подпрограммам, фактические параметры.
- •8.Статические и динамические переменные,динамическая память,работа с динамическими переменными.
- •9.Понятие линейного связного списка, типы списков, представление стека с помощью массива, пример использования стека.
- •10.Использование динамич. Переменных для представл. И работы со стеком.
- •11.Очередь,реализация очереди массивом.
- •12.Очередь, представление и реализация основных операций с помощью динамических переменных.
- •13.Реализация основных операций со списком:добавление, удаление, поиск.
- •14.Деревья,основные операции над деревьями, представление дерева массивом.
- •15.Двусвязные линейные списки, построение и обход бинарного дерева.
- •16.Операции поиска и удаления в бинарном дереве.
- •17.Понятие графа, представление графа в эвм.
- •18.Представление графа списком инцидентности,алгоритм обхода графа в глубину.
- •19.Представление графа списком списков,алгоритм обхода графа в ширину.
- •20.Технологии программирования,концепции,заложенные в ооп.
- •21.Основные понятия ооп:абстракция, инкапсуляция,полиморфизм.
- •22.Понятие объекта,его состояние и поведение,классы,определение класса и объявление класса.
- •23.Статистические,дружественные и виртуальные поля и методы,особенности их использования.
- •24.Абстрактные классы,их назначение и использование.
- •25.Понятие области видимости:общие,личные,защищенные и опубликованные поля и методы объекта.
- •26.Указатель This и перегрузка методов.
- •27.Использование классов,различные способы инициализации.
- •28.Использование классов,работа с массивами и указателями на объекты.
- •29.Наследование,пример использования наследования.
- •30.Конструкторы и деструкторы, их значение и использование.
- •31.Архитектура пк, основные функциональные устройства и их значения.
- •32.Мп с точки зрения программиста,регистры общего назначения.
- •33.Оперативная память,понятие исполняемого и физического адреса,сегментные регистры.
- •34.Регистр флажков, его назначение и использование.
- •35.Форматы данных и форматы команд.
- •36.Адресация операндов,способы адресации,примеры команд с различными способами адресации.
- •37.Структура программы на Ассемблере.Стандартные директивы сегментации.
- •38.Формат команды и директивы на Ассемблере.Примеры команд и директив.
- •39.Алфавит,слова,константы,переменные и выражения в Ассемблере.
- •40.Директивы определения данных и памяти.
- •41.Команды прерывания, команды работы со стеком.
5.Передача параметров в подпрограмму,параметры входные и выходные,параметры,передаваемые по значению и по адресу.
Формальные — Параметры, указанные в описании программы.
Фактические — В обращении к программе.
Формальные: 1)Входные (должны быть известны до обращения подпрограмме, передаются по значению)
2)Выходные (получают значения в подпрограмме, передаются по адресу)
Пример: #include<iostream.h>
# include<conio.h>
Void fun f(int I; int *j;int &h){ i++;(j*)++;k++;};
int main() {int i=1; j=2;k=3; cout<<”ijk/n”; cout<<i<< “ “<<j<< “ “<<k<< “/n”;
fun(i,&j,k); cout<<i<< “ “<<j<< “ “<<k<< “/n”; return 0;}
I j k
1 2 3
1 3 4
6.Использование подпрограмм, параметры формальные, локальные, глобальные, обращения к подпрограммам, фактические параметры.
Подпрограмма — отдельная структурная единица, имеющая собственное имя и реализующая вспомогательный алгоритм.
Чтобы использовать подпрограмму, ее нужно описать, а затем в нужном месте обратится к ней с конкретными значениями параметров.
Описать программу — выбрать для нее имя, определить величины от которых будет зависеть вычисление подпрограммы в точках обращения и записать последовательность операторов, реализующих вспомогательный алгоритм.
Достоинства подпрограмм: 1) Избежание дублирования одинаковых частей программы. 2) Делает структуру программы более четкой и понятной. 3) Отдельные подпрограммы можно хранить в отдельных файлах. 4) позволяет расширить язык программирования. 5) позволяет повторно использовать раннее разработанные программы.
Формальные — параметры, указанные в описании подпрограммы.
Фактические — указанные в обращении к ней
Локальные — все величины, описанные в подпрограмме, область действия - тело ф-ии.
Глобальные — описываются вне функций, и вне main,видны во всех функциях программы и могут использоваться для передачи данных между всеми функциями.
При обращении к функции в стеке выделяется память под все локальные величины, записываются значения регистров процессора, а также адрес возврата из подпрограммы – адрес команды, которая должна выполниться следующей после выхода из подпрограммы
7.Рекурсивные подпрограммы, примеры рекурсивных функций в С/С++.
Рекурсия — вызов функции из нее же самой, непосредственно.
Глубина рекурсии — количество вложенных вызовов функции или процедуры.
Функция Рекурсивная — если она вызывает сама себя в качестве вспомогательной.
Подпрограмма Рекурсивная — если содержит обращение к самой себе.
n!=1 при n=0 и n!=1*2*3*...*n при n>0 – итерационное(итеративное) определение
n!=1 при n=0 и n!=(n-1)!*n при n>0 — рекурсивное определение
Рекурсия Прямая — подпрограмма обращается сама к себе.
Рекурсия Косвенная — несколько подпрограмм обращается друг к другу.
#include <iostream> using namespace std;
unsigned long F(short n)//рекурсивный метод
{ if (n==0 || n==1) return 1;//нерекурсивная ветвь
//шаг рекурсии — повторный вызов функции с другим параметром.
return n*F(n-1); } int main() { short n; cout<<”n=”; cin>>n;
unsigned long f=F(n); //нерекурсивный вызов функции F
cout<<n<<”!=”<<f<<endl; return 0; }