Информатика (экзамен билеты) Э-4 / 6 / Zadacha_6_2013
.docЗадача 4
Дана целочисленная матрица: А(6,10).
Если в верхней половине нечетного по номеру столбца нет отрицательного элемента, то следующем четном по номеру столбце найти число элементов, кратных заданному числу. В противном случае в следующем четном по номеру столбце найти номер максимального элемента.
РР1 – определить,нет ли в верхней половине заданного столбца отрицательного элемента?
РР2 – в заданном столбце найти число элементов, кратных заданному числу.
РР3 – в заданном столбце найти номер максимального элемента.
РР1 – определить, нет ли в верхней половине заданного столбца отрицательного элемента
класс |
Имя |
Смысл |
Тип |
Структура |
входные |
x |
Имя матрицы |
Целое |
{X}n,m |
|
n |
Количество строк |
Целое |
Простая переменная |
|
m |
Количество столбцов |
Целое |
Простая переменная |
|
J |
Заданный столбец |
Целое |
Простая переменная |
результат |
p |
флажок |
логическое |
Простая переменная |
промежуточные |
I |
Номер текущей строки |
Целое |
Простая переменная |
-
logical function pp1 (x,n,m,j)
dimension x(n,m)
integer x,n,m,i,j
logical p
p=.true.
i=1
do while (i.le.n/2.and.p)
if (x(i,j).lt.0) then
p=.false.
endif
i=i+1
enddo
pp1=p
end
РР2 – в заданном столбце найти число элементов, кратных заданному числу.
класс |
Имя |
Смысл |
Тип |
Структура |
входные |
x |
Имя матрицы |
Целое |
{X}n,m |
|
n |
Количество строк |
Целое |
Простая переменная |
|
m |
Количество столбцов |
Целое |
Простая переменная |
|
J |
Заданный столбец |
Целое |
Простая переменная |
|
c |
Заданное число |
Целое |
Простая переменная |
результат |
k |
Число кратных заданному числу элементов |
Целое |
Простая переменная |
промежуточные |
I |
Номер текущей строки |
Целое |
Простая переменная |
-
subroutine pp2 (x,n,m,j,c,k)
dimension x(n,m)
integer x,n,m,i,j,k,c
k=0
do i=1,n
if (x(i,j)/c*c.eq.x(i,j)) then
k=k+1
endif
enddo
end
РР3 – в заданном столбце найти номер максимального элемента.
класс |
Имя |
Смысл |
Тип |
Структура |
входные |
x |
Имя матрицы |
Целое |
{X}n,m |
|
n |
Количество строк |
Целое |
Простая переменная |
|
m |
Количество столбцов |
Целое |
Простая переменная |
|
J |
Заданный столбец |
Целое |
Простая переменная |
результат |
jm |
Номер максимального элемента |
Целое |
Простая переменная |
промежуточные |
I |
Номер текущей строки |
Целое |
Простая переменная |
|
xm |
Максимальный элемент |
Целое |
Простая переменная |
-
subroutine pp3 (x,n,m,j,jm)
dimension x(n,m)
integer i,j,x,n,m,jm,xm
xm=x(1,j)
jm=1
do i=2,n
if (x(i,j).gt.xm) then
jm=i
xm=x(i,j)
endif
enddo
end
(главный модуль)
класс |
Имя |
Смысл |
Тип |
Структура |
входные |
A |
Имя матрицы |
Целое |
{A}6,10 |
|
c |
Заданное число |
Целое |
Простая переменная |
выходные |
im |
Номер максимального элемента столбца |
Целое |
Простая переменная |
|
h |
Число кратных заданному числу элементов |
Целое |
Простая переменная |
промежуточные |
I |
Номер текущей строки |
целое |
Простая переменная |
|
J |
Номер текущего столбца |
целое |
Простая переменная |
|
q |
флажок |
логическое |
Простая переменная |
-
program pppp
dimension a(6,10)
integer a,i,j,im,h,c
logical q,pp1
data c/4/,a/ 11, -2, 33, 19, 55, 11, 92, -3, 94, 95, 11, -2, 33, 44, 55, 11, -2, 33, 44, 55, 11, 22, 33, 44, 55,94, 95, 11, -2, 36, 44, -5, 12, -2, 36, 44, 55, 11, 22, 33, 44, 55, 19, 55, 11, 92, -3, 94, 95, 11, -2, 33, 44, 55, 11, -2, 33, 44, 55, 11/
!Write(*,*)'vvedite matricy 6 na 10 po formaty XX'
!read(*,36) ((A(I,j),j=1,10),i=1,6)
!write(*,*)' vvedite zadannoe 4islo po formaty XX'
!read(*,20)c
write(*,*)'matrica A'
write(*,36)((A(i,j),j=1,10),i=1,6)
36 format((1x,10(i2,1x)))
write(*,*)'zadannoe 4islo'
write(*,20)c
20 format (1x,i2)
do j=1,10,2
q=pp1(a,6,10,j)
if (q) then
call pp2(a,6,10,j+1,c,h)
30 format (1x,'4islo elementov kratnih ',i2,' v ',i2,' stolbce ravno ',i1)
write(*,30)c,j+1,h
else
call pp3(a,6,10,j+1,im)
40 format (1x,' nomer max elementa v ',i2,' stolbce : ',i1)
write(*,40)j+1,im
endif
enddo
end