Вектор — упорядоченное множество (последовательность, одномерный массив, кортеж, перечень, список) однородных элементов. Это наиболее общее определение в том смысле, что может быть не задано обычных векторных операций вообще, их может быть меньше, или они могут не удовлетворять обычным аксиомам линейного пространства. Нормой квадратной матрицы A называется функционал, обозначаемый
, удовлетворяющий условиям:-
-
-- произвольное число;-
;-
Норма матрицы
согласована с нормой вектора ,если для любых x и AФункционал
является нормой матрицы A и называется нормой матрицы А, подчиненной норме вектора .4. Результаты
На рисунке 1 изображено окно ввода координат точек А, В, С ,D трапеции. Для каждой точки нужно ввести координаты х, у.
На рисунке 2 изображен диалог выбора: выводить результат – на принтер или на экран. Чтобы вывести на принтер нажмите 1, а для того чтобы на экран 2.
Рисунок 2 – Диалог печати
На рисунке 3 изображен вывод результата на экран. Мы видим в диалоговом окне чему равна площадь треугольника.
Рисунок 3 – Вывод результата
Рисунок 4 – Вывод результатов
Проверим ход решения в электронных таблицах MsExcel.
Когда мы производим нормирование матрицы мы находим абсолютное значение от каждого элемента матрицы. Далее мы находим максимальное значение каждого столбца матрицы. А затем уже выводим результирующую матрицу B = (bik), где bik = aii/ ½½A½½1.
Работа выполнена на языке TurboPascal фирмы Borland, прочно вошедшем в мир программирования в 1983 году и до сих пор являющимся удобным языком программирования для начинающих программистов, а также просто хорошим языком программирования, к которому обращаются как прикладные программисты, так и системные.
При разработке программного обеспечения производил вычисления и обработку данных, была разработана подпрограмма с использование графического режима экрана, использовались звуковые сигналы при ошибочном вводе данных, программный продукт написан в стиле структурного программирования. Все это характеризует то, что использовались возможности языка программирования TurboPascal для написания этого программного продукта.
При разработке курсовой работы был приобретен опыт работы с языком программирования, изучен синтаксис данного языка, основные конструкции, его семантика.
Работа с данным языком помогла приобрести навыки программирования.
Список использованной литературы
1. Вирт Никлаус Алгоритмы+структуры данных= программы. — М.: «Мир», 1985.
2. Грогоно Питер Программирование на языке Паскаль. — М.: «Мир», 1982.
3. Йенсен К., Вирт Н. Паскаль. Руководство для пользователя и описание языка. — М.: «Финансы и статистика», 1982.
4. Культин Н.Б. Delphi 6. Программирование на Object Pascal. — СПб.: «БХВ-Петербург», 2001. — С. 528. — ISBN 5-94157-112-7.
5. Моргун Александр Николаевич Программирование на языке Паскаль (Pascal). Основы обработки структур данных. — М.: «Диалектика», 2005. — С. 576. — ISBN 5-8459-0935-X.
6. Перминов Олег Николаевич Язык программирования Паскаль : Справочник. — М.: «Радио и связь», 1989. — С. 128. — ISBN 5-256-00311-9.
Programkursovay;
uses crt; {Подключение библиотеки}
var {Блок объявления переменных}
second:integer; {Переменная для вывода меню}
c1,c2,c3,c4,c5,c6:char; {Переменные для вывода рамки}
x1,x2,y1,y2,yf:integer; {Координаты для вывода сообщений}
Xa,Ya,Xb,Yb,Xc,Yc:integer; {Координаты для вывода сообщений}
ax,ay,az,bx,by,bz,cx,cy,cz:real; {Переменные для расчета сторон треугольн.}
Procedure Forma1; {Процедура Forma1}
var x1,x2,y1,y2:integer;
procedure Frame (x1,x2,y1,y2:integer); {Процедура Frame}
var
x,y:integer;
c1,c2,c3,c4,c5,c6:char;
begin {Операторы присвоения}
c1:=chr(218);
c2:=chr(196);
c3:=chr(191);
c4:=chr(179);
c5:=chr(192);
c6:=chr(217);
gotoxy(x1,y1); {Установка экрана на позицию x1,y1}
write(c1);
for x:=x1+1 to x2-1 do write (c2); {Операторцикла}
write (c3); {Оператор вывода переменной с3}
for y:=y1+1 to y2-1 do
begin
gotoxy (x1,y); {Прочерчивание горизонтальной линии}
write (c4); {Оператор вывода переменной с4}
gotoxy (x2,y);
write (c4);
end;
gotoxy (x1,y2);
write (c5);
for x:=x1+1 to x2-1 do write (c2);
write(c6);
end;
begin
clrscr; {Очисткаэкрана}
x1:=4; x2:=76;
y1:=4; y2:=23;
frame (x1,x2,y1,y2);
gotoxy (12,7);
write (‘Название своего универа ');
gotoxy (27,8);
write ('ФИЛИАЛ ______________);
gotoxy (33,10);
write ('КУРСОВАЯ РАБОТА');
gotoxy (19,11);
write ('по дисциплине информатика и программирование');
gotoxy (17,12);
write ('на тему создание прикладного программного обеспечения');
gotoxy (22,13);
write ('в среде программирования Turbo Pascal');
gotoxy (45,15);
write ('Работу выполнила: студентка');
gotoxy (45,16);
write (‘_____ курса группы ______');
gotoxy (45,17);
write (‘ФИО);
gotoxy (45,18);
write ('Работу проверил: ');
gotoxy (45,19);
write ('преподаватель кафедры ПИ');
gotoxy (45,20);
write (ФИОпрепода.');
readkey;
end;
{Процедура экранная форма меню}
procedure Menu;
begin
TextBackGround(white); {тутможешьменятьцвета}
TextColor(black);
Clrscr;
x1:=4;
x2:=76;
y1:=4;
y2:=21;
c1:=chr(205);
c2:=chr(201);
c3:=chr(187);
c4:=chr(186);
c5:=chr(200);
c6:=chr(188);
yf:=10;
gotoxy(23,yf);
writeln('1. " Рассчитать длину средней линии трапеции "');
yf:=yf+1;
gotoxy(23,yf);
writeln('2. "Пронумеровать матрицу по её второй норме"');
yf:=yf+1;
gotoxy(23,yf);
writeln('3. "Выход"');
yf:=yf+1;
gotoxy(23,yf);
gotoxy(23,yf);
writeln;
yf:=yf+1;
gotoxy(23,yf);
writeln('Введите номер задания для выполнения (1-3)');
yf:=yf+19;
gotoxy(23,yf);
writeln;
end;
{*************1 zadanie********************}
procedure zadanie1;
label1;
var
x1,x2,x3,x4:integer;
y1,y2,y3,y4:integer;
q:array[1..4] of integer;
k:array[1..4] of integer;
l:array[1..4] of integer;
z,a,i:integer;
Dlin1,Dlin2,Dlin3:real;
Begin
1:;
ClrScr;
Writeln(‘Введитекоординатыточки A(x,y)’);
Readln(x1,y1);
Writeln(‘Введите координаты точки b(x,y’);
Readln)x2,y2);
Writeln(‘Введите координаты точки C(x,y)’);
Readln(x3,y3);
Writeln(‘Введите координаты точки D(x,y)’);
Readln(x4,y4);
K[1]:=x2-x1;
K[2]:=x3-x2;
K[3]:=x4-x3;
K[4]:=x1-x4;
L[1]:=y2-y1;
L[2]:=y3-y2;
L[3]:=y4-y3;
L[4]:=y1-y4;
Z:=0;
A:=0;
For i:=1 to 4 do
Begin
If k[i]=0 then
Z:=z+1;
End;
If z>2 then
Begin
Writeln(‘неправильно заданы координаты’);
Goto 1;
End;
For i:=1 to 4 do
Begin
If l[i]=0 then
a:=a+1;
end;
if a>2 then
begin
writeln(‘неправильно заданы координаты’);
Goto 1;
End;
q[1]:=k[1]*l[3];
q[2]:=k3*l[1];
q[3]:=k[2]*l[4];
q[4]:=k[4]*l[2];
if q[1]=q[2] then
begin
if q[3]=q[4] then
begin
writeln(‘неправильно введены координаты!’);
readln;
Goto 1;
End
Else
Writeln(‘координаты введены правильно!’);
End
Else
Begin
If q[3]=q[4] then
Writeln(‘неправильно введены координаты!’);
Readln;
Goto 1;
End;
End;
Dlin1:=abs(sqrt(sqr(x2-x1)+sqr(y2-y1)));
Dlin2:=abs)sqrt(sqr(x3-x4)+sqr(y3-y4)));
Dlin3:=(dlin1+dlin2)/2;
Writeln(‘Длиннасреднейлиниитрапеции ABCD=’,dlin3:10:2);
end;
{END OF ZADANIE1*******************************************}
{2 zadanie***********************************************}
{Процедура задания №2}
procedure Zadanie2;
const
n=5;
var
i,k,x1,y1:integer;
Max:array [1..n] of real;
A:array [1..n,1..n] of real;
B:array [1..n,1..n] of real;
begin
clrscr;
x1:=4;
y1:=4;
writeln ('Vvod dannix' );
for i:=1 to n do
begin
for k:=1 to n do
begin
Gotoxy(x1,y1);
readln(a[i,k]);
x1:=x1+8;
end;
x1:=4;
y1:=y1+1;
end;
Gotoxy(x1,y1);
writeln ('Vivod dannix');
x1:=4;
y1:=y1+2;
for i:=1 to n do max[i]:=0;
for k:=1 to n do
for i:=1 to n do
if abs(a[i,k])>max[k] then
max[j]:=abs(a[i,k]);
Gotoxy(x1,y1);
writeln('Vvivod matrichi B[i,k]');
x1:=4;
y1:=y1+1;
for i:=1 to n do
begin
writeln;
for k:=1 to n do
begin
b[i,k]:=a[i,k]/max[k];
write (B[i,k]:5:2);
end;
end;
readkey;
end;
{END OF ZADAN2*******************************************}
begin
Forma1;
clrscr;
second:=0;
while second <> 3 do
begin
Menu;
readln(second);
case second of
1: zadanie1;
2: zadanie2;
3: exit;
end;
end;
end.