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

Задача 2

2. Дана целочисленная матрица: А(4,5).

Если в матрице есть хотя бы один столбец без отрицательных элементов, найти индексы минимального положительного элемента. В противном случае определить количество нечетных элементов в матрице.

РР1 – определить, в матрице есть ли хотя бы один столбец без отрицательных элементов.?

РР2 – найти индексы минимального положительного элемента.

+РР3 – определить количество нечетных элементов в матрице.

РР1 – определить, в матрице есть ли хотя бы один столбец без отрицательных элементов

класс

Имя

Смысл

Тип

Структура

входные

x

Имя матрицы

Целое

{X}n,m

n

Количество строк

Целое

Простая переменная

m

Количество столбцов

Целое

Простая переменная

результат

p

флажок

логическое

Простая переменная

промежуточные

I

Номер текущей строки

Целое

Простая переменная

J

Номер текущего столбца

Целое

Простая переменная

logical function pp1 (x,n,m)

dimension x(n,m)

integer x,n,m,i,j

logical p

p=.false.

j=1

do while (j.le.m.and..not.p)

p=.true.

i=1

do while (i.le.n.and.p)

if (x(i,j).lt.0) then

p=.false.

endif

i=i+1

enddo

j=j+1

enddo

pp1=p

end

РР2 – найти индексы минимального положительного элемента.

класс

Имя

Смысл

Тип

Структура

входные

x

Имя матрицы

Целое

{X}n,m

n

Количество строк

Целое

Простая переменная

m

Количество столбцов

Целое

Простая переменная

результат

im

Номер строки минимального положительного элемента

Целое

Простая переменная

jm

Номер столбца минимального положительного элемента

Целое

Простая переменная

промежуточные

I

Номер текущей строки

Целое

Простая переменная

J

Номер текущего столбца

Целое

Простая переменная

Xm

Минимальный положительный элемент

Целое

Простая переменная

subroutine pp2 (x,n,m,im,jm)

dimension x(n,m)

integer i,j,x,n,m,jm,im,xm

im=0

jm=0

i=1

do while (i.le.n.and.im.eq.0)

j=1

do while (j.le.m.and.jm.eq.0)

if (x(i,j).gt.0) then

xm=x(i,j)

im=i

jm=j

endif

j=j+1

enddo

i=i+1

enddo

i=i-1

do while (i.le.n)

j=1

do while (j.le.m)

if (x(i,j).gt.0.and.x(i,j).le.xm) then

xm=x(i,j)

im=i

jm=j

endif

j=j+1

enddo

i=i+1

enddo

end

РР3 – определить количество нечетных элементов в матрице

класс

Имя

Смысл

Тип

Структура

входные

x

Имя матрицы

Целое

{X}n,m

n

Количество строк

Целое

Простая переменная

m

Количество столбцов

Целое

Простая переменная

результат

k

Количество нечетных элементов

Целое

Простая переменная

промежуточные

I

Номер текущей строки

Целое

Простая переменная

J

Номер текущего столбца

Целое

Простая переменная

subroutine pp3 (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.ne.x(i,j)) then

k=k+1

endif

enddo

enddo

end

(главный модуль)

класс

Имя

Смысл

Тип

Структура

входные

A

Имя матрицы

Целое

{A}4,5

выходные

im

Номер строки минимального положительного элемента

Целое

Простая переменная

jm

Номер столбца минимального положительного элемента

Целое

Простая переменная

h

Количество нечетных элементов

Целое

Простая переменная

промежуточные

I

Номер текущей строки

целое

Простая переменная

J

Номер текущего столбца

целое

Простая переменная

q

флажок

логическое

Простая переменная

program pppp

dimension a(4,5)

integer a,i,j,im,h

logical q,pp1

data a/ 54, -2, 33, 19, 55, 11, 92, -3, 94, 95, 16, 22, 33, -4, 10, 11, -2, 33, 44, 55/

!Write(*,*)'vvedite matricy 4 na 5 po formaty XX'

!read(*,31) ((A(I,j),j=1,5),i=1,4)

write(*,*)'matrica A'

write(*,31)((A(i,j),j=1,5),i=1,4)

31 format((1x,5(i2,1x)))

q=pp1(a,4,5)

if (q) then

call pp2(a,4,5,im,jm)

45 format (1x,' indexi min pologitelnogo elemeta ',i1,1x,i1)

write(*,45)im,jm

else

call pp3(a,4,5,h)

35 format (1x,'4islo ne4etnih elementov matrici ',i2)

write(*,35)h

endif

end