3. Инструкция по использованию разработанной программы

Определим исходные данные.

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

   

Описание переменных и массивов:

Исходные сведения Описание в программе
Обозначение Назначение

Идентификатор,

размерность

Атрибуты
i, j, k Индексные переменные i, j, k Integer
n

Размерность

матриц

n Word

A, B, C,

U, Vect

Матрицы

исходных данных и результата

a(10,10), b(10,10), c(10,10), u(10,10),

vect(10)

Array of real
a, b, c, z Матрицы, используемые в подпрограммах

a(10,10), b(10,10),

c(10,10), z(10)

Array of real
R,S Переменная, используемая в подпрограмме r Real
m Переменная, используемая в подпрограмме m Char

 

4. Проверка правильности функционирования программы.

Введём исходные данные.

Программа выводит для контроля входные данные:

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

   

Вывод результирующей матрицы:


Вывод матрицы Vect:

5.Текст программы и её описание.

В процессе получения результирующей матрицы реализованы следующие действия с массивами:

 -транспонирование квадратных матриц произвольной размерности;

 -умножение квадратных матриц произвольной размерности;

 -сложение квадратных матриц произвольной размерности;

 -умножение на число квадратных матриц произвольной размерности;

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

Окончательный вариант программы:

Модуль KursUn,содержащий описанные подпрограммы.

Unit KursUn; {*** Начало модуля KursUn ***}

 interface {*** Интерфейсная секция ***}

 uses crt;

 type

 matrix= array [1..10,1..10] of real;

 vector= array [1..10] of real;

 var

 i,j,k:integer;

 n:word;

 procedure outputmat (n:word; a:matrix; m:char);

 procedure inputm (n:word; var a:matrix;m:char);

 procedure sred_arifm (n:word; a:matrix;var z:vector);

 procedure transpm (n:word; a:matrix; var c:matrix);

 procedure sum_m (n:word; a,b:matrix; var c:matrix);

 procedure multm (n:word; a,b:matrix; var c:matrix);

 procedure multconstm (n:word; r:real; a:matrix;var c:matrix);

 implementation {*** ИСПОЛНЯЕМАЯ ЧАСТЬ ***}

{***************************************************************************}

 {*** процедура ввода матриц ***}

 procedure inputm;

 begin

 clrscr;

 writeln;

 writeln(' Введите матрицу ',m,' размером ',n,'*',n);

 for i:=1 to n do

 for j:=1 to n do

 begin

 write(' ',m,'[',i,',',j,']=');

 readln(a[i,j]);

 end;

 end;

{***************************************************************************}

 {*** процедура вывода матриц ***}

 procedure outputmat;

 begin

 writeln;

 writeln(' Матрица ',m,'.');

 writeln;

 for i:=1 to n do

 begin

 write(' ');

 for j:=1 to n do

 write(' ',a[i,j]:3:1);

 writeln;

 end;

 end;

{***************************************************************************}

 {*** процедура транспонирования матрицы ***}

 procedure transpm;

 begin

 for i:=1 to n do

 for j:=1 to n do

 c[j,i]:=a[i,j];

 end;

{***************************************************************************}

 {*** процедура умножения матрицы на число ***}

 procedure multconstm;

 begin

 for i:=1 to n do

 for j:=1 to n do

 c[i,j]:=a[i,j]*r

 end;

{***************************************************************************}

 {*** процедура суммирования матриц ***}

 procedure sum_m;

 begin

 for i:=1 to n do

 for j:=1 to n do

 c[i,j]:=a[i,j]+b[i,j];

 end;

{***************************************************************************}

 {*** процедура умножения матриц ***}

 procedure multm;

 begin

 for i:=1 to n do

 for j:=1 to n do

 begin

 c[i,j]:=0;

 for k:=1 to n do

 c[i,j]:=c[i,j]+a[i,k]*b[k,j];

 end;

 end;

{***************************************************************************}

 {*** процедура формирования вектора из средних ***}

 {*** арифметических значений элементов столбцов ***}

 procedure sred_arifm;

 var

 S:real;

 begin

 S:=0;

 for i:=1 to n do

 begin

 for j:=1 to n do

 S:=S+a[j,i];

 z[i]:=S/n;

 S:=0;

 end;

 end;

{***************************************************************************}

 end. {*** Конец модуля KursUn ***}

Основная программа.

Program Kursach1;

 Uses KursUn , Crt;

 Var

 a,b,c,u : matrix;

 vect : vector;

 begin

 ClrScr; textcolor(LightCyan);

 writeln;

 writeln(' ╔═══════════════════════════════════════════════════════════════╗');

 writeln(' ║ Эта программа вычисляет матричное выражение ║');

 writeln(' ║ ║');

 writeln(' ║ T ║');

 writeln(' ║ U=C*( A+2*B ) ║');

 writeln(' ║ ║');

 writeln(' ╚═══════════════════════════════════════════════════════════════╝');

 writeln;

 write(' Введите размерности матриц: '); readln(n);

 if n=0 then {*** проверка размерности матрицы ***}

 begin

 ClrScr; textcolor(red);

 writeln;

 writeln(' Такая размерность не допустима!!!');

 readkey;

 exit;

 end;

 ClrScr;

 inputm(n,a,'A'); {*** ввод матрицы A ***}

 ClrScr;

 inputm(n,b,'B'); {*** ввод матрицы B ***}

 ClrScr;

 inputm(n,c,'C'); {*** ввод матрицы C ***}

 transpm(n,b,u); {*** транспонирование матрицы B. ***}

 multconstm(n,2,u,u); {*** умножения матрицы на 2. ***}

 sum_m(n,a,u,u); {*** суммирование матриц A+2*BT. ***} multm(n,c,u,u); {*** умножение матриц С и (A+2*BT). ***}

 ClrScr;

 writeln;

 writeln(' ****************** Исходные значения ********************');

 outputmat(n, a, 'A'); {*** вывод матрицы A ***}

 outputmat(n, b, 'B'); {*** вывод матрицы B ***}

 outputmat(n, c, 'C'); {*** вывод матрицы C ***}

 writeln;

 writeln(' ***** Для продолжения нажмите любую клавишу *****');

 readkey;

 outputmat(n, u, 'U'); {*** вывод результата: матрицы U ***}

 writeln;

 writeln(' ***** Для продолжения нажмите любую клавишу *****');

 readkey;

 ClrScr;

 writeln;

 writeln(' *******************************************************');

 writeln(' * Вектор из средних арифметических значений элементов *');

 writeln(' * столбцов результирующей матрицы. *');

 writeln(' *******************************************************');

 sred_arifm(n, u, vect);

 writeln; write(' ');

 for i:=1 to n do

 write(' ',vect[i]:5:2);

 writeln;

 readkey;

 end.

Задание 2

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

При решении поставленной задачи необходимо выполнить следующие действия:

1.         Ввод исходных данных.

2.         Нахождение значения определённого интеграла с использованием метода прямоугольников.

3.         Вывод результатов.

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

Принцип метода прямоугольников состоит в том, что исходный отрезок разбивается на достаточно малые части:

a= x1< x2< x3<…< xn-1< xn=b; h= xk-xk-1;

площадь каждой такой части (прямоугольника): Sk=h*f(xk);

соответственно площадь всей фигуры, образованной из n-1 таких прямоугольников: S= S1+S2+…+ Sn-2+ Sn-1.Величина S является приближённым значением определённого интеграла, она приближается к истинному значению при увеличении числа n.

Погрешность данного метода определяется абсолютным значением разности приближённых значений определённого интеграла при различных n. Если эта разность меньше требуемой погрешности, то необходимая точность достигнута, и дальнейшее увеличение n не требуется.


Информация о работе «Turbo Pascal»
Раздел: Информатика, программирование
Количество знаков с пробелами: 17005
Количество таблиц: 32
Количество изображений: 18

Похожие работы

Скачать
235892
25
6

... работе в графическом режиме предназ­начается для обучения студентов младших курсов Санкт-Петербургской государственной Академии аэрокосмического приборостроения навыкам программирования, а именно работе в графическом режиме языка Turbo-Pascal . Для работы с настоящей программой необходимо знание стандарта языка, интегрированной среды и элементарным навыкам работы с персональным компьютером . ...

Скачать
15706
2
0

... і форматування тексту, створення і робота з вікнами та багато іншого. Основним засобом відображення інформації, яка вводиться і виводиться під час роботи прикладних і системних програм є екран. В Turbo Pascal є можливість працювати з екраном у текстовому і графічному режимах. Текстовий режим призначений для відображення символів кодової таблиці і характеризується максимальним числом символів ...

Скачать
18333
0
0

... т.д. Программное обеспечение таких систем должно обеспечивать обработку, хранение, ввод-вывод больших объемов всевозможных данных. Интегрированная среда Turbo Pascal позволяет эффективно разрабатывать, тестировать и отлаживать программы, связанные с обработкой массивов данных самой различной структуры. В языке Pascal под массивом понимается упорядоченный набор фиксированного количества однотипных ...

Скачать
24973
0
10

... write ('по дисциплине информатика и программирование'); gotoxy (17,12); write ('на тему создание прикладного программного обеспечения'); gotoxy (22,13); write ('в среде программирования Turbo Pascal'); gotoxy (45,15); write ('Работу выполнила: студентка'); gotoxy (45,16); write (‘_____ курса группы ______'); gotoxy ...

0 комментариев


Наверх