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

Презентация: Дополнительные возможности в программировании
1 из 41
Ваша оценка презентации
Оцените презентацию по шкале от 1 до 5 баллов
  • 1
  • 2
  • 3
  • 4
  • 5
4.0
1 оценка

Комментарии

Нет комментариев для данной презентации

Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.


Добавить свой комментарий

Аннотация к презентации

Посмотреть и скачать презентацию по теме "Дополнительные возможности в программировании" по информатике, включающую в себя 41 слайд. Скачать файл презентации 0.2 Мб. Средняя оценка: 4.0 балла из 5. Для студентов. Большой выбор учебных powerpoint презентаций по информатике

  • Формат
    pptx (powerpoint)
  • Количество слайдов
    41
  • Слова
    другое
  • Конспект
    Отсутствует

Содержание

  • Презентация: Дополнительные возможности в программировании
    Слайд 1

    1. Дополнительные возможности

  • Слайд 2

    1.1. Парадигмы программирования

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

  • Слайд 3

    1.2. Дополнительные средства С++

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

  • Слайд 4

    1.3. Конструкции языка

    Определение констант constтипимя = значение; const int SZ = 80; Цикл for for(тип имя = врж1; врж2; врж3) тело цикла for(int i = 0; i

  • Слайд 5

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

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

  • Слайд 6

    6 Исходный текст I . . . F(. . .) . . . III II . . . F(. . .) . . . . . . F(. . .) { . . . } Обычная функция Встроенная функция I Вызов F() III II Вызов F() Коды функции F(. . .) I III II Коды функции F(. . .) Коды функции F(. . .)

  • Слайд 7

    Тип данных «ссылка» тип&имя; (a) void 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; } 7

  • Слайд 8

    int x = 2, y = 3; swap(&x, &y); swap(x, y); 8 2 x 3 y (a) void swap(int *a, int *b); a b 2 x 3 y (b) void swap(int &a, int &b); a b

  • Слайд 9

    1.4. Пространства имен

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

  • Слайд 10

    1.5. Организация ввода/вывода

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

  • Слайд 11

    1.5. Организация ввода/вывода(продолжение)

    #include Ввод данных: типvar1; . . . std::cin >> var1 >> . . .; Вывод данных: std::cout

  • Слайд 12

    1.6. Структура программы на С

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

  • Слайд 13

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

    // файл 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; } 13

  • Слайд 14

    1.7. Структура программы на С++

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

  • Слайд 15

    1.8. Структура пространства имен

    Область внешних (глобальных) данных Функции 15

  • Слайд 16

    1.9. Определение пространства имен

    namespaceимя{ определения } Пример: namespace MyNameSpace{ int i, k; void f(int j) { std::cout

  • Слайд 17

    1.10. Доступ к объектам

    Внутри пространства имен – непосредственно Вне пространства имен – с помощью оператора разрешения видимости :: имя_пространства :: имя_члена Пример: MyNameSpace::i = 10; MyNameSpace::f(12); 17

  • Слайд 18

    1.10. Доступ к объектам (продолжение)

    Использование псевдонимов namespace MNS = MyNameSpace; MNS::i = 10; MNS::f(12); 18

  • Слайд 19

    1.11. Разделение пространства имен

    namespace NS { inti; . . . } . . . namespace NS { int j; . . . } 19

  • Слайд 20

    1.12. Пример: стек символов

    // файл stack.h : интерфейс стека namespace Stack { void push(char ); char pop(); } 20

  • Слайд 21

    1.12. Пример: стек символов(продолжение)

    // файл stack.сpp : реализация стека #include “stack.h” namespace Stack { const int SZ = 200; char st [SZ]; int top = 0; void push(char c) { … } } char Stack::pop() { … } 21

  • Слайд 22

    // файл user.cpp: использование стека #include “stack.h” void f() { Stack::push(‘c’); if(Stack::pop() != ‘c’) std::cout

  • Слайд 23

    1.13. Инструкция using

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

  • Слайд 24

    1.14. Пример

    24

  • Слайд 25

    1.15. Результат выполнения

    3. In NS1::f: q = 19210; 2. in NS1: q = 123454321; ::q = 555 25

  • Слайд 26

    1.16. Неименованное пространство

    namespace { . . . } Создает идентификаторы, уникальные внутри данного файла. Вне данного файла идентификаторы недоступны (Эквивалентно классу памяти staticв С) 26

  • Слайд 27

    1.17. Перегрузка функций

    Прототипы функций: тип_результата имя (список_параметров); Примеры: void f(int); void f(float); void f(char [], int); void f(const char *); 27

  • Слайд 28

    1.18. Использование функции

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

  • Слайд 29

    1.19. Алгоритм выбора функции

    1. Точное соответствие вызова функции прототипу 2. Преобразование аргументов – расширение (charкint, int кlong, float к double) 3. Стандартное преобразование типа (int к float , long кintи др.) 4. Преобразования, требующие временных переменных (параметр – ссылка) 5. Преобразования, определенные пользователем 29

  • Слайд 30

    1.20. Примеры

    Прототипы функций void f(char); void f(double); 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 30 ???

  • Слайд 31

    1.21. Параметры по умолчанию

    Прототип функции: char *fc(char, int = 1); // !!! Эквивалентно char *fc(char); char *fc(char, int); 31

  • Слайд 32

    1.21. Параметры по умолчанию(продолжение)

    Определение функции: char *fc(char a, int b)// !!! { . . . } Вызов функции … fc('*') … эквивалентен … fc('*', 1) … 32

  • Слайд 33

    1.22. Шаблоны функций

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

  • Слайд 34

    1.22. Шаблоны функций(продолжение)

    template void swap(MyType &a, MyType &b) { MyType t = a; a = b; b = t; } 34

  • Слайд 35

    Вызов функции: int a, b; double c, d; swap(a, b); генерируется код функции1 swap(c, d);  генерируется код функции2 swap(a, b);  используется код функции1 35

  • Слайд 36

    1.23. Обработка исключений

    Анализ и идентификация ошибки int f(int &res ) { int errcode; . . . if (условие) диагностирование ошибки: errcode = 1 . . . res = … ; return errcode; } 36

  • Слайд 37

    1.23. Обработка исключений(продолжение)

    Обработка ошибки int rc, res; . . . rc = f(res); if(rc == 1) обработка ошибки 1 . . . 37

  • Слайд 38

    1.24. Диагностирование ошибки

    int f( ) { int res; . . . if (условие) throwвыражение; . . . return res; } 38

  • Слайд 39

    1.25. Обработка ошибки

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

  • Слайд 40

    1.26. Пример

    40

  • Слайд 41

    1.27. Результаты тестирования

    string: "asdfvdewghu"; index = 8 g string: "dfgrt"; index = 8 incorrect index 41

Посмотреть все слайды

Сообщить об ошибке