Условия к лабораторной работе
Описание файла
Документ из архива "Условия к лабораторной работе", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. .
Онлайн просмотр документа "Условия к лабораторной работе"
Текст из документа "Условия к лабораторной работе"
1)Постановка задачи (ПЗ):
В тех строках матрицы А(4,6), для которых выполняется условие: к-ый элемент от начала строки равен к-ому элементу от конца строки, заменит на ноль максимальный элемент, в других строках заменить на ноль минимальный положительный элемент
Подпрограмма QQ1 проверяет совпадение к-ого элемента от начала строки к-ому элементу от конца строки.
Подпрограмма QQ2 меняет на ноль максимальный элемент строки.
Подпрограмма QQ3 меняет на ноль минимальный положительный элемент строки.
2)Таблица величин головного модуля (ТВ):
Класс | Имя | Смысл | Структура | Тип |
Исходные данные | А | исходный матрица | {А}4,6 | вещественное |
Результат | А | Измененная матрица | {А}4,6 | вещественное |
Промежуточные данные | i | Промежуточный индекс элементов строки матрицы | простая переменная | целое |
ps | Признак совпадения к-ого элемента от начала строки к-ому элементу от конца строки | Простая переменная | логическое |
Таблица величин QQ1 :
Класс | Имя | Смысл | Структура | Тип |
Исходные данные | А | Исходная матрица | {А}m,n | вещественное |
i | номер проверяемой строки матрицы | простая переменная | целое | |
Результат | p | Признак совпадения к-ого элемента от начала строки к-ому элементу от конца строки | простая переменная | логическое |
Промежуточные данные | j | текущий индекс столбца матрицы | простая переменная | целое |
Таблица величин QQ2 :
Класс | Имя | Смысл | Структура | Тип |
Исходные данные | А | Исходная матрица | {А}m,n | вещественное |
i | номер проверяемой строки матрицы | простая переменная | целое | |
Результат | A | Измененная i-ая строка матрицы | вектор | вещественное |
Промежуточные данные | j | текущий индекс столбца матрицы | простая переменная | целое |
max | Максимальный элемент строки | простая переменная | вещественное | |
l | Переменная для запоминания индекса строки максимального элемента | простая переменная | целое | |
p | Переменная для запоминания индекса столбца максимального элемента | простая переменная | целое |
Таблица величин QQ3 :
Класс | Имя | Смысл | Структура | Тип |
Исходные данные | А | Исходная матрица | {А}m,n | вещественное |
i | номер проверяемой строки матрицы | простая переменная | целое | |
Результат | A | Исходная или измененная i-ая строка матрицы | вектор | вещественное |
Промежуточные данные | j | текущий индекс столбца матрицы | простая переменная | целое |
min | Минимальный элемент строки | простая переменная | вещественное | |
l | Переменная для запоминания индекса строки минимального элемента | простая переменная | целое | |
p | Переменная для запоминания индекса столбца минимального элемента | простая переменная | целое |
3)Аномалии: нет
4) Алгоритм
Головная программа
Блок-схема QQ1
Подпрограмма QQ1 проверяет совпадение к-ого элемента от начала строки к-ому элементу от конца строки
Блок-схема QQ2
Подпрограмма QQ2 меняет на ноль максимальный элемент строки.
Блок-схема QQ3
Подпрограмма QQ3 меняет на ноль минимальный положительный элемент строки.
5) Текст программы:
logical function QQ1 (A,m,n,i)
dimension A(m,n)
real A
integer m,n,i,j
logical p
p=.false.
j=1
do while (j<=n/2.and.(.not.p))
if (a(i,j)==a(i,n-j+1)) then
p=.true.
end if
j=j+1
end do
QQ1=p
end
subroutine QQ2 (A,m,n,i)
dimension A(m,n)
real A,max
integer i,j,m,n,l,p
max=a(i,1)
l=i
p=1
do j=2,n,1
if (a(i,j)>max) then
max=a(i,j)
l=i
p=j
end if
end do
a(l,p)=0
end
subroutine QQ3 (A,m,n,i)
dimension A(m,n)
real A,min
integer i,j,m,n,l,p
logical pr
pr=.false.
do j=1,n,1
if(a(i,j)<=0) goto 1
if(.not.pr) then
pr=.true.
min=a(i,j)
l=i
p=j
else
if (a(i,j)<min) then
min=a(i,j)
l=i
p=j
end if
end if
1 continue
end do
if (pr) then
a(l,p)=0
else
write(*,25)i
25 format(//' v ',I2,'-oy stroke net elementov>0')
end if
end
program Usloie
dimension A(4,6)
real A
integer i
logical QQ1,ps
data A/2, 6, -3, -2, 5, -26, -4, -5, 6, 1, -1, -6, 15, 23, -5, -8, 5, -5, -7, -3, 98, 5, 6, -1/
write(*,1)' ishodnaya matrica A'
1 format(/A20/)
write(*,2)((A(i,j),j=1,6),i=1,4)
2 format((x,6(F5.1,x)))
do i=1,4,1
ps=QQ1 (A,4,6,i)
if (ps) then
call QQ2 (A,4,6,i)
else
call QQ3 (A,4,6,i)
end if
end do
write(*,5)' izmenennaya matrica A'
5 format(/A22/)
write(*,2)((A(i,j),j=1,6),i=1,4)
end
6) Тесты: