Программирование на языке С++

Содержание

Слайд 2

#include
#include
using namespace std;
int main()
{
int a, b;
cin >> a;

#include #include using namespace std; int main() { int a, b; cin
b = rand();
if(a>=b)
cout << “1”;
else cout << “2”;
system(“pause”);
return 0;
}

Слайд 3

#include
using namespace std;
int main()
{
int n, p=1;
cin >> n;
for(int

#include using namespace std; int main() { int n, p=1; cin >>
i=1; i<=n; i++){
p=p*i;
}
cout << p;
system(“pause”);
return 0;
}

Слайд 4

#include
#include
#include
using namespace std;
int main()
{
const int N=10;
int a[N];

#include #include #include using namespace std; int main() { const int N=10;
for(int i=0; i a[i]= rand()%101;
}
for(int i=0; i cout << pow(a[i], 3) << endl;
}
system(“pause”);
return 0;}

Слайд 5

#include
using namespace std;
int main()
{
const int n=20;
int a[n], c;

#include using namespace std; int main() { const int n=20; int a[n],
for(int i=0; i cin >> a[i];}
for(int i=0; i for(int j=n-2; j>=i; j--){
if(a[j]>a[j+1]){
c=a[j+1]; a[j+1]=a[j]; a[j]=c;
}
}
}
system(“pause”);
return 0;
}

Слайд 6

for(int i=0; i cout << a[i] << “ ”;
}
system(“pause”);
return

for(int i=0; i cout } system(“pause”); return 0; }
0;
}

Слайд 7

#include
using namespace std;
int main()
{
int a[10], b[10], sum;
for(int i=0; i<10;

#include using namespace std; int main() { int a[10], b[10], sum; for(int
i++) {
cin >> a[i];
}
for(int i=0; i<10; i++) {
sum=0;
while(a[i]>0) {
sum=sum+a[i]%10;
a[i]=a[i]/10;
}
b[i]= sum;}

Слайд 8

for(int i=0; i<10; i++) {
cout << b[i] << “ ”;
}
system(“pause”);
return

for(int i=0; i cout } system(“pause”); return 0; }
0;
}

Слайд 9

План занятия

Статические двумерные массивы (матрицы)
Динамические одномерные массивы (vector)

План занятия Статические двумерные массивы (матрицы) Динамические одномерные массивы (vector)

Слайд 10

Что такое матрица?

Матрица — это прямоугольная таблица, составленная из элементов одного типа

Что такое матрица? Матрица — это прямоугольная таблица, составленная из элементов одного
(чисел, строк и т.д.). Каждый элемент матрицы имеет два индекса – номера строки и столбца.

строка 1, столбец 2

Слайд 11

Объявление матриц

const int N = 3, M = 4;
int A[N][M];
double X[10][12];
bool L[N][2];

строки

столбцы

строки

столбцы

Объявление матриц const int N = 3, M = 4; int A[N][M];

Слайд 12

Простые алгоритмы

Заполнение случайными числами:

for ( i = 0; i < N; i++

Простые алгоритмы Заполнение случайными числами: for ( i = 0; i for
) {
for ( j = 0; j < M; j++ ) {
A[i][j] = 20+rand()%61;
cout << A[i][j] << “ ”;
}
cout << endl;
}

Суммирование:

sum = 0;
for ( i = 0; i < N; i++ )
for ( j = 0; j < M; j++ )
sum += A[i][j];

Слайд 13

Задачи

«A»: Напишите программу, которая заполняет квадратную матрицу случайными числами в интервале [10,99],

Задачи «A»: Напишите программу, которая заполняет квадратную матрицу случайными числами в интервале
и находит максимальный и минимальный элементы в матрице и их индексы.
Пример:
Матрица А:
12 14 67 45
32 87 45 63
69 45 14 11
40 12 35 15
Максимальный элемент A[2,2]=87
Минимальный элемент A[3,4]=11

Слайд 14

Задачи

«B»: Яркости пикселей рисунка закодированы числами от 0 до 255 в виде

Задачи «B»: Яркости пикселей рисунка закодированы числами от 0 до 255 в
матрицы. Преобразовать рисунок в черно-белый по следующему алгоритму:
вычислить среднюю яркость пикселей по всему рисунку
все пиксели, яркость которых меньше средней, сделать черными (записать код 0), а остальные – белыми (код 255)
Пример:
Матрица А:
12 14 67 45
32 87 45 63
69 45 14 11
40 12 35 15
Средняя яркость 37.88
Результат:
0 0 255 255
0 255 255 255
255 255 0 0
255 0 0 0

Слайд 15

Чем плох обычный массив?

const int N = 100;
int A[N];

статический массив

память выделяется при

Чем плох обычный массив? const int N = 100; int A[N]; статический
трансляции
нужно заранее знать размер
изменить размер нельзя

Задача. В файле записаны фамилии (сколько – неизвестно!). Вывести их в другой файл в алфавитном порядке.

выделить заранее большой блок (с запасом)
выделять память во время работы программы (динамически!)

Слайд 16

Динамические структуры данных

создавать новые объекты в памяти
изменять их размер
удалять из памяти, когда

Динамические структуры данных создавать новые объекты в памяти изменять их размер удалять
не нужны

… позволяют

Задача. Ввести с клавиатуры целое значение N, затем – N целых чисел, и вывести на экран эти числа в порядке возрастания.

Слайд 17

Тип vector (библиотека STL)

Заголовочный файл:

#include

Объявление:

vector A;

пустой массив типа int

Размер:

cout <<

Тип vector (библиотека STL) Заголовочный файл: #include Объявление: vector A; пустой массив
A.size();

Заполнение (добавление в конец):

for ( i = 0; i < N; i++ )
A.push_back ( i + 1 );

STL = Standard Template Library

Слайд 18

Тип vector (библиотека STL)

Обработка :

for ( i = 0; i < A.size();

Тип vector (библиотека STL) Обработка : for ( i = 0; i cout
i++ )
cout << A[i] << " ";

Слайд 19

Расширение массива

Задача. С клавиатуры вводятся натуральные числа, ввод заканчивается числом 0. Нужно

Расширение массива Задача. С клавиатуры вводятся натуральные числа, ввод заканчивается числом 0.
вывести на экран эти числа в порядке возрастания.

Ввод данных:

cin >> x;
while ( x != 0 )
{
A.push_back(x);
cin >> x;
}

автоматическое расширение

Слайд 20

Операции с векторами

Объявление
vector A;
vector vector_first(3);  
vector vector_second;    
 vector_second.reserve(3);

Операции с векторами Объявление vector A; vector vector_first(3); vector vector_second; vector_second.reserve(3);

Слайд 21

Методы size() и empty()

Если нам требуется узнать длину вектора, понадобится функция — size().

Методы size() и empty() Если нам требуется узнать длину вектора, понадобится функция
Эта функция практически всегда используется вместе с циклом for.
Также, если нам требуется узнать пуст ли стек, мы можем использовать функцию — empty().
При отсутствии в ячейках какого-либо значения это функция возвратит — true.
В противном случае результатом будет — false.