Курсовая, вариант 2
.3.doc-
Формулировка условия задачи
-
Пример решения задачи
-
Формализованная постановка задачи
-
Способ получения результата по исходным данным
-
Выбор и описание метода решения задачи
-
Исходные данные и форма их представления
-
Форма представления результатов выполнения программы
-
Перечень исключительных ситуаций и требуемой реакции программы
-
-
Алгоритмизация
-
Программирование и отладка
-
Текст программы
-
-
Испытание программы
-
Пример 1
-
-
Краткая характеристика программы
-
Заключение
-
СОДЕРЖАТЕЛЬНАЯ ПОСТАНОВКА ЗАДАЧИ
-
Формулировка задачи
-
Выполнить над прямоугольной матрицей В размером m х n последовательность действий, указанную в задании.
а) построить матрицу С = А В, где А - прямоугольная матрица, размером n х m;
б) в матрице С найти суммы элементов строк и столбцов, на пересечении которых лежат отрицательные элементы.
-
Пример решения задачи
Матрица А: Матрица В:
2 6 5 -2 3 3 0 6
2 5 9 0 6 4 -3 6
6 5 9 0 6 6 6 1
1 2 8
2 7 9
Формирование матрицы С путем умножения матрицы А на натрицу В:
- 4 72 60
-4 90 80
-12 102 92
в матрице С находим суммы элементов строк и столбцов, на пересечении которых лежат отрицательные элементы:
Summa v stroke 1 = 128
Summa v stolbce 1 =-20
Summa v stroke 2 = 166
Summa v stolbce 1 =-20
Summa v stroke 3 = 182
Summa v stolbce 1 =-20
-
ФОРМАЛИЗОВАННАЯ ПОСТАНОВКА ЗАДАЧИ
2.1 Способ получения результатов по исходным данным
Для решения этой задачи необходимо из двух данных матриц получить третью путем их умножения друг на друга. Затем необходимы вычислить суммы элементов тех строк и столбцов полученной матрицы, на пересечении которых находятся отрицательные элементы.
2.2 Выбор и описания метода решения задачи
Способ получения результатов по исходным данным
Задаются матрица А и матрица В, путем перемножения которых формируется третья. Далее каждый элемент полученной матрицы сравнивается с нулем и если C[i,j]<0, то находятся суммы элементов i-той строки и j-того столбца.
2.3 исходные данные и форма их представления
обозначение |
назначение |
тип |
структура |
m |
Число строк матрицы B и столбцов матрицы А |
integer |
Скаляр |
n |
Число строк матрицы А и столбцов матрицы В |
integer |
Скаляр |
А |
Матрица А |
integer |
Двумерный массив нижняя граница строк и столбцов 1. Верхняя - строк 10, столбцов 20 |
В |
Матрица В |
integer |
Двумерный массив нижняя граница строк и столбцов 1. Верхняя - строк 20, столбцов 10 |
2.4Форма представления результатов выполнения программы
обозначение |
назначение |
тип |
структура |
C |
Матрица С |
Integer |
Двумерный массив с нижней границей 1 и верхней границей 100 |
I |
Строка в матрице С |
Integer |
скаляр |
J |
Столбец в матрице С |
Integer |
скаляр |
Sstr |
Сумма элементов строки |
Integer |
скаляр |
Sstb |
Сумма элементов столбца |
Integer |
скаляр |
2.5Перечень исключительных ситуаций и требуемой редакции программы.
1)если вводим m отрицательное или нулевое, то мы должны ввести его правильно, пока не введем правильное.
2)если вводим n отрицательное или нулевое, то мы должны ввести его правильно, пока не введем правильное.
-
АЛГОРИТМИЗАЦИЯ
-
ПРОГРАММИРОВАНИЕ И ОТЛАДКА
-
Текст программы
-
Program matrixx;
uses crt;
var a:array[1..10,1..20]of integer;
b:array[1..20,1..10]of integer;
c:array[1..10,1..10]of integer;
i,j,k,m,n,l,sstr,sstb,f:integer;
begin
clrscr;
WriteLn('Vvedite chislo strok matrcy b / stolbcov matricy a; Vvedite chislo strok matrcy a / stolbcov matricy b');
ReadLn(m,n);
randomize;
writeln('Matrica A:');
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=random(9)+1;
write(a[i,j]:4);
end;
writeln;
end;
writeln('Matrica B:');
for i:=1 to m do
begin
for j:=1 to n do
begin
b[i,j]:=random(10)-3;
write(b[i,j]:4);
end;
writeln;
end;
readln;
for k:=1 to n do {umnozenie}
for j:=1 to m do
begin
c[k,j]:=0;
for i:=1 to m do
begin
c[k,j]:=c[k,j]+a[k,i]*b[i,j];
end;
end;
writeln('Matrica C=A*B:');
for i:=1 to m do
begin
for j:=1 to m do
write(c[i,j]:5);
writeln;
end;
f:=0;
for i:=1 to m do
for j:=1 to m do
if c[i,j]<0 then
begin
f:=1;
sstr:=0;
for k:=1 to m do sstr:=sstr+c[i,k];{сумма по строке}
writeln('Summa v stroke ',i,' =',sstr);
sstb:=0;
for l:=1 to m do sstb:=sstb+c[l,j]; {сумма по столбцу}
writeln('Summa v stolbce ',j,' =',sstb);
end;
if f=0 then writeln('Otricatelnyh elementov v matrice net!');
readln
end.
5.Испытание программы
5.1 Пример 1
Vvedite chislo strok matrcy b / stolbcov matricy a; Vvedite chislo strok matrcy a / stolbcov matricy b ==> 3, 2
Matrica A:
8 4 7
8 6 2
Matrica B:
0 -1
4 3
-3 0
==> entrer
Matrica C=A*B:
-5 4 0
18 10 0
0 0 0
Summa v stroke 1 = -1
Summa v stroke 1 =13
6.КРАТКАЯ ХАРАКТЕРИСТИКА ПРОГРАММЫ
Наименование программы: matrixx.
Назначение программы: Выполнить над прямоугольной матрицей В размером m х n последовательность преобразований:
а) построить матрицу С = А В, где А - прямоугольная матрица, размером n х m;
б) в матрице С найти суммы элементов строк и столбцов, на пересечении которых лежат отрицательные элементы.
Формат вызова программы: ≥ matrixx≤ Enter
Объем программы на носителе данных: 1,39 Кбайт.
7. ЗАКЛЮЧЕНИЕ
Программа отлажена в дисплейном кансоле на компьютере и функционирует без сбоев.
Министерство образования Российской Федерации
Санкт-Петербургский государственный электротехнический университет «ЛЭТИ»
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА К КУРСОВОЙ РАБОТЕ
По дисциплине «И Н Ф О Р М А Т И К А»
Шифр Задание 2.3
Выполнил студент гр. 8203 XXXXXXX XXXXX
Санкт-Петербург
2008