- •Основы разработки алгоритмов
- •Издание посвящается 400-летию г. Томска
- •1.Рекуррентные алгоритмы
- •Задачи для самостоятельного решения 1
- •2.Подпоследовательности в массиве
- •Задачи для самостоятельного решения
- •3.Упорядоченность в массиве
- •Задачи для самостоятельного решения
- •4.Матрицы
- •Задачи для самостоятельного решения.
- •5.Обработка текста
- •Задачи для самостоятельного решения
- •6.Информационные массивы
- •Задачи для самостоятельного решения.
- •7.Советы по решению задач
- •8.Краткий справочник по языку паскаль Структура программы
- •Типы данных
- •Операторы
- •Литература
Задачи для самостоятельного решения.
Дана матрица чисел в виде двумерного массива из n строк и n столбцов. Вывести ее элементы в таком порядке, как это показано на рисунке:
- |
- |
- |
10 |
13 |
- |
- |
7 |
11 |
12 |
- |
4 |
8 |
9 |
- |
1 |
5 |
6 |
- |
- |
2 |
3 |
- |
- |
- |
Числами обозначена очередность при выводе, черточками - те элементы таблицы, которые выводить не нужно.
Распечатать квадратную матрицу из n строк и n столбцов по диагоналям, параллельным главной, т.е. в поpядке, указанном на pисунке числами:
7
4
2
1
11
8
5
3
14
12
9
6
16
15
13
10
* Дан целочисленный массив A, состоящий из n строк и n столбцов. Передвинуть в нем элементы по кругу таким образом, чтобы первая строка стала первым столбцом, первый столбец – последней строкой, последняя строка – последним столбцом. Затем так же переставить не передвигавшиеся элементы второй строки, второго столбца, предпоследней строки, предпоследнего столбца и т.д. Например, массив
1
1
1
1
1
4
5
5
5
2
4
8
9
6
2
4
7
7
6
2
3
3
3
3
2
должен преобразоваться к виду
1
2
2
2
2
1
5
6
6
3
1
5
9
7
3
1
5
8
7
3
1
4
4
4
3
** Распечатать квадpатную матрицу A[1..n, 1..n] (n нечетное) "по спирали от центра", т.е. в порядке, указанном на рисунке числами:
13 |
14 |
15 |
16 |
17 |
12 |
3 |
4 |
5 |
18 |
11 |
2 |
1 |
6 |
19 |
10 |
9 |
8 |
7 |
20 |
25 |
24 |
23 |
22 |
21 |
Дана матрица в виде двумерного массива A из n строк и n столбцов. Найти все пары совпадающих строк и столбцов, т.е. такие пары значений (i, j), для которых равенства A[i, k] = A[k, j] выполняются для всех k = 1,...,n.
Дана матрица A[1..n, 1..m]. Для всех A[i, j] = 0 обнулить строку i и столбец j.
В матpице A[1..n, 1..m] найти сумму элементов A[i, j], имеющих заданную pазность индексов i – j = k (k может быть и отрицательным).
* Дана матрица в виде двумерного массива A из n строк и m столбцов. Найти такие три строки в массиве (пусть их номера i, j и l соответственно, причем эти номера попарно различны), что для всех k = 1, ..., m выполняется:
A[i, k] + A[j, k] = A[l, k].
Дана числовая матрица в виде двумерного массива из n строк и m столбцов. Упорядочить строки матрицы по убыванию значений сумм элементов строк.
* Дан двумерный числовой массив A из n строк и m столбцов. Определить все такие пары строк (i, j), причем i < j, что значение минимального элемента строки i равно максимальному элементу строки j.
Дан двумерный числовой массив A из n строк и m столбцов. Определить все такие пары (i, j), что сумма элементов строки i равна сумме элементов столбца j.
** Дан двумерный числовой массив A из n строк и m столбцов. Определить все такие пары строк (i, j), в которых имеется не менее, чем по r различных пар элементов с совпадающими между собой значениями. Совпадающие значения могут стоять в различных столбцах, но любой элемент строки может присутствовать не более, чем в одной паре. Например, в строках
4, 5, 0, 1, 4, 1, 4
0, 0, 1, 1, 2, 3, 4
можно выбрать следующие пары: (0, 0), (1, 1), (1, 1), (4, 4).
* Из целочисленного массива длины n сформировать матрицу n*n, в которой первая строка совпадает с данным массивом, а каждая следующая строка образуется циклическим сдвигом предыдущей на k позиций вправо, если k > 0 или на -k позиций влево, если k < 0.
** Дана числовая матрица в виде двумерного массива из n строк и m столбцов. В каждой строке и в каждом столбце матрицы числа упорядочены по возрастанию. Найти все числа, которые встречаются в массиве только один раз.
