Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Курсовая, вариант 2

.3.doc
Скачиваний:
34
Добавлен:
01.05.2014
Размер:
105.98 Кб
Скачать
    1. Формулировка условия задачи

    2. Пример решения задачи

  1. Формализованная постановка задачи

    1. Способ получения результата по исходным данным

    2. Выбор и описание метода решения задачи

    3. Исходные данные и форма их представления

    4. Форма представления результатов выполнения программы

    5. Перечень исключительных ситуаций и требуемой реакции программы

  2. Алгоритмизация

  3. Программирование и отладка

    1. Текст программы

  4. Испытание программы

    1. Пример 1

  5. Краткая характеристика программы

  6. Заключение

  1. СОДЕРЖАТЕЛЬНАЯ ПОСТАНОВКА ЗАДАЧИ

    1. Формулировка задачи

Выполнить над прямоугольной матрицей В размером m х n последовательность действий, указанную в задании.

а) построить матрицу С = А  В, где А - прямоугольная матрица, размером n х m;

б) в матрице С найти суммы элементов строк и столбцов, на пересечении которых лежат отрицательные элементы.

    1. Пример решения задачи

Матрица А: Матрица В:

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

  1. ФОРМАЛИЗОВАННАЯ ПОСТАНОВКА ЗАДАЧИ

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 отрицательное или нулевое, то мы должны ввести его правильно, пока не введем правильное.

  1. АЛГОРИТМИЗАЦИЯ

  1. ПРОГРАММИРОВАНИЕ И ОТЛАДКА

    1. Текст программы

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

Соседние файлы в предмете Информатика