Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


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

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

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

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

Презентация на тему Дополнительные возможности в программировании

Содержание

1.1. Парадигмы программирования Структурное (процедурное) программированиеПрограмма = алгоритм + данныеОбъектно-ориентированное программированиеПрограмма = совокупность объектов, взаимодействующих друг с другом
1. Дополнительные возможности 1.1. Парадигмы программирования  Структурное (процедурное) программированиеПрограмма = алгоритм + данныеОбъектно-ориентированное программированиеПрограмма 1.2. Дополнительные средства С++  Конструкции языкаПространства именПерегрузка функцийШаблоны функцийОбработка исключенийОрганизация ввода/вывода 1.3. Конструкции языка  Определение константconst тип имя = значение;const int SZ 1.3. Конструкции языка  (продолжение)Определения в условиях	if(тип имя = врж)		. . .Последовательность 1.3. Конструкции языка  (продолжение) Исходный текстОбычная функцияВстроеннаяфункцияIIIIIIКоды функции F(. . .)Коды функции F(. . .) 1.3. Конструкции языка (продолжение)Тип данных «ссылка»	тип & имя;(a) void swap(int *a, int 1.3. Конструкции языка (продолжение)int x = 2, y = 3;swap(&x, &y);swap(x, y);(a) 1.4. Пространства имен  Пространство имен – namespace Библиотека С++ – в std 1.5. Организация ввода/вывода  Потоковый ввод/выводБуферизацияФорматированиеПреобразование ПрикладнаяпрограммаПоток выводаПоток ввода 1.5. Организация ввода/вывода (продолжение)#include Ввод данных: тип var1; . . . std::cin Область внешних(глобальных) данныхДругие функции1.6. Структура программы на С  Функция main() 1.6. Структура программы на С (продолжение) // файл 1int n;static int p;int 1.7. Структура программы на С++  Область глобальныхданныхФункция main()Другие функцииПространствоимен 1Пространствоимен 2 Область внешних(глобальных) данныхФункции1.8. Структура пространства имен 1.9. Определение пространства имен  namespace имя {	определения}Пример:namespace MyNameSpace {  int 1.10. Доступ к объектам  Внутри пространства имен – 	непосредственноВне пространства имен 1.10. Доступ к объектам  (продолжение)Использование псевдонимовnamespace MNS = MyNameSpace; MNS::i = 10; MNS::f(12); 1.11. Разделение пространства имен  namespace NS { int i; . . 1.12. Пример: стек символов  // файл stack.h : интерфейс стекаnamespace Stack 1.12. Пример: стек символов (продолжение)// файл stack.сpp : реализация стека#include “stack.h” namespace 1.12. Пример: стек символов (продолжение)// файл user.cpp: использование стека #include “stack.h”void f(){ 1.13. Инструкция using  using namespace имя_пространства; using namespace std;using имя_пространства::имя_члена; using std::cin; 1.14. Пример 1.15. Результат выполнения  3. In NS1::f: q = 19210;2. in NS1: 1.16. Неименованное пространство  namespace { . . .}Создает идентификаторы, уникальные 	внутри 1.17. Перегрузка функций  Прототипы функций:тип_результата имя (список_параметров);Примеры: void f(int); void f(float); 1.18. Использование функции  Вызов функции: . . . имя (список_аргументов) . . . f(12); f( 1.19. Алгоритм выбора функции  1. Точное соответствие вызова функции	прототипу2. Преобразование аргументов 1.20. Примеры  Прототипы функций void f(char); void f(double); void f(double, int); 1.21. Параметры по умолчанию  Прототип функции: char *fc(char, int = 1); 1.21. Параметры по умолчанию (продолжение)Определение функции:char *fc(char a, int b) // !!!{ 1.22. Шаблоны функций  void swap(int &a, int &b){ int t = 1.22. Шаблоны функций (продолжение)template void swap(MyType &a, MyType &b){ MyType t = 1.22. Шаблоны функций (продолжение)Вызов функции:int a, b; double c, d;swap(a, b);  1.23. Обработка исключений  Анализ и идентификация ошибкиint f(int &res ){ 1.23. Обработка исключений (продолжение)Обработка ошибкиint rc, res;. . .rc = f(res);if( rc 1.24. Диагностирование ошибки  int f( ){  int res;  . 1.25. Обработка ошибки  try {  f( );	…}catch(тип аргумент){ 1.26. Пример 1.27. Результаты тестирования  string:
Слайды презентации

Слайд 2 1.1. Парадигмы программирования
Структурное (процедурное) программирование
Программа = алгоритм

1.1. Парадигмы программирования Структурное (процедурное) программированиеПрограмма = алгоритм + данныеОбъектно-ориентированное программированиеПрограмма

+ данные
Объектно-ориентированное программирование
Программа = совокупность объектов,
взаимодействующих друг с

другом

Слайд 3 1.2. Дополнительные средства С++
Конструкции языка
Пространства имен
Перегрузка функций
Шаблоны

1.2. Дополнительные средства С++ Конструкции языкаПространства именПерегрузка функцийШаблоны функцийОбработка исключенийОрганизация ввода/вывода

функций
Обработка исключений
Организация ввода/вывода


Слайд 4 1.3. Конструкции языка
Определение констант
const тип имя =

1.3. Конструкции языка Определение константconst тип имя = значение;const int SZ

значение;
const int SZ = 80;
Цикл for
for (тип имя =

врж1; врж2; врж3)
тело цикла
for(int i = 0; i < SZ; ++i)
s += a[i];

Слайд 5 1.3. Конструкции языка (продолжение)
Определения в условиях
if(тип имя =

1.3. Конструкции языка (продолжение)Определения в условиях	if(тип имя = врж)		. . .Последовательность

врж)
. . .
Последовательность предложений языка
Встроенные функции
inline заголовок функции
тело функции


Слайд 6 1.3. Конструкции языка (продолжение)

Исходный текст
Обычная
функция
Встроенная
функция
I
III
II
Коды функции

1.3. Конструкции языка (продолжение) Исходный текстОбычная функцияВстроеннаяфункцияIIIIIIКоды функции F(. . .)Коды функции F(. . .)

F(. . .)
Коды функции
F(. . .)


Слайд 7 1.3. Конструкции языка (продолжение)
Тип данных «ссылка»
тип & имя;
(a) void

1.3. Конструкции языка (продолжение)Тип данных «ссылка»	тип & имя;(a) void swap(int *a,

swap(int *a, int *b)
{
int t = *a; *a =

*b; *b = t;
}
(b) void swap(int &a, int &b)
{
int t = a; a = b; b = t;
}


Слайд 8 1.3. Конструкции языка (продолжение)
int x = 2, y =

1.3. Конструкции языка (продолжение)int x = 2, y = 3;swap(&x, &y);swap(x,

3;
swap(&x, &y);



swap(x, y);
(a) void swap(int *a, int *b);
(b) void

swap(int &a, int &b);

a

b


Слайд 9 1.4. Пространства имен
Пространство имен – namespace
Библиотека

1.4. Пространства имен Пространство имен – namespace Библиотека С++ – в std

С++ – в std


Слайд 10 1.5. Организация ввода/вывода
Потоковый ввод/вывод
Буферизация
Форматирование
Преобразование
Прикладная
программа
Поток вывода
Поток ввода

1.5. Организация ввода/вывода Потоковый ввод/выводБуферизацияФорматированиеПреобразование ПрикладнаяпрограммаПоток выводаПоток ввода

Слайд 11 1.5. Организация ввода/вывода (продолжение)
#include
Ввод данных:
тип

1.5. Организация ввода/вывода (продолжение)#include Ввод данных: тип var1; . . .

var1; . . .
std::cin >> var1 >> .

. .;
Вывод данных:
std::cout << врж1 << . . . << std::endl;

Слайд 12 Область внешних
(глобальных) данных
Другие функции
1.6. Структура программы на С

Область внешних(глобальных) данныхДругие функции1.6. Структура программы на С Функция main()


Функция main()


Слайд 13 1.6. Структура программы на С (продолжение)
// файл

1.6. Структура программы на С (продолжение) // файл 1int n;static int

1
int n;
static int p;
int main()
{
n = 5;
}
void f1()
{

int n = 15;
++n;
p = 12;
}

// файл 2
extern int n;
extern int p;  ???
void f2()
{
n = 28;
}
void f3()
{
p = 23;  ошибка!
static int n = 3;
++n;
}


Слайд 14 1.7. Структура программы на С++

Область глобальных
данных
Функция

1.7. Структура программы на С++  Область глобальныхданныхФункция main()Другие функцииПространствоимен 1Пространствоимен 2

main()
Другие функции
Пространство
имен 1
Пространство
имен 2


Слайд 15 Область внешних
(глобальных) данных
Функции
1.8. Структура пространства имен

Область внешних(глобальных) данныхФункции1.8. Структура пространства имен

Слайд 16 1.9. Определение пространства имен
namespace имя {
определения
}
Пример:
namespace MyNameSpace

1.9. Определение пространства имен namespace имя {	определения}Пример:namespace MyNameSpace { int i,

{
int i, k;
void f(int j)

{ std::cout << (i + j); }
}

Слайд 17 1.10. Доступ к объектам
Внутри пространства имен –

1.10. Доступ к объектам Внутри пространства имен – 	непосредственноВне пространства имен


непосредственно
Вне пространства имен – с помощью
оператора разрешения видимости ::

имя_пространства :: имя_члена
Пример:
MyNameSpace::i = 10;
MyNameSpace::f(12);

Слайд 18 1.10. Доступ к объектам (продолжение)
Использование псевдонимов
namespace MNS =

1.10. Доступ к объектам (продолжение)Использование псевдонимовnamespace MNS = MyNameSpace; MNS::i = 10; MNS::f(12);

MyNameSpace;
MNS::i = 10;
MNS::f(12);


Слайд 19 1.11. Разделение пространства имен
namespace NS {
int

1.11. Разделение пространства имен namespace NS { int i; . .

i;
. . .
}
. . .
namespace NS {
int

j;
. . .
}

Слайд 20 1.12. Пример: стек символов
// файл stack.h :

1.12. Пример: стек символов // файл stack.h : интерфейс стекаnamespace Stack

интерфейс стека
namespace Stack {
void push(char );
char pop();
}


Слайд 21 1.12. Пример: стек символов (продолжение)
// файл stack.сpp :

1.12. Пример: стек символов (продолжение)// файл stack.сpp : реализация стека#include “stack.h”

реализация стека
#include “stack.h”
namespace Stack {
const int SZ

= 200;
char st [SZ];
int top = 0;
void push(char c) { … }
}
char Stack::pop() { … }

Слайд 22 1.12. Пример: стек символов (продолжение)
// файл user.cpp: использование

1.12. Пример: стек символов (продолжение)// файл user.cpp: использование стека #include “stack.h”void

стека
#include “stack.h”
void f()
{
Stack::push(‘c’);
if(Stack::pop() != ‘c’)
std::cout

<< “error” << std::endl;
}


Слайд 23 1.13. Инструкция using
using namespace имя_пространства;
using namespace

1.13. Инструкция using using namespace имя_пространства; using namespace std;using имя_пространства::имя_члена; using std::cin;

std;

using имя_пространства::имя_члена;
using std::cin;


Слайд 24 1.14. Пример

1.14. Пример

Слайд 25 1.15. Результат выполнения
3. In NS1::f: q =

1.15. Результат выполнения 3. In NS1::f: q = 19210;2. in NS1: q = 123454321;::q = 555

19210;
2. in NS1: q = 123454321;
::q = 555





Слайд 26 1.16. Неименованное пространство
namespace {
. . .
}
Создает

1.16. Неименованное пространство namespace { . . .}Создает идентификаторы, уникальные 	внутри

идентификаторы, уникальные
внутри данного файла. Вне данного
файла идентификаторы

недоступны
(Эквивалентно классу памяти static в С)

Слайд 27 1.17. Перегрузка функций
Прототипы функций:
тип_результата имя (список_параметров);

Примеры:
void

1.17. Перегрузка функций Прототипы функций:тип_результата имя (список_параметров);Примеры: void f(int); void f(float);

f(int);
void f(float);
void f(char [], int);
void f(const

char *);

Слайд 28 1.18. Использование функции
Вызов функции:
. . .

1.18. Использование функции Вызов функции: . . . имя (список_аргументов) . . . f(12); f(

имя (список_аргументов) . . .

f(12);
f("Hello");


Слайд 29 1.19. Алгоритм выбора функции
1. Точное соответствие вызова

1.19. Алгоритм выбора функции 1. Точное соответствие вызова функции	прототипу2. Преобразование аргументов

функции
прототипу
2. Преобразование аргументов –
расширение (char к int, int

к long,
float к double)
3. Стандартное преобразование типа (int
к float , long к int и др.)
4. Преобразования, требующие временных
переменных (параметр – ссылка)
5. Преобразования, определенные
пользователем

Слайд 30 1.20. Примеры
Прототипы функций


void f(char);
void f(double);

1.20. Примеры Прототипы функций void f(char); void f(double); void f(double, int);

void f(double, int);

void f(const int &, const char

*);

Вызовы функций (на этапе компиляции)
int a; float c;
f('a'); // прав.1
f(c); // прав.2
f(12); // прав.3
f(c, 8); // прав.2
f(c, c); // прав.3
f(a, "*"); // прав.1
f(12, "*"); // прав.4


Слайд 31 1.21. Параметры по умолчанию
Прототип функции:
char *fc(char,

1.21. Параметры по умолчанию Прототип функции: char *fc(char, int = 1);

int = 1); // !!!
Эквивалентно
char *fc(char);
char

*fc(char, int);

Слайд 32 1.21. Параметры по умолчанию (продолжение)
Определение функции:
char *fc(char a, int

1.21. Параметры по умолчанию (продолжение)Определение функции:char *fc(char a, int b) //

b) // !!!
{
. . .
}
Вызов функции … fc('*')


эквивалентен … fc('*', 1) …

Слайд 33 1.22. Шаблоны функций
void swap(int &a, int &b)
{

1.22. Шаблоны функций void swap(int &a, int &b){ int t =

int t = a; a = b; b =

t;
}
void swap(double &a, double &b)
{
double t = a; a = b; b = t;
}


Слайд 34 1.22. Шаблоны функций (продолжение)
template
void swap(MyType &a, MyType

1.22. Шаблоны функций (продолжение)template void swap(MyType &a, MyType &b){ MyType t

&b)
{
MyType t = a; a = b; b

= t;
}

Слайд 35 1.22. Шаблоны функций (продолжение)
Вызов функции:
int a, b;
double c,

1.22. Шаблоны функций (продолжение)Вызов функции:int a, b; double c, d;swap(a, b);

d;
swap(a, b);  генерируется код функции1
swap(c, d);  генерируется

код функции2
swap(a, b);  используется код функции1


Слайд 36 1.23. Обработка исключений
Анализ и идентификация ошибки
int f(int

1.23. Обработка исключений Анализ и идентификация ошибкиint f(int &res ){ int

&res )
{
int errcode;
. . .

if (условие)
диагностирование ошибки: errcode = 1
. . .
res = … ;
return errcode;
}

Слайд 37 1.23. Обработка исключений (продолжение)
Обработка ошибки
int rc, res;
. . .
rc

1.23. Обработка исключений (продолжение)Обработка ошибкиint rc, res;. . .rc = f(res);if(

= f(res);
if( rc == 1)
обработка ошибки

1
. . .


Слайд 38 1.24. Диагностирование ошибки
int f( )
{
int

1.24. Диагностирование ошибки int f( ){ int res; . . .

res;
. . .
if (условие)

throw выражение;
. . .
return res;
}

Слайд 39 1.25. Обработка ошибки
try {
f( );


}
catch(тип

1.25. Обработка ошибки try { f( );	…}catch(тип аргумент){  обработка аргумента}Ошибка; передается выражениеОшибки нет

аргумент)
{
обработка аргумента
}

Ошибка; передается выражение
Ошибки нет


Слайд 40 1.26. Пример

1.26. Пример

  • Имя файла: dopolnitelnye-vozmozhnosti-v-programmirovanii.pptx
  • Количество просмотров: 111
  • Количество скачиваний: 0
- Предыдущая Атомная физика
Следующая - Ультразвук