Реферат: Turbo Paskal "Операции над матрицами"

ГосударственныйКомитет Российской Федерации

по Высшему Образованию

Санкт-ПетербургскийГосударственныйЭлектротехнический Университет «ЛЭТИ»

КафедраРадиосистем

ПояснительнаяЗаписка

кКурсовой Работе по Дисциплине

«Информатика. Основы Программирования»

Вариант№9: «Операции над Матрицами»

Выполнил:  студент Чапчаев В.В.

                     факультет: РТ

                     уч.группа: № 2142

Проверил:   ассистент Аникин А.П.

Санкт – Петербург

2 0 0 3

Условие задачи

Программа работает в текстовом режиме. Пользовательвыбирает операцию, вводит с клавиатуры размер матрицы и значения элементовматрицы. Программа выполняет заданную операцию и выводит на экран ее результат.Для реализации в программе предлагаются следующие операции: перемножение двухматриц, транспонирование, вычисление определителя, вычисление обратной матрицы,сложение (вычитание) двух матриц.

Метод решениязадачи

После запуска программы, пользователю предлагаетсявыбрать требуемую операцию: нахождение определителя, обратной матрицы,транспонированной матрицы, сложение или вычитание двух матриц, умножение двухматриц. Это производится по средствам ввода пользователем цифры,соответствующей данной операции. Далее следует запрос о размерах данной матрицы(кол-ве строк и столбцов), после ввода которых программа проверяет, чтобывведенные значения не были отрицательными или не превышали допустимых размеровматрицы (в программе – 10х10). В случае, если перечисленные условия невыполняются, на экран выводится сообщение об ошибке, и программа завершаетработу. При выполнении условий, пользователю предлагается ввести с клавиатурыисходную матрицу «А» (в программе – MAS1). Ввод производится построчно, для перехода к следующейстроке, пользователю необходимо нажать клавишу «ENTER». Послетого, как число строк становится равным числу, введенному пользователем, вводматрицы прекращается. Введенная матрица выводится на экран для проверки. Далееследует проверка «пригодности» введенной матрицы к операции, выбранной пользователем,в случае «непригодности» матрицы, на экран выводится сообщение об ошибке, ипрограмма завершает работу. В случае «пригодности» матрицы, над нейпроизводится выбранная операция, после чего на экран выводится сообщение орезультате. Если пользователем была выбрана операция, требующая вторую матрицу«В» (в программе – MAS2),пользователю предлагается ввести ее размеры, как и при вводе матрицы «А», далеепрограмма проверяет, возможно ли проведение выбранной операции над матрицами свведенными параметрами. Если операция невозможна, то на экран выводитсясообщение об ошибке, и программа завершает работу. Иначе, операция выполняется,и ее результирующая матрица «С» (в программе – MAS3) выводится на экран.

Ввод матриц возможен только с клавиатуры,непосредственно при выполнении программы. Ввод данных «из файла» непредусмотрен, т.к. этот вариант в условии задачи не оговаривается.

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

Переменные

Структура

Тип

Назначение

MAS1, MAS2, MAS3

Двумерный массив

Вещественный

Матрицы «А», «В», «С»

i1, i2, i3

Переменные

Целочисленный

Счетчик строк матриц А, В и С соответственно

j1, j2, j3

Переменные

Целочисленный

Счетчик столбцов матриц А, В и С соответственно

m1, m2, m3

Переменные

Целочисленный

Кол-во строк матриц А, В и С соответственно

n1, n2, n3

Переменные

Целочисленный

Кол-во столбцов матриц А, В и С соответственно

operation

Переменные

Целочисленный

Вариант программы

det

Переменные

Вещественный

Определитель

k

Переменные

Целочисленный

Рабочая переменная

Блок – схемапрограммы

Начало Case operation

Operation = 1

Operation = 2

Operation = 3

Operation = 6

Вводoperation

НЕТ

Вводm1 Вводn1

1>n1 or n1>10

or 1>m1 or m1>10

ДА

Ввод MAS1

Вывод MAS1

Подсчет det

Вывод det

Подсчет обр.матр.

Вывод обр.матр.

Транспонир. матрицы

Вывод

транспонир. матрицы

Operation = 4,5

Вводm2 Вводn2

n1<>n2 or m1<>m2

ДА

НЕТ

Ввод MAS2

Вывод MAS2

Operation = 4

ДА

k :=1

НЕТ

Operation = 5

ДА

k :=-1

Вывод MAS3

(сумма/разность)

1

2

3

4

5

6

7

<img src="/cache/referats/15778/image001.gif" v:shapes="_x0000_s1330 _x0000_s1026 _x0000_s1027 _x0000_s1028 _x0000_s1029 _x0000_s1030 _x0000_s1036 _x0000_s1037 _x0000_s1039 _x0000_s1040 _x0000_s1043 _x0000_s1044 _x0000_s1045 _x0000_s1046 _x0000_s1049 _x0000_s1050 _x0000_s1052 _x0000_s1074 _x0000_s1054 _x0000_s1055 _x0000_s1056 _x0000_s1057 _x0000_s1058 _x0000_s1061 _x0000_s1067 _x0000_s1060 _x0000_s1062 _x0000_s1063 _x0000_s1064 _x0000_s1065 _x0000_s1066 _x0000_s1068 _x0000_s1069 _x0000_s1070 _x0000_s1071 _x0000_s1072 _x0000_s1073 _x0000_s1075 _x0000_s1076 _x0000_s1082 _x0000_s1184 _x0000_s1085 _x0000_s1086 _x0000_s1090 _x0000_s1091 _x0000_s1092 _x0000_s1093 _x0000_s1095 _x0000_s1096 _x0000_s1099 _x0000_s1106 _x0000_s1097 _x0000_s1098 _x0000_s1100 _x0000_s1101 _x0000_s1102 _x0000_s1103 _x0000_s1104 _x0000_s1105 _x0000_s1108 _x0000_s1109 _x0000_s1110 _x0000_s1111 _x0000_s1113 _x0000_s1115 _x0000_s1116 _x0000_s1117 _x0000_s1118 _x0000_s1119 _x0000_s1121 _x0000_s1137 _x0000_s1120 _x0000_s1122 _x0000_s1123 _x0000_s1124 _x0000_s1125 _x0000_s1126 _x0000_s1130 _x0000_s1132 _x0000_s1134 _x0000_s1135 _x0000_s1345 _x0000_s1143 _x0000_s1139 _x0000_s1140 _x0000_s1141 _x0000_s1142 _x0000_s1145 _x0000_s1146 _x0000_s1147 _x0000_s1148 _x0000_s1149 _x0000_s1150 _x0000_s1151 _x0000_s1153 _x0000_s1154 _x0000_s1176 _x0000_s1177 _x0000_s1178 _x0000_s1179 _x0000_s1180 _x0000_s1251 _x0000_s1252 _x0000_s1253 _x0000_s1254 _x0000_s1259 _x0000_s1157 _x0000_s1158 _x0000_s1159 _x0000_s1160 _x0000_s1161 _x0000_s1162 _x0000_s1163 _x0000_s1164 _x0000_s1165 _x0000_s1166 _x0000_s1167 _x0000_s1168 _x0000_s1169 _x0000_s1170 _x0000_s1171 _x0000_s1172 _x0000_s1173 _x0000_s1175 _x0000_s1181 _x0000_s1182 _x0000_s1183 _x0000_s1241 _x0000_s1186 _x0000_s1234 _x0000_s1187 _x0000_s1201 _x0000_s1188 _x0000_s1189 _x0000_s1190 _x0000_s1192 _x0000_s1206 _x0000_s1207 _x0000_s1212 _x0000_s1205 _x0000_s1191 _x0000_s1193 _x0000_s1194 _x0000_s1195 _x0000_s1196 _x0000_s1197 _x0000_s1198 _x0000_s1199 _x0000_s1200 _x0000_s1203 _x0000_s1204 _x0000_s1208 _x0000_s1209 _x0000_s1210 _x0000_s1211 _x0000_s1215 _x0000_s1216 _x0000_s1217 _x0000_s1218 _x0000_s1219 _x0000_s1220 _x0000_s1221 _x0000_s1222 _x0000_s1223 _x0000_s1224 _x0000_s1225 _x0000_s1230 _x0000_s1231 _x0000_s1232 _x0000_s1233 _x0000_s1314 _x0000_s1243 _x0000_s1245 _x0000_s1250 _x0000_s1258 _x0000_s1287 _x0000_s1338 _x0000_s1339 _x0000_s1340 _x0000_s1341 _x0000_s1342 _x0000_s1343 _x0000_s1344">

Ввод MAS2

Вывод MAS2

m3:= m1

n3:= n2

Вывод MAS3

(произведение)

Вводm2 Вводn2

1>=m2 or m2>10

or 1>=n2 or n2>10

n2<>m1

ДА

НЕТ

Текст: «Ошибка»

Конец <img src="/cache/referats/15778/image002.gif" v:shapes="_x0000_s1255 _x0000_s1256"> <img src="/cache/referats/15778/image003.gif" v:shapes="_x0000_s1270 _x0000_s1271 _x0000_s1278 _x0000_s1288 _x0000_s1289 _x0000_s1320 _x0000_s1077 _x0000_s1296 _x0000_s1297 _x0000_s1298 _x0000_s1299 _x0000_s1300 _x0000_s1301 _x0000_s1302 _x0000_s1303 _x0000_s1305 _x0000_s1306 _x0000_s1307 _x0000_s1308 _x0000_s1309 _x0000_s1310 _x0000_s1311 _x0000_s1312 _x0000_s1315 _x0000_s1316 _x0000_s1317 _x0000_s1318 _x0000_s1322 _x0000_s1347 _x0000_s1272 _x0000_s1273 _x0000_s1274 _x0000_s1275 _x0000_s1276 _x0000_s1277 _x0000_s1280 _x0000_s1281 _x0000_s1282 _x0000_s1285 _x0000_s1286 _x0000_s1290 _x0000_s1291 _x0000_s1292 _x0000_s1293 _x0000_s1294 _x0000_s1295 _x0000_s1304 _x0000_s1078 _x0000_s1283 _x0000_s1284 _x0000_s1313 _x0000_s1319 _x0000_s1321 _x0000_s1323 _x0000_s1325 _x0000_s1337 _x0000_s1327 _x0000_s1328 _x0000_s1331 _x0000_s1332 _x0000_s1333">


<span Times New Roman",«serif»; mso-fareast-font-family:«MS Mincho»">Текст Программы:

<span MS Mincho"">

<span MS Mincho"">

<span MS Mincho";mso-ansi-language:EN-US">Program

<span MS Mincho""> <span MS Mincho";mso-ansi-language:EN-US">MATRIX<span MS Mincho"">;            {Наименование программы}

<span MS Mincho";mso-ansi-language:EN-US">Uses CRT;

<span MS Mincho";mso-ansi-language:EN-US">VAR i1, i2,i3: integer;  {

<span MS Mincho"">Счетчик<span MS Mincho";mso-ansi-language:EN-US"> <span MS Mincho"">строк<span MS Mincho";mso-ansi-language:EN-US">}

<span MS Mincho";mso-ansi-language:EN-US">    j1, j2, j3: integer;  {

<span MS Mincho"">Счетчик<span MS Mincho"; mso-ansi-language:EN-US"> <span MS Mincho"">столбцов<span MS Mincho";mso-ansi-language:EN-US">}

<span MS Mincho";mso-ansi-language:EN-US">operation

<span MS Mincho"">: <span MS Mincho";mso-ansi-language:EN-US">integer<span MS Mincho"">;   {Вариант развития программы}

<span MS Mincho"; mso-ansi-language:EN-US">det

<span MS Mincho""> :      <span MS Mincho";mso-ansi-language:EN-US">real<span MS Mincho"">;       {Определитель}<span MS Mincho";mso-ansi-language:EN-US">k<span MS Mincho"">:  <span MS Mincho"; mso-ansi-language:EN-US">integer<span MS Mincho"">;          {Рабочаяпеременная}

<span MS Mincho"">

<span MS Mincho"">    {Массивы (матрицы),используемые в программе}

<span MS Mincho"">   

<span MS Mincho";mso-ansi-language:EN-US">MAS<span MS Mincho"">1,  {Матрица А}              

<span MS Mincho"">   

<span MS Mincho";mso-ansi-language:EN-US">MAS<span MS Mincho"">2,  {Матрица В}

<span MS Mincho"">   

<span MS Mincho";mso-ansi-language:EN-US">MAS3:array [1..10,1..10] of real;   {<span MS Mincho"">Матрица<span MS Mincho";mso-ansi-language:EN-US"> <span MS Mincho"">С<span MS Mincho";mso-ansi-language:EN-US">}

<span MS Mincho";mso-ansi-language:EN-US">

<span MS Mincho";mso-ansi-language:EN-US">BEGIN

<span MS Mincho""> {Начало программы}

<span MS Mincho"">    

<span MS Mincho"; mso-ansi-language:EN-US">WriteLn<span MS Mincho""> ('Что Вы желаете делать с матрицами?');

<span MS Mincho"">     {Выбор пользователемварианта развития программы}

<span MS Mincho"">    

<span MS Mincho"; mso-ansi-language:EN-US">WriteLn<span MS Mincho""> ('Если Вы желаете найти определитель матрицы, нажмите 1');

<span MS Mincho"">    

<span MS Mincho"; mso-ansi-language:EN-US">WriteLn<span MS Mincho""> ('Если Вы желаете найти обратную матрицу, нажмите 2');

<span MS Mincho"">    

<span MS Mincho";mso-ansi-language:EN-US">WriteLn<span MS Mincho""> ('Если Вы желаете транспонироватьматрицу, нажмите 3');

<span MS Mincho"">    

<span MS Mincho"; mso-ansi-language:EN-US">WriteLn<span MS Mincho""> ('Если Вы желаете сложить матрицы, нажмите 4');

<span MS Mincho"">    

<span MS Mincho"; mso-ansi-language:EN-US">WriteLn<span MS Mincho""> ('Если Вы желаете вычесть матрицы, нажмите 5');

<span MS Mincho"">    

<span MS Mincho"; mso-ansi-language:EN-US">WriteLn<span MS Mincho""> ('Если Вы желаете перемножить матрицы, нажмите 6');

<span MS Mincho"">    

<span MS Mincho";mso-ansi-language:EN-US">ReadLn<span MS Mincho""> (<span MS Mincho";mso-ansi-language:EN-US">operation<span MS Mincho"">); {Занесение выбранного варианта впамять}

<span MS Mincho"">

<span MS Mincho"">    

<span MS Mincho"; mso-ansi-language:EN-US">WriteLn<span MS Mincho""> ('Введите кол-во строк исходной матрицы, не более 10');

<span MS Mincho"">    

<span MS Mincho"; mso-ansi-language:EN-US">ReadLn<span MS Mincho""> (<span MS Mincho"; mso-ansi-language:EN-US">m<span MS Mincho"">1);

<span MS Mincho"">    

<span MS Mincho"; mso-ansi-language:EN-US">WriteLn<span MS Mincho""> ('Введите кол-во столбцов исходной матрицы, не более 10');

<span MS Mincho"">

<span MS Mincho"">

<span MS Mincho"">    

<span MS Mincho"; mso-ansi-language:EN-US">ReadLn<span MS Mincho";mso-ansi-language:EN-US"> (n1);

<span MS Mincho";mso-ansi-language:EN-US">      If ((1>n1) or  (n1>10) or (1>m1) or  (m1>10)) {

<span MS Mincho"">Условия<span MS Mincho"; mso-ansi-language:EN-US"> <span MS Mincho"">ошибки<span MS Mincho";mso-ansi-language:EN-US">}

<span MS Mincho";mso-ansi-language:EN-US">        then begin

<span MS Mincho";mso-ansi-language:EN-US">               WriteLn('

<span MS Mincho"">ОШИБКА<span MS Mincho";mso-ansi-language:EN-US">!!!');

<span MS Mincho";mso-ansi-language:EN-US">               Halt;

<span MS Mincho";mso-ansi-language:EN-US">             end

<span MS Mincho";mso-ansi-language:EN-US">        else begin

<span MS Mincho";mso-ansi-language:EN-US">               WriteLn

<span MS Mincho""> ('Введите исходную матрицу');  {Ввод исходной матрицы}

<span MS Mincho"">               

<span MS Mincho";mso-ansi-language:EN-US">for i1:=1to m1 do

<span MS Mincho";mso-ansi-language:EN-US">                  for j1:=1 to n1 do Read(MAS1[i1,j1]);

<span MS Mincho";mso-ansi-language:EN-US">              end;

<span MS Mincho";mso-ansi-language:EN-US">

<span MS Mincho";mso-ansi-language:EN-US">               for i1:=1 to m1 do   {

<span MS Mincho"">Вывод<span MS Mincho"; mso-ansi-language:EN-US"> <span MS Mincho"">исходной<span MS Mincho";mso-ansi-language:EN-US"> <span MS Mincho"">матрицы<span MS Mincho";mso-ansi-language:EN-US">}

<span MS Mincho";mso-ansi-language:EN-US">                      begin

<span MS Mincho";mso-ansi-language:EN-US">                       for j1:=1 to n1 do

<span MS Mincho";mso-ansi-language:EN-US">                        Write (MAS1[i1,j1]);

<span MS Mincho";mso-ansi-language:EN-US">                        WriteLn;

<span MS Mincho";mso-ansi-language:EN-US">                      end;

<span MS Mincho";mso-ansi-language:EN-US">

<span MS Mincho";mso-ansi-language:EN-US">          Case operation of  {Оператор выбора «operation»}

<span MS Mincho";mso-ansi-language:EN-US">              1: begin  {

<span MS Mincho"">Определитель<span MS Mincho";mso-ansi-language:EN-US">}

<span MS Mincho";mso-ansi-language:EN-US">                    if (m1<>n1) then writeLn ('

<span MS Mincho"">ОШИБКА<span MS Mincho";mso-ansi-language:EN-US">!!!')<span MS Mincho"">{Условие ошибки}

<span MS Mincho"">                   

<span MS Mincho";mso-ansi-language:EN-US">else<span MS Mincho"">

<span MS Mincho"">                       

<span MS Mincho";mso-ansi-language:EN-US">begin<span MS Mincho""> {Формула определителя}

<span MS Mincho"">                        

<span MS Mincho"; mso-ansi-language:EN-US">det<span MS Mincho";mso-ansi-language:EN-US">:=(MAS1[1,1]*MAS1[2,2]*MAS1[3,3]

<span MS Mincho";mso-ansi-language:EN-US">                        +MAS1[2,1]*MAS1[3,2]*MAS1[1,3]

<span MS Mincho";mso-ansi-language:EN-US">

<span MS Mincho";mso-ansi-language:EN-US">                        +MAS1[1,2]*MAS1[2,3]*MAS1[3,1])

<span MS Mincho";mso-ansi-language:EN-US">                        -(MAS1[3,1]*MAS1[2,2]*MAS1[1,3]

<span MS Mincho";mso-ansi-language:EN-US">                        +MAS1[3,2]*MAS1[2,3]*MAS1[1,1]

<span MS Mincho";mso-ansi-language:EN-US">                        +MAS1[2,1]*MAS1[1,2]*MAS1[3,3]);

<span MS Mincho";mso-ansi-language:EN-US">                         WriteLn('Opredelitel det=',det); {

<span MS Mincho"">Вывод<span MS Mincho";mso-ansi-language:EN-US"> <span MS Mincho"">определителя<span MS Mincho";mso-ansi-language:EN-US">}

<span MS Mincho";mso-ansi-language:EN-US">                        end;

<span MS Mincho";mso-ansi-language:EN-US">                 end;

<span MS Mincho";mso-ansi-language:EN-US">

<span MS Mincho";mso-ansi-language:EN-US">              2: begin  {

<span MS Mincho"">Обратная<span MS Mincho"; mso-ansi-language:EN-US"> <span MS Mincho"">матрица<span MS Mincho";mso-ansi-language:EN-US">}

<span MS Mincho";mso-ansi-language:EN-US">                   if (m1<>n1) then WriteLn ('

<span MS Mincho"">ОШИБКА<span MS Mincho";mso-ansi-language:EN-US">!!!'){<span MS Mincho"">Условие<span MS Mincho";mso-ansi-language:EN-US"> <span MS Mincho"">ошибки<span MS Mincho";mso-ansi-language:EN-US">}

<span MS Mincho";mso-ansi-language:EN-US">                   else begin

<span MS Mincho";mso-ansi-language:EN-US">                          det:=(MAS1[1,1]*MAS1[2,2]*MAS1[3,3]{

<span MS Mincho"">Определитель<span MS Mincho";mso-ansi-language:EN-US">}

<span MS Mincho";mso-ansi-language:EN-US">                         +MAS1[2,1]*MAS1[3,2]*MAS1[1,3]

<span MS Mincho";mso-ansi-language:EN-US">                         +MAS1[1,2]*MAS1[2,3]*MAS1[3,1])

<span MS Mincho";mso-ansi-language:EN-US">                         -(MAS1[3,1]*MAS1[2,2]*MAS1[1,3]

<span MS Mincho";mso-ansi-language:EN-US">                         +MAS1[3,2]*MAS1[2,3]*MAS1[1,1]

<span MS Mincho";mso-ansi-language:EN-US">                          +MAS1[2,1]*MAS1[1,2]*MAS1[3,3]);

<span MS Mincho";mso-ansi-language:EN-US">                          if det = 0 then WriteLn ('

<span MS Mincho"">ОШИБКА<span MS Mincho";mso-ansi-language:EN-US">!!!') {<span MS Mincho"">Условие<span MS Mincho";mso-ansi-language:EN-US"> <span MS Mincho"">ошибки<span MS Mincho";mso-ansi-language:EN-US">}

<span MS Mincho";mso-ansi-language:EN-US">                          else begin {Союзная матрица}

<span MS Mincho";mso-ansi-language:EN-US">                                 for i1:=1 tom1 do

<span MS Mincho";mso-ansi-language:EN-US">                                     for j1:=1 to n1 doMAS2[i1,j1]:=MAS1[j1,i1];

<span MS Mincho";mso-ansi-language:EN-US">                                 {

<span MS Mincho"">Итоговая<span MS Mincho";mso-ansi-language:EN-US"> <span MS Mincho"">формула<span MS Mincho";mso-ansi-language:EN-US">}             

<span MS Mincho";mso-ansi-language:EN-US">                                for i1:=1 to m1 do

<span MS Mincho";mso-ansi-language:EN-US">                                     for j1:=1to n1 do                                                                                                        MAS3[i1,j1]:=(1/det)*MAS2[i1,j1];

<span MS Mincho";mso-ansi-language:EN-US">                                 WriteLn

<span MS Mincho"">;

<span MS Mincho"">                                

<span MS Mincho";mso-ansi-language:EN-US">WriteLn<span MS Mincho""> ('Обратная матрица:');

<span MS Mincho"">                                

<span MS Mincho"; mso-ansi-language:EN-US">for i1:=1 to m1 do begin {<span MS Mincho"">Вывод<span MS Mincho";mso-ansi-language:EN-US"> <span MS Mincho"">обратной<span MS Mincho"; mso-ansi-language:EN-US"> <span MS Mincho"">матрицы<span MS Mincho";mso-ansi-language:EN-US">}

<span MS Mincho";mso-ansi-language:EN-US">                                                      forj1:=1 to n1 do

<span MS Mincho";mso-ansi-language:EN-US">                                                     Write (MAS3[i1,j1]);

<span MS Mincho";mso-ansi-language:EN-US">                                                     WriteLn;

<span MS Mincho";mso-ansi-language:EN-US">                                                   end;

<span MS Mincho";mso-ansi-language:EN-US">                               end;

<span MS Mincho";mso-ansi-language:EN-US">                        end

<span MS Mincho"">;

<span MS Mincho"">                

<span MS Mincho";mso-ansi-language:EN-US">end<span MS Mincho"">;

<span MS Mincho"">

<span MS Mincho"">              3:

<span MS Mincho";mso-ansi-language:EN-US">begin<span MS Mincho""> {Транспонирование матрицы}

<span MS Mincho"">                  

<span MS Mincho";mso-ansi-language:EN-US">fori1:=1 to m1 do

<span MS Mincho";mso-ansi-language:EN-US">                    for j1:=1 to n1 doMAS2[i1,j1]:=MAS1[j1,i1]; {

<span MS Mincho"">Формула<span MS Mincho";mso-ansi-language:EN-US">}

<span MS Mincho";mso-ansi-language:EN-US">                   WriteLn

<span MS Mincho""> ('Транспонированная матрица: ');

<span MS Mincho"">                  

<span MS Mincho";mso-ansi-language:EN-US">fori1:=1 to m1 do begin {<span MS Mincho"">Вывод<span MS Mincho";mso-ansi-language:EN-US"> <span MS Mincho"">транспонированной<span MS Mincho";mso-ansi-language:EN-US"> <span MS Mincho"">матрицы<span MS Mincho";mso-ansi-language:EN-US">}

<span MS Mincho";mso-ansi-language:EN-US">                                          forj1:=1 to n1 do

<span MS Mincho";mso-ansi-language:EN-US">                                          Write(MAS2[i1,j1]);

<span MS Mincho";mso-ansi-language:EN-US">                                          WriteLn;

<span MS Mincho";mso-ansi-language:EN-US">                                      end;

<span MS Mincho";mso-ansi-language:EN-US">                 end;

<span MS Mincho";mso-ansi-language:EN-US">

<span MS Mincho";mso-ansi-language:EN-US">             

<span MS Mincho"">4,5: <span MS Mincho"; mso-ansi-language:EN-US">begin<span MS Mincho"">{Сложение/вычитание матриц}

<span MS Mincho"">                        {Ввод второй матрицы}

<span MS Mincho"">                      

<span MS Mincho"; mso-ansi-language:EN-US">WriteLn<span MS Mincho""> ('Введите кол-во строк второй матрицы');

<span MS Mincho"">                      

<span MS Mincho"; mso-ansi-language:EN-US">ReadLn<span MS Mincho""> (<span MS Mincho"; mso-ansi-language:EN-US">m<span MS Mincho"">2);

<span MS Mincho"">                      

<span MS Mincho"; mso-ansi-language:EN-US">Writeln<span MS Mincho""> ('Введите кол-во столбцов второй матрицы');

<span MS Mincho"">                      

<span MS Mincho"; mso-ansi-language:EN-US">ReadLn<span MS Mincho";mso-ansi-language:EN-US"> (n2);

<span MS Mincho";mso-ansi-language:EN-US">                       If (n2<>n1) or(m2<>m1)

<span MS Mincho";mso-ansi-language:EN-US">                        then WriteLn ('OSHIBKA!!!') {Условие ошибки}

<span MS Mincho";mso-ansi-language:EN-US">                        else begin

<span MS Mincho";mso-ansi-language:EN-US">                                 WriteLn ('

<span MS Mincho"">Введите<span MS Mincho";mso-ansi-language:EN-US"> <span MS Mincho"">вторую<span MS Mincho";mso-ansi-language:EN-US"> <span MS Mincho"">матрицу<span MS Mincho";mso-ansi-language:EN-US">');

<span MS Mincho";mso-ansi-language:EN-US">                                 for i1:=1 tom1 do

<span MS Mincho";mso-ansi-language:EN-US">                                   for j1:=1 ton1 do

<span MS Mincho";mso-ansi-language:EN-US">                                    Read(MAS2[i1,j1]);

<span MS Mincho";mso-ansi-language:EN-US">                             end;

<span MS Mincho";mso-ansi-language:EN-US">                       for i1:=1 to m1 do   {Вывод второй матрицы}

<span MS Mincho";mso-ansi-language:EN-US">                           begin

<span MS Mincho";mso-ansi-language:EN-US">                             for j1:=1 to n1 do

<span MS Mincho";mso-ansi-language:EN-US">                             Write(MAS2[i1,j1]);

<span MS Mincho";mso-ansi-language:EN-US">                             WriteLn;

<span MS Mincho";mso-ansi-language:EN-US">                           end;

<span MS Mincho";mso-ansi-language:EN-US">

<span MS Mincho";mso-ansi-language:EN-US">                       if operation = 4 then k := 1;

<span MS Mincho";mso-ansi-language:EN-US">                       if operation = 5 then k:= -1;

<span MS Mincho";mso-ansi-language:EN-US">                       for i1:=1 to m1 do

<span MS Mincho";mso-ansi-language:EN-US">                          for j1:=1 to n1 do

<span MS Mincho";mso-ansi-language:EN-US">                           MAS3[i1,j1]:=MAS1[i1,j1]+k*MAS2[i1,j1]; {Итоговаяформула}

<span MS Mincho";mso-ansi-language:EN-US">

<span MS Mincho";mso-ansi-language:EN-US">                       writeln

<span MS Mincho"">('Сумма/разность:');

<span MS Mincho"">                      

<span MS Mincho";mso-ansi-language:EN-US">fori1:=1 to m1 do

<span MS Mincho";mso-ansi-language:EN-US">                           begin

<span MS Mincho";mso-ansi-language:EN-US">                             for j1:=1 to n1 doWrite(MAS3[i1,j1]);

<span MS Mincho";mso-ansi-language:EN-US">                             WriteLn;

<span MS Mincho";mso-ansi-language:EN-US">                           end;

<span MS Mincho";mso-ansi-language:EN-US">

<span MS Mincho";mso-ansi-language:EN-US">                   end;

<span MS Mincho";mso-ansi-language:EN-US">

<span MS Mincho";mso-ansi-language:EN-US">

<span MS Mincho";mso-ansi-language:EN-US">             

<span MS Mincho"">6:  <span MS Mincho";mso-ansi-language:EN-US">begin<span MS Mincho""> {Умножение матриц}

<span MS Mincho"">                    {Вводвторой матрицы}

<span MS Mincho"">                   

<span MS Mincho"; mso-ansi-language:EN-US">WriteLn<span MS Mincho""> ('Введите кол-во строк второй матрицы');

<span MS Mincho"">                   

<span MS Mincho"; mso-ansi-language:EN-US">ReadLn<span MS Mincho""> (<span MS Mincho"; mso-ansi-language:EN-US">m<span MS Mincho"">2);

<span MS Mincho"">                    

<span MS Mincho";mso-ansi-language:EN-US">Writeln<span MS Mincho""> ('Введите кол-во столбцов второйматрицы');

<span MS Mincho"">                   

<span MS Mincho"; mso-ansi-language:EN-US">ReadLn<span MS Mincho";mso-ansi-language:EN-US"> (n2);

<span MS Mincho";mso-ansi-language:EN-US">                    If ((1>=m2) or  (m2>=10) or (1>=n2) or  (n2>=10) {

<span MS Mincho"">Условие<span MS Mincho"; mso-ansi-language:EN-US"> <span MS Mincho"">ошибки<span MS Mincho";mso-ansi-language:EN-US">}

<span MS Mincho";mso-ansi-language:EN-US">                                or  (n2<>m1)) then WriteLn('ОШИБКА!!!')

<span MS Mincho";mso-ansi-language:EN-US">                       else

<span MS Mincho""> <span MS Mincho";mso-ansi-language:EN-US">begin<span MS Mincho"">

<span MS Mincho"">                             

<span MS Mincho";mso-ansi-language:EN-US">WriteLn<span MS Mincho""> ('Введите вторую матрицу');

<span MS Mincho"">                             

<span MS Mincho"; mso-ansi-language:EN-US">for i2:=1 to m2 do

<span MS Mincho";mso-ansi-language:EN-US">                                 for j2:=1 ton2 do Read (MAS2[i2,j2]);

<span MS Mincho";mso-ansi-language:EN-US">                            end;

<span MS Mincho";mso-ansi-language:EN-US">                    for i2:=1 to m2 do begin {

<span MS Mincho"">Вывод<span MS Mincho";mso-ansi-language:EN-US"> <span MS Mincho"">второй<span MS Mincho"; mso-ansi-language:EN-US"> <span MS Mincho"">матрицы<span MS Mincho";mso-ansi-language:EN-US">}

<span MS Mincho";mso-ansi-language:EN-US">                                         forj2:=1 to n2 do

<span MS Mincho";mso-ansi-language:EN-US">                                         Write(MAS2[i2,j2]);

<span MS Mincho";mso-ansi-language:EN-US">                                         WriteLn;

<span MS Mincho";mso-ansi-language:EN-US">                                       end;

<span MS Mincho";mso-ansi-language:EN-US">                    m3:=m1; n3:=n2;

<span MS Mincho";mso-ansi-language:EN-US">                    for i3:=1 to m3 do

<span MS Mincho";mso-ansi-language:EN-US">                        for j3:=1 to n3 dobegin

<span MS Mincho";mso-ansi-language:EN-US">                                            MAS3[i3,j3] := 0;

<span MS Mincho";mso-ansi-language:EN-US">                                            for i2:= 1 to m2 do

<span MS Mincho";mso-ansi-language:EN-US">                                  {Итоговаяформула}

<span MS Mincho";mso-ansi-language:EN-US">                                  MAS3[i3,j3]:=MAS3[i3,j3] + MAS1[i3,i2] * MAS2[i2,j3];

<span MS Mincho";mso-ansi-language:EN-US">                                           end

<span MS Mincho"">;

<span MS Mincho"">                   

<span MS Mincho";mso-ansi-language:EN-US">begin<span MS Mincho""> {Вывод произведения}

<span MS Mincho"">                     

<span MS Mincho"; mso-ansi-language:EN-US">writeln<span MS Mincho"">;

<span MS Mincho"">                      

<span MS Mincho";mso-ansi-language:EN-US">writeln<span MS Mincho"">('Произведение:');

<span MS Mincho"">                     

<span MS Mincho";mso-ansi-language:EN-US">fori3:=1 to m1 do begin

<span MS Mincho";mso-ansi-language:EN-US">                                           forj3:=1 to n2 do Write (MAS3[i3,j3]);

<span MS Mincho";mso-ansi-language:EN-US">                                           WriteLn;

<span MS Mincho";mso-ansi-language:EN-US">                                         end;

<span MS Mincho";mso-ansi-language:EN-US">                    end;

<span MS Mincho";mso-ansi-language:EN-US">              end;

<span MS Mincho";mso-ansi-language:EN-US">          End; {End Case}

<span MS Mincho";mso-ansi-language:EN-US">          ReadKey

<span MS Mincho"">;

<span MS Mincho";mso-ansi-language:EN-US">END

<span MS Mincho"">.  {Конец программы}

Примерработы программы

1.   Операция нахождения определителя:

1)<span Times New Roman"">     

2)<span Times New Roman"">     

3)<span Times New Roman"">     

4)<span Times New Roman"">     

                 <span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-char-type:symbol;mso-symbol-font-family:Symbol">æ  1 4  5  <span Times New Roman";mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol; mso-symbol-font-family:Symbol">ö

<span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Symbol">ç

  5 3  7  <span Times New Roman";mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol; mso-symbol-font-family:Symbol">÷

<span Times New Roman";mso-hansi-font-family: «Times New Roman»;mso-char-type:symbol;mso-symbol-font-family:Symbol">è

  8 1  4  <span Times New Roman";mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol; mso-symbol-font-family:Symbol">ø

5)<span Times New Roman"">     

 det= 54.

2.   Операция нахождения обратной матрицы:

1)   При появлении на экране меню с выборомопераций, выбираем 2.

2)   На предложение ввести кол-во строк матрицы,выбираем 3.

3)   Кол-во столбцов – 3.

4)   Вводим матриц

еще рефераты
Еще работы по компьютерам. программированию