Автор: Пользователь скрыл имя, 19 Февраля 2013 в 18:38, курсовая работа
Основу всей этой работы составляет построение эффективного алгоритма, главными свойствами которого являются детерминированность, массовость, результативность. При разработке программ применяют метод структурного программирования: разделение задачи на относительно независимые части и выполнение отладки этих частей. При этом достигается качество и быстрота разработки программ.
Введение
Теоретическая часть
1. Основная часть
2. Алгоритм задачи
Практическая часть
3. Описание
4. Результаты
5. Проверка
Заключение
список использованной литературы
1. “ Рассчитать длину средней линии трапеции ”.
2. “Пронумеровать матрицу по ее второй норме”.
3. “Выход”.
Введите номер задания для выполнения (1- 3).
Далее в соответствии с выбранным номером пункта управление передается Программе Prog_1, на вход которой поступает номер пункта меню. Происходит анализ соответствия номера пункта меню в списке предлагаемых (1, 2, 3), в случае несоответствия выводится надпись, управление передается подпрограмме Menu, в цикле будут повторяться данные действия до правильного ввода цифры пункта меню. В случае правильного набора номера пункта программа Prog_1 передаст управление соответственно одной из подпрограмм: Zad_1, Zad_2, или будет произведен выход из программного продукта в случае выбора номера варианта 3. После выполнения выбранной подпрограммы управление вновь передается подпрограмме Menu, для возможности выполнения любого из пунктов меню.
Фо́рмула Геро́на позволяет вычислить площадь треугольника (S) по его сторонам a, b, c:
аналогично вычисляются и остальные стороны.
где р -- полупериметр треугольника: .
Треугольник однозначно можно определить по следующим тройкам основных элементов:
В данном примере доказательство основывается на соотношении сторон, если выполняются все следующие условия:
Матрица -- математический объект, записываемый в виде прямоугольной таблицы чисел (или элементов кольца) и допускающий алгебраические операции (сложение, вычитание, умножение и др.) между ним и другими подобными объектами. Правила выполнения операций над матрицами сделаны такими, чтобы было удобно записывать системы линейных уравнений. Обычно матрицу обозначают Заглавной буквой латинского алфавита и выделяют круглыми скобками «(…)» (встречается также выделение квадратными скобками «[…]», двойными прямыми линиями «||…||») А числа, составляющие матрицу (элементы матрицы), обозначают той же буквой, что и саму матрицу, но маленькой. у каждого элемента матрицы есть 2 нижних индекса (aij) -- первый «i» обозначает номер строки, в которой находится элемент, а второй «j» -- номер столбца.
Вектор -- упорядоченное множество (последовательность, одномерный массив, кортеж, перечень, список) однородных элементов. Это наиболее общее определение в том смысле, что может быть не задано обычных векторных операций вообще, их может быть меньше, или они могут не удовлетворять обычным аксиомам линейного пространства. Нормой квадратной матрицы A называется функционал, обозначаемый , удовлетворяющий условиям:
Норма матрицы согласована с нормой вектора ,если для любых x и A
Функционал является нормой матрицы A и называется нормой матрицы А, подчиненной норме вектора .
4. Результаты
На рисунке 1 изображено окно ввода координат точек А, В, С ,D трапеции. Для каждой точки нужно ввести координаты х, у.
На рисунке 2 изображен диалог выбора: выводить результат - на принтер или на экран. Чтобы вывести на принтер нажмите 1, а для того чтобы на экран 2.
Рисунок 2 - Диалог печати
На рисунке 3 изображен вывод результата на экран. Мы видим в диалоговом окне чему равна площадь треугольника.
Рисунок 3 - Вывод результата
На рисунке 4 отображено главное окно задания 2, в котором сначала производился ввод элементов массива, а затем уже вывод нового массива.
Рисунок 4 - Вывод результатов
Проверим ход решения в электронных таблицах Ms Excel.
Когда мы производим нормирование матрицы мы находим абсолютное значение от каждого элемента матрицы. Далее мы находим максимальное значение каждого столбца матрицы. А затем уже выводим результирующую матрицу B = (bik), где bik = aii / ЅЅAЅЅ1.
Заключение
Работа выполнена на языке Turbo Pascal фирмы Borland, прочно вошедшем в мир программирования в 1983 году и до сих пор являющимся удобным языком программирования для начинающих программистов, а также просто хорошим языком программирования, к которому обращаются как прикладные программисты, так и системные.
При разработке программного обеспечения производил вычисления и обработку данных, была разработана подпрограмма с использование графического режима экрана, использовались звуковые сигналы при ошибочном вводе данных, программный продукт написан в стиле структурного программирования. Все это характеризует то, что использовались возможности языка программирования Turbo Pascal для написания этого программного продукта.
При разработке курсовой работы был приобретен опыт работы с языком программирования, изучен синтаксис данного языка, основные конструкции, его семантика.
Работа с данным языком помогла приобрести навыки программирования.
Список использованной литературы
Program kursovay;
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:
Procedure Forma1; {Процедура Forma1}
var x1,x2,y1,y2:integer;
procedure Frame (x1,x2,y1,y2:integer); {
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);
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)+
Dlin2:=abs)sqrt(sqr(x3-x4)+
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.