- •Часть 1
- •Часть 1
- •Введение
- •Лабораторная работа № 1 разработка схем алгоритмов
- •Краткая теория Этапы решения задач на эвм
- •Определение алгоритма и способы его описания
- •Правила оформления схем алгоритмов
- •Типы алгоритмов
- •Задания
- •Построение схем алгоритмов с помощью текстового редактора word
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 2 работа в среде netbeans. Создание простейших программ с линейным алгоритмом
- •Краткая теория Установка ide NetBeans
- •Общие правила создания приложений
- •Работа с проектом NetBeans
- •Пример создания простейшего приложения
- •Общие правила построения класса
- •Типы данных
- •Объявление переменных
- •Оператор присваивания
- •Приведение типов
- •Организация ввода данных
- •Организация вывода данных
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 3 разработка простейших приложений на базе разветвляющихся алгоритмов
- •Краткая теория Средства переименования в среде NetBeans
- •Отладка кода в среде NetBeans
- •Условный оператор if-else
- •Условный оператор switch
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 4 разработка программ с циклами со счетчиком
- •Краткая теория Циклы со счетчиком
- •Особенности алгоритмов и программ с накапливанием
- •Методы класса Math
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 5 работа с итерационными циклами. Одномерные массивы
- •Краткая теория Итерационные циклы
- •Цикл while
- •Цикл do-while
- •Одномерные массивы
- •Подсчет суммы, количества и среднего значения в одномерных массивах
- •Нахождение минимума и максимума
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 6 алгоритмы сортировки и разбиения одномерных массивов
- •Краткая теория Сортировка одномерных массивов
- •Разбиение одномерных массивов
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 7 обработка двумерных массивов
- •Краткая теория Понятие многомерных массивов. Ввод и вывод матриц
- •Типовые алгоритмы обработки матриц
- •Алгоритмы обработки матриц в целом
- •Алгоритмы обработки матриц по строкам и столбцам
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 8 диагонали матрицы, умножение матриц
- •Краткая теория Обработка главной и побочной диагоналей матриц
- •Работа с диагоналями матриц выше и ниже главной/побочной
- •Умножение матриц
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 9 обработка строк класса string
- •Краткая теория Создание объектов класса String
- •Методы класса String
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 10 алгоритмы и программы обработки фрагментов строк класса string
- •Краткая теория Сравнение символов строк класса String
- •Типовые задачи обработки массивов строк (слов из текста)
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 11 разработка алгоритмов и программ с использованием классов StringBuffer/StringBuilder
- •Краткая теория Создание и обработка объектов классов stringbuffer и stringbuilder
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 12 разработка собственных методов
- •Краткая теория Общие правила создания методов класса
- •Описание методов класса
- •Вызов методов класса
- •Передача параметров
- •Содержание
- •Задания
- •Содержание отчета
- •Контрольные вопросы
- •Библиографический список
- •Программирование на Java
- •443100, Г. Самара, ул. Молодогвардейская, 244. Главный корпус
- •443100, Г. Самара, ул. Молодогвардейская, 244. Корпус № 8
Работа с диагоналями матриц выше и ниже главной/побочной
Значительное количество задач при обработке квадратных матриц связано с рассмотрением любых диагоналей, т.е. диагоналей выше/ниже главной/побочной.
Для всех вариантов диагоналей (всех направлений) будем рассматривать номер диагонали (k), который соответствует номеру соответствующей строки матрицы и изменяется от 0 до b.length – 1, и индексы элементов – номера строки i и номер столбца, вычисленный через номер строки i.
Формирование диагоналей можно организовать двумя вложенными циклами.
Алгоритм можно записать следующим образом:
Для диагонали k от 0 до (b.length – 1)
а) вывести номер диагонали;
б) для номера строки i от начального значения до конечного значения вывести элемент.
В зависимости от варианта диагоналей и направления вывода будут меняться начальные и конечные значения номеров строк i, а также индексы выводимого элемента.
Элементы главной диагонали и диагоналей ниже (рис. 8.2) будут формироваться следующим образом:
а) начальное значение номера строки i равно номеру диагонали k, а конечное равно b.length – 1;
б) текущий индекс столбца j меньше номера строки на значение номера диагонали.
-
b00
b01
b02
b03
b04
b05
b10
b11
b12
b13
b14
b15
b20
b21
b22
b23
b24
b25
b30
b31
b32
b33
b34
b35
b40
b41
b42
b43
b44
b45
b50
b51
b52
b53
b54
b55
Рис. 8.2
Элементы главной диагонали и диагоналей выше (рис. 8.3) будут формироваться следующим образом:
а) начальное значение номера строки i будет равно 0, а конечное b.length – 1 – k;
б) текущий индекс столбца j больше номера строки i на значение номера диагонали
j
-
b
b.length-1
0
00b
01b
02b
03b
04b
k=0 j=i+ 0
k=1 j=i + 1
k=2 j=i+ 2
k=3 j=i+ 3
…
05b10
b11
b12
b13
b14
b15
b
k
i
20b21
b22
b23
b24
b25
b30
b31
b32
b33
b34
b35
b
b.length-1-k
40b41
b42
b43
b44
b45
b
0
50b51
b52
b53
b54
b55
Рис. 8.3
Элементы побочной диагонали и диагоналей ниже (рис. 8.4) будут формироваться следующим образом:
а) начальное значение номера строки i будет равно номеру диагонали k, а конечное составит b.length – 1;
б) для текущего индекса столбца j можно вывести простую формулу из представленных на рисунке пояснений (сделать самостоятельно!).
-
b00
b01
b02
b03
b04
b05
b10
b11
b12
b13
b14
b15
b20
b21
b22
b23
b24
b25
b30
b31
b32
b33
b34
b35
b40
b41
b42
b43
b44
b45
b50
b51
b52
b53
b54
b55
Рис. 8.4
Элементы побочной диагонали и диагоналей выше (рис. 8.5) будут формироваться следующим образом:
а) начальное значение номера строки i будет равно 0, а конечное составит b.length – 1 – k;
б) для индекса столбца j можно вывести простую формулу из представленных на рисунке пояснений (сделать самостоятельно!).
-
b00
b01
b02
b03
b04
b05
b10
b11
b12
b13
b14
b15
b20
b21
b22
b23
b24
b25
b30
b31
b32
b33
b34
b35
b40
b41
b42
b43
b44
b45
b50
b51
b52
b53
b54
b55
Рис. 8.5
