Разделы презентаций


Технологии программирования

Содержание

Разделы курсаОсновы объектно-ориентированного программирования и язык С++Библиотеки языка С++.Основы конструирования программных систем.Программирование приложения с использованием базы данных.Системы коллективной разработки программного обеспечения.13 лекций9 лабораторных работ11 упражненийэкзамен

Слайды и текст этой презентации

Слайд 1Технологии программирования
Направления:
Информационные системы и технологии
Информатика и вычислительная техника

2015

год
Часть 1

Технологии программирования Направления: Информационные системы и технологииИнформатика и вычислительная техника2015 годЧасть 1

Слайд 2Разделы курса
Основы объектно-ориентированного программирования и язык С++
Библиотеки языка С++.
Основы конструирования

программных систем.
Программирование приложения с использованием базы данных.
Системы коллективной разработки программного

обеспечения.

13 лекций
9 лабораторных работ
11 упражнений
экзамен
Разделы курсаОсновы объектно-ориентированного программирования и язык С++Библиотеки языка С++.Основы конструирования программных систем.Программирование приложения с использованием базы данных.Системы

Слайд 3Основная литература
Современные методы программирования на языках C и C++ /

Л.Б. Бузюков, О.Б. Петрова. - СПб.: Линк, 2008
Орлов С.А., Цилькер

Б.Я. Технологии разработки программного обеспечения. Учебник для вузов. 4-е издание. Стандарт третьего поколения. СПб, Питер, 2012.

Основная литератураСовременные методы программирования на языках C и C++ / Л.Б. Бузюков, О.Б. Петрова. - СПб.: Линк,

Слайд 4Дополнительная литература
Павловская Т. А. - C/C++. Программирование на языке высокого

уровня, СПБ: Питер, 2010. - 260 с.
Шлее М. Qt

4.5 Профессиональное программирование СПБ.: БХВ-Петербург, 2010. - 896 с.
Буч Г. - Объектно-ориентированный анализ и проектирование с примерами приложений на C++. М.:БИНОМ, 1998. – 558 с.
Фридман А.Л. – Основы объектно-ориентированной разработки программных систем. М.: финансы и статистика, 2000. – 190 с.
Дополнительная литератураПавловская Т. А. - C/C++. Программирование на языке высокого уровня, СПБ: Питер, 2010. - 260 с.

Слайд 5Инструментальные средства для лабораторных работ
1. Netbeans IDE 6.x (Windows, Linux,

Mac OS X) и выше
www.netbeans.org
2. Code::Blocks 10.5 и выше (Windows,

Linux, Mac OS X) www.codeblocks.org
3. Microsoft Visual Studio (Windows)
Visual Studio .NET 2013
Visual Studio .NET 2012
Visual Studio .NET 2010
Visual Studio .NET 2008
Visual C++ 6.0
Инструментальные средства для лабораторных работ1. Netbeans IDE 6.x (Windows, Linux, Mac OS X) и выше				www.netbeans.org2. Code::Blocks 10.5

Слайд 6Компиляторы
gcc (Linux, Mac OS X) – для Netbeans и Code::Blocks,

устанавливается отдельно
MinGW (Windows) - для Netbeans и Code::Blocks, устанавливается отдельно+пакет

MSYS (дистрибутивы Code::Blocks 12 и 13 содержат все необходимые компоненты)
Cigwin (Windows)

Компиляторыgcc (Linux, Mac OS X) – для Netbeans и Code::Blocks, устанавливается отдельноMinGW (Windows) - для Netbeans и

Слайд 7Дополнительное программное обеспечение
Инструментальная среда Qt Creator и библиотека Qt

.
qt-project.org
Subversion (svn) — система контроля версии программного обеспечения
http://subversion.apache.org/
http://tortoisesvn.net/

(TortoiseSVN)
Дополнительное программное обеспечение Инструментальная среда Qt Creator и библиотека Qt . qt-project.org Subversion (svn) — система контроля

Слайд 8Классификация языков программирования
Машинно-зависимые (машинные коды, ассемблеры)
Машинно-независимые (языки высокого уровня, ЯВУ)
Императивные

(процедурные): Fortran, Cobol, Си, Pascal, Basic
Функциональные: Lisp, Haskell, Erlang
Логические

(декларативные): Prolog, SQL
Объектно-ориентированные: Smalltalk, C++, Objective-C, Java, Object Pascal, Ruby
Классификация языков программированияМашинно-зависимые (машинные коды, ассемблеры)Машинно-независимые (языки высокого уровня, ЯВУ)Императивные (процедурные): Fortran, Cobol, Си, Pascal, Basic Функциональные:

Слайд 9Язык программирования Си
Создан в начале 1970х годов
Стандарты ISO: 1990, 1999,

2011.
Процедурный язык общего назначения, используется для системного программирования.
Достоинства: простота, лаконичность,

встроенные типы данных, создание типов данных пользователем (структуры)
Недостатки: отсутствует автоматическое управление памятью
Имена файлов с исходным кодом: *.c .
Язык программирования СиСоздан в начале 1970х годовСтандарты ISO: 1990, 1999, 2011.Процедурный язык общего назначения, используется для системного

Слайд 10Структуры в Си
1. Объявление типа структуры
2. Объявление структурной переменной
Объявление типа

(тег структуры Person):
struct Person
{
char Name[30]; /*поле структуры*/

int Year; /*поле структуры*/
} ;
Объявление переменной (Nick):
struct Person Nick;
Структуры в Си1. Объявление типа структуры2. Объявление структурной переменнойОбъявление типа (тег структуры Person):struct Person{   char

Слайд 11Объявление синонима типа для структуры
typedef struct Person
{

char Name[30];
int Year;
} PERSON;

PERSON Ann;

Объявление синонима типа для структуры typedef struct Person{   char Name[30];   int Year;} PERSON;

Слайд 12Анонимный тип структуры
struct
{
char Name[30];
int

Year;
} Tom;

Tom — имя перемной структурного типа
Выделено памяти: 30 +

4 = 34 (байта)
Анонимный тип структурыstruct{   char Name[30];   int Year;} Tom;Tom — имя перемной структурного типаВыделено

Слайд 13Инициализация структурной переменной
struct Person
{
char Name[30];

int Year;
} ;
struct Person Stud1 = {''John'', 1994};
struct Person Stud2

= {''Ann'', 1993};
Инициализация структурной переменнойstruct Person{   char Name[30];   int Year;} ;struct Person Stud1 = {''John'',

Слайд 14Обращение к полям структуры
Обращение к полю структуры через имя переменной:

Stud1.Year Stud2.Name

Обращение к полю через указатель:

struct Person* pStud = &Stud1;
printf(''%s %d'', pStud->Name, pStud->Year);
Обращение к полям структурыОбращение к полю структуры через имя переменной:  Stud1.Year   Stud2.NameОбращение к полю

Слайд 15Действия над структурами
Использование в выражениях полей структур:

Stud1.Year =

1992;
int Age = 2011 - Stud1.Year;
strcpy(Stud1.Name,

''Bill'');
printf(''Имя:%s возраст:%d'', Stud1.Name, Age);

Действия над структурамиИспользование в выражениях полей структур:  Stud1.Year = 1992;  int Age = 2011 -

Слайд 16Передача в функцию структурной переменной
struct Person
{
char Name[30];
int Year;
} ;
void input_struct(struct

Person* P);
void output_struct(struct Person P);
int main(void)
{
struct Person Ann;
input_struct(&Ann);
output_struct(Ann);
return 0;
}
void input_struct(struct

Person* P)
{
scanf(''%s'', P->Name);
scanf(''%d'',&P->Year);
}

void output_struct(struct Person P)
{
printf(''%s %d\n'', P.Name, P.Year);
}
Передача в функцию структурной переменнойstruct Person{char Name[30];int Year;} ;void input_struct(struct Person* P);void output_struct(struct Person P);int main(void){struct Person

Слайд 17Массив структур
struct Person
{
char Name[30];
int

Year;
} ;
struct Person Mas[4];
Обращение к полю i-го элемента массива:
Mas[i].Year =

1996;
(Mas + i)->Year = 1993;
Массив структурstruct Person{   char Name[30];   int Year;} ;struct Person Mas[4];Обращение к полю i-го

Слайд 18Передача в функцию массива структур
struct Person
{
char Name[30];
int Year;
} ;
void input_struct(struct

Person* P, int n);
void output_struct(struct Person* P, int n);
int main(void)
{
struct

Person su11[25];
input_struct(su11, 25);
output_struct(su11, 25);
return 0;
}
Передача в функцию массива структурstruct Person{char Name[30];int Year;} ;void input_struct(struct Person* P, int n);void output_struct(struct Person* P,

Слайд 19void input_struct(struct Person* P, int n)
{
int i;
for(i=0; i

output_struct(struct Person* P, int n)
{
int i;
for(i=0; i

printf(''%s %d\n'', (P+i)->Name, (P+i)->Year);
}
}
void input_struct(struct Person* P, int n){int i;for(i=0; iYear);}}

Слайд 20Управление памятью программы
Области памяти программы:
Сегмент кода
Статическая память (сегмент данных)
Стек
Динамическая память

(куча)

Управление памятью программыОбласти памяти программы:Сегмент кодаСтатическая память (сегмент данных)СтекДинамическая память (куча)

Слайд 21Динамическое распределение памяти в С
malloc
void* malloc(size_t size);
calloc
void* calloc(size_t num, size_t

size);
realloc
void* realloc(void* ptr, size_t size);
free
void free(void* ptr);

Динамическое распределение памяти в Сmallocvoid* malloc(size_t size);callocvoid* calloc(size_t num, size_t size);reallocvoid* realloc(void* ptr, size_t size);freevoid free(void* ptr);

Слайд 22Пример создания динамической переменной
int *iPtr ;
iPtr = malloc(4);

/* malloc(sizeof(int)) */
scanf("%d", iPtr);
printf("Number:

%d\n", *iPtr);
free(iPtr);
iPtr = NULL;

Пример создания динамической переменнойint *iPtr ;  iPtr = malloc(4);   /* malloc(sizeof(int)) */  scanf(

Слайд 23Пример создания строки в динамической памяти
char buffer[200]; *stPtr;

scanf("%s", buffer);
int len = strlen(buffer);
stPtr

= malloc(len+1);
strcpy(stPtr, buffer);
printf("String: %s\n",stPtr);
free(stPtr);
stPtr = NULL;
Пример создания строки в динамической памяти  char buffer[200]; *stPtr;  scanf(

Слайд 24Проверка выделения памяти
double* ptr;
ptr = (double*) malloc(max * sizeof (double));
if

(ptr == NULL) printf('' Ошибка выделения памяти!'');
else
{
/* вычисления

*/
free (ptr);
}

Проверка выделения памятиdouble* ptr;ptr = (double*) malloc(max * sizeof (double));if (ptr == NULL) printf('' Ошибка выделения памяти!'');else

Слайд 25Еще вариант контроля
#include
int main (void)
{
double* ptr;
int max = 4;
if

((ptr = (double*) malloc(max * sizeof (double))) == NULL)
{
printf('' Ошибка

выделения памяти!'');
exit (EXIT_FAILURE); /* stdlib.h EXIT_SUCCESS*/
}
// вычисления
free (ptr);
}
Еще вариант контроля#include int main (void){double* ptr;int max = 4;if ((ptr = (double*) malloc(max * sizeof (double)))

Слайд 26Язык программирования C++
Создан в начале 1980х годов.
Стандарты 1998, 2003, 2011.
Объектно-ориентированный

язык общего назначения.
Имеет код, частично совместимый с Си.
Состоит из ядра

и стандартной библиотеки (пространство имен std).
Большое количество сторонних библиотек, расширяющих возможности языка (диалекты С++).
Имена файлов с исходным кодом: *.cpp, *.cc.
Язык программирования C++Создан в начале 1980х годов.Стандарты 1998, 2003, 2011.Объектно-ориентированный язык общего назначения.Имеет код, частично совместимый с

Слайд 27Особенности C++, отсутствующие в Си
Новые стандартные типы данных (bool, string).
Шаблоны

(templates).
Операторы управления динамической памятью (new, delete).
Ссылки.
Пространства имен (namespace).
Перегрузка функций, операторов.
Обработка

исключительных ситуаций.
Стандартные классы и объекты для организации ввода/вывода (cin, cout).
Особенности C++, отсутствующие в СиНовые стандартные типы данных (bool, string).Шаблоны (templates).Операторы управления динамической памятью (new, delete).Ссылки.Пространства имен

Слайд 28Пространства имен
ключевое слово
оператор разрешения области видимости
глобальный идентификатор:
идентификатор из пространства имен

стандартной библиотеки С++:
идентификатор из пространства имен пользователя:
предложение using:
namespace
::


myfn();
std::cout << ''1234'';


myspace::myfn();

using namespace std;
cout << ''1234'';
Пространства именключевое словооператор разрешения области видимостиглобальный идентификатор:идентификатор из пространства имен стандартной библиотеки С++:идентификатор из пространства имен пользователя:

Слайд 29Параметры функции
1. Передаются через стек
2. Виды параметров:
Параметр-значение,
Параметр-указатель,
Параметр-ссылка (в C++).

Параметры функции1. Передаются через стек2. Виды параметров:Параметр-значение,Параметр-указатель,Параметр-ссылка (в C++).

Слайд 30Передача параметра-значения
float mult(float a)
{
a = 2*a;
return a;
}
int main()
{
float num =

15.5;
printf(''%.3f \n'', mult(num));
printf(''%.3f '', num);
return 0;
}
Ответ:
31.000
15.500

Передача параметра-значенияfloat mult(float a){a = 2*a;return a;}int main(){float num = 15.5;printf(''%.3f \n'', mult(num));printf(''%.3f '', num);return 0;}Ответ:31.00015.500

Слайд 31Передача параметра-указателя
void mult2(float* pa)
{
*pa = *pa * 2;
}
int main()
{
float num

= 15.5;
mult2(&num);
printf(''%f\n'',num);
return 0;
}
Ответ:
31.000

Передача параметра-указателяvoid mult2(float* pa){*pa = *pa * 2;}int main(){float num = 15.5;mult2(&num);printf(''%f\n'',num);return 0;}Ответ:31.000

Слайд 32Передача параметра-ссылки
void mult3(float &b)
{
b = b*2;
}
int main()
{
float num = 15.5;
mult3(num);
printf(''%f\n'',num);
return

0;
}
Ответ:
31.000

Передача параметра-ссылкиvoid mult3(float &b){b = b*2;}int main(){float num = 15.5;mult3(num);printf(''%f\n'',num);return 0;}Ответ:31.000

Слайд 33Создание динамических переменных в C++
Операторы С++:
1. new — выделение динамической

памяти для одной переменной
2. new[ ] — выделение динамической памяти

для массива
3. delete — освобождение динамической памяти из-под переменной (кроме массива)
4. delete[ ] - освобождение динамической памяти из-под массива
Создание динамических переменных в C++Операторы С++:1. new — выделение динамической памяти для одной переменной2. new[ ] —

Слайд 34Пример программы с динамической переменной
#include
using namespace std;
int main()
{

float *iptr; // объявление переменной-указателя
iptr = new float;

// выделение динамической памяти
cin >> *iptr; // ввод числа в динамич. переменную
cout << *iptr; // вывод из динамич. переменной
delete iptr; // освобождение памяти
iptr = NULL;
return 0;
}
Пример программы с динамической переменной#include using namespace std;int main(){  float *iptr; // объявление переменной-указателя  iptr

Слайд 35Массив в динамической памяти
#include
using namespace std;
int main()
{
float

*mptr;
int n = 3, i;
// выделение памяти

mptr = new float[n];

// заполнение массива
for(i=0;i{
cout << "enter->";
cin >> *(mptr+i);
}
// вывод массива
for(i=0;i cout << *(mptr+i)<// освобождение памяти
delete[ ] mptr;
mptr = NULL;
return 0;
}

Массив в динамической памяти#include using namespace std;int main(){  float *mptr;  int n = 3, i;//

Слайд 36Ввод/вывод в С++
Консольный ввод/вывод — стандартные объекты-потоки cin (ввод) и

cout (вывод):
std::cout a;
Файловый ввод/вывод

— классы ifstream и ofstream (подключить fstream), последовательность действий:
создать объект-поток,
открыть его в заданном режиме,
выполнить ввод/вывод данных,
закрыть объект-поток.
Ввод/вывод в С++Консольный ввод/вывод — стандартные объекты-потоки cin (ввод) и cout (вывод):std::cout a;Файловый ввод/вывод — классы ifstream

Слайд 37Пример работы с файлом
// Чтение из файла
std::ifstream fin;
fin.open(''my1.txt'');
if (fin)
{

fin>>number;
fin.close();
}
else cout

not found'';

// Запись в файл
std::ofstream fout;
fout.open(''my2.txt'');
fout <<"Number= "<< number<<"\n";
fout.close();
Пример работы с файлом// Чтение из файлаstd::ifstream fin;fin.open(''my1.txt'');if (fin){    fin>>number;    fin.close();}else

Слайд 38Класс string
#include


int main(int argc, char** argv)
{
std::string st1("My

"), st2="string", st3;
st3 = st1+st2;
int i;

for(i=0;i std::cout << st3[i] < return 0;
}
Класс string#include int main(int argc, char** argv){  std::string st1(

Слайд 39Другие методы класса string
insert — вставка подстроки
string

st("ererer");
st.insert(1,"567"); //e567rerer
erase — удаление символов

st.erase(5,3); //e567rr
empty — проверка наличия символов в строке
st.clear();
if(st.empty())
cout << "Пустая строка "< else cout << st<c_str — получение указателя на строку
int len = strlen(st.c_str());
Другие методы класса stringinsert — вставка подстроки   string st(

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика