Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Практикум по основам программирования. Массивы. Строки. Подпрограммы. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
случаяхостальных в
j;i если
j;i если
),1ji(1
,0
,)1ji(1
b
ij
 
 
в)
(i, j = 1, ... , n).
16 Даны квадратная матрица A порядка n, векторы x и y с n элемента-
ми. Получить вектор A(x+y).
17 Даны квадратные матрицы A, B, C порядка n. Получить матрицу
(A+B)C.
18 В заданной последовательности обнулите элементы, расположен-
ные между двух элементов с наименьшими значениями.
19 В заданной последовательности определите два элемента с наи-
большими значениями и два элемента с наименьшими значениями. Сократите число элементов в исходной последовательности на 4 найденных элемента.
20 В заданной последовательности определите среднее значение тех
элементов, значение которых превышает среднее значение элемен­тов заданной последовательности.
21 В заданной последовательности определите два элемента с мини-
мальными значениями. Удалите все элементы, расположенные ме­жду найденными, сократив, таким образом, количество элементов в заданной последовательности.
22 В матрице порядка n поменять местами строки, содержащие мини-
мальный и максимальный элементы. Если минимальный и макси­мальный элементы принадлежат одной строке, то поменять места­ми соответствующие столбцы.
23 Найти минимальное значение главной диагонали и максимальное
значение вспомогательной диагонали в матрице порядка n. Най­денные значения поменять местами. Если эти значения принадле­жат одному элементу, то это значение присвоить всем элементам главной и вспомогательной диагоналям.
21
1
| | | |
n
kj mj
j
aa
max | |
ij
i
j
a
 
 
24 Расстояние между k-й и m-й строками матрицы А = ||aij|| порядка n
определяется как
.
Указать номер строки: а) максимально удалѐнной от первой строки заданной матрицы; б) максимально удалѐнной от последней строки заданной матрицы.
25 Определите норму заданной матрицы А = ||aij||, т. е. число
.
Задачи для самостоятельной работы
1 Дан массив A размера N. Вывести его элементы в следующем по-
рядке:
2 Дан массив размера N. Найти номера двух ближайших элементов
3 Дан целочисленный массив размера N. Найти количество различ-
4 Дан целочисленный массив размера N. Если он является переста-
5 Дан целочисленный массив A размера N. Переписать в новый цело-
A1, A2, AN, A
, A3, A4, A
N−1
N−2
, A
, .
N−3
из этого массива (т. е. элементов с наименьшим модулем разности) и вывести эти номера в порядке возрастания.
ных элементов в данном массиве.
новкой, т. е. содержит все числа от 1 до N, то вывести 0; в против­ном случае вывести номер первого недопустимого элемента.
численный массив B того же размера вначале все элементы исход­ного массива с четными номерами, а затем – с нечетными:
A2, A4, A6, …, A1, A3, A5, … .
Условный оператор не использовать.
22
6 Даны два массива A и B размера 5, элементы которых упорядочены
по возрастанию. Объединить эти массивы так, чтобы результи­рующий массив C (размера 10) остался упорядоченным по возрас­танию.
7 Дан массив размера N. Осуществить циклический сдвиг элементов
массива вправо на одну позицию (при этом A1 перейдет в A2, A2 – в A3, …, AN – в A1).
8 Дан массив A размера N и целое число K (1 K M < N). Осуще-
ствить циклический сдвиг элементов массива влево на K позиций (при этом AN перейдет в A
NK
, A
N−1
в A
, …, A1 – в A
NK−1
NK+1
). До-
пускается использовать вспомогательный массив из M элементов.
9 Дан целочисленный массив размера N. Удалить из массива все не-
четные числа и вывести размер полученного массива и его содер­жимое.
10 Дан целочисленный массив размера N (> 2). Удалить из массива все
элементы с нечетными номерами (1, 3, …). Условный оператор не использовать.
11 Дан целочисленный массив размера N. Удалить из массива все
одинаковые элементы, оставив их последние вхождения.
12 Дан целочисленный массив размера N. Удалить из массива все
элементы, встречающиеся менее трех раз, и вывести размер полу­ченного массива и его содержимое.
13 Дан массив размера N. После каждого отрицательного элемента
массива вставить элемент с нулевым значением.
14 Дан целочисленный массив размера N. Продублировать в нем все
четные числа.
15 Дана целочисленная матрица размера M × N. Найти количество ее
столбцов, все элементы которых различны.
16 Дана целочисленная матрица размера M × N. Найти номер послед-
ней из ее строк, содержащих максимальное количество одинаковых элементов.
23
17 Дана целочисленная матрица размера M × N. Найти элемент, яв-
ляющийся максимальным в своей строке и минимальным в своем столбце. Если такой элемент отсутствует, то вывести 0.
18 Дана квадратная матрица A порядка M. Найти сумму элементов
каждой ее диагонали, параллельной побочной (начиная с одноэле­ментной диагонали A
1,1
).
19 Дана квадратная матрица порядка M. Обнулить элементы матрицы,
лежащие одновременно выше главной диагонали и ниже побочной диагонали. Условный оператор не использовать.
20 Дана квадратная матрица порядка M. Обнулить элементы матрицы,
лежащие одновременно ниже главной диагонали (включая эту диа­гональ) и ниже побочной диагонали (также включая эту диаго­наль). Условный оператор не использовать.
21 Дана квадратная матрица A порядка M. Зеркально отразить ее эле-
менты относительно побочной диагонали (при этом элементы по­бочной диагонали останутся на прежнем месте, элемент A няется местами с A
, элемент A
M,M
с A
1,2
и т. д.). Вспомога-
M−1,M
поме-
1,1
тельную матрицу не использовать.
22 Дана квадратная матрица A порядка M. Повернуть ее на угол 180°
(при этом элемент A A
и т. д.). Вспомогательную матрицу не использовать.
M,M−1
поменяется местами с A
1,1
, элемент A
M,M
1,2
с
23 Дана квадратная матрица A порядка M. Повернуть ее на угол 90° в
отрицательном направлении, т. е. по часовой стрелке (при этом элемент A
перейдет в A
1,1
, элемент A
1,M
в A
1,M
и т. д.). Вспомо-
M,M
гательную матрицу не использовать.
24 Используя тип массив, записать последовательность операторов
для решения задачи: дана последовательность из n (n< 50) вещест­венных чисел:
а) вычислить значение y = max xi ; б) вычислить значение y = min xi ; в) вычислить значение y = x
2∙ x4∙ x6
24
. . . ;
г) вычислить значение y =x1 + x3 + x5 +. . . ; д) вычислить значение y =x1∙xn + x2∙x
+ . . . + xnx1 ;
n-1
е) вычислить значение y= x1 – x2 + x3 – . . . ± xn ; ж) вычислить значение y =x1 + x1∙ x2 + x1∙ x з) вычислить значение y =xn ( xn + x
)(xn + x
n-1
+ . . . + x1∙ x2 . . .xn ;
2∙ x3
+ x
n-1
) . . . (xn +. . .
n-2
+x1 ) ;
и) вычислить значение y = x
1
+ x
+ x
3
2
+ . . . x
5
2
;
n
2
2
к) найти среднее арифметическое элементов последовательности; л) подсчитать количество чисел отличных от последнего числа; м) вывести элементы последовательности в следующем порядке:
сначала все отрицательные числа, а затем все остальные;
н) преобразовать последовательность в следующем порядке: цик-
лически сдвинуть элементы последовательности на две позиции влево;
о) преобразовать последовательность в следующем порядке: все
отрицательные элементы перенести в ее начало, а все остальные в ее конец, сохраняя при этом исходное взаимное расположение, как среди отрицательных, так и среди остальных элементов;
п) определить, упорядочена ли последовательность строго по воз-
растанию;
р) определить, чередуются ли положительные и отрицательные
элементы.
25 Преобразовать заданную последовательность из n (n 250) дейст-
вительных чисел по следующему правилу: все отрицательные чис­ла перенести в конец последовательности, а все остальные в нача­ло, сохраняя при этом исходное взаимное расположение чисел.
26 Дана последовательность из n (n ⩽ 50) действительных чисел
b1, b
2 , . . . , bn
. Определите число соседств в этой последовательности:
25
а) двух положительных чисел bk > 0 и b б) двух чисел разного знака bk > 0 и b
> 0;
k+1
k+1
< 0 или bk < 0 и b
k+1
> 0.
27 Дана последовательность из n (n ⩽ 50) действительных чисел
b1, b
2, . . . , bn
а) y = max bi ; б) y = b1 – b2 + b3 – … +(–1) в) y = b1bn + b2b г) y =b д) y = bn (bn + b
. Вычислить:
2
2
+b
+ b
1
3
+ … +bnb1 ;
n-1
2
+ … +b
5
) (bn + b
n-1
n-1
n
n+1
2
;
+ b
bn ;
) … (bn + b
n-2
b1).
n-1
28 Даны две последовательности действительных чисел: X из n эле-
ментов (n < 200) и Y из m элементов (m < 200). Найдите первое вхождение последовательности Y в последовательность X. Вхож­дение задавать как номер элемента последовательности X, начиная с которого последовательность Y входит в X.
29 Дано непустое множество из N различных точек на плоскости (1<
N < 200). Точка задана своими координатами. Точки попарно со-
единены отрезками. Найдите длину наибольшего отрезка.
30 Даны две последовательности A и B упорядоченные по возраста-
нию значений элементов из n действительных чисел каждая (n <
200). Получите новую последовательность, являющуюся объедине-
нием последовательностей A и B в одну также упорядоченную по возрастанию значений элементов последовательность, причем рав­ные по значению элементы последовательностей A и B в новую по­следовательность поместить только один раз.
31 Дана последовательность из n целых чисел (n ⩽ 200 и n кратно 4).
Получите новую последовательность, переписав в нее элементы исходной последовательности так, чтобы числа располагались в следующем порядке: два положительных, два отрицательных и т. д. Если количество положительных и отрицательных чисел различно, то переписать оставшиеся в порядке их следования в исходной по­следовательности.
26
32 Дана прямоугольная матрица A
(n, m ⩽ 50). Сформировать по-
n×m
следовательность, i-й элемент которой равен индексу минимально­го элемента i-го столбца матрицы A.
33 Дана прямоугольная матрица A
(n, m ⩽ 50). Сформировать по-
n×m
следовательность, i-й элемент которой равен индексу максимально­го элемента i-й строки матрицы A.
34 Дана действительная квадратная матрица порядка n (n ⩽ 50). По-
строить последовательность b1, b
2 , . . . , bn
из нулей и единиц, в кото-
рой bi = 1 тогда и только тогда, когда в i-й строке матрицы есть хо- тя бы один отрицательный элемент.
35 Дана действительная квадратная матрица порядка n (n ⩽ 50). По-
строить последовательность b1, b
2 , . . . , bn
из нулей и единиц, в кото-
рой bi = 1 тогда и только тогда, когда в i–м столбце матрицы есть хотя бы один положительный элемент.
36 Дана действительная квадратная матрица порядка n (n ⩽ 50). По-
строить последовательность b1, b
2 , . . . , bn
из нулей и единиц, в кото-
рой bi = 1 тогда и только тогда, когда все элементы i-й строки мат- рицы отрицательны.
37 Дана действительная квадратная матрица порядка n (n ⩽ 50). По-
строить последовательность b1, b
2 , . . . , bn
из нулей и единиц, в кото-
рой bi = 1 тогда и только тогда, когда элементы i-й строки матрицы упорядочены по убыванию.
38 Дана прямоугольная матрица A
(n, m ⩽ 50). Сформировать по-
n×m
следовательность, i-й элемент которой равен сумме элементов i-й строки матрицы A.
39 Дана прямоугольная матрица A
(n, m ⩽ 50). Сформировать по-
n×m
следовательность, i-й элемент которой равен сумме элементов i-го столбца матрицы A.
40 Дана целая квадратная матрица порядка n (n ⩽ 50). Определить, яв-
ляется ли она симметричной относительно главной диагонали мат­рицы.
27
41 Дана целая квадратная матрица порядка n (n ⩽ 50). Определить, яв-
ляется ли она магическим квадратом, т. е. такой, в которой суммы элементов во всех строках и столбцах равны.
42 Дана целая квадратная матрица порядка n (n ⩽ 50). Определить, яв-
ляется ли заданная матрица ортонормированной, т. е. такой, в ко­торой скалярное произведение каждой пары различных строк равно
0, а скалярное произведение строки на себя равно 1.
43 Дана квадратная матрица порядка n (n ⩽ 50). Если порядок матри-
цы есть четное число, то поменять местами 1-ю и 2-ю строки, 3-ю и 4-ю строки и т. д. n – 1 и n-ю ее строки.
44 Дана действительная матрица A
(n, m ⩽ 50), все ее элементы
n×m
различны. Найдите индексы наибольшего элемента среди наи­меньших элементов каждого столбца матрицы.
45 Дана квадратная матрица порядка n (n ⩽ 50). Вычислите след мат-
рицы. След матрицы – это сумма элементов главной диагонали.
46 Даны две квадратные матрицы А и В порядка n каждая (n ⩽ 50).
Вычислить:
а) С = А+В; б) С = А∙В.
47 Дана квадратная матрица А порядка n (n ⩽ 50). Вычислить А = АТ
(транспонировать).
48 Дана квадратная матрица А порядка n (n ⩽ 50) и натуральное p.
Вычислить Ap (p-ю степень А).
49 Даны две целые квадратные матрицы А и В порядка n каждая (n
50). Проверить, равны ли матрицы.
50 Дана квадратная матрица А порядка n (n ⩽ 50) и вектор x порядка
n. Вычислить y = Ax.
51 Дана квадратная матрица порядка n (n 20). Найти скалярное про-
изведение строки, в которой находится наибольший элемент мат­рицы, на столбец с наименьшим элементом.
28
52 Дана прямоугольная матрица порядка n х m (n, m 30). Подсчитать
количество различных элементов матрицы.
Контрольные вопросы
1. Понятие сложного типа данных.
2. Понятие и определение типа массив, доступные операции.
3. Определение многомерного массива.
4. Обращение к элементам массива.
5. Обращение к элементам массива через указатели.
6. Использование массива при решении задач.
29
ГЛАВА 2 ОБРАБОТКА ТЕКСТОВОЙ ИНФОРМАЦИИ
Понятие обработки текста
Обработка текста – пример задачи из нечисловой предметной об-
ласти, в которой сам процесс сводится к решению следующих основ­ных подзадач.
Поиск в некоторой заданной последовательности слов или сим-
волов другой заданной последовательности слов или символов. Результатом поиска может быть не только вхождение одной последовательности в другую, но и позиция вхождения.
Редактирование последовательности слов или символов, т. е.
замена одной последовательности на другую, включение в
текст новой последовательности, удаление из текста некоторой
последовательности. Важной особенностью обработки текста является то, что объем
текстовой информации достаточно велик, а сама обработка, как прави­ло, состоит в просмотре всего текста. Поэтому, решая такие задачи, необходимо стремиться к тому, чтобы каждый символ текста просмат­ривался один и только один раз.
Строковый тип
Значением «строкового» типа является последовательность симво-
лов (слово строковый заключено в кавычки, так как в C явно такой тип не определен и, говоря о строковом типе, имеется в виду тип данных, обладающий свойствами строкового типа). «Строковый» тип (или про­сто строка) в C рассматривается как подмножество типа массив. Стро­ка задается одномерным массивом, элементы которого символы, по­следний символ массива – ′\0′. Этот «нуль-символ», является призна­ком конца строкового значения. Символ ′\0′ также как другие символы входит в строку. Если первым элементом строки является ′\0′ – это пустая строка (пустое строковое значение). Размер строки (количество символов) определяется решаемой задачей и ограничивается доступ­ным объемом памяти.
30
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]