program Sort_elem_in_arr
integer i, j, q, line, spec_elem
real Ar_new(0:3), Output_matrix(0:3)
real, dimension(-3:2, 0:3) :: Ar
! Вводим элементы матрицы(6х4).
print *, 'Write elements of matrix:'
do i = -3, 2
read(*,*) (Ar(i, j), j = 0, 3)
end do
! Смотрим, какая матрица получилась:
print *, 'You wrote this array:'
do i = -3, 2
print*, (Ar(i, j), j = 0, 3)
end do
! Ниже происходит вызов подпрограммы и выполнение второго пункта в задании(формирование вектора "Output_matrix").
do q = -3, 2
do i = 0, 3
Ar_new(i) = Ar(q, i)
end do
call sorter(Ar_new, spec_elem, line)
Output_matrix(q) = spec_elem
end do
! Выводится получившийся вектор(одномерная матрица, состоящая из подходящих по условию элементов):
print *, 'This is our vector:'
do q = -3, 2
print*, Output_matrix(q)
end do
! Проверка на наличие строк в матрице, в которых не подходит ни один элемент.
do q = 0, 3
if (Output_matrix(q).eq.(-INT)) then
i = 0
end if
end do
if (i.eq.0) then
print*, 'Somewhere is incorrect in input. Error.'
end if
end
! Ниже находится подпрограмма, на вход которой подается одномерный массив "Ar_new" и которая находит подходящий элемент и его индекс.
subroutine sorter(Ar_new, spec_elem, line)
integer i, spec_elem, line
real Ar_new(0:3), Output_matrix(0:3)
spec_elem = -INT
do i = 0, 3! Нахождение подходящего элемента:
if (spec_elem.le.Ar_new(i)) then
if(Ar_new(i).lt.0) then
spec_elem = Ar_new(i)
end if
end if
end do
do i = 0, 3! Нахождение индекса этого элемента:
if (spec_elem.eq.Ar_new(i)) then
line = i
end if
end do
return
end
cHJvZ3JhbSBTb3J0X2VsZW1faW5fYXJyCgppbnRlZ2VyIGksIGosIHEsIGxpbmUsIHNwZWNfZWxlbQpyZWFsIEFyX25ldygwOjMpLCBPdXRwdXRfbWF0cml4KDA6MykKcmVhbCwgZGltZW5zaW9uKC0zOjIsIDA6MykgOjogQXIKCiEg0JLQstC+0LTQuNC8INGN0LvQtdC80LXQvdGC0Ysg0LzQsNGC0YDQuNGG0YsoNtGFNCkuCgpwcmludCAqLCAnV3JpdGUgZWxlbWVudHMgb2YgbWF0cml4OicKCmRvIGkgPSAtMywgMgoJcmVhZCgqLCopIChBcihpLCBqKSwgaiA9IDAsIDMpCmVuZCBkbwoKISDQodC80L7RgtGA0LjQvCwg0LrQsNC60LDRjyDQvNCw0YLRgNC40YbQsCDQv9C+0LvRg9GH0LjQu9Cw0YHRjDoKCnByaW50ICosICdZb3Ugd3JvdGUgdGhpcyBhcnJheTonCmRvIGkgPSAtMywgMgoJcHJpbnQqLCAoQXIoaSwgaiksIGogPSAwLCAzKQplbmQgZG8KCiEg0J3QuNC20LUg0L/RgNC+0LjRgdGF0L7QtNC40YIg0LLRi9C30L7QsiDQv9C+0LTQv9GA0L7Qs9GA0LDQvNC80Ysg0Lgg0LLRi9C/0L7Qu9C90LXQvdC40LUg0LLRgtC+0YDQvtCz0L4g0L/Rg9C90LrRgtCwINCyINC30LDQtNCw0L3QuNC4KNGE0L7RgNC80LjRgNC+0LLQsNC90LjQtSDQstC10LrRgtC+0YDQsCAiT3V0cHV0X21hdHJpeCIpLgoKZG8gcSA9IC0zLCAyCiAgICBkbyBpID0gMCwgMwogICAgICAgIEFyX25ldyhpKSA9IEFyKHEsIGkpCiAgICBlbmQgZG8KCiAgICBjYWxsIHNvcnRlcihBcl9uZXcsIHNwZWNfZWxlbSwgbGluZSkKICAgIE91dHB1dF9tYXRyaXgocSkgPSBzcGVjX2VsZW0KICAgIAoKZW5kIGRvCgohINCS0YvQstC+0LTQuNGC0YHRjyDQv9C+0LvRg9GH0LjQstGI0LjQudGB0Y8g0LLQtdC60YLQvtGAKNC+0LTQvdC+0LzQtdGA0L3QsNGPINC80LDRgtGA0LjRhtCwLCDRgdC+0YHRgtC+0Y/RidCw0Y8g0LjQtyDQv9C+0LTRhdC+0LTRj9GJ0LjRhSDQv9C+INGD0YHQu9C+0LLQuNGOINGN0LvQtdC80LXQvdGC0L7Qsik6CgpwcmludCAqLCAnVGhpcyBpcyBvdXIgdmVjdG9yOicKZG8gcSA9IC0zLCAyCiAgICBwcmludCosIE91dHB1dF9tYXRyaXgocSkKZW5kIGRvCgohINCf0YDQvtCy0LXRgNC60LAg0L3QsCDQvdCw0LvQuNGH0LjQtSDRgdGC0YDQvtC6INCyINC80LDRgtGA0LjRhtC1LCDQsiDQutC+0YLQvtGA0YvRhSDQvdC1INC/0L7QtNGF0L7QtNC40YIg0L3QuCDQvtC00LjQvSDRjdC70LXQvNC10L3Rgi4KCmRvIHEgPSAwLCAzCiAgICBpZiAoT3V0cHV0X21hdHJpeChxKS5lcS4oLUlOVCkpIHRoZW4KICAgICAgICBpID0gMAogICAgZW5kIGlmCmVuZCBkbwppZiAoaS5lcS4wKSB0aGVuCiAgICBwcmludCosICdTb21ld2hlcmUgaXMgaW5jb3JyZWN0IGluIGlucHV0LiBFcnJvci4nCmVuZCBpZgoKZW5kCgoKISDQndC40LbQtSDQvdCw0YXQvtC00LjRgtGB0Y8g0L/QvtC00L/RgNC+0LPRgNCw0LzQvNCwLCDQvdCwINCy0YXQvtC0INC60L7RgtC+0YDQvtC5INC/0L7QtNCw0LXRgtGB0Y8g0L7QtNC90L7QvNC10YDQvdGL0Lkg0LzQsNGB0YHQuNCyICJBcl9uZXciINC4INC60L7RgtC+0YDQsNGPINC90LDRhdC+0LTQuNGCINC/0L7QtNGF0L7QtNGP0YnQuNC5INGN0LvQtdC80LXQvdGCINC4INC10LPQviDQuNC90LTQtdC60YEuCgpzdWJyb3V0aW5lIHNvcnRlcihBcl9uZXcsIHNwZWNfZWxlbSwgbGluZSkKaW50ZWdlciBpLCBzcGVjX2VsZW0sIGxpbmUKcmVhbCBBcl9uZXcoMDozKSwgT3V0cHV0X21hdHJpeCgwOjMpCgpzcGVjX2VsZW0gPSAtSU5UCmRvIGkgPSAwLCAzISDQndCw0YXQvtC20LTQtdC90LjQtSDQv9C+0LTRhdC+0LTRj9GJ0LXQs9C+INGN0LvQtdC80LXQvdGC0LA6CglpZiAoc3BlY19lbGVtLmxlLkFyX25ldyhpKSkgdGhlbgoJCWlmKEFyX25ldyhpKS5sdC4wKSB0aGVuCgkJCXNwZWNfZWxlbSA9IEFyX25ldyhpKQoJCWVuZCBpZgoJZW5kIGlmCmVuZCBkbwoKZG8gaSA9IDAsIDMhINCd0LDRhdC+0LbQtNC10L3QuNC1INC40L3QtNC10LrRgdCwINGN0YLQvtCz0L4g0Y3Qu9C10LzQtdC90YLQsDoKICAgIGlmIChzcGVjX2VsZW0uZXEuQXJfbmV3KGkpKSB0aGVuCiAgICAgICAgbGluZSA9IGkKICAgIGVuZCBpZgplbmQgZG8KCnJldHVybgoKZW5kCg==