Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



Двумерный массив – это структура данных, хранящая прямоугольную матрицу. В матрице каждый элемент определяется номером строки и номером столбца, на пересечении которых он расположен.

Например, D(3×4) – двумерный массив, состоящий из 3 строк и 4 столбцов.

Общий вид записи:

где Dij– элементы массива; i– индекс строки; j– индекс столбца.

Запись элементов двумерного массива на языке Паскаль D[i,j].

Общий вид записи описания двумерного массива:

Var «Имя массива»: array[n1..n2, m1..m2] of «Тип элементов»;

n1 − номер первой строки; n2 − номер последней строки; m1 – номер первого столбца; m2 – номер последнего столбца.

array, of – зарезервированные слова («массив», «из»).

Задача 1. Найдите максимальный элемент в каждой строке матрицы A(4×3).

Обозначения: MAX– максимальный элемент матрицы. Program Matriza1; Var i, j, MAX: integer; А:array[1..4,1..3] of integer; begin {Организация ввода матрицы с клавиатуры построчно}for i:=1 to 4 dofor j:=1 to 3 do readln (A[i, j]); {Организация цикла для поиска максимального элемента в каждой строке} for i:=1 to 4 do begin {Присвоение начального значения максимальному элементу текущей строки} MAX:=a[i,1]; for j:=2 to 3 do if a[i,j]>MAX then MAX:=a[i,j]; {Вывод результатов вычисления на экран} writeln ('Макс.элемент в', i, 'строке=', MAX); end; readln; end.

Задача 2. В матрице D(3×3) найдите произведение элементов каждого столбца.

Обозначения: P – произведение элементов каждого столбца.   Program Matriza2; Var {Описание переменных матрицы} i, j, p: integer; {Описание матрицы D} D: array[1..3,1..3] of integer; Begin {Организация ввода матрицы с клавиатуры построчно}for i: =1 to 3 dofor j: = 1 to 3 do readln (D[i, j]); {Организация цикла для вычисления произведения элементов каждого столбца} for j:=1 to 3 do begin {Присвоение начального значения произведению} P:=1; for i:=1 to 3 do p:=p*D[i,j]; {Вывод результатов вычисления на экран} writeln ('P=',P); end; readln; end.  

Задача 3. В матрице С(5×5) элементы, лежащие выше главной диагонали, уменьшите на сумму элементов главной диагонали.

Обозначения: Элементы, лежащие на главной диагонали, имеют одинаковые индексы (i=j). S – сумма элементов главной диагонали. Для ввода данных используется функция Random (50) –датчик случайных чисел в диапазоне [0;49]. Program Matriza3; Var i, j, s: integer; C: array[1..5,1..5] of integer; begin {Запуск генератора случайных чисел} Randomize; Writeln ('Данная матрица'); For i:=1 to 5 do begin For j:=1 to 5 do begin C[i, j]:=Random(50); Write (' ',C[i, j]:4); End; Writeln; End; {Присвоение начального значения сумме} S:=0; {Вычисление суммы элементов главной диагонали матрицы} For i:=1 to 5 do S:=S+C[i, i]; Writeln ('S=',S); Writeln ('Новая матрица'); {Организация цикла для уменьшения элементов матрицы, лежащих выше главной диагонали на сумму} For i:=1 to 5 do begin For j:=1 to 5 do begin If i<j then C[i, j]:= C[i, j]-S; {Вывод новой матрицы на экран} Write (' ',C[i, j]:4); end; Writeln; End; Readln; End.

Задача 4. В матрице В(3×3) все элементы, лежащие на главной диагонали,
замените на 0.

Данные задаются типизированной константой, значения элементов массива выбираются произвольно   Элементы, лежащие на главной диагонали, имеют одинаковые индексы (i=j). Program Matriza4; Var i, j: integer; {Описание матрицы В с помощью типизированной константы} const B: array[1..3,1..3] of integer= ((1,-3,2), (5,-4,-2), (-1,5,8)); begin {Организация цикла для замены элементов главной диагонали матрицы на0} for i:=1 to 3 do for j:=1 to 3 do if i=j then B[i, j]:=0 {Вывод новой матрицы на экран} for i:=1 to 3 do begin for j:=1 to 3 do write (B[i, j]:5); writeln; end; readln; end.

Задача 5. В матрице А(4×4) определите в каждом столбце количество отрицательных элементов.

Обозначения: k– количествоотрицательных элементов. Program Matriza5; Var i, j, k: integer; A: array[1..4,1..4] of integer; begin for i: = 1 to 4 do for j: = 1 to 4 do readln (А[i, j]); {Организация цикла для подсчёта количества отрицательных элементов в каждом столбце} for j:=1 to 4 do begin {Присвоение начального значения количеству элементов} k:=0; for i:=1 to 4 do if A[i,j]<0 then k:=k+1; {Вывод результатов вычисления на экран} writeln ('В столбце №',j, 'кол-во отриц.элементов- ',k); end; readln; end.

Задача 6. Выполните транспонирование матрицы Х(3×3) (замените строки
столбцами).

Обозначения: Yij – элементы полученной матрицы после транспонирования. Program Matriza6; Var i, j: integer; Y: array[1..3,1..3] of integer; X: array[1..3,1..3] of integer; begin {Организация ввода матрицы X с клавиатуры} for i:=1 to 3 do for j:=1 to 3 do readln (X[i, j]); {Организация цикла для замены строк столбцами матрицы} for i:=1 to 3 do for j:=1 to 3 do Y[j,i]:=X[i,j]; {Вывод новой матрицы Y на экран} for i:=1 to 3 do begin for j:=1 to 3 do write (Y[i,j]:5); writeln; end; readln; end.  

Задача 7. Определите произведение элементов четных столбцов матрицы В(3×4).

Обозначения: Р – произведение элементов.   Program Matriza7; Var Р, i, j: integer; B: array[1..3,1..4] of integer; begin for i: = 1 to 3 do for j: = 1 to 4 do readln (B[i, j]); j:=2; {Организация цикла с предусловием} while j<=4 do begin {Присвоение начального значения произведению} P:=1; {Вычисление произведения} for i:=1 to 3 do Р:=Р*В[i,j]; {Вывод результатов вычисления на экран} writeln ('Р=',Р); {Переход на следующий чётный столбец} j:=j+2; end; readln; end.  

Задача 8. В каждой строке матрицы А(3×3) определите сумму положительных элементов.

Обозначения: S– сумма положительных элементов.   Program Matriza8; Var s, i, j: integer; A: array[1..3,1..3] of integer; begin for i: = 1 to 3 do for j: = 1 to 3 do readln (А[i, j]); {Организация цикла для вычисления суммы положительных элементов матрицы в каждой строке} for i:=1 to 3 do begin {Присвоение начального значения сумме} S:=0; for j:=1 to 3 do if A[i,j]>0 then S:=S+A[i,j]; {Вывод результатов вычисления на экран} writeln ('Сумма ',i,' строки=',S); end; readln; end.  




Дата публикования: 2015-01-13; Прочитано: 271 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2025 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.1 с)...