Фрагменты программ по обработке 2-х мерных массивов
Определение наименьшего элемента каждой строки матрицы: … FOR I:= 1 TO 5 DO BEGIN MIN:= A[I,1]; FOR J:= 2 TO 5 DO IF A[I,J] < MIN THEN MIN:= A[I,J]; C[I]:= MIN; END; FOR I:= 1 TO 5 DO WRITELN (‘В ’,I, ‘ строке наименьший элемент равен ’, C[I]:2); … Определение наибольшего элемента каждого столбца матрицы: … FOR J:= 1 TO 5 DO BEGIN MAX:= A[1,J]; FOR I:= 2 TO 5 DO IF A[I,J] > MAX THEN MAX:= A[I,J]; Z[I]:= MAX; END; FOR J:= 1 TO 5 DO WRITELN (‘В ’,J, ‘ строке наименьший элемент равен ’, Z[J]:2); … Сумма элементов побочной диагонали: … S:= 0; J:= 5; FOR I:= 1 TO 5 DO BEGIN S:= S + A[I,J]; J:= J–1; {или DEC(J);} END; … Вывод элементов главной диагонали: … WRITELN (‘Элементы главной диагонали: ’); FOR I:= 1 TO 5 DO BEGIN FOR J:= 1 TO 5 DO IF I = J THEN WRITE (A[I,J]:3,’’:2); WRITELN; END; … Вывод элементов побочной диагонали: … WRITELN (‘Элементы побочной диагонали: ’); J:= 1; FOR I:= 1 TO 5 DO BEGIN B[J]:= A[I, 5+1-i]; INC (J); END; FOR J:= 1 TO 5 DO WRITELN (B[J]:3); … Элементы побочной диагонали расположить по возрастанию: FOR K:= 1 TO 5-1 DO FOR J:= K +1 TO 5 DO BEGIN IF B[K] > B[J] THEN BEGIN M:= B[K]; B[K]:= B[J]; B[J]:= M; END; END; WRITELN (‘Элементы побочной диагонали, расположенные по возрастанию: ’); FOR J:=1 TO 5 DO WRITELN (B[J]:3); Задача 7.5. Сформировать квадратную матрицу размерностью 5´5. Вывести матрицу в общем виде и посчитать сумму элементов, расположенных на главной диагонали. Блок-схема алгоритма: Листинг программы
PROGRAM TASK1; USES CRT; VAR A: ARRAY [1..5, 1..5] OF INTEGER; I, J, S: INTEGER; BEGIN CLRSCR; RANDOMIZE; {формирование матрицы случайным образом} FOR I:= 1 TO 5 DO FOR J:=1 TO 5 DO A[I,J]:= RANDOM (51); {вывод элементов матрицы. на экран} FOR I:= 1 TO 5 DO BEGIN FOR J:=1 TO 5 DO WRITELN (A[I,J]); WRITELN; END; {вычисление суммы элементов, расположенных на главной диагонали} S:= 0; FOR I:= 1 TO 5 DO FOR J:=1 TO 5 DO IF I = J THEN S:= S + A [I, J]; WRITELN (‘’, S:4); END. Задача 7.6. Дана квадратная матрица. Определить количество отрицательных элементов каждой строки матрицы.
Блок-схема алгоритма: Листинг программы:
PROGRAM TASK2; USES CRT; CONST L=5; VAR A: ARRAY[1..L, 1..L] OF INTEGER; I, J, K: INTEGER; BEGIN CLRSCR; RANDOMIZE; {формирование матрицы случайным образом} FOR I:= 1 TO L DO FOR J:=1 TO L DO A[I,J]:= RANDOM (51); {вывод элементов матрицы. на экран} FOR I:= 1 TO L DO BEGIN FOR J:=1 TO L DO WRITELN (A[I,J]); WRITELN; END; FOR I:=1 TO L DO BEGIN K:=0; FOR J:=1 TO L DO IF A[I, J] <0 THEN K:= K+1; WRITELN (‘Количество элементов <0 в ‘, I, ‘строке равно ‘, K); END; READLN; END.
Задача 7.7. Вычислить сумму положительных элементов каждого столбца матрицы (см. Задача 2). Блок-схема алгоритма: Листинг программы:
PROGRAM TASK2; USES CRT; CONST L=5; VAR A: ARRAY[1..L, 1..L] OF INTEGER; I, J, S: INTEGER; BEGIN CLRSCR; RANDOMIZE; {формирование матрицы случайным образом} FOR I:= 1 TO L DO FOR J:=1 TO L DO A[I,J]:= RANDOM (51); {вывод элементов матрицы на экран} FOR I:= 1 TO L DO BEGIN FOR J:=1 TO L DO WRITELN (A[I,J]); WRITELN; END; FOR J:=1 TO L DO BEGIN S:=0; FOR I:=1 TO L DO IF A[I, J] >0 THEN S:= S+A[I,J]; WRITELN (‘Сумма элементов >0 в ‘, J, ‘столбце равна ‘, S); END; READLN; END.
Задача 7.8. Вычислить сумму элементов каждой строки матрицы A, определить наименьшее значение этих сумм и номер соответствующей строки нового сформированного массива B.
Блок-схема алгоритма:
Листинг программы:
PROGRAM TASK2; USES CRT; CONST L=5; VAR B: ARRAY[1..L] OF INTEGER; A: ARRAY[1..L, 1..L] OF INTEGER; I, J, MIN, INDEX: INTEGER; BEGIN CLRSCR; RANDOMIZE; {формирование матрицы случайным образом} FOR I:= 1 TO L DO FOR J:=1 TO L DO A[I,J]:= RANDOM (51); {вывод элементов матрицы на экран} FOR I:= 1 TO L DO BEGIN FOR J:=1 TO L DO WRITELN (A[I,J]); WRITELN; END; FOR I:=1 TO L DO BEGIN B[I]:=0; FOR J:=1 TO L DO B[I]:= B[I]+A[I,J]; END; FOR I:=1 TO L DO WRITELN (‘Сумма элементов ‘, I, ‘строки равно ‘, B[I]); MIN:= B[1]; INDEX:= 1; FOR I:=2 TO L DO IF B[I] < MIN THEN BEGIN MIN:= B[I]; INDEX:= I; END; WRITELN (‘Наименьшее значение сумм каждой строки равно - ’, MIN); WRITELN (‘Номер соответствующей строки равен - ’, INDEX); READLN; END.
Задача 7.9. Вычислить количество точек, попавших в круг с радиусом R, с центом в начале координат (0,0).
Блок-схема алгоритма: Листинг программы PROGRAM TASK; USES CRT; CONST N=80; TYPE VECTOR=ARRAY[1..N] OF REAL; VAR X, Y, R1: VECTOR; I, K, KXR, KYR: INTEGER; R: REAL; BEGIN CLRSCR; RANDOMIZE; WRITELN (‘Введите длину радиуса R’); READLN (R); KXR:= 0; KYR:= 0; FOR I:=1 TO N DO BEGIN X[I]:=RANDOM(11)/2; Y[I]:=RANDOM(11)/2; END; FOR I:=1 TO N DO WRITELN (X[I], Y[I]); FOR I:=1 TO N DO BEGIN R[I]:=SQRT(SQR(X[I]-KXR)+SQR(Y[I]-KYR)); WRITELN(R[I]); END; K:= 0; FOR I:=1 TO N DO IF R[I]<R THEN K:= K+1; WRITELN(K); READLN; END. Вопросы для самопроверки 1. Дайте определение матрицы? 2. Каков формат объявления матрицы в разделе Var (1 способ)? 3. Каков формат объявления матрицы в разделе Var, если создан новый тип матрицы в разделе Type (2 способ)? 4. Что необходимо знать, чтобы обратиться к определённому элементу матрицы? 5. Какого назначение 2-го способа объявления матрицы? 6. При каком условии элементы матрицы будут принадлежать главной диагонали? 7. При каком условии элементы матрицы будут принадлежать побочной диагонали? 8. При каком условии элементы матрицы будут находиться над главной диагональю? 9. При каком условии элементы матрицы будут находиться под главной диагональю? Лабораторная работа №7_2
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|