Презентация "Исполнитель Робот. Двумерные массивы" 9 класс

Подписи к слайдам:

Двумерные массивы

Презентация к уроку информатики

9 класс

Автор: Юдин Андрей Борисович

МКОУ Плесская СОШ

Исполнитель РОБОТ

1

Двумерный массив.

Заполнение двумерного массива по определенному правилу.

В математике таблицы чисел, состоящие из строк и столбцов называются матрицами и записываются в круглых скобках.

1

Использование двумерных массивов для построения поверхностей.

2

7

4

2

7

5

4

4

1

3

8

9

9

1

5

0

6

0

0

0 1 2 3 4 5

0

1

2

Ai;j

A[i][j]

A[1][3]

A[0][1]

A[2][4]

3

Заполнить массив размером 5 x 5 по следующему правилу, и вывести его на экран в виде таблицы:

11111

22222

33333

44444

55555

Программа

{

int a[5][5];

int i,j;

for(i=0;i<=4;i=i+1)

{

for(j=0;j<=4;j=j+1)

{

a[i][j]=i+1;

cout <<a[i][j]:3 ;

}

coutln;

}

}

4

Перебираем строки

Движемся по строке

Элементу массива присваиваем номер строки, увеличенный на 1

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

Строка закончилась, переходим на новую

j , 0, 4

Вывод a i , j

i , 0, 4

a i , j= i+1

Цикл отвечающий за перебор строк. (Внешний цикл)

Цикл отвечающий за перебор ячеек в каждой строке. (Внутренний цикл)

5

a00

a11

a12

a21

a22

a03

a30

a33

0 1 2 3

0

1

2

3

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

I=J

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

I+J=N-1

6

Заполнить массив размером 5 x 5 по следующему правилу:

10000

01000

00100

00010

00001

Программа

{

int a[5][5];

int i,j;

for(i=0;i<=4;i=i+1)

{

for(j=0;j<=4;j=j+1)

{

if (i==j)a[i][j]=1;

else a[i][j]=0;

cout <<a[i][j]:3 ;

}

coutln;

}

}

7

Перебираем строки

Движемся по строке

В главной диагонали 1 остальные 0

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

Строка закончилась, переходим на новую

Фрагмент блок-схемы задачи заполнения главной диагонали единицами

j , 0, 4

Вывод a i , j

i , 0, 4

a i , j= 0

i=j

a i , j= 1

Да

Нет

8

a00

a11

a22

a33

a44

Удовлетворяет неравенству

i < j

Удовлетворяет неравенству

i > j

0

1

2

3

4

0 1 2 3 4

9

a04

a13

a22

a31

a40

Удовлетворяет неравенству

i+j<n-1

Удовлетворяет неравенству

i+j>n-1

10

0 1 2 3 4

0

1

2

3

4

0

1

2

3

4

0 1 2 3 4

a00

a11

a22

a33

a44

a31

a40

a13

a04

(i+j<n-1 & i<j)

(i+j>n-1 & i<j)

(i+j>n-1 & i>j)

(i+j<n-1 & i>j)

Системы неравенств

11

а) 10001 б) 11111 в) 11111 г)10001

01010 10001 11111 00000

00100 10001 11111 00000

00000 10001 00000 00000

00000 11111 00000 10001

Заполнить произвольный массив размером N x N (Где N - размер массива вводится с клавиатуры ) по следующему правилу:

12

д)10000 е) 10000 ж) 10001

00001 22000 01011

10000 33300 00111

00001 44000 01011

10000 50000 10001

Заполнить произвольный массив размером N x N (Где N - размер массива вводится с клавиатуры ) по следующему правилу:

13

з) 11111 и)00100 к)11111 м)12345

01110 00100 22220 54321

00100 11111 33300 12345

01110 00100 44000 54321

11111 00100 50000 12345

14

Заполнить произвольный массив размером N x N (Где N - размер массива вводится с клавиатуры ) по следующему правилу:

15

Заполнение двумерного массива с клавиатуры и случайными числами. Обработка элементов массива.

15

Программа

{

int a[10][10];

int i,j,n,k;

cout <<"Размер матрицы ";cin >>n;

for(i=0;i<n;i=i+1)

{

for(j=0;j<n;j=j+1)

{

cout <<"Введи а[" <<i <<"][" <<j <<"]=";

cin >>a[i][j];

}

}

}

Запрашиваем размер массива

Перебираем строки

Движемся по строке

Поясняющий текст, какой элемент вводится

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

j , 0, N-1

Ввод a i , j

i , 0, N-1

Цикл отвечающий за перебор строк. (Внешний цикл)

Цикл отвечающий за перебор ячеек в каждой строке. (Внутренний цикл)

16

17

Программа

{

int a[10][10];

int i,j,n;

cout <<"Размер матрицы ";

cin >>n;

for(i=0;i<n;i=i+1)

{

for(j=0;j<n;j=j+1)

{

a[i][j]=random(21)-10;

cout <<a[i][j]:4 ;

}

coutln;

}

}

Значение элемента определяем случайным числом

j , 0, N-1

Вывод a i , j

i , 0, N-1

a i , j=

случайное[-10;10]

Цикл отвечающий за перебор строк. (Внешний цикл)

Цикл отвечающий за перебор ячеек в каждой строке. (Внутренний цикл)

18

19

int s=0;

for(i=0;i<n;i=i+1)

for(j=0;j<n;j=j+1)

if (i==j) s=s+a[i][j];

cout <<"Сумма главной диагонали " <<s;

Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10] и найти сумму элементов лежащих на главной диагонали.

Сумма элементов только в главной диагонали, но перебираем все элементы массива

20

int k=0;

for(i=0;i<n;i=i+1)

for(j=0;j<n;j=j+1)

if (a[i][j]<0 & i==j) k=k+1;

cout <<"Отрицательных на главной диагонали " <<k;

Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10] и найти количество отрицательных элементов лежащих на главной диагонали.

Количество отрицательных элементов только в главной диагонали, но перебираем все элементы массива

21

int max=a[1][1];

for(i=0;i<n;i=i+1)

for(j=0;j<n;j=j+1)

if (a[i][j]>max & i==j) max=a[i][j];

cout <<"Наибольший на главной диагонали " <<max;

Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10] и найти максимальный элемент лежащий на главной диагонали.

Максимальный элемент только в главной диагонали, но перебираем все элементы массива

22

1. Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10], выяснить что больше сумма элементов лежащих над главной диагональю или под главной диагональю.

2. Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10], все элементы большие среднего арифметического элементов массива, заменить на 0. Массив повторно вывести на экран.

4. Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10]. Найти сумму элементов. И если она отрицательная, заменить все элементы массива на противоположные по знаку, если положительная или 0, удвоить каждый элемент массива. Массив повторно вывести на экран.

3. Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10] и найти сколько раз в массиве встречается максимальное по величине число.

Решение

Решение

Решение

Решение

23

Список литературы и интернет источников

  • Система «Исполнители 2.5» и методические рекомендации к ней. – Автор: Поляков К.Ю. http://kpolyakov.spb.ru/school/robots/methodic.htm
  • В.В. Подбельский, С.С.Фомин. Программирование на языке Си. М .: ФиС, 1999, 600 с.
  • Х.М.Дейтел., П.Дж.Дейтел. Как программировать на Си++. М .: ЗАО БИНОМ, 1999, 1000 с. (первые 600 страниц - изложение обычного Си, наиболее подходят для начинающих).

24

int s=0,s1=0;

for(i=0;i<n;i=i+1)

for(j=0;j<n;j=j+1)

{

if (i>j) s=s+a[i][j];

if (i<j) s1=s1+a[i][j];

}

coutln <<"Под главной диагональю " <<s;

coutln <<"Над главной диагональю " <<s1;

if (s>s1) cout <<"Под главной больше";

if (s<s1) cout <<"Над главной больше";

if (s==s1) cout <<"Одинаково";

Вернуться к условию задачи

25

int s=0;

for(i=0;i<n;i=i+1)

for(j=0;j<n;j=j+1)s=s+a[i][j];

float sr=s/(n*n);

coutln <<"Среднее арифметическое " <<sr;

for(i=0;i<n;i=i+1)

{

for(j=0;j<n;j=j+1)

{

if (a[i][j]>sr) a[i][j]=0;

cout <<a[i][j]:4 ;

}

coutln;

}

Вернуться к условию задачи

26

int max=a[1][1];

for(i=0;i<n;i=i+1)

for(j=0;j<n;j=j+1)

{

if (a[i][j]>max) max=a[i][j];;

}

coutln <<"Максимальное " <<max;

int k=0;

for(i=0;i<n;i=i+1)

for(j=0;j<n;j=j+1)

{

if (a[i][j]==max) k=k+1;

}

coutln <<"Встречается " <<k <<" раз";

Вернуться к условию задачи

27

int s=0;

for(i=0;i<n;i=i+1)

for(j=0;j<n;j=j+1) s=s+a[i][j];

coutln <<"Сумма " <<s;

for(i=0;i<n;i=i+1)

{

for(j=0;j<n;j=j+1)

{

if (s<0) a[i][j]= -a[i][j];

if (s>=0) a[i][j]= 2 * a[i][j];

cout <<a[i][j]:4 ;

}

coutln;

}

Вернуться к условию задачи