СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

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

Закрепление изученного

Итоги урока

Робот двумерные массивы

Категория: Информатика

Нажмите, чтобы узнать подробности

Уроки информатики в 9 классе "Исполнитель Робот. Двумерные массивы"

Просмотр содержимого документа
«ДВумерные массивы»

10


Дранов Денис Валерьевич

учитель информатики СКО Тимирязевский район с. Аксуат

КГУ «Аксуатская средняя школа»


Уроки информатики в 9 классе

«Исполнитель Робот. Двумерные массивы»


Введение


Данная презентация завершает курс программирования на основе системы исполнителей Полякова Константина Юрьевича «Исполнители 2.5» Первые шесть презентаций были опубликованы на «Учительском портале» это: Уроки информатики по теме "Исполнитель Робот. Основные алгоритмические конструкции" http://www.uchportal.ru/load/17-1-0-56893 , Уроки информатики в 7 классе «Исполнитель Робот. Учим робота считать» http://www.uchportal.ru/load/17-1-0-57986 и Уроки информатики в 7 классе «Исполнитель Робот. Графика Windows» http://www.uchportal.ru/load/17-1-0-60836 . Уроки информатике в 9 классе «Исполнитель Робот. Вычислительные алгоритмы»

http://www.uchportal.ru/informatika/ispolnitel_robot_vychislitelnye_algoritmy Уроки информатики в 9 классе «Исполнитель Робот. Массивы» http://www.uchportal.ru/uroki-informatiki-ispolnitel-robot-massivy . Уроки информатики в 9 классе "Исполнитель Робот. Строки" http://www.uchportal.ru/informatika/uroki-v-9-klasse-ispolnitel-robot-stroki-70929

К сожалению, время, отведенное на программирование не велико, и полностью показать, тему «Двумерные массивы», так как я ее вижу, к сожалению не получается. Поэтому в архиве две презентации. Первая – это та, что я использую на уроках, вторая – это для факультативных и кружковых занятий. Описание привожу к первой презентации. Ко второй презентации, свои размышления и комментарии в отдельном файле.

Занятие 1-3.

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


Слайд 1. Дается математическое понятие матрицы. Здесь неплохо рассказать детям, что существует раздел математики, который рассматривает матрицы и операции с ними.

Слайд 2. Показан один из примеров применения матриц, для моделирования поверхности.

Слайд 3. Приводится определение двумерного массива в программировании. Необходимо учитывать, что в некоторых языках программирования нумерация строк и столбцов начинается с 0. Тогда как большинство нормальных людей привыкли считать натуральными числами, т.е. с единицы.

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

11111

22222

33333

44444

55555

В данной задаче массив имеет фиксированные размеры, для первой задачи, это будет понятнее учащимся.

Слайд 4. Показано решение задачи сформулированной на слайде 3.

Слайд 5. Показан фрагмент блок-схемы задачи сформулированной на слайде 3.

Слайд 6. Вводится понятие главной и побочной диагонали. И формулируется условие задачи: Заполнить произвольный массив размером 5 x 5 по следующему правилу:

10000

01000

00100

00010

00001

Слайд 7. Показано решение задачи сформулированной на слайде 6.

Слайд 8. Показан фрагмент блок-схемы задачи сформулированной на слайде 6.

Слайды 10 -11. Показаны неравенства, определяющие различные части двумерного массива.

Слайды 12- 14. Показаны различные задачи на заполнение массива. Причем добавляется условие, что размер массива может изменяться. Для упрощения работы все задачи на квадратные матрицы, т.е. количество строк, совпадает с количеством столбцов.



Занятие 4.

Заполнение массива с клавиатуры и случайными числами.


Слайд 15. Показано заполнение массива с клавиатуры.

Слайд 16. Показан фрагмент блок-схемы заполнения массива с клавиатуры.

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

Программа

{

int a[10][10];

int i,j,n,k;

// ввод с клавиатуры

cout cin n;

for(i=0;i

{

for(j=0;j

{

cout i j

cin a[i][j];

}

}

// вывод в виде таблицы

for(i=0;i

{

for(j=0;j

coutln;

}

}

Слайд 17. Показан фрагмент программы заполнения массива случайными числами из интервала. Массив этими же циклами выводится на экран в виде таблицы.

Слайд 18. Показана блок-схема заполнения массива случайными числами.

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

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

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

Слайд 22. Даны задачи для самостоятельного решения. Приведу возможные варианты решения этих задач.

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

Программа

{

int a[10][10];

int i,j,n;

cout n;

for(i=0;i

{

for(j=0;j

{

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

cout

}

coutln;

}

int s=0,s1=0;

for(i=0;i

for(j=0;j

{

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

if (i

}

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

coutln

if (ss1) cout

if (s

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

}

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

Программа

{

int a[10][10];

int i,j,n;

cout n;

for(i=0;i

{

for(j=0;j

{

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

cout

}

coutln;

}

int s=0;

for(i=0;i

for(j=0;j

{

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

}

float sr=s/(n*n);

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

for(i=0;i

{

for(j=0;j

{

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

cout

}

coutln;

}

}

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

Программа

{

int a[10][10];

int i,j,n;

cout n;

for(i=0;i

{

for(j=0;j

{

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

cout

}

coutln;

}

int max=a[1][1];

for(i=0;i

for(j=0;j

{

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

}

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

int k=0;

for(i=0;i

for(j=0;j

{

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

}

coutln

}


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

Программа

{

int a[10][10];

int i,j,n;

cout n;

for(i=0;i

{

for(j=0;j

{

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

cout

}

coutln;

}

int s=0;

for(i=0;i

for(j=0;j


coutln Сумма "


for(i=0;i

{

for(j=0;j

{

if (s

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

cout

}

coutln;

}

}

Фрагментарно эти решения приведены на слайдах 24-27. Слайды имеют атрибут скрытые и при прямом пролистывании не видны. Переход к ним и возвращение обратно возможны только по гиперссылке.



Список используемой литературы


  1. Система «Исполнители 2.5» и методические рекомендации к ней. – Автор: Поляков К.Ю. http://kpolyakov.spb.ru/school/robots/methodic.htm

  1. В.В. Подбельский, С.С.Фомин. Программирование на языке Си. М .: ФиС, 1999, 600 с.

  2. Х.М.Дейтел., П.Дж.Дейтел. Как программировать на Си++. М .: ЗАО БИНОМ, 1999, 1000 с. (первые 600 страниц - изложение обычного Си, наиболее подходят для начинающих).

Просмотр содержимого документа
«Двумерные массивы ВЕРСИЯ 2»

6


Дранов Денис Валерьевич

учитель информатики СКО Тимирязевский район с. Аксуат

КГУ «Аксуатская средняя школа»


Уроки информатики в 9 классе

«Исполнитель Робот. Двумерные массивы»

(Для углубленного изучения)



Эта презентация, скорее всего больше похожа на мечту, как должна выглядеть тема «Двумерные массивы». Я использую эту презентацию, к сожалению, только на кружке и то зачастую фрагментарно…


Описание презентации


Часть 1. Знакомство с двумерными массивами

(Слайды 1-14)


Сколько часов (занятий) уйдет на эту тему, зависит от уровня подготовки детей. Поэтому я не привожу поурочное планирование. Думаю, что каждый преподаватель, который возьмет мою презентацию, сможет сделать это самостоятельно.

Слайд 1. Показано определение матрицы в математике.

Слайд 2. Даем определение элемента массива, его индексов и значения.

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

Слайд 4. Показан пример построения изображения из пикселей на экране монитора.

Слайд 5. Вводится определение главной и побочной диагонали матрицы. И различия в определении побочной диагонали, в зависимости от нумерации строк и столбцов матрицы. При нумерации с 0 или 1, равенство, задающее побочную диагональ, будут отличаться, это необходимо учитывать при составлении программ.

Слайд 6. Показаны неравенства, определяющие множество элементов лежащих над и под главной диагональю.

Слайд 7. Показаны неравенства, определяющие множество элементов лежащих над и под побочной диагональю, при нумерации строк и столбцов с 0.

Слайд 8. Показаны системы неравенств, определяющие различные части двумерного массива.

Слайд 9. Рассмотрен пример, где при помощи вложенных циклов имитируется двумерный массив. Хотя в этих графических примерах массив не используется. Но на этих примерах учащийся видит наглядно и может закрепить основные неравенства, используемые при работе с фрагментами двумерного массива. По сути дела, эта программа увеличивает пиксели, из которых состоит изображение.

Слайд 10. При помощи равенства, определяющего главную диагональ, закрашиваем квадратики, лежащие в этой диагонали в другой цвет.

Слайд 11. Показан пример, когда попытка воспользоваться изученными выше неравенствами приводит не совсем к тому результату.

Слайд 12. Объясняется различие в описании элемента массива и пикселя на экране. Разница в том, что массив мы нумеруем строка-столбец, то пиксель столбец-строка (x-y). Решить эту проблему можно поменяв переменные в графических командах.

Слайд 13. Показано решение задачи, с исправленной ошибкой.

Слайд 14. Даны два изображения, которые учащиеся должны построить самостоятельно. Желательно, что бы размеры матрицы выражались нечетным числом. Иначе ученики будут получать несимметричные картинки:


Изображение для n=8.

Часть 2. Заполнение числового массива по определенному правилу

Слады 15-23


Слайд 15. Показано условие задачи: Заполнить массив размером 5 × 5 по следующему правилу:

1 0 0 0 0

0 1 0 0 0

0 0 1 0 0

0 0 0 1 0

0 0 0 0 1

В задаче требуется заполнить массив используя изученные правила и вывести его на экран в виде таблицы.

Слайд 16. Показано решение задачи сформулированной на слайде 15.

Слайд 17. Показан фрагмент блок-схемы решения задачи сформулированной на слайде 15.

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

1 1 1 1 1

2 2 2 2 2

3 3 3 3 3

4 4 4 4 4

5 5 5 5 5

Слайд 19. Показано решение задачи сформулированной на слайде 18.

Слайд 20. Показан фрагмент блок-схемы решения задачи сформулированной на слайде 18.

Слайды 21-23. Показаны задачи для самостоятельного решения.


Часть 3. Заполнение числового массива случайными числами

Слады 24-29


Слайд 24. Возвращаемся к цветным квадратикам, имитирующим двумерный массив. На слайде показана имитация двумерного массива из цветных квадратиков.

Слайд 25. Показан способ градиентной заливки по строкам.

Слайд 26. Показан способ градиентной заливки по диагонали из двух цветов.

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

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

Слайд 29. Приведены две задачи для самостоятельного решения учащимися.


Часть 4. Обработка двумерного массива

Слады 30-34


На этих слайдах показаны фрагменты программ, нахождения суммы, количества и изменения элементов массива согласно условию.

Слайд 30. Показан фрагмент решения задачи: Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10] и найти сумму элементов лежащих на главной диагонали. Решение приведено с перебором всех элементов массива.

Слайд 31. Показан фрагмент решения задачи: Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10] и найти сумму элементов лежащих на главной диагонали. Решение приведено с проходом только по главной диагонали.

Слайд 32. Показан фрагмент решения задачи: Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10] и найти количество отрицательных элементов лежащих на главной диагонали. Решение приведено с перебором всех элементов массива.

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

Слайд 34. Представлены задачи для самостоятельного решения.


Часть 5. Работа со строками и столбцами двумерного массива по отдельности

Слады 35-37


Слайд 35. Показан фрагмент решения задачи: Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10] и найти максимальный элемент в каждой строке матрицы.

Слайд 36. Показан фрагмент решения задачи: Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10] и найти максимальный элемент в каждом столбце матрицы.

Слайд 37. Представлены задачи для самостоятельного решения.


Часть 6. Вставка и удаление столбцов и строк

Слады 38-45


Слайд 38. Показана «идея» вставки столбца в массив.

Слайд 39. Показана «идея» удаления столбца из массива.

Слайд 40. Напомним, что нумерация столбцов и строк начинается с 0. Это важно, так как мы привыкли использовать для счета натуральные числа, а они начинаются с 1. Поэтому если нам говорят удалить третий столбик, то в нашей нумерации он будет иметь номер два. Это вызывает некоторые трудности в программировании.

Слайд 41. Показан фрагмент решения задачи: Дана матрица размером NxN. (Где N вводится с клавиатуры. Nпосле столбца с номером k. (k вводится с клавиатуры).

Слайд 42. Показан фрагмент решения задачи: Дана матрица размером NxN. (Где N вводится с клавиатуры. Nвместо столбца с номером k. (k вводится с клавиатуры).

Слайд 43. Показан фрагмент решения задачи: Дана матрица размером NxN. (Где N вводится с клавиатуры. N

Слайд 44. Показан фрагмент решения задачи: Дана матрица размером NxN. (Где N вводится с клавиатуры. N

Слайд 45. Представлены задачи для самостоятельного решения.


Часть 7. Заполнение числового массива с клавиатуры.

Математические операции с матрицами

Слады 46-63


Слайд 46. Сформулировано условие задачи: Заполнить двумерный массив N x N (Где N

Слайд 47. Показано решение задачи сформулированной на слайде 46.

Слайд 48. Показан фрагмент блок-схемы решающе задачу, сформулированную на сладе 46.

Слайд 49. Дано определение и сформулирована задача умножения матрицы на число.

Слайд 50-51. Программа, решающая задачу, сформулированную на слайде 49.

Слайд 52. Дано определение и сформулирована задача сложения двух матриц одинакового размера.

Слайд 53. Приведен фрагмент программы сложения двух матриц.

Слайд 54. Дано определение умножения матриц.

Слайд 55. Иллюстрируется замечание, когда количество столбцов первой матрицы должно равняться количеству строк второй матрицы и какой размерности получается результат умножения.

Слайд 56. Рассмотрено умножение матриц в «ручную», а так же показан скриншот работы программы умножения двух матриц.

Слайды 57. Показан фрагмент программы умножения двух матриц.

Слайд 58. Дано определение транспонирования матрицы и показаны скриншоты работы программы транспонирующей матрицу.

Слайд 59. Показан фрагмент программы транспонирования матрицы.

Слайд 69. На одном из детских форумов посвященных программированию, на таких форумах я собираю интересные задачи, нашел просьбу о помощи и «ответ», ребенка который не имеет представления о матрицах. Я в качестве заключительной работы предлагаю ученикам решить часть этого задания. В качестве проверяющей системы можно использовать on-line калькуляторы для матриц, благо их полно в Интернете.



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


  1. Система «Исполнители 2.5» и методические рекомендации к ней. – Автор: Поляков К.Ю. http://kpolyakov.spb.ru/school/robots/methodic.htm

  1. В.В. Подбельский, С.С.Фомин. Программирование на языке Си. М .: ФиС, 1999, 600 с.

  2. Х.М.Дейтел., П.Дж.Дейтел. Как программировать на Си++. М .: ЗАО БИНОМ, 1999, 1000 с. (первые 600 страниц - изложение обычного Си, наиболее подходят для начинающих).

  3. Белоусов И. В. Матрицы и определители. Учебное пособие по линейной алгебре. Кишинев, 2006.

Просмотр содержимого презентации
«Двумерные массивы Исполнители ВЕРСИЯ 2»

Версия для углубленного изучения Исполнитель РОБОТ Двумерные массивы Презентация к уроку информатики 9 класс Автор: Дранов Денис Валерьевич

Версия для углубленного изучения

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

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

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

9 класс

Автор: Дранов Денис Валерьевич

1 Знакомство с двумерными массивами.

1

Знакомство с двумерными массивами.

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

1

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

2 A i ;j  0 1 2 3 4 5 7 4 4 1 2 1 3 5 7 8 5 0 9 6 4 0 9 0 0  1  2 A[ i ][ j ] A[ 1 ][ 3 ] A[ 0 ][ 1 ] A[ 2 ][ 4 ]

2

A i ;j

0 1 2 3 4 5

7

4

4

1

2

1

3

5

7

8

5

0

9

6

4

0

9

0

0

1

2

A[ i ][ j ]

A[ 1 ][ 3 ]

A[ 0 ][ 1 ]

A[ 2 ][ 4 ]

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

3

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

4 Построение изображения на экране монитора Столбец  Строка  Каждый пиксель имеет свою координату

4

Построение изображения на экране монитора

Столбец

Строка

Каждый пиксель имеет свою координату

5 Нумерация начинается с 0  0 1 2 3 Главная диагональ: I=J a 00 a 03 0  1  2 3 a 12 a 11 Побочная диагональ: I+J=N-1 a 21 a 22 a 33 a 30 Нумерация начинается с 1  1 2 3 4 Главная диагональ: I=J a 11 1 a 14  2  3 4 a 22 a 23 Побочная диагональ: I+J=N+1 a 32 a 33 a 41 a 44

5

Нумерация начинается с 0

0 1 2 3

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

I=J

a 00

a 03

0

1

2

3

a 12

a 11

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

I+J=N-1

a 21

a 22

a 33

a 30

Нумерация начинается с 1

1 2 3 4

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

I=J

a 11

1

a 14

2

3

4

a 22

a 23

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

I+J=N+1

a 32

a 33

a 41

a 44

j" width="640"

6

0 1 2 3 4

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

i

a 00

0

1

2

3

4

a 11

a 22

a 33

a 44

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

i j

n-1" width="640"

7

0 1 2 3 4

a 04

0

1

2

3

4

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

i+j

a 13

a 22

a 31

a 40

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

i+jn-1

n-1 & i 0 1 2 3 4 a 13 a 11 a 22 a 31 a 33 a 40 a 44 (i+jn-1 & ij)" width="640"

8

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

(i+j

0 1 2 3 4

a 04

(i+jj)

a 00

(i+jn-1 & i

0

1

2

3

4

a 13

a 11

a 22

a 31

a 33

a 40

a 44

(i+jn-1 & ij)

n; for(i=0;i { for(j=0;j { Brush ( RGB ( 255,0 ,0 ),0 ); Rectangle ( i*30,j*30,i*30+28,j*30+28); Fill ( i*30+5,j*30+5 ); } } } Берем кисть красного цвета Рисуем квадрат размером 28 х 28 Закрашиваем квадрат" width="640"

9

Программа

{

int a[10][10];

int i,j,n;

cout

cin n;

for(i=0;i

{

for(j=0;j

{

Brush ( RGB ( 255,0 ,0 ),0 );

Rectangle ( i*30,j*30,i*30+28,j*30+28);

Fill ( i*30+5,j*30+5 );

}

}

}

Берем кисть красного цвета

Рисуем квадрат размером 28 х 28

Закрашиваем квадрат

n; for(i=0;i { for(j=0;j { if (i==j) { Brush ( RGB ( 0,0 ,254 ),0 ); Rectangle ( i*30,j*30 ,i*30+28 ,j*30+28 ); Fill ( i*30+5,j*30+5 ); } else { Brush ( RGB ( 255,0 ,0 ),0 ); Rectangle ( i*30,j*30 ,i*30+28 ,j*30+28 ); Fill ( i*30+5,j*30+5 ); } } } } Для квадратов в главной диагонали Берем синюю кисть Для всех остальных красную" width="640"

10

Программа

{

int a[10][10];

int i,j,n;

cout n;

for(i=0;i

{

for(j=0;j

{

if (i==j)

{

Brush ( RGB ( 0,0 ,254 ),0 );

Rectangle ( i*30,j*30 ,i*30+28 ,j*30+28 );

Fill ( i*30+5,j*30+5 );

}

else {

Brush ( RGB ( 255,0 ,0 ),0 );

Rectangle ( i*30,j*30 ,i*30+28 ,j*30+28 );

Fill ( i*30+5,j*30+5 );

}

}

}

}

Для квадратов в главной диагонали

Берем синюю кисть

Для всех остальных красную

11   for(i=0;i  {  for(j=0;j  {  if (i+j  {  Brush ( RGB ( 0,0 ,254 ),0 );  Rectangle ( i*30,j*30 ,i*30+30 ,j*30+30 );  Fill ( i*30+5,j*30+5 );  }  else {  Brush ( RGB ( 255,0 ,0 ),0 );  Rectangle ( i*30,j*30 ,i*30+30 ,j*30+30 );  Fill ( i*30+5,j*30+5 );  }  }  } Ошибка ?

11

for(i=0;i

{

for(j=0;j

{

if (i+j

{

Brush ( RGB ( 0,0 ,254 ),0 );

Rectangle ( i*30,j*30 ,i*30+30 ,j*30+30 );

Fill ( i*30+5,j*30+5 );

}

else {

Brush ( RGB ( 255,0 ,0 ),0 );

Rectangle ( i*30,j*30 ,i*30+30 ,j*30+30 );

Fill ( i*30+5,j*30+5 );

}

}

}

Ошибка ?

12  0 1 2 3 Элемент массива A[ i ][ j ] A[ строка ][ столбец ] a 14 a 11 0  1  2 3 a 23 a 22 a 33 a 32 Решение: A( строка , столбец ) Point( Y , X )  a 44 a 41 Х Точка на экране Point( X , Y ) A( столбец , строка ) Y

12

0 1 2 3

Элемент массива

A[ i ][ j ]

A[ строка ][ столбец ]

a 14

a 11

0

1

2

3

a 23

a 22

a 33

a 32

Решение:

A( строка , столбец )

Point( Y , X )

a 44

a 41

Х

Точка на экране

Point( X , Y )

A( столбец , строка )

Y

13   for(i=0;i  {  for(j=0;j  {  if (i+j  {  Brush ( RGB ( 0,0 ,254 ),0 );  Rectangle ( j*30 , i*30 , j*30+28 , i*30+28 );  Fill ( j*30+5 , i*30+5 );  }  else {  Brush ( RGB ( 255,0 ,0 ),0 );  Rectangle ( j*30 , i*30 , j*30+28 , i*30+28 );  Fill ( j*30+5 , i*30+5 );  }  }  }

13

for(i=0;i

{

for(j=0;j

{

if (i+j

{

Brush ( RGB ( 0,0 ,254 ),0 );

Rectangle ( j*30 , i*30 , j*30+28 , i*30+28 );

Fill ( j*30+5 , i*30+5 );

}

else {

Brush ( RGB ( 255,0 ,0 ),0 );

Rectangle ( j*30 , i*30 , j*30+28 , i*30+28 );

Fill ( j*30+5 , i*30+5 );

}

}

}

14 Задания для самостоятельного решения (матрица имеет нечетный размер)

14

Задания для самостоятельного решения (матрица имеет нечетный размер)

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

15

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

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

15

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

1 0 0 0 0

0 1 0 0 0

0 0 1 0 0

0 0 0 1 0

0 0 0 0 1

16 Программа  {  int a[5][5];  int i,j;  for(i=0;i   {  for(j=0;j  {  if (i==j)a[i][j]=1;  else a[i][j]=0;  cout   }  coutln;  }  } Перебираем строки Движемся по строке В главной диагонали 1 остальные 0 Выводим элемент массива на экран Строка закончилась, переходим на новую

16

Программа

{

int a[5][5];

int i,j;

for(i=0;i

{

for(j=0;j

{

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

else a[i][j]=0;

cout

}

coutln;

}

}

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

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

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

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

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

17 i , 0, 4 j , 0, 4 Фрагмент блок-схемы задачи заполнения главной диагонали единицами i=j Да Нет a i , j = 1 a i , j = 0 Вывод a i , j

17

i , 0, 4

j , 0, 4

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

i=j

Да

Нет

a i , j = 1

a i , j = 0

Вывод a i , j

18 Заполнить произвольный массив размером N × N (Где N - размер массива вводится с клавиатуры ) по следующему правилу:   1 1 1 1 1  2 2 2 2 2  3 3 3 3 3  4 4 4 4 4  5 5 5 5 5

18

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

1 1 1 1 1

2 2 2 2 2

3 3 3 3 3

4 4 4 4 4

5 5 5 5 5

n; for(i=0;i { for(j=0;j { a[i][j]=i+1; cout } coutln; } }" width="640"

19

Программа

{

int a[10][10];

int i,j,n;

cout n;

for(i=0;i

{

for(j=0;j

{

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

cout

}

coutln;

}

}

20 i , 0, N-1 Цикл отвечающий за перебор строк. (Внешний цикл) j , 0, N-1 a i , j = i+1 Вывод a i , j Цикл отвечающий за перебор ячеек в каждой строке. (Внутренний цикл)

20

i , 0, N-1

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

j , 0, N-1

a i , j = i+1

Вывод a i , j

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

21 Заполнить произвольный массив размером N x N (Где N - размер массива вводится с клавиатуры ) по следующему правилу: а) 10001 б) 11111 в) 11111 г)10001  01010 10001 11111 00000  00100 10001 11111 00000  00000 10001 00000 00000  00000 11111 00000 10001

21

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

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

01010 10001 11111 00000

00100 10001 11111 00000

00000 10001 00000 00000

00000 11111 00000 10001

22 Заполнить произвольный массив размером N x N (Где N - размер массива вводится с клавиатуры ) по следующему правилу: д)10000 е) 10000 ж) 10001  00001 22000 01011  10000 33300 00111  00001 44000 01011  10000 50000 10001

22

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

д)10000 е) 10000 ж) 10001

00001 22000 01011

10000 33300 00111

00001 44000 01011

10000 50000 10001

23 Заполнить произвольный массив размером N x N (Где N - размер массива вводится с клавиатуры ) по следующему правилу: з) 11111 и)00100 к)11111 м)12345  01110 00100 22220 54321  00100 11111 33300 12345  01110 00100 44000 54321  11111 00100 50000 12345

23

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

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

01110 00100 22220 54321

00100 11111 33300 12345

01110 00100 44000 54321

11111 00100 50000 12345

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

24

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

24    for(i=0;i  {  for(j=0;j  {  r=random(255);  g=random(255);  b=random(255);  Brush ( RGB ( r,g ,b ),0 );  Rectangle(j*30,i*30,j*30+30,i*30+30);  Fill ( j*30+5,i*30+5 );  }  }   Случайным образом задаем цвет для функции RGB

24

for(i=0;i

{

for(j=0;j

{

r=random(255);

g=random(255);

b=random(255);

Brush ( RGB ( r,g ,b ),0 );

Rectangle(j*30,i*30,j*30+30,i*30+30);

Fill ( j*30+5,i*30+5 );

}

}

Случайным образом задаем цвет для функции RGB

25   for(i=0;i  {  for(j=0;j  {  r=i*(255/n);  Brush ( RGB ( r,0 ,0 ),0 );  Rectangle(j*30,i*30,j*30+30,i*30+30);  Fill ( j*30+5,i*30+5 );  }  } Для каждой строки определяем свой цвет

25

for(i=0;i

{

for(j=0;j

{

r=i*(255/n);

Brush ( RGB ( r,0 ,0 ),0 );

Rectangle(j*30,i*30,j*30+30,i*30+30);

Fill ( j*30+5,i*30+5 );

}

}

Для каждой строки определяем свой цвет

26 for(i=0;i  {  for(j=0;j  {  r=i*(255/n);  g=j*(255/n);  Brush ( RGB ( r,g ,0 ),0 );  Rectangle(j*30,i*30,j*30+30,i*30+30);  Fill ( j*30+5,i*30+5 );  }  } Для строки и столбца определяем свой цвет

26

for(i=0;i

{

for(j=0;j

{

r=i*(255/n);

g=j*(255/n);

Brush ( RGB ( r,g ,0 ),0 );

Rectangle(j*30,i*30,j*30+30,i*30+30);

Fill ( j*30+5,i*30+5 );

}

}

Для строки и столбца определяем свой цвет

n; for(i=0;i { for(j=0;j { a[i][j]=random(21)-10; cout } coutln; } } Элементу массива присваиваем значение определенное случайным образом и выводим его на экран" width="640"

27

Программа

{

int a[10][10];

int i,j,n;

cout

cin n;

for(i=0;i

{

for(j=0;j

{

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

cout

}

coutln;

}

}

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

28 i , 0, N-1 Цикл отвечающий за перебор строк. (Внешний цикл) j , 0, N-1 a i , j = случайное[-10;10] Вывод a i , j Цикл отвечающий за перебор ячеек в каждой строке. (Внутренний цикл)

28

i , 0, N-1

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

j , 0, N-1

a i , j =

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

Вывод a i , j

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

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

29

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

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

30 Обработка двумерного массива.

30

Обработка двумерного массива.

30 Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10] и найти сумму элементов лежащих на главной диагонали. Сумма элементов только в главной диагонали, но перебираем все элементы массива  int s=0;  for(i=0;i  for(j=0;j  if (i==j) s=s+a[i][j];  cout

30

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

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

int s=0;

for(i=0;i

for(j=0;j

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

cout

31 Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10] и найти сумму элементов лежащих на главной диагонали. Из каждой строки берем элемент, у которого номер строки совпадает с номером столбца  int s=0;  for(i=0;i  cout

31

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

Из каждой строки берем элемент, у которого номер строки совпадает с номером столбца

int s=0;

for(i=0;i

cout

32 Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10] и найти количество отрицательных элементов лежащих на главной диагонали. Отрицательные числа лежащие на главной диагонали int k=0;  for(i=0;i  for(j=0;j  if (a[i][j] cout

32

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

Отрицательные числа лежащие на главной диагонали

int k=0;

for(i=0;i

for(j=0;j

if (a[i][j]

cout

max & i==j) max=a[i][j]; cout" width="640"

33

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

int max=a[1][1];

for(i=0;i

for(j=0;j

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

cout

34 1. Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10], выяснить что больше сумма элементов лежащих над главной диагональю или под главной диагональю. Решение 2. Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10], все элементы большие среднего арифметического элементов массива, заменить на 0. Массив повторно вывести на экран. Решение 3. Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10] и найти сколько раз в массиве встречается максимальное по величине число. Решение 4. Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10]. Найти сумму элементов. И если она отрицательная, заменить все элементы массива на противоположные по знаку, если положительная или 0, удвоить каждый элемент массива. Массив повторно вывести на экран. Решение

34

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

Решение

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

Решение

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

Решение

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

Решение

35 Работа со строками и столбцами двумерного массива по отдельности.

35

Работа со строками и столбцами двумерного массива по отдельности.

max) max=a[i][j]; coutln } Ищем больший элемент Выводим наибольший в строке" width="640"

35

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

Предположим, что наибольший элемент стоит первым в каждой строке

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

for(i=0;i

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

{

int max=a[i][1];

for(j=0;j

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

coutln

}

Ищем больший элемент

Выводим наибольший в строке

max) max=a[i][j]; coutln } Выводим наибольший в столбце" width="640"

36

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

Предположим, что наибольший элемент стоит первым в каждом столбце

Перебираем столбцы

Движемся по столбцу вниз и ищем максимальный

for(j=0;j

{

int max=a[1][j];

for(i=0;i

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

coutln

}

Выводим наибольший в столбце

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

37

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

Решение

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

Решение

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

Решение

38 Вставка и удаление столбцов и строк.

38

Вставка и удаление столбцов и строк.

38 Дополнительный столбик Вставка столбца

38

Дополнительный столбик

Вставка столбца

39 Лишний столбик Удаление столбца

39

Лишний столбик

Удаление столбца

40  Нумерация: 0 1 2 3 4 «Нормальный»: 1 2 3 4 5 человек считает столбцы

40

Нумерация: 0 1 2 3 4

«Нормальный»: 1 2 3 4 5

человек считает столбцы

k; for(i=0;i { for(j=n;j=k;j=j-1) a[i][j]=a[i][j-1]; a[i][k]=0; } for(i=0;i { for(j=0;j coutln; } Перебираем столбцы, с последнего до k-го Повторно выводим массив на экран" width="640"

41

Дана матрица размером NxN. (Где N вводится с клавиатуры. Nпосле столбца с номером k. (k вводится с клавиатуры).

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

Текущий элемент заменяем элементом слева

Когда элементы сдвинуты, на k-е место ставим 0

cout

cin k;

for(i=0;i

{

for(j=n;j=k;j=j-1) a[i][j]=a[i][j-1];

a[i][k]=0;

}

for(i=0;i

{

for(j=0;j

coutln;

}

Перебираем столбцы, с последнего до k-го

Повторно выводим массив на экран

k; for(i=0;i { for(j=n; jk-1 ;j=j-1) a[i][j]=a[i][j-1]; a[i][ k-1 ]=0; } for(i=0;i { for(j=0;j coutln; }" width="640"

42

Дана матрица размером NxN. (Где N вводится с клавиатуры. Nвместо столбца с номером k. (k вводится с клавиатуры).

cout

cin k;

for(i=0;i

{

for(j=n; jk-1 ;j=j-1) a[i][j]=a[i][j-1];

a[i][ k-1 ]=0;

}

for(i=0;i

{

for(j=0;j

coutln;

}

k; for(j=0;j { for(i=n;i=k;i=i-1) a[i][j]=a[i-1][j]; a[k][j]=0; } for(i=0;i { for(j=0;j coutln; } Перебираем строки с последней до k-ой Заменяем элемент в k-ой строке на 0" width="640"

43

Дана матрица размером NxN. (Где N вводится с клавиатуры. N

Перебираем столбцы

Заменяем текущий элемент, на стоящий над ним

cout

cin k;

for(j=0;j

{

for(i=n;i=k;i=i-1) a[i][j]=a[i-1][j];

a[k][j]=0;

}

for(i=0;i

{

for(j=0;j

coutln;

}

Перебираем строки с последней до k-ой

Заменяем элемент в k-ой строке на 0

k; for(i=0;i { for(j=k-1;j } for(i=0;i { for(j=0;j coutln; } Перебираем столбцы" width="640"

44

Дана матрица размером NxN. (Где N вводится с клавиатуры. N

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

Заменяем текущий элемент на стоящий справа

cout

cin k;

for(i=0;i

{

for(j=k-1;j

}

for(i=0;i

{

for(j=0;j

coutln;

}

Перебираем столбцы

45 1. Заполнить двумерный массив N x N случайными числами из интервала [-10; 10], найти максимальный элемент и вставить после столбца, в котором стоит максимальный элемент, столбец из нулей. Решение 2. Заполнить двумерный массив N x N случайными числами из интервала [-10; 10], найти максимальный элемент в массиве и удалить строку, в которой находится этот элемент. Решение

45

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

Решение

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

Решение

46 Заполнение числового массива с клавиатуры. Математические операции с матрицами.

46

Заполнение числового массива с клавиатуры. Математические операции с матрицами.

46 Заполнить двумерный массив N x N (Где N

46

Заполнить двумерный массив

N x N (Где N

n; for(i=0;i { for(j=0;j { cout cin a[i][j]; } } for(i=0;i { for(j=0;j coutln; } } Заполняем построчно, с комментариями Выводим в виде таблицы" width="640"

47

Программа

{

int a[10][10];

int i,j,n,k;

cout n;

for(i=0;i

{

for(j=0;j

{

cout

cin a[i][j];

}

}

for(i=0;i

{

for(j=0;j

coutln;

}

}

Заполняем построчно, с комментариями

Выводим в виде таблицы

48 Цикл отвечающий за перебор строк. (Внешний цикл) i , 0, N-1 j , 0, N-1 Ввод a i , j Цикл отвечающий за перебор ячеек в каждой строке. (Внутренний цикл)

48

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

i , 0, N-1

j , 0, N-1

Ввод a i , j

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

49 Произведением матрицы   A   на ненулевое число λ     называется матрица  B = λ  A   того же порядка, полученная из исходной умножением на заданное  число  всех ее элементов: Заполнить матрицу N x М (Где N,М λ. Результат умножения повторно вывести на экран.

49

Произведением матрицы   A   на ненулевое число λ     называется матрица  B = λ  A   того же порядка, полученная из исходной умножением на заданное  число  всех ее элементов:

Заполнить матрицу N x М (Где N,М λ. Результат умножения повторно вывести на экран.

n; cout m; cout d; for(i=0;i { for(j=0;j { cout cin a[i][j]; } }" width="640"

50

Заполняем матрицу построчно

int a[10][10],b[10][10];

int i,j,n,m,d;

cout n;

cout m;

cout d;

for(i=0;i

{

for(j=0;j

{

cout

cin a[i][j];

}

}

51  coutln   for(i=0;i  {  for(j=0;j ]:4 ;  coutln;  }  coutln   for(i=0;i  {  for(j=0;j  {  b[i][j]=d*a[i][j]  cout   }  coutln;  } Умножаем каждый элемент на число, и повторно выводим на экран Выводим в виде таблицы

51

coutln

for(i=0;i

{

for(j=0;j ]:4 ;

coutln;

}

coutln

for(i=0;i

{

for(j=0;j

{

b[i][j]=d*a[i][j]

cout

}

coutln;

}

Умножаем каждый элемент на число, и повторно выводим на экран

Выводим в виде таблицы

52 Суммой матриц   А  и  В  одного размера называется матрица  С=А + В такого же размера, получаемая из исходных путем сложения соответствующих элементов: Заполнить матрицу А размером N x М и матрицу В размером N x М с клавиатуры (где N,М . Результат повторно вывести на экран.

52

Суммой матриц   А  и  В  одного размера называется матрица  С=А + В такого же размера, получаемая из исходных путем сложения соответствующих элементов:

Заполнить матрицу А размером N x М и матрицу В размером N x М с клавиатуры (где N,М . Результат повторно вывести на экран.

53 coutln   for(i=0;i  {  for(j=0;j  {  c[i][j]=a[i][j]+b[i][j];  cout   }  coutln;  }  Находим сумму матриц и выводим результат на экран.

53

coutln

for(i=0;i

{

for(j=0;j

{

c[i][j]=a[i][j]+b[i][j];

cout

}

coutln;

}

Находим сумму матриц и выводим результат на экран.

54  Произведением  матрицы   A m×n   на матрицу   B n×k   называется матрица  C m×k   такая, что элемент матрицы  C  , стоящий в   i -ой строке и   j -ом столбце, т.е. элемент  C ij  , равен сумме произведений элементов   i -ой строки матрицы    на соответствующие элементы   j -ого столбца матрицы   .  Замечание: Умножать матрицы можно тогда и только тогда, когда количество столбцов первой матрицы равно количеству строк второй матрицы.

54

Произведением  матрицы  A m×n  на матрицу  B n×k  называется матрица  C m×k  такая, что элемент матрицы  C , стоящий в  i -ой строке и  j -ом столбце, т.е. элемент  C ij , равен сумме произведений элементов  i -ой строки матрицы   на соответствующие элементы  j -ого столбца матрицы  .

Замечание: Умножать матрицы можно тогда и только тогда, когда количество столбцов первой матрицы равно количеству строк второй матрицы.

55 k m k n × = n m

55

k

m

k

n

×

=

n

m

56 7 3 2 2 3 2 29 50 2 4 6 1 * 2 6 = 20 57 1 1 4 5 1 4 9 49  0 5 7∙3+3∙2+2∙1+2∙0 = 21+6+2+0 = 29 7∙2+3∙6+2∙4+2∙5 = 14+18+8+10 = 50 2∙3+4∙2+6∙1+1∙0 = 6+8+6+0 = 20 2∙2+4∙6+6∙4+1∙5 = 4+24+24+5 = 57 1∙3+1∙2+4∙1+5∙0 = 3+2+4+0 = 9 1∙2+1∙6+4∙4+5∙5 = 2+6+16+25 = 49

56

7 3 2 2 3 2 29 50

2 4 6 1 * 2 6 = 20 57

1 1 4 5 1 4 9 49

0 5

7∙3+3∙2+2∙1+2∙0 = 21+6+2+0 = 29

7∙2+3∙6+2∙4+2∙5 = 14+18+8+10 = 50

2∙3+4∙2+6∙1+1∙0 = 6+8+6+0 = 20

2∙2+4∙6+6∙4+1∙5 = 4+24+24+5 = 57

1∙3+1∙2+4∙1+5∙0 = 3+2+4+0 = 9

1∙2+1∙6+4∙4+5∙5 = 2+6+16+25 = 49

57 Перебираем строки массива который получится в результате умножения for(i=0;i  {  for(j=0;j  {  s=0;  for (l=0;l  s=s+a[i][l]*b[l][j];  c[i][j]=s;  }  }  for(i=0;i  {  for(j=0;j  coutln;  }  Перебираем столбцы массива который получится в результате умножения Перебираем столбцы первого массива и строки второго Сумму записываем в новый массив Находим сумму произведений… Результат выводим на экран

57

Перебираем строки массива который получится в результате умножения

for(i=0;i

{

for(j=0;j

{

s=0;

for (l=0;l

s=s+a[i][l]*b[l][j];

c[i][j]=s;

}

}

for(i=0;i

{

for(j=0;j

coutln;

}

Перебираем столбцы массива который получится в результате умножения

Перебираем столбцы первого массива и строки второго

Сумму записываем в новый массив

Находим сумму произведений…

Результат выводим на экран

58 Транспонирование матрицы  - это операция над матрицей, когда ее строки становятся столбцами с теми же номерами.

58

Транспонирование матрицы  - это операция над матрицей, когда ее строки становятся столбцами с теми же номерами.

59 Строки матрицы А становятся столбцами матрицы В  for(i=0;i  for(j=0;j  b[j][i] = a[i][j];   coutln   for(i=0;i  {  for(j=0;j   coutln;  } Количество строк и столбцов поменялись местами

59

Строки матрицы А становятся столбцами матрицы В

for(i=0;i

for(j=0;j

b[j][i] = a[i][j];

coutln

for(i=0;i

{

for(j=0;j

coutln;

}

Количество строк и столбцов поменялись местами

60 Заполнить матрицы А, В и С размером 4 x 4 с клавиатуры, и вычислить матрицу: W=α(B+βC)(αC- βA)-(A+B+C)B Где α и β - числа. Результат вывести на экран.

60

Заполнить матрицы А, В и С размером 4 x 4 с клавиатуры, и вычислить матрицу:

W=α(B+βC)(αC- βA)-(A+B+C)B

Где α и β - числа.

Результат вывести на экран.

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

28

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

  • Система «Исполнители 2.5» и методические рекомендации к ней. – Автор: Поляков К.Ю. http://kpolyakov.spb.ru/school/robots/methodic.htm
  • В.В. Подбельский, С.С.Фомин. Программирование на языке Си. М .: ФиС, 1999, 600 с.
  • Х.М.Дейтел., П.Дж.Дейтел. Как программировать на Си++. М .: ЗАО БИНОМ, 1999, 1000 с. (первые 600 страниц - изложение обычного Си, наиболее подходят для начинающих).
  • Белоусов И. В. Матрицы и определители. Учебное пособие по линейной алгебре. Кишинев, 2006.
j) s=s+a[i][j]; if (i } coutln coutln if (ss1) cout if (s if (s==s1) cout Вернуться к условию задачи" width="640"

Весь массив 1+

int s=0,s1=0;

for(i=0;i

for(j=0;j

{

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

if (i

}

coutln

coutln

if (ss1) cout

if (s

if (s==s1) cout

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

sr) a[i][j]=0; cout } coutln; } Вернуться к условию задачи" width="640"

Весь массив 2+

int s=0;

for(i=0;i

for(j=0;j

float sr=s/(n*n);

coutln

for(i=0;i

{

for(j=0;j

{

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

cout

}

coutln;

}

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

max) max=a[i][j];; } coutln int k=0; for(i=0;i for(j=0;j { if (a[i][j]==max) k=k+1; } coutln Вернуться к условию задачи" width="640"

Весь массив 3+

int max=a[1][1];

for(i=0;i

for(j=0;j

{

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

}

coutln

int k=0;

for(i=0;i

for(j=0;j

{

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

}

coutln

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

=0) a[i][j]= 2 * a[i][j]; cout } coutln; } Вернуться к условию задачи" width="640"

Весь массив 4+

int s=0;

for(i=0;i

for(j=0;j

coutln

for(i=0;i

{

for(j=0;j

{

if (s

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

cout

}

coutln;

}

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

max) {max=s;f=i}; } coutln Вернуться к условию задачи" width="640"

По строкам 5+

int s,f, max=-100;

for(i=0;i

{

s=0;

for(j=0;j

coutln

if(smax) {max=s;f=i};

}

coutln

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

По строкам 6+  int s,k,d;  for(i=0;i  {  s=0;  for(j=0;j  d=s/n;  coutln   k=0;  for(j=0;j  coutln   }      Вернуться к условию задачи

По строкам 6+

int s,k,d;

for(i=0;i

{

s=0;

for(j=0;j

d=s/n;

coutln

k=0;

for(j=0;j

coutln

}

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

max)max=min; } coutln Вернуться к условию задачи" width="640"

По строкам 7+

int s,max=-10,min;

for(i=0;i

{

min=10;

for(j=0;j

if (a[i][j]

coutln

if (minmax)max=min;

}

coutln

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

max) {max=a[i][j];k=j}; coutln for(i=0;i { for(j=n;j=k+1;j=j-1) a[i][j]=a[i][j-1]; a[i][k+1]=0; } for(i=0;i { for(j=0;j coutln; } Вернуться к условию задачи Почему возникает такая ситуация и как ее исправить? Дополнительное задание" width="640"

Вставка удаление 8+

int max=a[0][0], k=0;

for(i=0;i

for(j=0;j

if (a[i][j]max) {max=a[i][j];k=j};

coutln

for(i=0;i

{

for(j=n;j=k+1;j=j-1) a[i][j]=a[i][j-1];

a[i][k+1]=0;

}

for(i=0;i

{

for(j=0;j

coutln;

}

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

Почему возникает такая ситуация и как ее исправить?

Дополнительное задание

max) {max=a[i][j];k=i}; coutln for(j=0;j { for(i=k;i } for(i=0;i { for(j=0;j coutln; } Вернуться к условию задачи Почему возникает такая ситуация и как ее исправить? Дополнительное задание" width="640"

Вставка удаление 9+

int max=a[0][0], k=0;

for(i=0;i

for(j=0;j

if (a[i][j]max) {max=a[i][j];k=i};

coutln

for(j=0;j

{

for(i=k;i

}

for(i=0;i

{

for(j=0;j

coutln;

}

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

Почему возникает такая ситуация и как ее исправить?

Дополнительное задание

Просмотр содержимого презентации
«Двумерные массивы Исполнители»

Исполнитель РОБОТ Двумерные массивы Презентация к уроку информатики 9 класс Автор: Дранов Денис Валерьевич

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

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

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

9 класс

Автор: Дранов Денис Валерьевич

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

1

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

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

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

1

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

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

2

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

3 A i ;j  Заполнить массив размером 5 x 5 по следующему правилу, и вывести его на экран в виде таблицы:   11111  22222  33333  44444  55555    0 1 2 3 4 5 7 4 4 1 1 2 5 7 3 8 5 0 4 6 9 9 0 0 0  1  2 A[ i ][ j ] A[ 1 ][ 3 ] A[ 0 ][ 1 ] A[ 2 ][ 4 ]

3

A i ;j

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

11111

22222

33333

44444

55555

0 1 2 3 4 5

7

4

4

1

1

2

5

7

3

8

5

0

4

6

9

9

0

0

0

1

2

A[ i ][ j ]

A[ 1 ][ 3 ]

A[ 0 ][ 1 ]

A[ 2 ][ 4 ]

4 Программа {  int a[5][5];  int i,j;  for(i=0;i  {  for(j=0;j  {  a[i][j]=i+1;  cout   }  coutln;  } } Перебираем строки Движемся по строке Элементу массива присваиваем номер строки, увеличенный на 1 Выводим элемент массива на экран Строка закончилась, переходим на новую

4

Программа

{

int a[5][5];

int i,j;

for(i=0;i

{

for(j=0;j

{

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

cout

}

coutln;

}

}

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

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

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

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

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

5 i , 0, 4 Цикл отвечающий за перебор строк. (Внешний цикл) j , 0, 4 a i , j = i+1 Вывод a i , j Цикл отвечающий за перебор ячеек в каждой строке. (Внутренний цикл)

5

i , 0, 4

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

j , 0, 4

a i , j = i+1

Вывод a i , j

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

6  0 1 2 3 Главная диагональ: I=J a 03 0 a 00  1  2 3 a 12 a 11 Побочная диагональ: I+J=N-1 a 22 a 21 a 33 a 30  Заполнить массив размером 5 x 5 по следующему правилу:  10000  01000  00100  00010  00001

6

0 1 2 3

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

I=J

a 03

0

a 00

1

2

3

a 12

a 11

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

I+J=N-1

a 22

a 21

a 33

a 30

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

10000

01000

00100

00010

00001

7 Программа  {  int a[5][5];  int i,j;  for(i=0;i   {  for(j=0;j  {  if (i==j)a[i][j]=1;  else a[i][j]=0;  cout   }  coutln;  }  } Перебираем строки Движемся по строке В главной диагонали 1 остальные 0 Выводим элемент массива на экран Строка закончилась, переходим на новую

7

Программа

{

int a[5][5];

int i,j;

for(i=0;i

{

for(j=0;j

{

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

else a[i][j]=0;

cout

}

coutln;

}

}

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

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

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

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

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

8 i , 0, 4 j , 0, 4 Фрагмент блок-схемы задачи заполнения главной диагонали единицами i=j Да Нет a i , j = 1 a i , j = 0 Вывод a i , j

8

i , 0, 4

j , 0, 4

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

i=j

Да

Нет

a i , j = 1

a i , j = 0

Вывод a i , j

j" width="640"

9

0 1 2 3 4

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

i

a 00

0

1

2

3

4

a 11

a 22

a 33

a 44

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

i j

n-1" width="640"

10

0 1 2 3 4

a 04

0

1

2

3

4

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

i+j

a 13

a 22

a 31

a 40

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

i+jn-1

n-1 & i 0 1 2 3 4 a 13 a 11 a 22 a 31 a 33 a 40 a 44 (i+jn-1 & ij)" width="640"

11

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

(i+j

0 1 2 3 4

a 04

(i+jj)

a 00

(i+jn-1 & i

0

1

2

3

4

a 13

a 11

a 22

a 31

a 33

a 40

a 44

(i+jn-1 & ij)

12 Заполнить произвольный массив размером N x N (Где N - размер массива вводится с клавиатуры ) по следующему правилу: а) 10001 б) 11111 в) 11111 г)10001  01010 10001 11111 00000  00100 10001 11111 00000  00000 10001 00000 00000  00000 11111 00000 10001

12

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

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

01010 10001 11111 00000

00100 10001 11111 00000

00000 10001 00000 00000

00000 11111 00000 10001

13 Заполнить произвольный массив размером N x N (Где N - размер массива вводится с клавиатуры ) по следующему правилу: д)10000 е) 10000 ж) 10001  00001 22000 01011  10000 33300 00111  00001 44000 01011  10000 50000 10001

13

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

д)10000 е) 10000 ж) 10001

00001 22000 01011

10000 33300 00111

00001 44000 01011

10000 50000 10001

14 Заполнить произвольный массив размером N x N (Где N - размер массива вводится с клавиатуры ) по следующему правилу: з) 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 - размер массива вводится с клавиатуры ) по следующему правилу:

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

01110 00100 22220 54321

00100 11111 33300 12345

01110 00100 44000 54321

11111 00100 50000 12345

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

15

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

n; for(i=0;i { for(j=0;j { cout cin a[i][j]; } } } Перебираем строки Движемся по строке Поясняющий текст, какой элемент вводится Вводим элемент с клавиатуры" width="640"

15

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

Программа

{

int a[10][10];

int i,j,n,k;

cout n;

for(i=0;i

{

for(j=0;j

{

cout

cin a[i][j];

}

}

}

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

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

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

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

16 Цикл отвечающий за перебор строк. (Внешний цикл ) i , 0, N-1 j , 0, N-1 Ввод a i , j Цикл отвечающий за перебор ячеек в каждой строке. (Внутренний цикл)

16

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

i , 0, N-1

j , 0, N-1

Ввод a i , j

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

n; for(i=0;i { for(j=0;j { a[i][j]=random(21)-10; cout } coutln; } } Значение элемента определяем случайным числом" width="640"

17

Программа

{

int a[10][10];

int i,j,n;

cout

cin n;

for(i=0;i

{

for(j=0;j

{

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

cout

}

coutln;

}

}

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

18 i , 0, N-1 Цикл отвечающий за перебор строк. (Внешний цикл) j , 0, N-1 a i , j = случайное[-10;10] Вывод a i , j Цикл отвечающий за перебор ячеек в каждой строке. (Внутренний цикл)

18

i , 0, N-1

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

j , 0, N-1

a i , j =

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

Вывод a i , j

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

19 Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10] и найти сумму элементов лежащих на главной диагонали. Сумма элементов только в главной диагонали, но перебираем все элементы массива  int s=0;  for(i=0;i  for(j=0;j  if (i==j) s=s+a[i][j];  cout

19

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

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

int s=0;

for(i=0;i

for(j=0;j

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

cout

20 Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10] и найти количество отрицательных элементов лежащих на главной диагонали. Количество отрицательных элементов только в главной диагонали, но перебираем все элементы массива int k=0;  for(i=0;i  for(j=0;j  if (a[i][j] cout

20

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

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

int k=0;

for(i=0;i

for(j=0;j

if (a[i][j]

cout

max & i==j) max=a[i][j]; cout" width="640"

21

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

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

int max=a[1][1];

for(i=0;i

for(j=0;j

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

cout

22 1. Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10], выяснить что больше сумма элементов лежащих над главной диагональю или под главной диагональю. Решение 2. Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10], все элементы большие среднего арифметического элементов массива, заменить на 0. Массив повторно вывести на экран. Решение 3. Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10] и найти сколько раз в массиве встречается максимальное по величине число. Решение 4. Заполнить двумерный массив N x N случайными числами из интервала [-10 ; 10]. Найти сумму элементов. И если она отрицательная, заменить все элементы массива на противоположные по знаку, если положительная или 0, удвоить каждый элемент массива. Массив повторно вывести на экран. Решение

22

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

Решение

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

Решение

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

Решение

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

Решение

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

23

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

  • Система «Исполнители 2.5» и методические рекомендации к ней. – Автор: Поляков К.Ю. http://kpolyakov.spb.ru/school/robots/methodic.htm
  • В.В. Подбельский, С.С.Фомин. Программирование на языке Си. М .: ФиС, 1999, 600 с.
  • Х.М.Дейтел., П.Дж.Дейтел. Как программировать на Си++. М .: ЗАО БИНОМ, 1999, 1000 с. (первые 600 страниц - изложение обычного Си, наиболее подходят для начинающих).
j) s=s+a[i][j]; if (i } coutln coutln if (ss1) cout if (s if (s==s1) cout Вернуться к условию задачи" width="640"

24

int s=0,s1=0;

for(i=0;i

for(j=0;j

{

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

if (i

}

coutln

coutln

if (ss1) cout

if (s

if (s==s1) cout

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

sr) a[i][j]=0; cout } coutln; } Вернуться к условию задачи" width="640"

25

int s=0;

for(i=0;i

for(j=0;j

float sr=s/(n*n);

coutln

for(i=0;i

{

for(j=0;j

{

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

cout

}

coutln;

}

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

max) max=a[i][j];; } coutln int k=0; for(i=0;i for(j=0;j { if (a[i][j]==max) k=k+1; } coutln Вернуться к условию задачи" width="640"

26

int max=a[1][1];

for(i=0;i

for(j=0;j

{

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

}

coutln

int k=0;

for(i=0;i

for(j=0;j

{

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

}

coutln

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

=0) a[i][j]= 2 * a[i][j]; cout } coutln; } Вернуться к условию задачи" width="640"

27

int s=0;

for(i=0;i

for(j=0;j

coutln

for(i=0;i

{

for(j=0;j

{

if (s

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

cout

}

coutln;

}

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

Просмотр содержимого презентации
«Этюды заполнеие массива»

11 этюдов по программированию Заполнение двумерного массива по правилу Презентация к уроку информатики 9 класс Автор: Дранов Денис Валерьевич

11 этюдов по программированию

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

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

9 класс

Автор: Дранов Денис Валерьевич

1 Этюд 1. Единицы в главной и побочной диагоналях for(i=0;i  {  for(j=0;j  {  if (i==j | i+j==n-1) a[i][j]=1;  else a[i][j]=0;  cout   }  coutln;  }

1

Этюд 1. Единицы в главной и побочной диагоналях

for(i=0;i

{

for(j=0;j

{

if (i==j | i+j==n-1) a[i][j]=1;

else a[i][j]=0;

cout

}

coutln;

}

2 Этюд 2. Единицы в главной и побочной диагоналях верхней половины матрицы for(i=0;i  {  for(j=0;j  {  if ((i==j | i+j==n-1) & i  a[i][j]=1;  else a[i][j]=0;  cout   }  coutln;  }

2

Этюд 2. Единицы в главной и побочной диагоналях верхней половины матрицы

for(i=0;i

{

for(j=0;j

{

if ((i==j | i+j==n-1) & i

a[i][j]=1;

else a[i][j]=0;

cout

}

coutln;

}

3 Этюд 3. Единицы и нули в шахматном порядке for(i=0;i  {  for(j=0;j  {  if ((i+j)%2==0)a[i][j]=1;  else a[i][j]=0;  cout   }  coutln;  }

3

Этюд 3. Единицы и нули в шахматном порядке

for(i=0;i

{

for(j=0;j

{

if ((i+j)%2==0)a[i][j]=1;

else a[i][j]=0;

cout

}

coutln;

}

4 Этюд 4. Возрастание и убывание натуральных чисел в четных и нечетных строках for(i=0;i  {  for(j=0;j  {  if (i%2==0) a[i][j]=j+1;  if (i%2!=0) a[i][j]=n-j;  cout   }  coutln;  }

4

Этюд 4. Возрастание и убывание натуральных чисел в четных и нечетных строках

for(i=0;i

{

for(j=0;j

{

if (i%2==0) a[i][j]=j+1;

if (i%2!=0) a[i][j]=n-j;

cout

}

coutln;

}

=n/2) a[i][j]=n-j; cout } coutln; }" width="640"

5

Этюд 5. Возрастание натуральных чисел до середины главной диагонали, а затем их убывание

for(i=0;i

{

for(j=0;j

{

if (i==j & i

if (i==j & i=n/2) a[i][j]=n-j;

cout

}

coutln;

}

6 Этюд 6. Заполнение матрицы натуральными числами по строкам. for(i=0;i  {  for(j=0;j  {  a[i][j]=i*n+(j+1);  cout   }  coutln;  }

6

Этюд 6. Заполнение матрицы натуральными числами по строкам.

for(i=0;i

{

for(j=0;j

{

a[i][j]=i*n+(j+1);

cout

}

coutln;

}

7 Этюд 7. Заполнение матрицы натуральными числами «змейкой» по строкам. for(i=0;i  {  for(j=0;j  {  if (i%2==0) a[i][j]=i*n+(j+1);  if (i%2!=0) a[i][j]=(i*n-j)+n;  cout   }  coutln;  }

7

Этюд 7. Заполнение матрицы натуральными числами «змейкой» по строкам.

for(i=0;i

{

for(j=0;j

{

if (i%2==0) a[i][j]=i*n+(j+1);

if (i%2!=0) a[i][j]=(i*n-j)+n;

cout

}

coutln;

}

j) a[i][j]=0; cout } coutln; }" width="640"

8

Этюд 8. Заполнение матрицы натуральными числами по строкам начиная с главной диагонали.

for(i=0;i

{

for(j=0;j

{

if (i

if (ij) a[i][j]=0;

cout

}

coutln;

}

n-1) a[i][j]=j-(n-1)+i; cout } coutln; }" width="640"

9

Этюд 9. Заполнение матрицы натуральными числами по строкам с циклическим сдвигом влево.

for(i=0;i

{

for(j=0;j

{

if (i+j==n-1) a[i][j]=n;

if (i+j

if (i+jn-1) a[i][j]=j-(n-1)+i;

cout

}

coutln;

}

10 Этюд 10. Единицы в начале и конце четных и нечетных строк. for(i=0;i  {  for(j=0;j  {  a[i][j]=0;  if (i%2==0) a[i][0]=1;  if (i%2!=0) a[i][n-1]=1;  cout   }  coutln;  }

10

Этюд 10. Единицы в начале и конце четных и нечетных строк.

for(i=0;i

{

for(j=0;j

{

a[i][j]=0;

if (i%2==0) a[i][0]=1;

if (i%2!=0) a[i][n-1]=1;

cout

}

coutln;

}

=n-1 & i=j) a[i][j]=n-i; if (i+jj) a[i][j]=j+1; if (i+jn-1 & i cout } coutln; }" width="640"

11

Этюд 11. «Пирамида» из натуральных чисел.

for(i=0;i

{

for(j=0;j

{

if (i+j

if (i+j=n-1 & i=j) a[i][j]=n-i;

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

if (i+jn-1 & i

cout

}

coutln;

}

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

12

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

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


Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!