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 . Для работы с настоящей программой необходимо знание стандарта языка, интегрированной среды и элементарным навыкам работы с персональным компьютером . ...
... і форматування тексту, створення і робота з вікнами та багато іншого. Основним засобом відображення інформації, яка вводиться і виводиться під час роботи прикладних і системних програм є екран. В Turbo Pascal є можливість працювати з екраном у текстовому і графічному режимах. Текстовий режим призначений для відображення символів кодової таблиці і характеризується максимальним числом символів ...
... т.д. Программное обеспечение таких систем должно обеспечивать обработку, хранение, ввод-вывод больших объемов всевозможных данных. Интегрированная среда Turbo Pascal позволяет эффективно разрабатывать, тестировать и отлаживать программы, связанные с обработкой массивов данных самой различной структуры. В языке Pascal под массивом понимается упорядоченный набор фиксированного количества однотипных ...
... write ('по дисциплине информатика и программирование'); gotoxy (17,12); write ('на тему создание прикладного программного обеспечения'); gotoxy (22,13); write ('в среде программирования Turbo Pascal'); gotoxy (45,15); write ('Работу выполнила: студентка'); gotoxy (45,16); write (‘_____ курса группы ______'); gotoxy ...
0 комментариев