Отыскание корня тригонометр уравнения

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

Краткое описание

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

Оглавление

Введение………………………………………………………………..5
Основная часть…………………………………………………………6
1 Описание программы……………………………………………….6
Общие сведения ……………………………………………………6
1.2 Физическая постановка задачи…………………………………..6
1.3 Функциональное назначение……………………………………..6
1.4 Описание логической структуры…………………………………6
1.4.1 Алгоритм программы…………………………………………..6
1.4.2 Используемые методы…………………………………………..7
1.4.3 Структура программы………………………………………….7
1.5 Вызов и загрузка программы…………………………………….8
1.6 Входные данные……………………………………………………8
1.7 Выходные данные…………………………………………………8
2 Руководство оператора……………………………………………..9
2.1 Назначение программы……………………………………………9
2.2 Условия выполнения программы………………………………..9
2.3 Выполнение программы………………………………………….10
2.4 Сообщение оператору…………………………………………….12
3 Текст программы…………………………………………………….13
Заключение……………………………………………………………..20
Список использованных источников…………………………………. 21
Приложение А. Нахождение корня уравнения методом половинного деления отрезка при заданной точности вычисления с помощью Microsoft Excel……………………………………………..

Файлы: 1 файл

Курсовая работа по информатике.docx

— 96.92 Кб (Скачать)

begin

   MyWindow(80,25,80,25,ColorFon,ColorFon,False,False,'');

end {HideCursor};

 

{--------------pokazat kyrsor menu----------------}

Procedure Show_Cursor(posit : byte); {posit - pozicia pynkta menu}

begin

   TextBackGround(lightmagenta);

   WriteXY(Coord_Menu[posit],1,Punkt_Menu[posit]);

end {Show_Cursor};

 

{------------skrit kyrsor menu----------------}

Procedure Hidden_Cursor(posit : byte);

begin

   TextBackGround(lightgray);

   WriteXY(Coord_Menu[posit],1,Punkt_Menu[posit]);

end {Hidden Cursor};

 

{--------peremeshenie kyrsor menu vlevo-----------}

Procedure Cursor_Left(var posit : byte);

begin

   Hidden_Cursor(posit);

   dec(posit);   {ymenshaem nomer pozicii na 1}

   if posit < 1 then posit:=punkt;

   Show_Cursor(posit);

end {Cursor_Left};

 

{-------peremeshenie kyrsor menu vpravo-----------}

Procedure Cursor_Right(var posit : byte);

begin

   Hidden_Cursor(posit); inc(posit);

   if posit > punkt then posit:=1;

   Show_Cursor(posit);

end {Cursor_Right};

 

{---------sozdanie pervoi stranici menu-----------}

Procedure Menu (posit:byte);

var i : byte;

begin

   Field(blue, lightblue);

   WriteMesssage(' Dlya prosmostra menu ispolzyite ',

   white,black, #0, '<- ->',False);

   MyWindow(1,1,80,1,white,black,false,false,'');

   for i:=1 to Punkt do begin

     WriteXY(Coord_Menu[i],1,Punkt_Menu[i]);

end;

Show_Cursor(posit);

end {Menu};

 

{======funcziya rascitivaet znachenie argumenta x======}

function f(x:real):real;

begin

   f:=2*sin(x)+1;

end;

 

{====== rascitivaet kolichestvo iterazii======}

Function res(a,b,e:real):real;

var x:real; n:byte;

begin

   x:=(a+b)/2;

   while abs(b-a)>e do

     begin

       if f(x)*f(a)<0

         then b:=x

       else a:=x;

       x:=(a+b)/2;

     end;

   res:=x;

end;

 

{============vvod peremennoi tipa real================}

Procedure InputReal (npos : Byte; var number :real);

Var S: String;

     ErrorCode : Integer;

     Ch : Char;

     Flag : Boolean;

Begin

     Flag := False;

     S := '';

     Repeat

       Ch :=ReadKey;

       Case Ch of

         BS      : If length(S) > 0 then

                      delete (s, length(s), 1);

         Enter   : If length(S) > 0 then Flag:=True;

         '0'..'9','.': If length(S) < npos then S:=S+Ch;

         '-'     :if length(s)=0 then S:=S+Ch;

       end;

       ClrScr; Write(S);

     Until Flag;

     Val (S, number, ErrorCode);

end;{InputReal}

 

Procedure FirstPage;

Begin

   MyWindow (6,6,73,9,lightgray,blue,true,true,' Avtor ');

   WriteXY (6,1,'Vipolnila: stydentka 9418  gr. Motrinez A.U. ');

   WriteXY (6,2, 'Proveril: Davidov E.I.');

   MyWindow (6,12,73,19,lightgray,blue,true,true,' Zadanie ') ;

   WriteXY(4,2, 'Sostavit programmy otiskaniya kornya yravneniya');

   WriteXY(16,3, '            2sin(x)+1=0');

   WriteXY(4,4, 's zadannoi tochnostiu metodom polovinnogo deleniya ');

   WriteXY(4,5, 'na otrezke (a,b).');

end;

 

Procedure SecondPage(var a,b,e:real);

begin

   MyWindow (10,8,70,15,lightgray,blue,true,true,' Vvod ishodnih dannih ');

   WriteXY(6,2,'Vvedite znacheniya a i b otrezka (a;b)  ');

   WriteXY(10,3,'a = ');    WriteXY(26,3,'b = ');

   WriteXY(6,5,'Vvedite znachenie tochnosti e  ');

   WriteXY(10,6,'e = ');

   MyWindow(25,11,35,11,lightgray,blue,false,false,'');

   InputReal(7, a);

   MyWindow(40,11,50,11,lightgray,blue,false,false,'');

   InputReal(7, b);

   MyWindow(25,14,40,14,lightgray,blue,false,false,'');

   InputReal(7, e);

end;

 

Procedure ThirdPage(var a,b,e,x:real);

begin

   MyWindow (10,8,70,20,lightgray,blue,true,true,' Rezultati ');

   WriteXY(6,2,'Znacheniya a i b otrezka (a;b)  ');

   WriteXY(10,3,'a = ');    WriteXY(26,3,'b = ');

   WriteXY(6,5,'Znachenie tochnosti e  ');

   WriteXY(10,6,'e = ');

   WriteXY(6,8,'Otvet: znachenie x na zadannom otrezke  ');

   WriteXY(10,9,'x = '); x:=res(a,b,e);

   MyWindow(25,11,35,11,lightgray,blue,false,false,'');

   write(a:7:5);

   MyWindow(40,11,50,11,lightgray,blue,false,false,'');

   write(b:7:5);

   MyWindow(25,14,40,14,lightgray,blue,false,false,'');

   write(e:7:5);

   MyWindow(25,17,35,17,lightgray,blue,false,false,'');

   write(x:7:5);

end;

 

Procedure Main_Menu;

var q,ch : char;

     a,b,e,x:real;

     posit : byte;

     Program_exit : boolean;

begin

   posit := 1; Menu(posit);

   Program_exit := false;

repeat

   q := ReadKey;

   if q = #0 then begin {ypravliaychaia klavisha  }

     q := ReadKey;

     case q of

       Right : Cursor_Right (posit); {vpravo}

       Left : Cursor_Left (posit);   {vlevo}

     end;

   end

   else

     if q = Enter then

   case posit of

   1 : begin

     FirstPage;  {zadanie}

     WriteMesssage (' Dlya vihoda v menu nagmite klavishy ',

     lightgray,black,Space, 'probel',True);

     Menu(posit); {vozvrat k pervoi stranice}

   end;

   2 :begin

        SecondPage(a,b,e);

        WriteMesssage('Dlya vihoda v menu nagmite klavishy ',

   lightgray,black,Space,'probel',True);

        Menu(posit);  {vozvrat k pervoi stranice}

 

    end;

   3 : {rabota}

begin

        ThirdPage(a,b,e,x);

WriteMesssage(' Dlya vihoda v menu nagmite kavishy ',

       lightgray,black,Space,'probel',True);

Menu(posit); {vozvrat k pervoi stranice}

    end;

   4  : {vixod}

       begin

       MyWindow(1,25,80,25,white,white,false,false,'');

       MyWindow(31,10,49,12,red,white,true,true,' Zakonchim? ');

       Da_Net('  DA     NET  ',LightGray,ch);

if ch in Da then Program_exit := true

       else begin

        WriteMesssage(' Dlya prodolgeniya nagmite ',lightgray,

                       black,Space,'probel',True);

         Menu (posit);  {vozvrat k pervoi stranice}

       end;

     end;

  end;

until  Program_exit;

MyWindow(1,1,80,25,black,white,false,false,'');

writeXY(35,10, 'Good bye!');

Delay(2000);

end {Main_Menu};

begin{Glavnui}

   Main_Menu;

end.

 

ЗАКЛЮЧЕНИЕ

Информатике трудно существовать как  отдельной науке, она должна помогать другим учебным предметам  в  развитии  познавательного  интереса  к предмету, в решении логических задач, в обработке  результатов  лабораторных работ и индивидуальных практических заданий.

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

 

 

СПИСОК  ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

  1. СТО СГАУ 02068410-004-2007. Общие требования к оформлению учебных текстовых документов. Методические указания.
  2. Построение, изложение и оформление программных документов: Методические указания / Автор-составитель В.Д.Еленев; Куйбышев. Авиац. Ин-т. Куйбышев, 1987.
  3. Фаронов В.В. Турбо Паскаль (в 3-х книгах). Основы Турбо Паскаля. МВТУ – Фесто ДиДактик. Москва, 1992. – 304 с.
  4. Епанешников А.М., Епанешников В.А. Программирование в среде TURBO PASCAL 7.0. М.: Диалог-МИФИ, 1998.
  5. ГОСТ 19.505-79.ЕСПД. Руководство оператора.
  6. ГОСТ 19.401-78. ЕСПД. Текст программы.

 

Приложение А

Нахождение корня уравнения  методом половинного деления  отрезка при заданной точности вычисления с помощью Microsoft Excel

 

Таблица 1

a

b

c=(a+b)/2

f(a)

f(b)

f(с)

|b-a|<e

e

-1,00000

0,00000

-0,50000

-0,68294

1,00000

0,04115

-

0,00001

-1,00000

-0,50000

-0,75000

-0,68294

0,04115

-0,36328

-

 

-0,75000

-0,50000

-0,62500

-0,36328

0,04115

-0,17019

-

 

-0,62500

-0,50000

-0,56250

-0,17019

0,04115

-0,06661

-

 

-0,56250

-0,50000

-0,53125

-0,06661

0,04115

-0,01322

-

 

-0,53125

-0,50000

-0,51563

-0,01322

0,04115

0,01384

-

 

-0,53125

-0,51563

-0,52344

-0,01322

0,01384

0,00028

-

 

-0,53125

-0,52344

-0,52734

-0,01322

0,00028

-0,00648

-

 

-0,52734

-0,52344

-0,52539

-0,00648

0,00028

-0,00310

-

 

-0,52539

-0,52344

-0,52441

-0,00310

0,00028

-0,00141

-

 

-0,52441

-0,52344

-0,52393

-0,00141

0,00028

-0,00057

-

 

-0,52393

-0,52344

-0,52368

-0,00057

0,00028

-0,00014

-

 

-0,52368

-0,52344

-0,52356

-0,00014

0,00028

0,00007

-

 

-0,52368

-0,52356

-0,52362

-0,00014

0,00007

-0,00004

-

 

-0,52362

-0,52356

-0,52359

-0,00004

0,00007

0,00002

-

 

-0,52362

-0,52359

-0,52361

-0,00004

0,00002

-0,00001

-

 

-0,52361

-0,52359

-0,52360

-0,00001

0,00002

0,00000

-

 

-0,52361

-0,52360

-0,52360

-0,00001

0,00000

0,00000

-0,52360

 

 

Таблица 2

a

b

c=(a+b)/2

f(a)

f(b)

f(с)

|b-a|<e

e

-3,00000

-2,00000

-2,50000

0,71776

-0,81859

-0,19694

-

0,001

-3,00000

-2,50000

-2,75000

0,71776

-0,19694

0,23668

-

 

-2,75000

-2,50000

-2,62500

0,23668

-0,19694

0,01216

-

 

-2,62500

-2,50000

-2,56250

0,01216

-0,19694

-0,09453

-

 

-2,62500

-2,56250

-2,59375

0,01216

-0,09453

-0,04169

-

 

-2,62500

-2,59375

-2,60938

0,01216

-0,04169

-0,01489

-

 

-2,62500

-2,60938

-2,61719

0,01216

-0,01489

-0,00140

-

 

-2,62500

-2,61719

-2,62109

0,01216

-0,00140

0,00537

-

 

-2,62109

-2,61719

-2,61914

0,00537

-0,00140

0,00199

-

 

-2,61914

-2,61719

-2,61816

0,00199

-0,00140

0,00029

-

 

-2,61816

-2,61719

-2,61768

0,00029

-0,00140

-0,00055

-2,61768

 

 


Информация о работе Отыскание корня тригонометр уравнения