Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
7
Добавлен:
31.03.2015
Размер:
142.85 Кб
Скачать

Задача 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