Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
23 слайда
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
106.00 kB
Просмотров:
60
Скачиваний:
1
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд![Язык С Лекция Введение в С](/documents_6/5901fb5391beffe42c1d54cd8244744d/img0.jpg)
Содержание слайда: Язык С++
Лекция №6
Введение в С++
№2 слайд![Первая программа C include lt](/documents_6/5901fb5391beffe42c1d54cd8244744d/img1.jpg)
Содержание слайда: Первая программа C++
#include <iostream.h>
int n = 5; // глобальная переменная
void main()
{int n; // локальная переменная
cout << "Enter n" ; // вывод в поток
cin >> n; // ввод из потока
// вывод переменной в поток
cout << "n = " << n;
// вывод глобальной переменной
cout << "global n = " << ::n;
}
№3 слайд![Потоки ввода вывода include](/documents_6/5901fb5391beffe42c1d54cd8244744d/img2.jpg)
Содержание слайда: Потоки ввода/вывода
#include <iostream>
using namespace std;
int main()
{ int a;
cout << "Hello, world!" << endl;
cout.width(10);
cout << "ten" << "four";
cin >> a;
return 0;
}
№4 слайд![Функции iostream](/documents_6/5901fb5391beffe42c1d54cd8244744d/img3.jpg)
Содержание слайда: Функции iostream
№5 слайд![Манипуляторы iostream](/documents_6/5901fb5391beffe42c1d54cd8244744d/img4.jpg)
Содержание слайда: Манипуляторы iostream
№6 слайд![Пространства имен namespace](/documents_6/5901fb5391beffe42c1d54cd8244744d/img5.jpg)
Содержание слайда: Пространства имен
namespace foo
{
int bar;
}
using namespace foo;
№7 слайд![Константы const int n const](/documents_6/5901fb5391beffe42c1d54cd8244744d/img6.jpg)
Содержание слайда: Константы
const int n = 10;
const double pi = 3.1415926535897932384626433832795;
int sqr(const int n)
{ return n*n;
}
int stln (const char *s)
{ char *p = (char *) s;
while (*p++);
return p-s;
}
№8 слайд![Перегрузка функций int sqr](/documents_6/5901fb5391beffe42c1d54cd8244744d/img7.jpg)
Содержание слайда: Перегрузка функций
int sqr(int n)
{ return n*n;
}
float sqr(float n)
{ return n*n;
}
double sqr(double n)
{
return n*n;
}
№9 слайд![Передача параметров функциям](/documents_6/5901fb5391beffe42c1d54cd8244744d/img8.jpg)
Содержание слайда: Передача параметров функциям
// По значению
void noswap(int a, int b)
{ int c = a;
a = b; b = c;
}
// По адресу
void swap( int* a, int* b)
{ int c = *a;
*a = *b; *b = c;
}
// По ссылке
void swap( int &a, int &b)
{ int c = a;
a = b; b = c;
}
№10 слайд![Передача параметров функциям](/documents_6/5901fb5391beffe42c1d54cd8244744d/img9.jpg)
Содержание слайда: Передача параметров функциям
double power(double x, int n = 2)
{ double z = 1;
for (int i=1; i<=abs(n) ; i++) z*=x;
if (n<0) z=1.0/z;
return z;
}
№11 слайд![Перерыв мин](/documents_6/5901fb5391beffe42c1d54cd8244744d/img10.jpg)
Содержание слайда: Перерыв 10 мин
№12 слайд![Описание класса class vector](/documents_6/5901fb5391beffe42c1d54cd8244744d/img11.jpg)
Содержание слайда: Описание класса
class vector
{private:
float *p; // указатель на начало вектора
int n; // количество элементов в векторе
public:
vector(int i = 3); // конструктор
// (назначен параметр по умолчанию)
~vector(); // деструктор (не может иметь параметров)
float item(int i); // возвращает указанный элемент
void assign(int i, float x); // назначение элемента
float num()
{ return n; }; // возвращает число элементов (inline)
float norm(); // возвращает квадрат нормы вектора
};
№13 слайд![Реализация методов класса](/documents_6/5901fb5391beffe42c1d54cd8244744d/img12.jpg)
Содержание слайда: Реализация методов класса
vector::vector(int i)
{ int j;
n=i;
p= new float[n];
for (j=0; j<n; j++) p[j]=0;
cout << "vector created " << n << "\n";
}
vector::~vector()
{ delete p;
cout << "vector destroyed\n";
}
float vector::item(int i)
{ if ((i>=0) && (i<n)) return p[i];
else {cout << "Error in vector::item"; return 0;}
}
№14 слайд![Реализация методов класса](/documents_6/5901fb5391beffe42c1d54cd8244744d/img13.jpg)
Содержание слайда: Реализация методов класса
void vector::assign(int i, float x)
{
if ((i>=0) && (i<n)) p[i]=x;
else cout << "Error in vector::assign";
}
float vector::norm()
{ int i;
float x=0;
for (i=0; i<n; i++) x+=p[i]*p[i];
return x;
}
№15 слайд![Использование объекта main](/documents_6/5901fb5391beffe42c1d54cd8244744d/img14.jpg)
Содержание слайда: Использование объекта
main()
{ int i;
vector a(100);
vector b;
for (i=0; i<a.num(); i++) a.assign(i,i);
cout << a.norm() << "\n";
a.~vector();
}
№16 слайд![Перегрузка операций ... float](/documents_6/5901fb5391beffe42c1d54cd8244744d/img15.jpg)
Содержание слайда: Перегрузка операций
{
...
float operator()(int i); // возвращает указанный элемент
void operator=(vector &x); // присваивает значение одного
... // вектора другому
}
float vector::operator()(int i)
{ if ((i>=0) && (i<n)) return p[i];
else {cout << "Error in vector::item"; return 0;}
}
void vector::operator=(vector &x)
{ if (x.num()==n)
for (int i=0; i<n; i++) p[i]=x(i);
else cout << "Error in operator =\n";
}
№17 слайд![Улучшенный класс Vector class](/documents_6/5901fb5391beffe42c1d54cd8244744d/img16.jpg)
Содержание слайда: Улучшенный класс Vector
class vector
{ …
public:
vector (int i = 3); // конструктор
vector (float x, float y, float z); // второй конструктор
vector& operator=(vector &x);
// присваивает значение одного в. другому
vector& operator*(float c); // умножение вектора на скаляр
float operator*(vector &x); // умножение вектора на вектор
float& operator[](int i); // возвращает ссылку на элемент
}
№18 слайд![Реализация класса Vector](/documents_6/5901fb5391beffe42c1d54cd8244744d/img17.jpg)
Содержание слайда: Реализация класса Vector
vector::vector(float x, float y, float z)
{ n=3;
p=new float[n];
vector::assign(0,x);
vector::assign(1,y);
vector::assign(2,z);
cout << "3d vector created " << n << "\n";
}
vector& vector:: operator=(vector &x)
{
if (x.num()==n)
for (int i=0; i<n; i++) p[i]=x(i);
else cout << "Error in operator =\n";
return *this;
}
№19 слайд![Реализация класса Vector](/documents_6/5901fb5391beffe42c1d54cd8244744d/img18.jpg)
Содержание слайда: Реализация класса Vector
// умножение вектора на скаляр
vector & vector::operator*(float c)
{ for (int i=0; i<n; i++) p[i]*=c;
return *this;
}
// умножение вектора на вектор
float vector::operator*(vector &x)
{ float s=0.0;
for (int i=0; i<n; i++) s+=operator()(i)*x(i);
return s;
}
// Операция [ ]
float & vector::operator[](int i)
{ if ((i>=0) && (i<n)) return p[i];
else {cout << "Error in vector::item"; return p[0];}
}
№20 слайд![Использование класса Vector](/documents_6/5901fb5391beffe42c1d54cd8244744d/img19.jpg)
Содержание слайда: Использование класса Vector
main()
{ vector b;
vector d(1,1,1);
b=d*2.0;
b[0]=3;
for (i=0; i<b.num(); i++) cout << b(i) << " ";
}
№21 слайд![Наследование class matrix](/documents_6/5901fb5391beffe42c1d54cd8244744d/img20.jpg)
Содержание слайда: Наследование
class matrix: public vector
{protected:
int M,N;
int lineaddres(int i, int j) { return i*N+j; };
public:
matrix(int m=2, int n=2): vector(m*n)
{ M=m; N=n; }
float item(int i, int j);
void assign(int i, int j, float x);
int m() { return M;};
int n() { return M;};
};
float matrix::item (int i, int j)
{ return vector::operator()(lineaddres(i,j)); }
void matrix::assign(int i, int j, float x)
{ vector::assign(lineaddres(i,j),x); }
№22 слайд![Наследование main int i,j for](/documents_6/5901fb5391beffe42c1d54cd8244744d/img21.jpg)
Содержание слайда: Наследование
main()
{ int i,j;
for (i=0; i<z.m(); i++)
{
for (j=0; j<z.n(); j++)
{
z.assign(i,j,(i+1)*10+j+1);
cout << z.item(i,j) << " ";
}
cout << "\n";
}
}
№23 слайд![Атрибуты наследования private](/documents_6/5901fb5391beffe42c1d54cd8244744d/img22.jpg)
Содержание слайда: Атрибуты наследования
private – доступны только в данном классе
protected – доступны только в данном классе и потомках
private – доступны для всеобщего использования