08.06.2011, 15:50 | #1 (permalink) |
Новичок
Регистрация: 08.06.2011
Сообщений: 3
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Массив, Паскаль
Нужна помощь ни как не могу догадаться как составить программку: Дана матрица А[1:4;1:6]. Если количество положительных элементов в третьей строке больше количества отрицательных элементов в третьем столбце, то из матрицы А получить матрицу В по правилу: В(i,j)=A(i,j)∙Amax где Amax - максимальный элемент матрицы А. Иначе получить квадратную матрацу, добавив строки, элементы каждой из которых представляют сумму двух последних элементов в столбце. Eсть только начало: program MATRICA; uses wincrt; var A:array [1..4,1..6] of integer; B:array[1..4,1..6] of integer; I,J:INTEGER; Begin RANDOMIZE; for I:=1 to 4 do for J:=1 to 6 do A[I,J]:=random(100)-30; writeln('ЗАДАНА МАТРИЦА А'); for I:=1 to 4 do Begin writeln; for J:=1 to 6 do write(A[I,J]:4); end; |
08.06.2011, 15:50 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
На форуме уже встречались схожие проблемы, посмотрите Паскаль. Матрица. Массив Турбо Паскаль или Фри Паскаль. Задание по теме Типизированный файл Массив, Паскаль |
08.06.2011, 21:29 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Например, так:
Код:
program MATRICA; var A,B:array [1..6,1..6] of integer; I,J,Npos,Nneg,Max,Imax:INTEGER; Begin RANDOMIZE; Max:=-100; for I:=1 to 4 do for J:=1 to 6 do begin A[I,J]:=45-random(100); If A[I,J]>Max then Max:=A[I,J]; end; writeln('ЗАДАНА МАТРИЦА А'); for I:=1 to 4 do Begin writeln; for J:=1 to 6 do write(A[I,J]:6); end; writeln; Writeln; Npos:=0; For J:=1 to 6 do If A[3,J]>0 then Inc(Npos); Nneg:=0; For I:=1 to 4 do If A[I,3]<0 then Inc(Nneg); Writeln('Max= ',Max,'; Npos= ',Npos,'; Nneg= ',Nneg); IF Npos>Nneg then begin Imax:=4; for I:=1 to 4 do for J:=1 to 6 do B[I,J]:=A[I,J]*Max; end else begin Imax:=6; for J:=1 to 6 do for I:=1 to 6 do If I<5 then B[I,J]:=A[I,J] else B[I,J]:=A[3,J]+A[4,J]; end; for I:=1 to Imax do Begin writeln; for J:=1 to 6 do write(B[I,J]:6); end; ReadLn; END. |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|