Информатика (экзамен билеты) Э-4 / 5 / Zadacha_5_2013
.docЗадача 3
Дана целочисленная матрица: А(6,6).
Если в матрице диапазон изменения значений элементов (разность между максимальным и минимальным значением) меньше заданного числа, то подсчитать в матрице количество четных по значению элементов. В противном случае определить столбец с максимальным средним арифметическим его элементов.
РР1 – определить, в матрице диапазон изменения значений элементов меньше заданного числа?
РР2 - подсчитать в матрице количество четных по значению элементов.
РР3 – определить номер столбца с максимальным средним арифметическим его элементов.
РР1 – определить, в матрице диапазон изменения значений элементов меньше заданного числа
класс |
Имя |
Смысл |
Тип |
Структура |
входные |
x |
Имя матрицы |
Целое |
{X}n,m |
|
n |
Количество строк |
Целое |
Простая переменная |
|
m |
Количество столбцов |
Целое |
Простая переменная |
|
c |
Заданное число |
Целое |
Простая переменная |
результат |
pp1 |
флажок |
логическое |
Простая переменная |
промежуточные |
I |
Номер текущей строки |
Целое |
Простая переменная |
|
J |
Номер текущего столбца |
Целое |
Простая переменная |
|
Xmax |
Максимальный элемент |
Целое |
Простая переменная |
|
Xmin |
Минимальный элемент |
Целое |
Простая переменная |
-
logical function pp1 (x,n,m,c)
dimension x(n,m)
integer x,n,m,i,j,c
xmin=x(1,1)
xmax=x(1,1)
do i=1,n
do j=1,m
if (x(i,j).lt.xmin) then
xmin=x(i,j)
else
if(x(i,j).gt.xmax) then
xmax=x(i,j)
endif
endif
enddo
enddo
if (xmax-xmin.lt.c) then
pp1=.true.
else
pp1=.false.
endif
end
РР2 - подсчитать в матрице количество четных по значению элементов.
класс |
Имя |
Смысл |
Тип |
Структура |
входные |
x |
Имя матрицы |
Целое |
{X}n,m |
|
n |
Количество строк |
Целое |
Простая переменная |
|
m |
Количество столбцов |
Целое |
Простая переменная |
результат |
k |
Количество четных элементов |
Целое |
Простая переменная |
промежуточные |
I |
Номер текущей строки |
Целое |
Простая переменная |
|
J |
Номер текущего столбца |
Целое |
Простая переменная |
-
subroutine pp2 (x,n,m,k)
dimension x(n,m)
integer x,n,m,i,j,k
k=0
do i=1,n
do j=1,m
if (x(i,j)/2*2.eq.x(i,j)) then
k=k+1
endif
enddo
enddo
end
РР3 – определить номер столбца с максимальным средним арифметическим его элементов.
класс |
Имя |
Смысл |
Тип |
Структура |
входные |
x |
Имя матрицы |
Целое |
{X}n,m |
|
n |
Количество строк |
Целое |
Простая переменная |
|
m |
Количество столбцов |
Целое |
Простая переменная |
результат |
jm |
Номер столбца с наибольшим средним арифметическим |
Целое |
Простая переменная |
промежуточные |
I |
Номер текущей строки |
Целое |
Простая переменная |
|
J |
Номер текущего столбца |
Целое |
Простая переменная |
|
sa |
Среднее арифметическое текущего столбца |
вещ |
Простая переменная |
|
sm |
Наибольшее среднее арифметическое столбца |
вещ |
Простая переменная |
-
subroutine pp3 (x,n,m,jm)
dimension x(n,m)
real sa,sm
integer i,j,x,n,m,jm
jm=1
do i=1,n
sm=sm+x(i,1)
enddo
sm=sm/n
do j=2,m
sa=0
do i=1,n
sa=sa+x(i,j)
enddo
sa=sa/n
if (sa.gt.sm) then
sm=sa
jm=j
endif
enddo
end
(главный модуль)
класс |
Имя |
Смысл |
Тип |
Структура |
входные |
A |
Имя матрицы |
Целое |
{A}6,6 |
|
c |
Заданное число |
Целое |
Простая переменная |
выходные |
k |
Количество четных элементов |
Целое |
Простая переменная |
|
jm |
Номер столбца с наибольшим средним арифметическим |
Целое |
Простая переменная |
промежуточные |
I |
Номер текущей строки |
целое |
Простая переменная |
|
J |
Номер текущего столбца |
целое |
Простая переменная |
|
q |
флажок |
логическое |
Простая переменная |
-
program pppp
dimension a(6,6)
integer a,i,j,jm,h,c
logical q,pp1
data c/199/,a/ 14, -2, 33, 19, 15, 11, 92, -3, 24, 45, 16, 22, 33, -2, 10, 11, -2, 33, 44, 55, 55, 11, 92, -3, 94, 95, 96, 92, 93, -4, 10, 11, -2, 33, 44, 55/
!Write(*,*)'vvedite matricy 6 na 6 po formaty XX'
!read(*,30) ((A(I,j),j=1,6),i=1,6)
write(*,*)'matrica A'
write(*,30)((A(i,j),j=1,6),i=1,6)
30 format((1x,6(i2,1x)))
!write(*,*)' vvedite zadannoe 4islo po formaty XXX'
!read(*,20)c
write(*,*)'zadannoe 4islo'
write(*,20)c
20 format (1x,i3)
q=pp1(a,6,6,c)
if (q) then
call pp2(a,6,6,h)
40 format (1x,' koli4estvo 4etnih elementov ',i2)
write(*,40)h
else
call pp3(a,6,6,jm)
31 format (1x,'stolbec s max SA ',i1)
write(*,31)jm
endif
end