🗊Презентация История и эволюция C++

Нажмите для полного просмотра!
История и эволюция C++, слайд №1История и эволюция C++, слайд №2История и эволюция C++, слайд №3История и эволюция C++, слайд №4История и эволюция C++, слайд №5История и эволюция C++, слайд №6История и эволюция C++, слайд №7История и эволюция C++, слайд №8История и эволюция C++, слайд №9История и эволюция C++, слайд №10История и эволюция C++, слайд №11История и эволюция C++, слайд №12История и эволюция C++, слайд №13История и эволюция C++, слайд №14История и эволюция C++, слайд №15История и эволюция C++, слайд №16История и эволюция C++, слайд №17История и эволюция C++, слайд №18История и эволюция C++, слайд №19История и эволюция C++, слайд №20История и эволюция C++, слайд №21История и эволюция C++, слайд №22История и эволюция C++, слайд №23История и эволюция C++, слайд №24История и эволюция C++, слайд №25История и эволюция C++, слайд №26История и эволюция C++, слайд №27История и эволюция C++, слайд №28История и эволюция C++, слайд №29История и эволюция C++, слайд №30История и эволюция C++, слайд №31История и эволюция C++, слайд №32История и эволюция C++, слайд №33История и эволюция C++, слайд №34История и эволюция C++, слайд №35История и эволюция C++, слайд №36История и эволюция C++, слайд №37

Содержание

Вы можете ознакомиться и скачать презентацию на тему История и эволюция C++. Доклад-сообщение содержит 37 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

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


Слайд 1





История и эволюция C++

Язык С. 1972 г. Денис Ритчи (Bell) 
	цель – системное программирование (UNIX)
Язык С++. 1983 г. Бьерн Страуструп (Bell) 
	цель – реализация методологии ООП 
Язык Java. 1994 г. Патрик Наутон, Билл Джой, Джеймс Гослинг (Sun) 
	цель – переносимость и надежность
Язык C#. 2000 г. Андерс Хейлсберг и др. (Microsoft) 
	цель – удобство и надежность
Perl, PHP.  цель – простота использования
Описание слайда:
История и эволюция C++ Язык С. 1972 г. Денис Ритчи (Bell) цель – системное программирование (UNIX) Язык С++. 1983 г. Бьерн Страуструп (Bell) цель – реализация методологии ООП Язык Java. 1994 г. Патрик Наутон, Билл Джой, Джеймс Гослинг (Sun) цель – переносимость и надежность Язык C#. 2000 г. Андерс Хейлсберг и др. (Microsoft) цель – удобство и надежность Perl, PHP. цель – простота использования

Слайд 2


История и эволюция C++, слайд №2
Описание слайда:

Слайд 3





Этапы создания программы
Описание слайда:
Этапы создания программы

Слайд 4





Алфавит языка С++
Прописные и строчные латинские буквы (различаются в именах), знак подчеркивания
Цифры (0…9)
Специальные знаки “ { } , | [ ] ( ) + - * / % \ ; ‘ : ?  < = > ! & ~ ^ . # 
Разделители (пробел, табуляция, перевод строки)
Описание слайда:
Алфавит языка С++ Прописные и строчные латинские буквы (различаются в именах), знак подчеркивания Цифры (0…9) Специальные знаки “ { } , | [ ] ( ) + - * / % \ ; ‘ : ? < = > ! & ~ ^ . # Разделители (пробел, табуляция, перевод строки)

Слайд 5





Лексемы С++
Имена ( не рекомендуется начинать с _)
Ключевые слова
Знаки операций (одно и двухсимвольные)
Константы
Разделители
Комментарии
однострочные // комментарий
многострочные /* длинные */
Описание слайда:
Лексемы С++ Имена ( не рекомендуется начинать с _) Ключевые слова Знаки операций (одно и двухсимвольные) Константы Разделители Комментарии однострочные // комментарий многострочные /* длинные */

Слайд 6





Типы данных С++
Описание слайда:
Типы данных С++

Слайд 7





Базовые типы
Описание слайда:
Базовые типы

Слайд 8





Специальные типы
bool – логический (true/false) – в С++
	В С целое значение =0 – ложь, 
не равно 0 - истина
void – пустой. Используется для обозначения функций без значений и нетипизированных указателей
Описание слайда:
Специальные типы bool – логический (true/false) – в С++ В С целое значение =0 – ложь, не равно 0 - истина void – пустой. Используется для обозначения функций без значений и нетипизированных указателей

Слайд 9





Константы
Целые:
десятичные  123, 0, 98
восьмеричные 01, 015
шестнадцатиричные 0xA1, 0X00FF
Вещественные 5.8, .2e-3
Символьные ‘A’, ‘xy’, ‘\n’, ‘\123’, ‘\\’
Строковые “привет”, “1 \n 2”
Описание слайда:
Константы Целые: десятичные 123, 0, 98 восьмеричные 01, 015 шестнадцатиричные 0xA1, 0X00FF Вещественные 5.8, .2e-3 Символьные ‘A’, ‘xy’, ‘\n’, ‘\123’, ‘\\’ Строковые “привет”, “1 \n 2”

Слайд 10





Структура программы
<директивы препроцессора>
<функции>
Функция имеет вид
<тип> <имя> (<список параметров>)
{ <операторы>
}
Выполнение начинается с функции main
Описание слайда:
Структура программы <директивы препроцессора> <функции> Функция имеет вид <тип> <имя> (<список параметров>) { <операторы> } Выполнение начинается с функции main

Слайд 11





Пример программы
#include <iostream.h>
int main()
{ int a, b; //описание переменных
	cin >> a >> b; //ввод
	cout << “сумма” << a+b; //вывод
	return 0; //возврат
}
Описание слайда:
Пример программы #include <iostream.h> int main() { int a, b; //описание переменных cin >> a >> b; //ввод cout << “сумма” << a+b; //вывод return 0; //возврат }

Слайд 12





Описание переменных
[класс памяти] [const] тип имя [инициализатор]
Модификатор const используется при описании констант. 
Инициализатор задает начальное значение переменной в виде “= значение” или в круглых скобках “(значение)”.
Примеры:
	long int n =1000, k;
	char c(‘A’);
	const float pi = 3.1415926;
Описание слайда:
Описание переменных [класс памяти] [const] тип имя [инициализатор] Модификатор const используется при описании констант. Инициализатор задает начальное значение переменной в виде “= значение” или в круглых скобках “(значение)”. Примеры: long int n =1000, k; char c(‘A’); const float pi = 3.1415926;

Слайд 13





Классы памяти
	Класс памяти определяет область видимости и время жизни переменной.
	Область видимости может быть локальной (внутри блока) и глобальной (во всем файле).
	Время жизни – временным (до конца блока) и постоянным (до выхода из программы).
	Класс auto (по умолчанию) – автоматическая переменная. Локальная и временная. 
	Класс register  – регистровая. Аналог auto, только переменная хранится в регистре процессора. 	
	Класс static– статическая переменная. Постоянная. Может быть локальной и глобальной. 
	Класс extern– внешняя переменная. Определяется в другом файле программы.
Описание слайда:
Классы памяти Класс памяти определяет область видимости и время жизни переменной. Область видимости может быть локальной (внутри блока) и глобальной (во всем файле). Время жизни – временным (до конца блока) и постоянным (до выхода из программы). Класс auto (по умолчанию) – автоматическая переменная. Локальная и временная. Класс register – регистровая. Аналог auto, только переменная хранится в регистре процессора. Класс static– статическая переменная. Постоянная. Может быть локальной и глобальной. Класс extern– внешняя переменная. Определяется в другом файле программы.

Слайд 14





Операции
Арифметические + - * / % Преобразования автоматические
Увеличение и уменьшение ++ --
	префиксное  (++a)  возвращает новое значение,
	постфиксное  (a++)  возвращает старое значение.
Отношения < > <= >= == != Результат – true или false
Логические && (и) || (или) ! (отрицание)
Присваивание = Результат – выражение. Выполняется справа налево: a = b = c = 5
Присваивание с операцией += *=  и т.д. 
	a+=b эквивалентно a = a + b
Последовательное выполнение ,  результат  - самое правое выражение
Условная операция условие ? выр.1 : выр. 2
	max = (a>b) ? a : b;
Описание слайда:
Операции Арифметические + - * / % Преобразования автоматические Увеличение и уменьшение ++ -- префиксное (++a) возвращает новое значение, постфиксное (a++) возвращает старое значение. Отношения < > <= >= == != Результат – true или false Логические && (и) || (или) ! (отрицание) Присваивание = Результат – выражение. Выполняется справа налево: a = b = c = 5 Присваивание с операцией += *= и т.д. a+=b эквивалентно a = a + b Последовательное выполнение , результат - самое правое выражение Условная операция условие ? выр.1 : выр. 2 max = (a>b) ? a : b;

Слайд 15





Операторы
Выражение
Условный
Выбора
Циклы
Передачи управления
	
В конце оператора всегда ставится ;
Описание слайда:
Операторы Выражение Условный Выбора Циклы Передачи управления В конце оператора всегда ставится ;

Слайд 16





Условный оператор
if (выражение) опер.1; [else опер.2;]
Пример. Найти максимум и минимум из двух чисел. 
int main()
{ int a,b,min, max; cin >> a >> b;
	if (a<b) { min = a; max = b;} 
		else {min = b; max = a; }
	cout << min << max; 
	return 0;
}
Описание слайда:
Условный оператор if (выражение) опер.1; [else опер.2;] Пример. Найти максимум и минимум из двух чисел. int main() { int a,b,min, max; cin >> a >> b; if (a<b) { min = a; max = b;} else {min = b; max = a; } cout << min << max; return 0; }

Слайд 17





Условный оператор. Типичные ошибки
Отсутствие фигурных скобок
	if (a<b)  min = a; max = b;
Использование = вместо ==
	if (a=5) cout << a;
Проверка диапазона
	if (-1 <= x <=1) cout << “есть arcsin”;
	Правильно так:
	if (-1 <= x && x <=1) 
				cout << “есть arcsin”;
Описание слайда:
Условный оператор. Типичные ошибки Отсутствие фигурных скобок if (a<b) min = a; max = b; Использование = вместо == if (a=5) cout << a; Проверка диапазона if (-1 <= x <=1) cout << “есть arcsin”; Правильно так: if (-1 <= x && x <=1) cout << “есть arcsin”;

Слайд 18





Оператор выбора
switch (выражение) {
	case конст.1: список операторов 1
	case конст.2: список операторов 2
	…
	default: операторы
}
	Производит переход на первый оператор из списка, соответствующего константе, равной значению выражения.
	Операторы из нижестоящих списков будут выполняться, если не сделать выход оператором break.
Описание слайда:
Оператор выбора switch (выражение) { case конст.1: список операторов 1 case конст.2: список операторов 2 … default: операторы } Производит переход на первый оператор из списка, соответствующего константе, равной значению выражения. Операторы из нижестоящих списков будут выполняться, если не сделать выход оператором break.

Слайд 19





Пример на оператор выбора
По номеру месяца определить время года
…
switch (m) {
case 1: case 2: case 12: 
			cout<<“Зима”; break;
case 3: case 4: case 5: 
			cout<<“Весна”; break;
case 6: case 7: case 8: 
			cout<<“Лето”; break;
default: cout<<“Осень”;
}
Описание слайда:
Пример на оператор выбора По номеру месяца определить время года … switch (m) { case 1: case 2: case 12: cout<<“Зима”; break; case 3: case 4: case 5: cout<<“Весна”; break; case 6: case 7: case 8: cout<<“Лето”; break; default: cout<<“Осень”; }

Слайд 20





Цикл с предусловием
while (выражение) оператор
Цикл выполняется так:
Вычисляется выражение
Если оно истинно (не 0) выполняется оператор
Снова вычисляется выражение
Если оно ложно – выход из цикла.
Пример: вычисление факториала n
 f = k = 1;
 while (k<=n) f *= k++;
Описание слайда:
Цикл с предусловием while (выражение) оператор Цикл выполняется так: Вычисляется выражение Если оно истинно (не 0) выполняется оператор Снова вычисляется выражение Если оно ложно – выход из цикла. Пример: вычисление факториала n f = k = 1; while (k<=n) f *= k++;

Слайд 21





Цикл с постусловием
do оператор while (выражение) 
Цикл выполняется так:
Выполняется оператор
Вычисляется выражение
Если оно истинно (не 0) снова выполняется оператор
Если оно ложно – выход из цикла.
Пример: вычисление факториала n
 f = k = 1;
 do f *= k++; while (k<=n);
Описание слайда:
Цикл с постусловием do оператор while (выражение) Цикл выполняется так: Выполняется оператор Вычисляется выражение Если оно истинно (не 0) снова выполняется оператор Если оно ложно – выход из цикла. Пример: вычисление факториала n f = k = 1; do f *= k++; while (k<=n);

Слайд 22





Цикл с параметром
for (инициализация; условие выполнения; модификация) оператор;
Инициализация выполняется перед началом цикла
Модификация  - в конце каждой итерации
Пример: вычисление факториала
for (int k = f = 1; k<=n; k++) f *= k;
либо for (int k = f = 1; k<=n; f *= k++);
Бесконечный цикл for ( ; ; )  { ….}
Описание слайда:
Цикл с параметром for (инициализация; условие выполнения; модификация) оператор; Инициализация выполняется перед началом цикла Модификация - в конце каждой итерации Пример: вычисление факториала for (int k = f = 1; k<=n; k++) f *= k; либо for (int k = f = 1; k<=n; f *= k++); Бесконечный цикл for ( ; ; ) { ….}

Слайд 23





Операторы передачи управления
goto метка; 
	Помеченный оператор – 
	 метка: оператор;
break;    выход из цикла или оператора выбора
continue;  переход к следующей итерации цикла
return [выражение]; выход из функции с возвратом значения
Описание слайда:
Операторы передачи управления goto метка; Помеченный оператор – метка: оператор; break; выход из цикла или оператора выбора continue; переход к следующей итерации цикла return [выражение]; выход из функции с возвратом значения

Слайд 24





Указатели
Cодержит адрес памяти, в которой
хранятся данные определенного типа
    тип * имя; 
Звездочка относится к имени
        int a, *b, c;
Безтиповый указатель void *p;
Описание слайда:
Указатели Cодержит адрес памяти, в которой хранятся данные определенного типа тип * имя; Звездочка относится к имени int a, *b, c; Безтиповый указатель void *p;

Слайд 25





Константные указатели
Модификатор const относится либо к указателю, либо к значению
int i;
const int c = 1;
const int *pc = &c; //указатель на константу
int* const pc = &i; //указатель-константа
Описание слайда:
Константные указатели Модификатор const относится либо к указателю, либо к значению int i; const int c = 1; const int *pc = &c; //указатель на константу int* const pc = &i; //указатель-константа

Слайд 26





Инициализация указателей
с помощью операции & (адрес)
	int a=5;
   int * p = &a;
значением другого указателя
	int * r = p;
явным адресом памяти
	char *vp = (char *)0xB8000000;
пустым значением (нулем)
	int * r = 0;
Описание слайда:
Инициализация указателей с помощью операции & (адрес) int a=5; int * p = &a; значением другого указателя int * r = p; явным адресом памяти char *vp = (char *)0xB8000000; пустым значением (нулем) int * r = 0;

Слайд 27





Динамические переменные
Создание
int *n = new int;
int *m = new int (10); // *m=10
int *r = new int [10]; // массив
Удаление
delete n;
delete [ ] r;
Описание слайда:
Динамические переменные Создание int *n = new int; int *m = new int (10); // *m=10 int *r = new int [10]; // массив Удаление delete n; delete [ ] r;

Слайд 28





Операции с указателями
доступ к переменной, на которую указывает указатель *
	*n=100; r[1] = 20;
Арифметические операции (прибавление константы, вычитание, увеличение, уменьшение) учитывают размер данных
	r++; // увеличивает r на 2
Описание слайда:
Операции с указателями доступ к переменной, на которую указывает указатель * *n=100; r[1] = 20; Арифметические операции (прибавление константы, вычитание, увеличение, уменьшение) учитывают размер данных r++; // увеличивает r на 2

Слайд 29





Ссылки
Ссылка – синоним имени, указанного при ее инициализации
	тип & имя;
int a;
int &b=a;
Описание слайда:
Ссылки Ссылка – синоним имени, указанного при ее инициализации тип & имя; int a; int &b=a;

Слайд 30





Массивы
	Массивы в языке С++ описываются следующим образом:
	тип_элементов имя [размер];
	Размер массива задается константным выражением. Индексы элементов – целые числа, начиная с нуля. Например, объявление 
	int a[100];   
	определяет массив a c элементами a[0], a[1], …, a[99].
Описание слайда:
Массивы Массивы в языке С++ описываются следующим образом: тип_элементов имя [размер]; Размер массива задается константным выражением. Индексы элементов – целые числа, начиная с нуля. Например, объявление int a[100]; определяет массив a c элементами a[0], a[1], …, a[99].

Слайд 31





Инициализация массивов
	При описании массива можно указать начальные значения элементов через запятую в фигурных скобках. При инициализации размер массива можно не указывать. Например,
	 	int p[] = {0,1,2,3,4,5};
	К элементам массива можно обратиться, указав имя и в квадратных скобках индекс. Контроль выхода за пределы массива не производится. 
	Вывод на экран 	
	for (int i=0; i<100; i++)  cout <<a[i]<<” ”;
	Переменная типа массив является константным указателем на первый элемент массива. Выражения a[i] и *(a+i) эквивалентны.
Описание слайда:
Инициализация массивов При описании массива можно указать начальные значения элементов через запятую в фигурных скобках. При инициализации размер массива можно не указывать. Например, int p[] = {0,1,2,3,4,5}; К элементам массива можно обратиться, указав имя и в квадратных скобках индекс. Контроль выхода за пределы массива не производится. Вывод на экран for (int i=0; i<100; i++) cout <<a[i]<<” ”; Переменная типа массив является константным указателем на первый элемент массива. Выражения a[i] и *(a+i) эквивалентны.

Слайд 32





Многомерные массивы
	Многомерные массивы описываются как массивы, элементами которых также являются массивы. Следующий пример описывает матрицу из m строк и n столбцов.
	const int m = 4, n = 5;
	float matr[m][n];
    Инициализация     
	int mas [3][2] = { {1,1}, {0,2}, {1,0}};  
	Обработка
     for (i=0; i<m; i++) {
  for (j=0; j<n; j++)  cout << a[i][j] <<‘ ‘;
        cout << endl; }
Описание слайда:
Многомерные массивы Многомерные массивы описываются как массивы, элементами которых также являются массивы. Следующий пример описывает матрицу из m строк и n столбцов. const int m = 4, n = 5; float matr[m][n]; Инициализация int mas [3][2] = { {1,1}, {0,2}, {1,0}}; Обработка for (i=0; i<m; i++) { for (j=0; j<n; j++) cout << a[i][j] <<‘ ‘; cout << endl; }

Слайд 33





Динамические массивы
	Массивы, размер которых меняется во время выполнения программы, описываются как указатели и создаются с помощью операции new. Следующий фрагмент программы описывает создание массива, размер которого вводится с клавиатуры.
	int *a, k;
	cin >> k;
	a = new int [k];
	for (int i=0; i<k; i++)  cin >>a[i];
Описание слайда:
Динамические массивы Массивы, размер которых меняется во время выполнения программы, описываются как указатели и создаются с помощью операции new. Следующий фрагмент программы описывает создание массива, размер которого вводится с клавиатуры. int *a, k; cin >> k; a = new int [k]; for (int i=0; i<k; i++) cin >>a[i];

Слайд 34





Строки
	Специальный строковый тип в языке Си отсутствует. 
	Строка в Си представляется одномерным массивом элементов типа char; последним элементом массива должен быть символ ‘\0’ (такой массив называется ASCIIZ – строкой). 
	Строки можно вводить и выводить с помощью стандартных потоков или функций ввода-вывода gets(s) и puts(s). 
	Следующий пример демонстрирует ввод и вывод строк
 		char s[100], p[]=”Введено ”;
		cin >>s;
		cout <<p<<s;
	Строка может быть описана как указатель на char и размещена в динамической памяти.
Описание слайда:
Строки Специальный строковый тип в языке Си отсутствует. Строка в Си представляется одномерным массивом элементов типа char; последним элементом массива должен быть символ ‘\0’ (такой массив называется ASCIIZ – строкой). Строки можно вводить и выводить с помощью стандартных потоков или функций ввода-вывода gets(s) и puts(s). Следующий пример демонстрирует ввод и вывод строк char s[100], p[]=”Введено ”; cin >>s; cout <<p<<s; Строка может быть описана как указатель на char и размещена в динамической памяти.

Слайд 35





Функции для работы со строками
Некоторые функции работы со строками (Заголовочный файл <string.h>)
1. Длина строки 
int strlen(char*< строка>)
2. Конкатенация.
char* strcat(char*< строка-приемник>, char*< строка-источник>) 
3. Копирование
char* strcpy(char*< строка-приемник>, char*< строка-источник>)  
4. Сравнение
int  strcmp(char*< строка1>, char*< строка2>)
	                             0, если <строка1> совпадает со <строкой 2>,
Возвращает:       число <0, если <строка1> < <строки 2>,
                                          число >0, если <строка1> > <строки 2>.
5. Поиск символа в строке. Возвращает указатель на найденный символ.
char* strchr(char*< строка>, int <символ>)  
6. Поиск подстроки в строке. Возвращает указатель на найденную строку.
char* strchr(char*< строка>, char*< подстрока>)
Описание слайда:
Функции для работы со строками Некоторые функции работы со строками (Заголовочный файл <string.h>) 1. Длина строки int strlen(char*< строка>) 2. Конкатенация. char* strcat(char*< строка-приемник>, char*< строка-источник>) 3. Копирование char* strcpy(char*< строка-приемник>, char*< строка-источник>) 4. Сравнение int strcmp(char*< строка1>, char*< строка2>) 0, если <строка1> совпадает со <строкой 2>, Возвращает: число <0, если <строка1> < <строки 2>, число >0, если <строка1> > <строки 2>. 5. Поиск символа в строке. Возвращает указатель на найденный символ. char* strchr(char*< строка>, int <символ>) 6. Поиск подстроки в строке. Возвращает указатель на найденную строку. char* strchr(char*< строка>, char*< подстрока>)

Слайд 36





Функции преобразования
Некоторые функции преобразования данных “строка ↔ число” (Заголовочный файл <stdlib.h>)
Преобразование строки  в double, int, long  
double atof (char*< строка>) 
int atoi (char*< строка>) 
long atol (char*< строка>) 
Преобразование int, long, unsigned long в строку
char*  itoa (int <число>, char*< строка>, int <основание сист. сч.>) 
char*  ltoa (long <число>, char*< строка>, int <основание сист. сч.>) 
char* ultoa (unsigned long <число>, char*< строка>, int <основание сист. сч.>)
Описание слайда:
Функции преобразования Некоторые функции преобразования данных “строка ↔ число” (Заголовочный файл <stdlib.h>) Преобразование строки в double, int, long double atof (char*< строка>) int atoi (char*< строка>) long atol (char*< строка>) Преобразование int, long, unsigned long в строку char* itoa (int <число>, char*< строка>, int <основание сист. сч.>) char* ltoa (long <число>, char*< строка>, int <основание сист. сч.>) char* ultoa (unsigned long <число>, char*< строка>, int <основание сист. сч.>)

Слайд 37





Работа со строками как с указателями
Пример: копирование строки s в строку t
Неэффективный способ
for (int i = 0; i<=strlen(s); i++) t[i] = s[i];
Эффективный способ
char *st = s, *dt = t;
while (*st != 0) *dt++ = *st++;
*dt=0;
Описание слайда:
Работа со строками как с указателями Пример: копирование строки s в строку t Неэффективный способ for (int i = 0; i<=strlen(s); i++) t[i] = s[i]; Эффективный способ char *st = s, *dt = t; while (*st != 0) *dt++ = *st++; *dt=0;



Похожие презентации
Mypresentation.ru
Загрузить презентацию