Языки і технології программирования
Розрахунків старанно аналізуються, оформляється науково-технічна документация.Математические. Getmaxcolor ()); // setcolor (random (MaxColors — random (15)) + random (15)); pieslice (random (getmaxx ()), random (getmaxy ()), random (360), random (360), random (150)); Цьому етапі готуються вихідні дані для розрахунків й проводиться розрахунок по налагодженої. Однією істотною якістю — не вносити… Читати ще >
Языки і технології программирования (реферат, курсова, диплом, контрольна)
Алматы.
1998 г.
Введение
Впровадження ЕОМ у всі сфери людської діяльності вимагає.
від фахівців різного профілю оволодіння навичками використання обчислювальної.
техніки. Підвищується рівень підготовки студентів вузів, у яких із перших.
курсів долучатимуться до використанню ЕОМ і найпростіших про чисельні методів, що вже казати.
вже у тому, при що виконанні курсових і дипломних проектів застосування обчислювальної.
техніки стає нормою у переважну більшість вузів. Обчислювальна.
техніка використовується не лише в інженерних розрахунках та знайти економічних.
науках, а й таких традиційно нематематичних професіях, як медицина,.
лінгвістика, психологія. У зв’язку з цим можна буде усвідомити, що «застосування.
ЕОМ набуло масового характеру. Виникла численна категорія фахівців.
— користувачів ЕОМ, яким необхідні знання з застосуванню ЕОМ у галузі.
— навички роботи з роботи вже які є програмним забезпеченням, а як і створення.
свою власну ПО, пристосованого на вирішення конкретного завдання. І тут.
допоможе користувачеві приходять описи мов програмування високого рівня.
(далі ЯВУ) і чисельні методи (далі ЧМ). ЧМ розробляють і досліджують, як.
правило, висококваліфіковані специалисты-математики. Більшість користувачів.
головне завдання є розуміння основних ідей методів, особливостей.
і областей застосування. Проте, користувачі хочуть працювати з ЕОМ як.
і з високоінтелектуальним калькулятором, ще гроші і і з помічником у повсякденній.
роботі, сховищем інформації з швидким і упорядкованим доступом, а як і.
з джерелом і оброблювачем графічної інформації. Всі ці функції сучасної.
ЕОМ думаю продемонструвати у «справжній курсової роботі. У першій частині.
роботи представлена програма по віднайденню коренів системи з цих двох нелінійних.
рівнянь методами Ньютона і найпростіших ітерацій. В другій частині моєї роботи представлена.
програма, демонструючи користувачеві на всю потугу і розмаїття графічних.
можливостей сучасних ПК з прикладу застосування графічних функцій.
мови З++ з допомогою VGA-графики. У третій частині роботи представлена програма.
«Електронної записної книжки», має і практичного значення для.
користувачів малопотужних персональних комп’ютерів, і ПК блокнотів малим дисковим.
ресурсом котрим нерентабельна експлуатація ПО типу Lotus Organizer та інших.
ПО із сильним графічним інтерфейсом. До мого жалю через брак.
необхідного довідкового матеріалу мені вдалося продемонструвати у третій.
частини SUPER VGA-графику, але це справа недалекого майбутнього. Перша й друга частини.
роботи виконано з застосування мови З++ фірми Borland версії 3.1 для DOS і WINDOWS,.
а третина виконано на ЯВУ «Турбо Паскаль» версії 7.0 для DOS і WINDOWS.
фірми Borland із засобів TURBO VISION. Теоретическая часть.Этапы.
виконання завдання на ЕОМ. Найбільш ефективне застосування ЗТ знайшла під час проведення.
трудомістких розрахунків у наукові дослідження і інженерних розрахунках. За позитивного рішення.
завдання на ЕОМ основна роль все-таки належить людині. Машина лише виконує.
його завдання щодо розробленої програмі. роль чоловіки й машини легко усвідомити,.
якщо процес розв’язування завдання розбити на перелічені нижче этапы. Постановка завдання.
Цей етап залежить від змістовної (фізичної) постановці завдання й.
визначенні кінцевих решений. Построение математичну модель. Модель повинна правильно.
(адекватно) описувати основні закони фізичного процесу. Побудова.
чи вибір математичну модель з вимагає глибокого розуміння проблеми.
і відповідних розділів математики. Разработка ЧМ. Оскільки ЕОМ.
може виконувати лише найпростіші операції, вона «не розуміє» постановки завдання,.
навіть у математичної формулюванні. Для її вирішення може бути знайдено чисельний.
метод, дозволяє звести завдання до певного обчислювальному алгоритму. У.
кожному конкретному випадку необхідно вибрати підходяще рішення з вже розроблених.
стандартных.Разработка алгоритму. Процес рішення задачи (вычислительный процес).
записується як послідовності елементарних арифметичних і логічних.
операцій, що призводить до кінцевому результату і званої алгоритмом рішення.
задачи.Программирование. Алгоритм виконання завдання записується зрозумілою.
машині мові як точно певної послідовності операцій — програми.
Процес зазвичай проводиться за допомогою деякого проміжного мови, та її.
трансляція здійснюється самої машиною і його системой. Отладка програми. Укладена.
програма містить різноманітних помилки, неточності, описки. Налагодження включає.
контроль програми, діагностику (пошук і освоєння визначення змісту) помилок,.
та його усунення. Програма випробовується на рішенні контрольних (тестових) завдань.
щоб одержати впевненості у достовірності результатов. Проведение розрахунків. На.
цьому етапі готуються вихідні дані для розрахунків й проводиться розрахунок по налагодженої.
програмі. у своїй зменшення ручної праці з обробки результатів.
можна широко використовувати зручні форми видачі успіхів у вигляді текстовій і.
графічної інформації, в зрозумілому в людини виде. Анализ результатів. Результати.
розрахунків старанно аналізуються, оформляється науково-технічна документация.Математические.
моделі. Основну вимогу, пропоноване до математичної.
моделі, — адекватність оскільки він розглядався процесу, явища, тобто. вона повинна переважно досить.
точно (у межах припустимою похибки) відбивати характерні риси явища.
Разом про те вона повинна переважно мати порівняльної простотою і доступністю исследования.Адекватность.
і порівняльна простота моделі не вичерпують пропонованих.
до неї вимог. Слід звернути увагу до правильність оцінки області.
застосовності математичну модель. Наприклад, модель вільно падаючого.
тіла, у якій знехтували опором повітря, дуже ефективна для твердих.
тіл з великою і середній щільністю і формою поверхні, близька до сферичної.
Разом про те, ряді інших випадків на вирішення завдання не відомих.
з курсу фізики найпростіших формул. Тут необхідні складніші математичні.
моделі, враховують опір повітря й інші чинники. Зазначимо,.
що теперішній успіх виконання завдання значною мірою визначається вибором математичної.
моделі; тут у першу чергу потрібні глибокі знання тій галузі, до котрої я.
належить поставлена завдання. З іншого боку, необхідні знання відповідних.
розділів математики можливостей ЭВМ. Численные методы. С допомогою математичного.
моделювання рішення науково-технічної завдання зводиться до вирішення математичної.
завдання, що є її моделлю. Аби вирішити математичних завдань використовуються.
основні групи методів: графічні, аналітичні, численные.Графические.
методи дозволяє деяких випадках оцінити порядок шуканої величини. Основна.
ідея цих методів у тому, що ухвалено рішення перебуває шляхом геометричних побудов.
Наприклад, перебування коренів рівняння f (x)=0 будується графік функції.
y=f (x), точки перетину якого з віссю абсцис і буде шуканими корнями.При.
використанні аналітичних методів вирішення завдання вдається висловити з допомогою.
формул. Зокрема, якщо математична завдання у вирішенні найпростіших.
алгебраїчних чи трансцендентних рівнянь, диференційних рівнянь тощо.,.
то використання відомих з курсу математики прийомів відразу призводить до мети.
На жаль, практиці цю занадто рідкісні случаи. Основным інструментом для.
розв’язання складних математичних завдань нині є чисельні методи,.
які дозволяють зводити вирішення завдання до виконання кінцевого числа арифметичних.
дій над числами; у своїй результати виходять як числових значень.
Багато ЧМ розроблено давно, однак за обчисленнях вручну їм було запропоновано використовуватися.
тільки до рішення дуже трудомістких задач. С появою ЕОМ почався.
період бурхливого розвитку ЧМ та його запровадження. Тільки обчислювальної машині.
у змозі виконати за порівняно короткий час обсяг обчислень мільйони,.
мільярди і більше операцій, необхідні рішення багатьох завдань. За рахунку.
вручну людині забракнуло б життю рішення однієї такої завдання. ЧМ поряд.
із одержання результату за прийнятне час повинен мати і ще.
однією істотною якістю — не вносити в обчислювальний процес значних погрешностей.Численные.
методи, використовувані у цій работе. При написанні програми.
рішення системи з цих двох нелінійних рівнянь мною використовувалися двоє відомих.
і дуже застосовуваних про чисельні методу. Це метод Ньютона і метод простих итераций.Метод.
Ньютона. Цей метод має швидкої сходимостью та порівняно хорошою.
точністю обчислень. Що стосується одного рівняння F (x)=0 алгоритм методу був.
легко отримано шляхом записи рівняння дотичній до кривою y=F (x). У основі методу.
ньютона системі рівнянь лежить використання розкладання функцій Fi (x1,x2,…xn).
до кількох Тейлора, причому члени, містять другі (і значно вищих порядків).
похідні, отбрасываются. Пусть наближені значення невідомих системи.
уравненийF1(x1,x2,…xn)=0,F2(x1,x2,…xn)=0,…(1).
Fn (x1,x2,…xn)=0,(например, отримані на попередньої ітерації) рівні відповідно.
a1,a2,…an. Завдання полягає у перебування збільшень (поправок) до цих.
значенням ?x1,??x2,…,??xn, внаслідок чого рішення системи (1) запишеться.
в виде: xi=ai+??x1, x2=a2+??x2,…, xn,=an+??xn.(2)Проведем розкладання лівих.
частин рівнянь (1) до кількох Тейлора, обмежившись лише лінійними членами щодо.
приращений:F1(x1,x2,…xn)??F1(a1,…an)+ F2(x1,x2,…xn)??F2(a1,…an)+…Fn (x1,x2,…xn)??Fn (a1,…an)+.Поскольку.
відповідно до (1) ліві частини з цих висловів повинні звертатися до нуль,.
то прирівняємо нулю та праві частини. Одержимо таку систему лінійних алгебраїчних.
рівнянь щодо приращений:=-F1=-F2(2)…=-FnЗначения.
F1,F2,…, Fn та його похідні обчислюються при x1=a1, x2=a2,…xn=an.Определителем.
системи (2) є якобиан: J= Для існування єдиного.
рішення системи (2) повинен бути відмінними від нуля з кожної итерации.Таким.
чином, итерационный процес розв’язування системи рівнянь (1) методом Ньютона.
у визначенні збільшень ?x1,??x2,???xn, до значенням невідомих.
з кожної ітерації. Рахунок припиняється, коли всі збільшення стають малими по.
абсолютну величину: max|??xi|#include //опис змінних, які у.
программеdouble pi=3.14,a=1.8,b=-2.0,c=0.1,d=1.6,e=0.9,eps=0.1;int i=0;double.
x, y;//описания функцій рішення методами Ньютона і найпростіших итерацийextern double.
newton (double xn, double yn);extern double iterac (double xn, double yn);int.
main (void){//запрос початкового наближення у пользователяscanf («%f », x) scanf («%f », y)//вывод.
результатів через виклики функцій на екран printf («Остаточне рішення про.
методом Ньютонаn "); printf («%gt%gn », newton (x, y)); printf («Остаточне.
рішення щодо методу итерацийn "); printf («%gt%gn », iterac (x, y));return.
(0);}//функция рішення системи рівнянь методом ньютонаdouble newton (double xn, double.
yn){ double f1, f2,xxn, yyn; double df1dx, df1dy, df2dx, df2dy, dxy;do { i++;//описания.
вихідних ураванений f1=sin (xn+a)+b*yn+c; f2=cos (yn+d)+e*xn;//производные.
df1dx=cos (xn+a); df1dy=b; df2dx=e; df2dy=-sin (yn+d);//якобиан системи dxy=df1dx*df2dy-df1dy*df2dx;//очередное.
значення x xxn=xn-((f1*df2dy-f2*df1dy)/dxy);//очередное.
значення y yyn=yn+((f1*df2dx-f2*df1dx)/dxy);//проверка точності рішення.
і закінчення рахунки if (fabs (xxn-xn)#include #include #include #include #include.
#define NFONTS 11char *Fonts[NFONTS] = { «Default_Font », «Triplex_Font » ,.
" Small_Font ", «SansSerif_Font », «Gothic_Font », «Script_Font », «Simplex_Font », «TriplexScript_Font » ,.
" Complex_Font ", «European_Font », «Bold_Font «};int xmax, ymax, i=0,MaxColors;////прототипы.
функций//void demoline (void);void democircle (void);void.
demopix (void);void demopieslice (void);void demotext (void);void MainWindow (char.
*header);void DrawBorder (void);void StatusLine (char *msg);void demoarcs (void);void.
demobars (void);void demo3dbars (void);void diagram (void);void endpage (void);void.
endpage1(void);void endpage2(void);////начало головною функции//int.
main (void){ /* автоматичне визначення типу видеоадаптера */ int gdriver =.
DETECT, gmode, errorcode; char msg[80]; // ініціалізація графічних і локальних.
змінних initgraph (gdriver, gmode, «»); xmax=getmaxx (); ymax=getmaxy ();// перевірка.
результатів ініціалізації errorcode = graphresult (); if (errorcode ≠ grOk).
{ printf («Graphics error: %sn », grapherrormsg (errorcode)); printf («Press any.
key to halt: "); getch (); exit (1); }//виклики функцій demoline (); demopix (); demobars ();
demo3dbars (); demopieslice (); diagram (); democircle (); demoarcs (); demotext ();
endpage (); endpage1(); endpage2(); cleardevice (); closegraph (); return.
0;}////функция демонстрації линий//void demoline (void){//формирование графічного.
вікна і статусною строкиMainWindow («Line demonstration »);StatusLine («Press.
any key to continue… ");//процес малювання ліній do { setcolor (random (.
MaxColors — random (15)) + random (15)); lineto (xmax, i); lineto (xmax, ymax);
lineto (i, ymax); lineto (i+1,i+1); i=i+1;xmax=xmax-1;ymax=ymax-1;}while (xmax≠(xmax/2));getch ();cleardevice ();clearviewport ();}////функция.
демонстрації окружностей//void.
democircle (void)//xmax=getmaxx ();//ymax=getmaxy ();{MainWindow («Circle.
demonstration ");StatusLine («Press any key to continue… »);randomize ();moveto (random (xmax), random (ymax));do{.
і++; //установка випадкового кольору setcolor (.
random (MaxColors — random (15)) + random (15)); circle (random (getmaxx ()), random (getmaxy ()), random (100));}.
while (!kbhit ());// повторення доки натиснута.
клавіша getch ();clearviewport ();i=1;do{ і++; setcolor (random (MaxColors — random (15).
) + random (15)); circle (getmaxx ()/2,getmaxy ()/2,i); if (i==400) {setcolor (0);do.
{i—;circle (getmaxx ()/2,getmaxy ()/2,i);}while (i≠0);}}while (!kbhit ().
); // повторення доки натиснута клавишаgetch ();cleardevice ();}////функция демонстрації.
малювання точок в довільному //порядке//void demopix (void){MainWindow (.
" Pix demonstration ");StatusLine («Press any key to continue… »); do { і++;
setcolor (random (MaxColors — random (15)) + random (15)); putpixel (random (getmaxx ()), random (getmaxy ()), random (15));
} while (!kbhit ()); // повторення поки.
не натиснута клавишаxmax=getmaxx ();ymax=getmaxy ();getch ();cleardevice ();}////функция.
демонстрації малювання секторов//void demopieslice (void){MainWindow («Pie Chart.
Demonstration ");StatusLine («Press any key to continue… »);do{ і++; setcolor (random (.
MaxColors — random (15)) + random (15)); setfillstyle (random (12),.
getmaxcolor ()); // setcolor (random (MaxColors — random (15)) + random (15)); pieslice (random (getmaxx ()), random (getmaxy ()), random (360), random (360), random (150));
if (i>1000) {clearviewport ();i=0;}} while (!kbhit ()); // повторення доки натиснута.
клавишаgetch ();clearviewport ();}////круговая диаграмма//void diagram (void){.
int sektors[] = {20,10,35,15,20}; char *percent[]={ «20% », «10% », «35% », «15% », «20% «};
int secsize, k=0,i, r=150;MainWindow («Pie Chart Demonstration »);StatusLine (.
" Press any key to continue… "); settextjustify (CENTER_TEXT, CENTER_TEXT);
settextstyle (5,0,2);//установка атрибутів тексту outtextxy (getmaxx ()/2,25, «This.
is the pie chart diagramm ");//процес малювання діаграми за даними масиву.
for (i=0;i10000) {clearviewport ();i=0;}} while (!kbhit ()); // повторення поки.
не натиснута клавишаgetch ();clearviewport ();i=0;//рисование многоугольников з довільним.
цветомdo{ і++; poly[0] = random (i+random (20));//1-вершина poly[1] =.
random (random (ymax)/i+2); poly[2] = xmax-(i+20); /* 2-га */ poly[3] = i+20; poly[4].
= xmax-(i+50); /* 3-тя */ poly[5] = ymax-(i+20); poly[6] = i+xmax/2; /* 4-та.
*/ poly[7] = i+ymax/2;/* drawpoly автоматично не закриває багатокутник тому.
необхідно це самому*/ poly[8] = poly[0]; poly[9] = poly[1]; //рисует.
багатокутники, змінюючи координати вершин setcolor (random (MaxColors — random (15).
) + random (15)); drawpoly (5, poly); if (i>1000) {clearviewport ();i=0;}}.
while (!kbhit ()); // повторення доки натиснута клавишаgetch ();clearviewport ();}////функция.
демонстрації закрашеных многоугольников і //цветов//void demobars (void){.
MainWindow («Bars and colors demonstration »); StatusLine («Press any key.
to continue… "); int kxb=15,kyb=15; double stx, sty, x, y; stx=floor (getmaxx ()/kxb);
sty=floor (getmaxy ()/kyb); do{ for (x=3;x100) {clearviewport ();i=0;} }while (.
!kbhit ()); // повторення доки натиснута клавишаgetch ();clearviewport ();}////функция.
створення завершальній страницы//void endpage (void){MainWindow («The cycle «.
);StatusLine («Press any key to continue… »);int i, j, rad=50;do{ for (i=0;i.
0 then Rewrite (Datafile); OpFileF := IOResult=0; {$I+} if OpFileF then begin.
DisableCommands (WinCom2); EnableCommands (WinCom1); Work {перехід на роботу} endend;end;
{caseControl} Dispose (PF, Done) {знищення экземпляра}end; {FileOpen}{—————————————-}procedure.
TNotebook.FileSave;{закрывает файл даних}.
begin Close (DataFile); OpFileF :=False; EnableCommands (WinCom2); {дозвіл.
відкрити файл} DisableCommands (WinCom1) {заборона праці та збереження} end;
{TNotebook.FileSave}{—————————————}procedure TNotebook. ChangeDir;{изменяет.
поточний каталог}var PD: PChDirDialog; {діалогове вікно зміни каталогу.
диска} Control: Word;begin New (PD, Init (cdNormal, 0)); {створення діалогового вікна}.
Control :=DeskTop^.ExecView (PD); {використання вікна} ChDir (PD^.DirInput^.Data^);
{установка нового каталогу} Dispose (PD, Done) {видалення вікна з кучи}end;
{TNotebook.ChangeDir}{————————————-}procedure TNotebook. DOSCall;{временный.
вихід дос}const txt= «Аби повернутися введіть EXIT у відповідь «+ «на запрошення.
ДОС… " ;begin DoneEvents; {закрити оброблювач подій} DoneVideo; {закрити.
монітор екрана} DoneMemory; {закрити монітор пам’яті} SetMemTop (HeapPtr); {звільнити.
купу} writeln («Запровадьте EXIT для повернення »); {видати повідомлення про вихід}.
SwapVectors; {встановити стандартні вектори} {передати упр. кому. процесору дос}.
Exec (GetEnv («COMSPEC »), «»); {повернення з дос} SwapVectors; {відновити вектори}.
SetMemTop (HeapEnd); {відновити купу} InitMemory; {відкрити монітор пам’яті}.
InitVideo; {відкрити монітор екрана} InitEvents; {відкрити оброблювач подій}.
InitSysError; {відкрити оброблювач помилок} Redraw {відновити вид экрана}end;
{DOSCall}{———————————————}constructor TInterior. Init; {створює.
вікно скроллера}begin TScroller. Init (Bounds, HS, VS); ReadFile; GrowMode :=gfGrowHiX+gfGrowHiY;
SetLimit (LLine, PS^.Count)end;{———————————-}destructor.
TInterior.Done;begin Dispose (PS, Done); inherited Doneend;{—————————————}procedure.
TInterior.ReadFile;{читает вміст файла даних в масив.
LINES}var k: Integer; p. s: String; Data: DataType; f: text;begin P. S:= New (PStringCollection,.
Init (100,10)); seek (DataFile, 0); while not (EOF (DataFile) or LowMemory).
do begin Read (DataFile, data); with data do begin p. s:= Name; while Length (s).
" «then PS^.Insert (NewStr (S)) end; Location:= 0;end; {ReadFile}{——————————————}procedure.
Tinterior.Draw;{выводит дані у вікно просмотра}var.
n, {поточна рядок екрана} k: integer; {поточна рядок масиву} B: TDrawBuffer;
Color: Byte; p: PString; begin if Delta. Y>Location then Location:= Delta. Y; if.
Location>Delta.Y+pred (Size.Y) then Location:= Delta. Y+pred (Size.Y); for n:= 0.
to pred (Size.Y) do {Size.Yу рядків вікна} begin k:= Delta. Y+n; if k=Location.
then Color:= GetColor (2) else Color:= GetColor (1); MoveChar (B, «», Color, Size. X);
if kPS^.Count then write (DataFile, Data) {так — додаємо в файл} end until.
Edit or (Control=cmCancel); Drawend; {AddItem}{——————————}procedure SearchItem;{ищет.
потрібний елемент }function UpString (s: String): string;{преобразует.
рядок у верхній регистр}var k: Integer;begin for k:=1 to Length (s) do if s[k].
in [ «a ». «z «] then s[k]: =chr (ord («A »)+ord (s[k])-ord («a »)) else if s[k] in [ «а ». «п «].
then s[k]: =chr (ord («A »)+ord (s[k])-ord («a »)) else if s[k] in [ «р ». «я «].
then s[k]: =chr (ord («P »)+ord (s[k])-ord («p »)); UpString:=send; {UpString}var InWin:
PDialog; R: TRect; p. s: String; p: PInputLine; k: Word;begin {SearchItem} R. Assign (15,8,65,16);
InWin:=New (PDialog, Init (R, «Пошук записи: »)); with InWin^ do.
begin R. Assign (2,2,47,3); p:=New (PInputLine, Init (R, 50)); Insert (p); R. Assign (1,1,40,2);
Insert (New (PLabel, Init (R, «Запровадьте зразок пошуку: », p))); R. Assign (10,5,20,7);
Insert (New (PButton, Init (R, «Запровадити », cmOK, bfDefault))); R. Assign (25,5,35,7);
Insert (New (PButton, Init (R, «Вихід », cmCancel, bfNormal))); SelectNext (False).
end; if DeskTop^.ExecView (InWin)=cmCancel then exit;s:=p^.Data^;Location:=0;while.
(UpString (s)>=UpString (PString (PS^.At (Location))^)) and (Location.