Смекни!
smekni.com

Программы в среде Turbo Pascal (стр. 3 из 3)

Вектор — упорядоченное множество (последовательность, одномерный массив, кортеж, перечень, список) однородных элементов. Это наиболее общее определение в том смысле, что может быть не задано обычных векторных операций вообще, их может быть меньше, или они могут не удовлетворять обычным аксиомам линейного пространства. Нормой квадратной матрицы A называется функционал, обозначаемый

, удовлетворяющий условиям:

-

-

-- произвольное число;

-

;

-

Норма матрицы

согласована с нормой вектора
,если для любых x и A

Функционал

является нормой матрицы A и называется нормой матрицы А, подчиненной норме вектора
.

4. Результаты

4.1 Интерфейс подпрограммы Zad_1

На рисунке 1 изображено окно ввода координат точек А, В, С ,D трапеции. Для каждой точки нужно ввести координаты х, у.

На рисунке 2 изображен диалог выбора: выводить результат – на принтер или на экран. Чтобы вывести на принтер нажмите 1, а для того чтобы на экран 2.

Рисунок 2 – Диалог печати

На рисунке 3 изображен вывод результата на экран. Мы видим в диалоговом окне чему равна площадь треугольника.

Рисунок 3 – Вывод результата

4.2 Интерфейс подпрограммы Zad_2

На рисунке 4 отображено главное окно задания 2, в котором сначала производился ввод элементов массива, а затем уже вывод нового массива.

Рисунок 4 – Вывод результатов


5. Проверка

Проверим ход решения в электронных таблицах 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.