Презентация "Исполнитель Робот. Двумерные массивы" 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;
}
Вернуться к условию задачи
Информатика - еще материалы к урокам:
- Конспект урока "Исполнитель Робот. Двумерные массивы" 9 класс
- Презентация "Перевод чисел из двоичной системы счисления, и наоборот. Использование приложения Калькулятор" 9 класс
- Конспект урока "Перевод двоичных чисел в десятичную систему счисления, десятичных чисел в двоичную систему" 9 класс
- Конспект урока "Материальные и информационные модели"
- Презентация "Материальные и информационные модели" 9 класс
- Конспект урока "Немного истории о действиях с информацией" 3 класс