Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
Дніпропетровський національний університет
Механіко-математичний факультет
ЗВІТ
про виконання лабораторної роботи №2-3
«Дії над матрицями»
ШИФР 035796
Виконавець: студент групи МХ-10-3 Федоров Дмитро Iгорович
Прийняла: Гарт Етері Лаврентіївна
Завдання отримано 17.11.2010
Звіт здано 27.12.2010
Дніпропетровськ
2010
ЗМІСТ
Анотація………………………………………………………………………...
Основна частина……………………………………………………………....
Список використаної літератури…………………………………………..
Додаток. Лістинг програми………………………………………………....
АНОТАЦІЯ
Розробити структурну схему алгоритму і програму виконання дій над матрицею
,
де XX перші дві цифри шифру, - у відповідності із зазначеними шифром пунктами.
Програми розраховані для ПК типу Pentium IV. Реалізовані в ОС Windows XP.
ОСНОВНА ЧАСТИНА
1. Постановка задачі
Розробити структурну схему алгоритму і програму виконання дій над матрицею
у відповідності з нижченаведеними пунктами:
2. Аналіз задачі
Структурні блок-схеми алгоритму для кожного завдання:
Блок-схема до 1-го завдання
Блок-схема до 2-го завдання
Блок-схема до 3-го завдання
Блок-схема до 4-го завдання
3. Інструкція щодо експлуатації програми
Програма Two-three.for та файли вводу-виводу данних in.txt, out.txt знаходяться на USB-носії у кореневому каталозі.
Вхідні дані:
З вхідного файлу in.txt вводяться дві матриці, задані початковими умовами.
Вихідні дані:
На екран та у файл видаються результати у наступному форматі:
Matrix A:
<матриця А, отримана за персональним шифром>
TASK 1:
P(1)= <добуток елементів 1-го стовпчика матриці А>
P(2)= <добуток елементів 2-го стовпчика матриці А>
P(3)= <...>
P(4)= <...>
P(5)= <добуток елементів 5-го стовпчика матриці А>
TASK 2:
MAX element: <значення найбільшого за модулем елемента матриці А>
Positions: <номер рядка та стовпця, в яких він знаходиться>
TASK 3:
Matrix B:
<матриця B, яка отримана за формулою >
TASK 4:
New matrix A:
<матриця А, змінена за умовою 4-го завдання (замінені місцями мінімальний та максимальний елементи матриці А)>
4. Протокол роботи програми
Файл in.txt:
1.6 3.4 -5.2 3.2 4.1
2.1 3.3 -4.5 -5.0 -7.4
-3.0 -8.1 2.2 -1.3 5.0
7.2 -9.0 1.3 4.0 1.0
5.5 3.4 7.2 -5.0 4.3
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
2 2 2 2 2
1 1 1 1 1
Після виконання програми файл out.txt має вигляд:
Matrix A:
1.9 3.7 -4.9 3.5 4.4
2.7 3.9 -3.9 -4.4 -6.8
-2.1 -7.2 3.1 -0.4 5.9
7.8 -8.4 1.9 4.6 1.6
5.8 3.7 7.5 -4.7 4.6
TASK 1:
P(1)= -487.37
P(2)= 3229.09
P(3)= 844.18
P(4)= -133.18
P(5)= -1299.25
TASK 2:
MAX element: 7.80
Positions: 4,1
TASK 3:
Matrix B:
36.87 -98.26 53.67 52.22 40.17
88.80 61.68 107.24 -63.00 74.98
52.79 -26.58 7.86 -57.68 -31.20
-38.90 48.74 -112.98 -83.71 -145.04
9.87 -153.74 125.88 174.14 -22.70
TASK 4:
New matrix A:
1.9 3.7 -4.9 3.5 4.4
2.7 3.9 -3.9 -4.4 -6.8
-2.1 -7.2 3.1 -0.4 5.9
-8.4 7.8 1.9 4.6 1.6
5.8 3.7 7.5 -4.7 4.6
Під час виконання програми результати у аналогічному вигляді виводяться на екран.
СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ
1. Бартеньев О. В. Современный Фортран. М.: Диалог-МИФИ, 2005. 400 с.
2. Гарт Е Л., Лецер Ю. О. Лабораторний практикум з програмування та алгоритмічних мов. Д.: РВВ ДНУ, 2009. 50 с.
3. Немнюгин С. А. Современный Фортран: Самоучитель / С. А. Немнюгин, О. Л. Стесик. СП6: БХВПетербург, 2004. 496 с.
ДОДАТОК. ЛІСТИНГ ПРОГРАМИ
program twothree
parameter(n=5)
dimension a1(n,n),a2(n,n),a(n,n),b(n,n),p(n)
integer x,y
real v
open(1, file='in.txt')
read(1,*) ((a1(i,j),j=1,n),i=1,n)
read(1,*) ((a2(i,j),j=1,n),i=1,n)
do i=1,n
do j=1,n
a(i,j)=a1(i,j)+0.3*a2(i,j)
enddo
enddo
open(2,file='out.txt')
write(2,3) ((a(i,j),j=1,n),i=1,n)
write(*,3) ((a(i,j),j=1,n),i=1,n)
3 format('Matrix A: '//(<N>(F4.1,2x))/)
write(*,*) 'TASK 1: '
write(2,*) 'TASK 1: '
*Вызов первой функции
v=umnoj(a,p,n)
do i=1,n
write(*,4) i,p(i)
write(2,4) i,p(i)
enddo
4 format('P(',i1,')= ',F10.2,/)
write(*,*) 'TASK 2: '
write(2,*) 'TASK 2: '
*Вызов второй функции
write(*,5) findmax(a,n,x,y),x,y
write(2,5) findmax(a,n,x,y),x,y
5 format('MAX element: ',F6.2,/'Positions: ',i1,',',i1,/)
write(*,*) 'TASK 3: '
write(2,*) 'TASK 3: '
*Вызов первой процедуры
call transpon(a,a1,a2,b,n)
write(2,6) ((b(i,j),j=1,n),i=1,n)
write(*,6) ((b(i,j),j=1,n),i=1,n)
6 format('Matrix B: '//(<N>(F8.2,1x))/)
write(*,*) 'TASK 4: '
write(2,*) 'TASK 4: '
*Вызов второй процедуры
call twist(a,n)
write(2,7) ((a(i,j),j=1,n),i=1,n)
write(*,7) ((a(i,j),j=1,n),i=1,n)
7 format('New matrix A: '//(<N>(F6.1,2x))/)
close(1)
close(2)
end
*Первая функция
real function umnoj(a,p,n)
dimension a(n,n),p(n)
real mul
do j=1,n
mul=1.
do i=1,n
mul=mul*a(i,j)
enddo
p(j)=mul
enddo
umnoj=2
return
end
*Вторая функция
real function findmax(a,n,x,y)
dimension a(n,n)
real max
integer x,y
max=a(1,1)
x=1
y=1
do i=1,n
do j=1,n
if (a(i,j).GT.max) then
max=a(i,j)
x=i
y=j
endif
enddo
enddo
findmax=max
return
end
*Первая процедура
subroutine transpon(a,a1,a2,b,n)
dimension a(n,n),a1(n,n),a2(n,n),b(n,n)
real s
do i=1,n
do j=1,n
a1(i,j)=a(j,i)-a(i,j)
a2(i,j)=a(i,j)+a(j,i)
enddo
enddo
do i=1,n
do j=1,n
s=0.
do k=1,n
s=s+a1(i,k)*a2(k,j)
enddo
b(i,j)=s
enddo
enddo
end
*Вторая процедура
subroutine twist(a,n)
dimension a(n,n)
real max,min,t
integer x1,x2,y1,y2
x1=1
y1=1
x2=1
y2=1
min=a(1,1)
max=a(1,1)
do i=1,n
do j=1,n
if (a(i,j).GT.max) then
max=a(i,j)
x1=i
y1=j
endif
if (min.GT.a(i,j)) then
min=a(i,j)
x2=i
y2=j
endif
enddo
enddo
a(x2,y2)=max
a(x1,y1)=min
end
ні
так
Початок
min=a(i,j)
mi=i,mj=j
і
так
a(i,j)>max
ні
max=a(1,1)
mi=1,mj=1
j=j+1
i=i+1
j=<n
j=1
так
i=1
#2
x,n,{ai,j}, i,j=1,n
i=<n
Кінець
ні
j=j+1
i=i+1
i=<n
i=1
так
i=1
#4
x,n,{ai,j}, i,j=1,n
j=<n
j=1
dob=1
Кінець
видозмінена матриця А , А
Початок
c(i,j)=a(j,i)-a(i,j)
d(i,j)=a(i,j)+a(j,i)
ні
j=j+1
i=i+1
s=s+c(i,k)*d(k,j)
k=<n
j=<n
j=1
так
i=1
#3
x,n,{ai,j}, {bi,j}, i,j=1,n
i=<n
Кінець
k=1
матриця B , B
найбільший за модулем елемент, max, координати, mi, mj
#1
dob=dob*a(i,j)
x,n,{ai,j}, i,j=1,n
j=<n
Кінець
номер стовпчика , j,
добуток, dob
ні
s=0
j=j+1
i=i+1
j=<n
j=1
так
i=<n
ні
так
ні
так
Початок
так
Початок
k=k+1
b(i,j)=s
ні
так
j=j+1
x1=1,y1=1,
x2=1,y2=1min=a(1,1)
max=a(1,1)
a(i,j)>max
ні
ні
max=a(i,j),
x1=i,y1=j
так
a(i,j)<min
min=a(i,n),
x2=i,y2=j
так
ні
a(x1,y1)=min
a(x2,y2)=max
i=<n
1
1
i=i+1
j=1
ні
так