- •1.Истроия создания. Стандарт ansi c.
- •2. Структура программы.Алфавит.Осн конструкции языка
- •3. Типы данных.
- •4. Переменные,идентификаторы, константы.. Модуль Math.H
- •7. Директивы препроцессора.
- •1)Передача копии переменной
- •15, Обл.Видимости.Классы памяти
- •16, Строки.Ф-ции раб.Со строками.
- •17. Указатели и ссылки.
- •18. Динамическое выделение памяти. Свободная память.
- •19, Файлы
- •21. Ооп. Механизмы ооп.
- •23. Конструкторы. Деструкт
- •24. Наследование.
- •25. Множественное наследование. Неоднозначности множ наслед-я.
- •26. Полиморфизм. Перегрузка ф-ции.
- •27.Функции-друзья
- •28. Полиморфизм. Перегрузка операторов.
- •29. Перегрузка нек-х спец-х операторов.
- •32. Шаблоны ф-й
- •33. Шаблоны классов
- •34. Шаблоны. Реализация свойств наследования и полиморфизма.
- •35. Обработка исключений
- •41. Компоненты вкладки standard.
- •42. Компоненты вкладки additional
- •43. Компоненты win32.
- •46. Элементы ActiveX.
- •66. Использование встроенного ассемблера
- •59, Свойства с#.
- •51, Основные понятия яз-ка с#.
- •55, Яп с#. Массивы. Конструкция foreach.
- •52. Яп с#. Ветвление. Циклы. Примеры программ.
- •54. Яп с#. Класс, объекты, поля и методы, конструкторы, деструкторы.
- •2)C параметрами:
- •57. Яп с#. Наследование. Абстрактные классы.
- •48. Нормализация таблиц
- •50. Компоненты доступа к бд
- •56. Яп с#. Символы и строки. Класс Random.
- •58. Яп с#. Вложенные, изолированные классы и класс Object.
- •60. Яп с#. Интерфейсы.
- •61. Делегаты,события.
- •62.Создание приложений с графическим интерфейсом.
- •38. Система меню
7. Директивы препроцессора.
Прога состоит из ф-й кроме этого обычно в начале проги указываются т.н. директивы препроцессора. Данные директивы вып-ся до компиляции проги.
Все директивыпрепроцессора нач-ся со знака # (include) <имя файла>
# include “имя файла” (включение в текст проги содержимого указанного файла). <> поиск файла осуществляется в стандартном каталоге для хранения заголовочных файлов, “ ” сначала поиск в каталоге с прогой, а потом в стандартном каталоге.
# define идентификатор последовательности символов. Замена кажд вхождения идентиф в тексте проги на указанную посл-ть символов(макроподстановка). # if – конст_выр-е
# endif - директива условной компиляции (если условие истинно,то текст обрабатывается препроц, в противном случ пропуск)
# error – сообщение об ошибке, когда препроцессор включает данную директиву,он прекращ компиляцию и выдаёт сообщ об ошибке
Все директивы д. записываться в одну строку
8. Организация ветвления.
Операторы управления:
1)Условные if(услов){послед-ть оп1} ; else {послед-ть оп2}
2)Выбора switch(кслов) {case конст1: послед-ть оп1; break; ….. default: послед оп}
Оп-р break использ для прерывания послед-ти выполнения оп-ов,указанных в блоке case.Выражен указ в default выполн,если выраж указ в switch не приним ни одно из значен case.
Пр1: if(x>y) { a=x;}else a=y;
Пр2: switch(code) {case o:x=x+1; break;….default: a=0;}
9. Организация циклов.
Операторы цикла:
1)С предуслов While(усл){посл-ть оп-ов;}
2)С постусловием do{посл оп}While(усл);
3)Со счётчиком for(нач значж усл циклажшаг){тело цикла;}
Пр1:int digits=0; While(N>0) {digits;N=N\10}
Пр3:for(i=0;i<N,i++) print(“Макс”);
Оп-р переходав goto метка
Оп-р возврата return <значение>
10. Массивы.
Массив-Это набор несколких величин одного и того же типа.
Объявление: тип имя массива [конст]
Int mas[23]
Доступ к эл масс осуществл так же,как и в др яп: a[i],a[0],b[]…….
Пр1:char array[5]={‘A’,’B’,’V’,’Y’,’O’};
Пр2:int m[10] [5]
Пр3:double a[] [2]={{3.2,4.8},{2.8,-5}}
Обработка и создание массивов. Массив может быть введен с клавиатуры. Обработка эле массива производ в цикле For (i=0; i<11; i++) cin >> a[i];
11-12 Функции. Основные понятия. Рекурсия.
Проги на C и C++ состоят только из одной ф-ии(main).Объявляется ф-я аналогично определению переменной.Определяется сначало только имя ф-ии,тип результата ф-ии,а также в (аргум ф-ии и их типы).
Int sum(int a,int b,int с).Тип аргум долж совпад или быть совместимым с типом паров.
Объявления и определения ф-й. < возвращаемый тип > < имя ф-и > (<список типизир парам-ов>) { < тело ф-и >}
Список парам-ов с указанием типов д им сл вид:[const ] < тип1><параметр1>, [const ] тип2 параметр2,...
Общая форма задан ссылочных парам-ов: [const] <тип 1&><парам 1>, [const]<тип 2&>парам 2>...
Способы передачи аргум в ф-ю:
1)Передача копии переменной
2)по указателю-перемен,содержащая адреса памяти,распределённой для размещен др переменных. Int*p
3)по ссылке P=&a;
Обычно объявленная ф-я явл глобальной, т.е. она доступна всем др ф-м.Еслиобъявить прототип ф-и в той, из кот она вызыв, то прототип будет скрыт от др ф-й. При вызове ф-и необх поставить в соответствие парам передаваемые аргум.
Ключ слово return передает в вызывающую ф-ю возвращаемое знач,если оно существует. Если тип возвращ-го ф-ей значения - void, вы не обязаны использовать оп-ор return
Рекурсия.такая конструкция,при которой ф-я вызывает саму себя.
Рекурсивн ф-ии:
1)пряморекурс-содерж в своём теле вызов самой себя
2)косвеннорекурсивная-ф-я содержит другую ф-ю,котор в свою очередь содержит первую.
Int Fact(int n) { int ( n<0) return 0; else return n*fakt (n-1);}
13, Ф-ции.Передача парам-в.
1)по указателю(-это переменная сод-щая адреса памяти распределенной для размещения др-х переем-х):пр, int *p. Реализование указателя:пр, *p= ‘a’. В С сущ-ет только такой способ передачи аргументов в ф-цию(передачи по ссылке аргументов нет).Пр,
int a=2; int b=1;
int f(int*a, int*b)
{
(*a)--;
return (*a-*b);
}
printf(“% d”, f (&a,&b));
printf (“% d”,a);
2)по ссылке: для получения адреса переменной в языках С,С++ исп.оп-р взятия адреса. Обозначается &. Пр, int *p;
p=&a;
Пр, int a=2; int b=1;
int f(int &a, int &b)
{
a--;
return a-b;
}
printf(“% d”, f (a, b));
printf (“% d”,a);
Фактически механизм передачи аргументов по ссылке введен в С++(в яз. С отсутствует) для упрощения работы с указателем. При передаче аргументов в ф-цию по ссылке или указателю в ф-ции д-е аргумента могут изм-ся. В большинстве случаев этого следует избегать (в некот.случав необходимо)передачи по ссылке (указателю). Однако большие объекты значительно эф-ны передавать по ссылке или указателю,чем по значению. Поэтому такой объект объявляется с модификатором const.Пр,
void f (const int & arg)
{
//arg нельзя изм-ть(без исп-ния явных преобразований)
}
14, Ф-ции.Передача массивов в качестве парам-в.
Если в качестве передаваемого арг-та исп-ся массив д-х,то в ф-цию передается только указатель на массив,т.е. адрес 1-го эл-та. При вызове ф-ции в списке арг-тов записывается имя массива.Имя массива без индекса явл.адресом эл-та с нулевым индексом. Можно использовать три ватианта описания массивов, поступающего в функцию, в качестве параметра. 1. Параметр в функции может быть объявлен как массив соответствующего типа с указанием его размера.
#include <iostream.h>
int sum(int x[5])
{ int res=0
for(int i=0; i=5; i++)
res+=x[i];
return res;
}
void main()
{ int mas[3] [5], i, j;
for(j=0; j<3; i++)
for(j=0, j<5; j++)
mas[i][j]=i*j;
for(j=0; j<3; i++)
cout<<“\n res=”<< sum(mas[i])
}
2. Массив в качестве параметра в функции может быть объявлен без указания его размера. Так как сам массив в стек не копируется, то размер массива в общем случае компилятору не требуется. Контроль правильности использования индекса массива возлагается на программиста. В этом случае используется указатель на первый элемент массива.
int sum(int x[])
{ int res=0;
for(int i=0; i<5; i++)
res+=x[i];
return res;
}
3. Наиболее распространенный способ, обычно используемый при написании профессиональных программ— объявление параметра-массива указателем на соответствующий тип данных. Функцию можно вызвать так, как было проиллюстрировано выше, но можно и так:
#include<stdio.h>
int sum (int*x)
{ int res=0;
for (int i=0; i<5; i++)
res+=*x++;
return res;
}
void main ()
{ int mas[3][5], i, j;
for(i=0; i<3; i++)
for(j=0, j<5; j++)
mas[i][j]=i*j;
for(i=0; i<3; i++)
printf(“\n res=%d”, sum(&mas[i][0]));
}
Во всех случаях в функцию передается адрес первого элемента массива, т. е. указатель соответствующего типа.