Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Алгоритмы нахождения наибольшего и наименьшего элементов двумерного массива
Задача 1. В соревнованиях по плаванию принимали участие 5 спортсменов. Соревнования состояли из 3 заплывов. Результаты заплывов записали в таблицу размерностью 3х5. Получить одномерный массив размером 3, элементами которого будут лучшие результаты в каждом из заплывов. USES Crt; VAR RZ: ARRAY[0..3, 0..5] OF INTEGER; LR: ARRAY[0..3] OF INTEGER; I, J: BYTE; BEGIN ClrScr; WriteLn; { Заполнение таблицы } FOR I: =1 TO 3 DO Begin WriteLn(' Введите результаты ', I, ' заплыва'); FOR J: =1 TO 5 DO Begin Write(J, ' участник - '); ReadLn(RZ[I, J]); End; End; WriteLn; { Определение лучшего результата в каждом из заплывов } FOR I: =1 TO 3 DO Begin LR[I]: =RZ[I, 1]; FOR J: =2 TO 5 DO IF RZ[I, J]< LR[I] THEN LR[I]: =RZ[I, J]; WriteLn(' Лучший результат ', I, ' заплыва = ', LR[I]); End; END. Задача 2. Дан двумерный массив размерностью 5х6, заполненный целыми числами. Сформировать одномерный массив, каждый элемент которого равен наибольшему по модулю элементу соответствующего столбца. USES Crt; VAR M: ARRAY[0..5, 0..6] OF INTEGER; MAX: ARRAY[0..6] OF INTEGER; I, J: BYTE; BEGIN ClrScr; Randomize; { Заполнение двумерного массива случайным образом и вывод в виде прямоугольной матрицы } WriteLn(' Значения элементов двумерного массива'); FOR I: =1 TO 5 DO Begin FOR J: =1 TO 6 DO Begin M[I, J]: =Random(20)-8; Write(M[I, J]: 3); End; WriteLn; End; WriteLn; { Формирование одномерного массива} WriteLn(' Значения элементов одномерного массива'); FOR J: =1 TO 6 DO Begin MAX[J]: =ABS(M[1, J]); FOR I: =2 TO 5 DO IF ABS(M[I, J]) > MAX[J] THEN MAX[J]: =ABS(M[I, J]); Write(MAX[J]: 3); End; END. Задача 3. Дан двумерный массив размерностью NхM, заполненный случайным образом. Определить, есть ли в данном массиве строка, в которой имеется два элемента массива, имеющие наибольшее значение. USES Crt; CONST N=6; M=8; VAR A: ARRAY[0..N, 0..M] OF INTEGER; I, J, K, FL: BYTE; MAX: INTEGER; BEGIN ClrScr; Randomize; { Заполнение двумерного массива случайным образом и вывод в виде прямоугольной матрицы } WriteLn(' Значения элементов двумерного массива'); FOR I: =1 TO N DO Begin FOR J: =1 TO M DO Begin A[I, J]: =Random(20); Write(A[I, J]: 3); End; WriteLn; End; WriteLn; { Нахождение наибольшего значения } MAX: =A[1, 1]; FOR I: =1 TO N DO FOR J: =1 TO M DO IF A[I, J]> MAX THEN MAX: =A[I, J]; WriteLn(' Максимальное значение = ', MAX); { Нахождение строки, в которой два элемента имеют наибольшее значение } FL: =0; FOR I: =1 TO N DO Begin K: =0; FOR J: =1 TO M DO IF A[I, J]=MAX THEN Inc(K); IF K=2 THEN Begin WriteLn('В ', I, ' строке два элемента имеют наибольшее значение'); FL: =1; End; End; IF FL=0 THEN WriteLn(' Нет строк, в которых два элемента имеют наибольшее значение'); END. ..................................................................................................................................... Практические задания ..................................................................................................................................... 1. Дан двумерный массив размерностью 5x7, заполненный случайным образом. Найти наименьший и наибольший элементы двумерного массива, поменять их местами. 2. Дан двумерный массив размерностью NxM, заполненный случайным образом. Получить одномерный массив, элементами которого являются сумма наименьшего и наибольшего элементов соответственной строки двумерного массива.
|