Создание прикладного программного обеспечения в среде программирования Turbo Pascal

Автор: Пользователь скрыл имя, 19 Февраля 2013 в 18:38, курсовая работа

Описание работы

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

Содержание

Введение

Теоретическая часть
1. Основная часть
2. Алгоритм задачи

Практическая часть
3. Описание
4. Результаты
5. Проверка

Заключение
список использованной литературы

Работа содержит 1 файл

курсовая.rtf

— 5.69 Мб (Скачать)

 

1.     “ Рассчитать длину средней линии трапеции ”.

2.     “Пронумеровать матрицу по ее второй норме”.

3.     “Выход”.

 

Введите номер задания для выполнения  (1- 3).

 

Далее в соответствии с выбранным номером пункта управление передается Программе Prog_1, на вход которой поступает номер пункта меню. Происходит анализ соответствия номера пункта меню в списке предлагаемых (1, 2, 3), в случае несоответствия выводится надпись, управление передается подпрограмме Menu, в цикле будут повторяться данные действия до правильного ввода цифры пункта меню. В случае правильного набора номера пункта программа Prog_1 передаст управление соответственно одной из подпрограмм: Zad_1, Zad_2, или будет произведен выход из программного продукта в случае выбора номера варианта 3. После выполнения выбранной подпрограммы управление вновь передается подпрограмме Menu, для возможности выполнения любого из пунктов меню.

3.1 Рассчитать длину средней линии трапеции.

 

Фо́рмула Геро́на позволяет вычислить площадь треугольника (S) по его сторонам a, b, c:

аналогично вычисляются и остальные стороны.

где р -- полупериметр треугольника: .

Треугольник однозначно можно определить по следующим тройкам основных элементов:

      • a, b, c (равенство по трём сторонам);
      • a, b, г (равенство по двум сторонам и углу между ними);
      • a, в, г (равенство по стороне и двум прилежащим углам).

В данном примере доказательство основывается на соотношении сторон, если выполняются все следующие условия:

      • a < b + c;
      • b < c + a;
      • c < a + b.

3.2 Нормальная матрица

 

Матрица -- математический объект, записываемый в виде прямоугольной таблицы чисел (или элементов кольца) и допускающий алгебраические операции (сложение, вычитание, умножение и др.) между ним и другими подобными объектами. Правила выполнения операций над матрицами сделаны такими, чтобы было удобно записывать системы линейных уравнений. Обычно матрицу обозначают Заглавной буквой латинского алфавита и выделяют круглыми скобками «(…)» (встречается также выделение квадратными скобками «[…]», двойными прямыми линиями «||…||») А числа, составляющие матрицу (элементы матрицы), обозначают той же буквой, что и саму матрицу, но маленькой. у каждого элемента матрицы есть 2 нижних индекса (aij) -- первый «i» обозначает номер строки, в которой находится элемент, а второй «j» -- номер столбца.

Вектор -- упорядоченное множество (последовательность, одномерный массив, кортеж, перечень, список) однородных элементов. Это наиболее общее определение в том смысле, что может быть не задано обычных векторных операций вообще, их может быть меньше, или они могут не удовлетворять обычным аксиомам линейного пространства. Нормой квадратной матрицы 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. Проверка

 

Проверим ход решения в электронных таблицах Ms Excel.

Когда мы производим нормирование матрицы мы находим абсолютное значение от каждого элемента матрицы. Далее мы находим максимальное значение каждого столбца матрицы. А затем уже выводим результирующую матрицу B = (bik), где bik = aii /  ЅЅAЅЅ1.

 

Заключение

 

Работа выполнена на языке Turbo Pascal фирмы Borland, прочно вошедшем в мир программирования в 1983 году и до сих пор являющимся удобным языком программирования для начинающих программистов, а также просто хорошим языком программирования, к которому обращаются как прикладные программисты, так и системные.

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

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

Работа с данным языком помогла приобрести навыки программирования.

 

Список использованной литературы

 

  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.

 

Приложение

 

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: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.

 


Информация о работе Создание прикладного программного обеспечения в среде программирования Turbo Pascal