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

Содержание

Слайд 2

Программирование на языке C++ Массивы

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

Массивы

Слайд 3

Что такое массив? Массив – это группа переменных одного типа, расположенных

Что такое массив?

Массив – это группа переменных одного типа, расположенных в

памяти рядом (в соседних ячейках) и имеющих общее имя. Каждая ячейка в массиве имеет уникальный номер (индекс).

Надо:

выделять память
записывать данные в нужную ячейку
читать данные из ячейки

Слайд 4

Выделение памяти (объявление) int A[5]; double V[8]; bool L[10]; char S[80];

Выделение памяти (объявление)

int A[5];
double V[8];
bool L[10];
char S[80];

число элементов

const int N =

10;
int A[N];

размер через константу

A[0], A[1], A[2], A[3], A[4]

Слайд 5

Обращение к элементу массива A массив 2 15 НОМЕР элемента массива

Обращение к элементу массива

A

массив

2

15

НОМЕР элемента массива
(ИНДЕКС)

A[0]

A[1]

A[2]

A[3]

A[4]

ЗНАЧЕНИЕ элемента массива

A[2]

НОМЕР (ИНДЕКС) элемента массива:

2

ЗНАЧЕНИЕ элемента массива: 15

Слайд 6

Как обработать все элементы массива? Объявление: Обработка: const int N =

Как обработать все элементы массива?

Объявление:
Обработка:

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

// обработать

A[0]
// обработать A[1]
// обработать A[2]
// обработать A[3]
// обработать A[4]
Слайд 7

Как обработать все элементы массива? Обработка с переменной: i = 0;

Как обработать все элементы массива?

Обработка с переменной:

i = 0;
// обработать A[i]
i

++;
// обработать A[i]
i ++;
// обработать A[i]
i ++;
// обработать A[i]
i ++;
// обработать A[i]

i ++;

Обработка в цикле:

i = 0;
while ( i < N )
{
// обработать A[i]
i ++;
}

Цикл с переменной:

for( i = 0; i < N; i++ )
{
// обработать A[i]
}

Слайд 8

Заполнение массива main() { const int N = 10; int A[N];

Заполнение массива

main()
{
const int N = 10;
int A[N];
int i;

for ( i = 0; i < N; i++ )
A[i] = i*i;
}
Слайд 9

Ввод с клавиатуры и вывод на экран Объявление: Ввод с клавиатуры:

Ввод с клавиатуры и вывод на экран

Объявление:
Ввод с клавиатуры:
Вывод на экран:

const

int N = 10;
int A[N];

for ( i = 0; i < N; i++ )
{
cout << "A[" << i << "]=";
cin >> A[i];
}

A[0] =
A[1] =
A[2] =
A[3] =
A[4] =

5
12
34
56
13

cout >> "Массив A:\n";
for ( i = 0; i < N; i++ )
cout << A[i] << " ";

Слайд 10

Заполнение случайными числами for ( i = 0; i { A[i]

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

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

)
{
A[i] = irand ( 20, 100 );
cout << A[i] << " ";
}

Задача. Заполнить массив (псевдо)случайными целыми числами в диапазоне от 20 до 100.

int irand ( int a, int b )
{
return a + rand()% (b - a + 1);
}

Слайд 11

Перебор элементов Общая схема: for ( i = 0; i {

Перебор элементов

Общая схема:

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

)
{
... // сделать что-то с A[i]
}

Подсчёт нужных элементов:

Задача. В массиве записаны данные о росте баскетболистов. Сколько из них имеет рост больше 180 см, но меньше 190 см?

count = 0;
for ( i = 0; i < N; i++ )
if ( 180 < A[i] && A[i] < 190 )
count ++;

Слайд 12

Перебор элементов Среднее арифметическое: int count, sum; count = 0; sum

Перебор элементов

Среднее арифметическое:

int count, sum;
count = 0;
sum = 0;
for ( i

= 0; i < N; i++ )
if ( 180 < A[i] && A[i] < 190 ) {
count ++;
sum += A[i];
}
cout << (float)sum / count;

среднее арифметическое

Слайд 13

Задачи «A»: Заполните массив случайными числами в интервале [0,100] и найдите

Задачи

«A»: Заполните массив случайными числами в интервале [0,100] и найдите среднее

арифметическое его значений.
Пример:
Массив:
1 2 3 4 5
Среднее арифметическое 3.000

«B»: Заполните массив случайными числами в интервале [0,100] и подсчитайте отдельно среднее значение всех элементов, которые <50, и среднее значение всех элементов, которые ≥50.
Пример:
Массив:
3 2 52 4 60
Ср. арифм. элементов [0,50): 3.000
Ср. арифм. элементов [50,100]: 56.000

Слайд 14

Задачи «C»: Заполните массив из N элементов случайными числами в интервале

Задачи

«C»: Заполните массив из N элементов случайными числами в интервале [1,N]

так, чтобы в массив обязательно вошли все числа от 1 до N (постройте случайную перестановку).
Пример:
Массив:
3 2 1 4 5
Слайд 15

Программирование на языке C++ Алгоритмы обработки массивов

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

Алгоритмы обработки массивов

Слайд 16

Поиск в массиве Найти элемент, равный X: i = 0; while

Поиск в массиве

Найти элемент, равный X:

i = 0;
while ( A[i] !=

X )
i ++;
cout << "A[" << i << "]=" << X;

i = 0;
while ( i < N && A[i] != X )
i ++;
if ( i < N )
cout << "A[" << i << "]=" << X;
else
cout << "Не нашли!";

i < N

Слайд 17

Поиск в массиве nX = -1; for ( i = 0;

Поиск в массиве

nX = -1;
for ( i = 0; i <

N; i++ )
if ( A[i] == X )
{
nX = i;
break;
}
if ( nX >= 0 )
cout << "A[" << nX << "]=" << X;
else
cout << "Не нашли!";

Вариант с досрочным выходом:

break;

досрочный выход из цикла

Слайд 18

Задачи «A»: Заполните массив случайными числами в интервале [0,5]. Введите число

Задачи

«A»: Заполните массив случайными числами в интервале [0,5]. Введите число X

и найдите все значения, равные X.
Пример:
Массив:
1 2 3 1 2
Что ищем:
2
Нашли: A[2]=2, A[5]=2
Пример:
Массив:
1 2 3 1 2
Что ищем:
6
Ничего не нашли.
Слайд 19

Задачи «B»: Заполните массив случайными числами в интервале [0,5]. Определить, есть

Задачи

«B»: Заполните массив случайными числами в интервале [0,5]. Определить, есть ли

в нем элементы с одинаковыми значениями, стоящие рядом.
Пример:
Массив:
1 2 3 3 2 1
Есть: 3
Пример:
Массив:
1 2 3 4 2 1
Нет
Слайд 20

Задачи «C»: Заполните массив случайными числами. Определить, есть ли в нем

Задачи

«C»: Заполните массив случайными числами. Определить, есть ли в нем элементы

с одинаковыми значениями, не обязательно стоящие рядом.
Пример:
Массив:
3 2 1 3 2 5
Есть: 3, 2
Пример:
Массив:
3 2 1 4 0 5
Нет
Слайд 21

Максимальный элемент M = A[0]; for ( i = 1; i

Максимальный элемент

M = A[0];
for ( i = 1; i < N;

i++ )
if ( A[i]> M )
M = A[i];
cout << M;
Слайд 22

Максимальный элемент и его номер

Максимальный элемент и его номер

Слайд 23

Задачи «A»: Заполнить массив случайными числами и найти минимальный и максимальный

Задачи

«A»: Заполнить массив случайными числами и найти минимальный и максимальный элементы

массива и их номера.
Пример:
Массив:
1 2 3 4 5
Минимальный элемент: A[1]=1
Максимальный элемент: A[5]=5

«B»: Заполнить массив случайными числами и найти два максимальных элемента массива и их номера.
Пример:
Массив:
5 5 3 4 1
Максимальный элемент: A[1]=5
Второй максимум: A[2]=5

Слайд 24

Задачи «C»: Введите массив с клавиатуры и найдите (за один проход)

Задачи

«C»: Введите массив с клавиатуры и найдите (за один проход) количество

элементов, имеющих максимальное значение.
Пример:
Массив:
3 4 5 5 3 4 5
Максимальное значение 5
Количество элементов 3
Слайд 25

Реверс массива «Простое» решение: for( i = 0; i { //

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

«Простое» решение:

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

)
{
// поменять местами A[i] и A[N-1-i]
}

N/2

остановиться на середине!

Слайд 26

Реверс массива for ( i = 0; i { c =

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

for ( i = 0; i < (N/2); i++ )


{
c = A[i];
A[i] = A[N-1-i];
A[N-1-i] = c;
}
Слайд 27

Циклический сдвиг элементов «Простое» решение: c = A[0]; for ( i

Циклический сдвиг элементов

«Простое» решение:

c = A[0];
for ( i = 0; i

< N-1; i++ )
A[i] = A[i+1];
A[N-1] = c;
Слайд 28

Задачи «A»: Заполнить массив случайными числами и выполнить циклический сдвиг элементов

Задачи

«A»: Заполнить массив случайными числами и выполнить циклический сдвиг элементов массива

вправо на 1 элемент.
Пример:
Массив:
1 2 3 4 5 6
Результат:
6 1 2 3 4 5

«B»: Массив имеет четное число элементов. Заполнить массив случайными числами и выполнить реверс отдельно в первой половине и второй половине.
Пример:
Массив:
1 2 3 4 5 6
Результат:
3 2 1 6 5 4

Слайд 29

Задачи «C»: Заполнить массив случайными числами в интервале [-100,100] и переставить

Задачи

«C»: Заполнить массив случайными числами в интервале [-100,100] и переставить элементы

так, чтобы все положительные элементы стояли в начала массива, а все отрицательные и нули – в конце. Вычислите количество положительных элементов.
Пример:
Массив:
20 -90 15 -34 10 0
Результат:
20 15 10 -90 -34 0
Количество положительных элементов: 3
Слайд 30

Отбор нужных элементов «Простое» решение: Задача. Отобрать элементы массива A, удовлетворяющие

Отбор нужных элементов

«Простое» решение:

Задача. Отобрать элементы массива A, удовлетворяющие некоторому условию,

в массив B.

сделать для i от 0 до N-1
если условие выполняется для A[i] то
B[i]:= A[i]

A

B

выбрать чётные элементы

Слайд 31

Отбор нужных элементов A B выбрать чётные элементы count = 0;

Отбор нужных элементов

A

B

выбрать чётные элементы

count = 0;
for ( i = 0;

i < N; i++ )
if ( A[i] % 2 == 0 )
{
B[count] = A[i];
count ++;
}

B[count] = A[i];

Слайд 32

Задачи «A»: Заполнить массив случайными числами в интервале [-10,10] и отобрать

Задачи

«A»: Заполнить массив случайными числами в интервале [-10,10] и отобрать в

другой массив все чётные отрицательные числа.
Пример:
Массив А:
-5 6 7 -4 -6 8 -8
Массив B:
-4 -6 -8

«B»: Заполнить массив случайными числами в интервале [0,100] и отобрать в другой массив все простые числа. Используйте логическую функцию, которая определяет, является ли переданное ей число простым.
Пример:
Массив А:
12 13 85 96 47
Массив B:
13 47

Слайд 33

Задачи «C»: Заполнить массив случайными числами и отобрать в другой массив

Задачи

«C»: Заполнить массив случайными числами и отобрать в другой массив все

числа Фибоначчи. Используйте логическую функцию, которая определяет, является ли переданное ей число числом Фибоначчи.
Пример:
Массив А:
12 13 85 34 47
Массив B:
13 34
Слайд 34

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

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

Сортировка

Слайд 35

Что такое сортировка? Сортировка – это расстановка элементов массива в заданном

Что такое сортировка?

Сортировка – это расстановка элементов массива в заданном порядке.

…по

возрастанию, убыванию, последней цифре, сумме делителей, по алфавиту, …

Алгоритмы:
простые и понятные, но неэффективные для больших массивов
метод пузырька
метод выбора
сложные, но эффективные
«быстрая сортировка» (QuickSort)
сортировка «кучей» (HeapSort)
сортировка слиянием (MergeSort)
пирамидальная сортировка

Слайд 36

Метод пузырька (сортировка обменами) Идея: пузырек воздуха в стакане воды поднимается

Метод пузырька (сортировка обменами)

Идея: пузырек воздуха в стакане воды поднимается со

дна вверх.
Для массивов – самый маленький («легкий» элемент перемещается вверх («всплывает»).

сравниваем два соседних элемента; если они стоят «неправильно», меняем их местами
за 1 проход по массиву один элемент (самый маленький) становится на свое место

1-й проход:

Слайд 37

Метод пузырька 2-й проход: 3-й проход: 4-й проход:

Метод пузырька

2-й проход:

3-й проход:

4-й проход:

Слайд 38

Метод пузырька 1-й проход: сделать для j от N-2 до 0

Метод пузырька

1-й проход:

сделать для j от N-2 до 0 шаг -1

если A[j+1]< A[j] то
// поменять местами A[j] и A[j+1]

2-й проход:

сделать для j от N-2 до 1 шаг -1
если A[j+1]< A[j] то
// поменять местами A[j] и A[j+1]

1

единственное отличие!

Слайд 39

Метод пузырька for ( i = 0; i for ( j

Метод пузырька

for ( i = 0; i < N-1; i++ )

for ( j = N-2; j >= i ; j-- )
if ( A[j] > A[j+1] )
{
// поменять местами A[j] и A[j+1]
}

i

Слайд 40

Задачи «A»: Напишите программу, в которой сортировка выполняется «методом камня» –

Задачи

«A»: Напишите программу, в которой сортировка выполняется «методом камня» – самый

«тяжёлый» элемент опускается в конец массива.

«B»: Напишите вариант метода пузырька, который заканчивает работу, если на очередном шаге внешнего цикла не было перестановок.

«С»: Напишите программу, которая сортирует массив по убыванию суммы цифр числа. Используйте функцию, которая определяет сумму цифр числа.

Слайд 41

Метод выбора (минимального элемента) Идея: найти минимальный элемент и поставить его

Метод выбора (минимального элемента)

Идея: найти минимальный элемент и поставить его на

первое место.

сделать для i от 0 до N-2
// найти номер nMin минимального // элемента из A[i]..A[N]
если i != nMin то
// поменять местами A[i] и A[nMin]

Слайд 42

Метод выбора (минимального элемента) for ( i = 0; i {

Метод выбора (минимального элемента)

for ( i = 0; i < N-1;

i++ )
{
nMin = i;
for ( j = i+1; j < N; j++ )
if ( A[j] < A[nMin] )
nMin = j;
if ( i != nMin )
{
// поменять местами A[i] и A[nMin]
}
}

nMin = i;
for ( j = i+1; j < N; j++ )
if ( A[j] < A[nMin] )
nMin = j;

Слайд 43

Задачи «A»: Массив содержит четное количество элементов. Напишите программу, которая сортирует

Задачи

«A»: Массив содержит четное количество элементов. Напишите программу, которая сортирует первую

половину массива по возрастанию, а вторую – по убыванию. Каждый элемент должен остаться в «своей» половине.
Пример:
Массив:
5 3 4 2 1 6 3 2
После сортировки:
2 3 4 5 6 3 2 1
Слайд 44

Задачи «B»: Напишите программу, которая сортирует массив и находит количество различных

Задачи

«B»: Напишите программу, которая сортирует массив и находит количество различных чисел

в нем.
Пример:
Массив:
5 3 4 2 1 6 3 2 4
После сортировки:
1 2 2 3 3 4 4 5 6
Различных чисел: 5

«C»: Напишите программу, которая сравнивает число перестановок элементов при использовании сортировки «пузырьком» и методом выбора. Проверьте ее на разных массивах, содержащих 1000 случайных элементов, вычислите среднее число перестановок для каждого метода.

Слайд 45

Быстрая сортировка (QuickSort) Идея: выгоднее переставлять элементы, который находятся дальше друг от друга.

Быстрая сортировка (QuickSort)

Идея: выгоднее переставлять элементы, который находятся дальше друг от

друга.
Слайд 46

Быстрая сортировка Шаг 2: переставить элементы так: при сортировке элементы не

Быстрая сортировка

Шаг 2: переставить элементы так:
при сортировке элементы не

покидают « свою область»!

Шаг 1: выбрать некоторый элемент массива X

Шаг 3: так же отсортировать две получившиеся области

Разделяй и властвуй (англ. divide and conquer)

Медиана – такое значение X, что слева и справа от него в отсортированном массиве стоит одинаковое число элементов (для этого надо отсортировать массив…).

Слайд 47

Быстрая сортировка Разделение: выбрать средний элемент массива (X=67) установить L =

Быстрая сортировка

Разделение:
выбрать средний элемент массива (X=67)
установить L = 1, R

= N
увеличивая L, найти первый элемент A[L], который >= X (должен стоять справа)
уменьшая R, найти первый элемент A[R], который <= X (должен стоять слева)
если L<=R то поменять местами A[L] и A[R] и перейти к п. 3 иначе стоп.
Слайд 48

Быстрая сортировка

Быстрая сортировка

Слайд 49

Быстрая сортировка const int N = 7; int A[N]; ... main()

Быстрая сортировка

const int N = 7;
int A[N];
...
main()
{
// заполнить массив

qSort( 0, N-1 ); // сортировка
// вывести результат
}

Основная программа:

глобальные данные

процедура сортировки

Слайд 50

Быстрая сортировка void qSort( int nStart, int nEnd ) { int

Быстрая сортировка

void qSort( int nStart, int nEnd )
{
int L, R,

c, X;
if ( nStart >= nEnd ) return; // готово
L = nStart; R = nEnd;
X = A[(L+R)/2]; // или X = A[irand(L,R)];
while ( L <= R ) { // разделение
while ( A[L] < X ) L ++;
while ( A[R] > X ) R --;
if ( L <= R ) {
c = A[L]; A[L] = A[R]; A[R] = c;
L ++; R --;
}
}
qSort ( nStart, R ); // рекурсивные вызовы
qSort ( L, nEnd );
}
Слайд 51

Быстрая сортировка void qSort( int A[], int nStart, int nEnd )

Быстрая сортировка

void qSort( int A[], int nStart,
int nEnd )
{

...
qSort ( A, nStart, R );
qSort ( A, L, nEnd );
}

Передача массива через параметр:

A,

A,

int A[],

main()
{ // заполнить массив
qSort( A, 0, N-1 ); // сортировка
// вывести результат
}

A,

Слайд 52

Быстрая сортировка Сортировка массива случайных значений:

Быстрая сортировка

Сортировка массива случайных значений:

Слайд 53

Задачи «A»: Массив содержит четное количество элементов. Напишите программу, которая сортирует

Задачи

«A»: Массив содержит четное количество элементов. Напишите программу, которая сортирует по

возрастанию отдельно элементы первой и второй половин массива. Каждый элемент должен остаться в «своей» половине. Используйте алгоритм быстрой сортировки.
Пример:
Массив:
5 3 4 2 1 6 3 2
После сортировки:
2 3 4 5 6 3 2 1
Слайд 54

Задачи «B»: Напишите программу, которая сортирует массив и находит количество различных

Задачи

«B»: Напишите программу, которая сортирует массив и находит количество различных чисел

в нем. Используйте алгоритм быстрой сортировки.
Пример:
Массив:
5 3 4 2 1 6 3 2 4
После сортировки:
1 2 2 3 3 4 4 5 6
Различных чисел: 5
Слайд 55

Задачи «C»: Напишите программу, которая сравнивает число перестановок элементов при использовании

Задачи

«C»: Напишите программу, которая сравнивает число перестановок элементов при использовании сортировки

«пузырьком», методом выбора и алгоритма быстрой сортировки. Проверьте ее на разных массивах, содержащих 1000 случайных элементов, вычислите среднее число перестановок для каждого метода.

«D»: Попробуйте построить массив из 10 элементов, на котором алгоритм быстрой сортировки показывает худшую эффективность (наибольшее число перестановок). Сравните это количество перестановок с эффективностью метода пузырька (для того же массива).

Слайд 56

Программирование на языке C++ Двоичный поиск

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

Двоичный поиск

Слайд 57

Двоичный поиск X = 7 X 8 4 X > 4

Двоичный поиск

X = 7

X < 8

8

4

X > 4

6

X > 6

Выбрать средний

элемент A[c] и сравнить с X.
Если X = A[c], то нашли (стоп).
Если X < A[c], искать дальше в первой половине.
Если X > A[c], искать дальше во второй половине.
Слайд 58

Двоичный поиск X = 44

Двоичный поиск

X = 44

Слайд 59

Двоичный поиск int X, L, R, c; L = 0; R

Двоичный поиск

int X, L, R, c;
L = 0; R = N;

// начальный отрезок
while ( L < R-1 )
{
c = (L+R) / 2; // нашли середину
if ( X < A[c] ) // сжатие отрезка
R = c;
else L = c;
}
if ( A[L] == X )
printf ( "A[%d]=%d", L, X );
else printf ( "Не нашли!" );
Слайд 60

Двоичный поиск скорость выше, чем при линейном поиске нужна предварительная сортировка Число сравнений:

Двоичный поиск

скорость выше, чем при линейном поиске

нужна предварительная сортировка

Число сравнений:

Слайд 61

Задачи «A»: Заполнить массив случайными числами и отсортировать его. Ввести число

Задачи

«A»: Заполнить массив случайными числами и отсортировать его. Ввести число X.

Используя двоичный поиск, определить, есть ли в массиве число, равное X. Подсчитать количество сравнений.
Пример:
Массив:
1 4 7 3 9 2 4 5 2
После сортировки:
1 2 2 3 4 4 5 7 9
Введите число X:
2
Число 2 найдено.
Количество сравнений: 2
Слайд 62

Задачи «B»: Заполнить массив случайными числами и отсортировать его. Ввести число

Задачи

«B»: Заполнить массив случайными числами и отсортировать его. Ввести число X.

Используя двоичный поиск, определить, сколько чисел, равных X, находится в массиве.
Пример:
Массив:
1 4 7 3 9 2 4 5 2
После сортировки:
1 2 2 3 4 4 5 7 9
Введите число X:
4
Число 4 встречается 2 раз(а).
Пример:
Массив:
1 4 7 3 9 2 4 5 2
После сортировки:
1 2 2 3 4 4 5 7 9
Введите число X:
14
Число 14 не встречается.
Слайд 63

Задачи «C»: Заполнить массив случайными числами и ввести число и отсортировать

Задачи

«C»: Заполнить массив случайными числами и ввести число и отсортировать его.

Ввести число X. Используя двоичный поиск, определить, есть ли в массиве число, равное X. Если такого числа нет, вывести число, ближайшее к X.
Пример:
Массив:
1 4 7 3 9 2 4 5 2
После сортировки:
1 2 2 3 4 4 5 12 19
Введите число X:
12
Число 12 найдено.
Пример:
Массив:
1 4 7 3 9 2 4 5 2
После сортировки:
1 2 2 3 4 4 5 12 19
Введите число X:
11
Число 11 не найдено. Ближайшее число 12.
Слайд 64

Программирование на языке C++ Матрицы

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

Матрицы

Слайд 65

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

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

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

типа (чисел, строк и т.д.). Каждый элемент матрицы имеет два индекса – номера строки и столбца.

нет знака

нолик

крестик

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

Слайд 66

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

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

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

L[N][2];

строки

столбцы

строки

столбцы

Слайд 67

Простые алгоритмы Заполнение случайными числами: for ( i = 0; i

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

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

for ( i = 0; i < N;

i++ ) {
for ( j = 0; j < M; j++ ) {
A[i][j] = irand(20, 80);
cout << width(3);
cout << A[i][j];
}
cout << endl;
}

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

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

Слайд 68

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

Задачи

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

[10,99], и находит максимальный и минимальный элементы в матрице и их индексы.
Пример:
Матрица А:
12 14 67 45
32 87 45 63
69 45 14 11
40 12 35 15
Максимальный элемент A[2,2]=87
Минимальный элемент A[3,4]=11
Слайд 69

Задачи «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
Слайд 70

Задачи «С»: Заполните матрицу, содержащую N строк и M столбцов, натуральными

Задачи

«С»: Заполните матрицу, содержащую N строк и M столбцов, натуральными числами

по спирали и змейкой, как на рисунках:
Слайд 71

Перебор элементов матрицы Главная диагональ: for ( i = 0; i

Перебор элементов матрицы

Главная диагональ:

for ( i = 0; i < N;

i++ ) {
// работаем с  A[i][i]
}

Побочная диагональ:

for ( i = 0; i < N; i++ ){
// работаем с  A[i][N-1-i]
}

Главная диагональ и под ней:

for ( i = 0; i < N; i++ )
for ( j = 0; j <=  i ; j++ )
{
// работаем с  A[i][j]
}

Слайд 72

Перестановка строк 2-я и 4-я строки: for ( j = 0;

Перестановка строк

2-я и 4-я строки:

for ( j = 0; j <

M; j++ )
{
c = A[2][j];
A[2][j]= A[4][j];
A[4][j]= c;
}
Слайд 73

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

Задачи

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

[10,99], а затем записывает нули во все элементы выше главной диагонали. Алгоритм не должен изменяться при изменении размеров матрицы.
Пример:
Матрица А:
12 14 67 45
32 87 45 63
69 45 14 30
40 12 35 65
Результат:
12 0 0 0
32 87 0 0
69 45 14 0
40 12 35 65
Слайд 74

Задачи «B»: Пиксели рисунка закодированы числами (обозначающими цвет) в виде матрицы,

Задачи

«B»: Пиксели рисунка закодированы числами (обозначающими цвет) в виде матрицы, содержащей

N строк и M столбцов. Выполните отражение рисунка сверху вниз:

«С»: Пиксели рисунка закодированы числами (обозначающими цвет) в виде матрицы, содержащей N строк и M столбцов. Выполните поворот рисунка вправо на 90 градусов: