Розв’язок системи нерівності з двома змінними

Міністерство освіти і науки України

Новокаховський техніко-економічний ліцей

Курсова робота з інформатики

На тему: Розвязок системи нерівності з двома змінними

м. Нова Каховка 2010 рік

Зміст

Вступ

1.Turbo Pascal

1.1 Історія мови Паскаль

2. Модуль Graph

2.1 Опис деяких графічних процедур і функцій

2.2 Робота в графічному режимі

3. Модуль CRT

3.1 Процедури

3.2Опції

4. Лістинг Програми

Висновок

Блок–схема

Математична модель

Список використаних джерел



Вступ

У цій роботі розглядаються створення програми розв'язку системи нерівностей з двома змінними в графічному режимі Турбо Паскаля. Звичайно, у такому режимі можна виводити на екран не тільки звичайний текст, а й деякі графічні зображення, однак зрозуміло, що якість таких зображень буде поза всякої критики. Тим не менше, в «героїчну» епоху комп'ютерної ери цей метод був єдиним і тому дуже популярним способом виведення графіків і цілих картин на екран (і на принтер). Програмістам іноді вдавалося створювати справжні шедеври «Комп'ютерної псевдографіки». Але для серйозної роботи із зображеннями текстовий режим дисплея абсолютно не підходить. У графічному режимі мінімальним об'єктом, висновком якого може управляти програміст, є так званий піксель (від англійського Pixel, що виник в результаті об'єднання слів «малюнок» (picture) і «Елемент» (element)). Пікселів має менші розміри у порівнянні із символом (на один символ в текстовому режимі відводиться майданчик розміром в декілька пікселів). Його геометричні розміри визначаються роздільною здатністю монітора. Роздільна здатність монітора зазвичай задається у вигляді rx * ry, де rx – кількість пікселів на екрані по горизонталі, а ry - кількість пікселів по вертикалі. На практиці використовуються не довільні, а деякі певні значення роздільної здатності. Такими здатностями є, наприклад, 320х200, 640х480, 800х600, 1024х768, 1280х1024 і т.д.

1. Turbo Pascal

програма паскаль графічний рівняння

Turbo Pascal — це середовище розробки для мови програмування Паскаль. Використаний у Turbo Pascal діалект базувався на більш ранньому UCSD Pascal, що одержав поширення, у першу чергу, на комп'ютерах серії Apple II. Компілюються компонента Turbo Pascal була заснована на компіляторі Blue Label Pascal, спочатку створеному в 1981 році Андерсом Гейлсберг для операційної системи NasSys мікрокомп'ютера Nascom. Пізніше він був переписаний як Compass Pascal для операційної системи CP / M, потім як Turbo Pascal для DOS і CP / M. Одна з версій Turbo Pascal була доступна під Apple Macintosh приблизно з 1986 року, але її розробка припинилася приблизно на рік. У 1982 році Пилип Кан придбав компілятор у Андерса Гейлсберг і переїхав з Парижа до Каліфорнії, де заснував компанію Borland. Коли в 1983 році з'явилася перша версія Turbo Pascal, такий тип середовища розробки був відносно новим. Під час дебюту на американському ринку, Turbo Pascal продавався за ціною в 49,99 дол. Крім привабливої ціни, вбудований компілятор Паскаля також був дуже високої якості. Приставка «Turbo» натякала як на швидкість компіляції, так і на швидкість виробленого їм виконуваного коду. Turbo Pascal створював машинний код за один прохід, без кроку компонування. Після рекламної кампанії за перший місяць надійшло замовлень на 150 тис. доларів - так багато, що місцеві банки відмовлялися оплачувати чеки і кредитні картки, підозрюючи шахрайство. За перші два роки було продано не менше 300 тисяч копій компілятора, що перевершило обсяг продажів всіх інших мов для мікрокомп'ютерів. Для того часу це була приголомшлива середовище розробки. Вона була проста і інтуїтивно зрозуміла, з добре організованим меню. Ранні версії використовували розкладку гарячих клавіш WordStar. У більш пізніх версіях з'явилася можливість швидко отримати визначення ключового слова мови, просто поставивши курсор на ключове слово та натиснувши клавішу довідки. Довідкові статті часто включали приклади коду, що використовує це ключове слово. Це дозволяло недосвідченим програмістам вивчати Паскаль навіть без допомоги книг, використовуючи лише середовище розробки. В поставку входило велику кількість вихідних текстів демонстраційних і прикладних програм. Серед них були навіть шахи. Середа дозволяла легко вбудовувати в код на Паскалі вставки на мові асемблера. Користувач мав можливість проходити програму крок за кроком, при переході на асемблері блок це також працювало. В будь-який користувач міг додати змінну або зареєструватися у зручно розташоване вікно для спостереження за ними. При порядкової налагодженню програм, що використовують графічні режими IBM PC, відбувалося коректне перемикання між графічним режимом програми і текстовим режимом середовища розробки. Крім усього цього, було засіб профілювання. Книги, включені в постачання Borland Pascal, давали детальний опис мови асемблера Intel аж до зазначення кількості тактових циклів, необхідних для виконання кожної інструкції. У загальному і цілому, система давала чудові можливості для оптимізації коду; користувачеві не потрібно користуватися чим-небудь крім середи розробки. Все було зроблено так ідеально, що навіть школяр міг цим користуватися. Ці якості дозволили версії Паскаля від Borland стати стандартом мови Паскаль де-факто. З початку 1990-х TP / BP використовується в університетах для вивчення фундаментальних концепцій програмування. Ймовірно, розробка Microsoft Pascal була припинена через конкуренцію з високою якістю і невеликою ціною Turbo Pascal. Інша версія говорить, що Borland уклав угоду з Microsoft на припинення розробки Turbo BASIC (середовища розробки для BASIC, відгалузилися від Turbo Pascal), якщо Microsoft припинить розробку Microsoft Pascal. Деякий час Microsoft випускав QuickPascal, який був майже 100%- сумісний з Turbo Pascal. Протягом декількох років Borland поліпшував не тільки середовище розробки, але й мова. У версії 5.5 в нього були введені передові можливості об'єктно-орієнтованого програмування. Останньою випущеної версією була версія 7. Borland Pascal 7 включав в себе середовище розробки і компілятори для створення програм під DOS, під DOS з розширювачем DOS і Windows 3. x, у той час як Turbo Pascal 7 міг створювати тільки звичайні DOS-програми. З 1995 року в Borland припинили розробку Turbo Pascal і запропонували як заміну середовище розробки Delphi. Нова версія мови зазнала зміни (особливо ООП), і мови повернулося споконвічне назва, закріплене розробниками Apple Object Pascal. Стара об'єктна модель Turbo Pascal і відповідний синтаксис підтримувався як застарілий, використання обох об'єктних моделей одночасно в одній і тій же програмі не підтримується.

1.1 Історія мови Паскаль

Першою мовою програмування високого рівня був Фортан, Кобол і Алгол, яві вшийся в 50-і роки XX століття. Перші два з них "живуть" і понині-це мови-довгожителі, а Алгол став родоначальником цілого сімейства мов, в числі яких і Паскаль. В даний час налічується кілька тисяч мов програмування, більша частина з яких має досить вузьку спеціалізацію. Кажуть, що, як тільки з'явився другий мова програмування, що почалися бурхливі суперечки про те, яка мова краща. Ці суперечки йдуть і понині, беручи іноді характер релігійних війн давнину. Особливе місце серед мов програмування займає Алгол, перша версія якого з'явилася в 1958 році. Одним з розробників Алгол був "батько" ФОРТРАН Джон Бекуса. Назва мови ALGorthmic Language підкреслює те, обставина, що він призначений для запису алгоритмів. Завдяки чіткій логічній структурі АЛГОЛ став стандартним засобом запису алгоритмів в науковій і технічній літературі. Наступними версіями мови стали Алгол 60і Алгол 68. Алгол 68 виявився зайві громіздким, що створювало великі труднощі у його реалізації. Один з членів комітету, що займався розробкою специфікації,- швейцарський учений Ніклаус Вірт - протестував проти її прийняття. Він виявився правий-АЛГОЛ 68 став "лебединою піснею" колись найпопулярнішого мови програмування, проте АЛГОЛ дав початок цілої гілки мов. У 1967 році Вірт створив свою версія АЛГОЛ W. Це було пов'язано з необхідністю знайти таку мову програмування, який можна було б використовувати для навчання студентів методів розробки програм, таких як "програмування зверху вниз", "структурний програмування" і т. д. Вірту не сподобався не один з існуючих на сьогоднішній момент мов, і в 1968 році він приступив до розробки свого власного. У 1970 році в світі програмування відбулися принаймні дві великих події-з'явилися операційна система UNIX і нову мову програмування. Вірт назвав його на честь великого французьку математика і філософа XVII століття Блеза Паскаля. Паскаль винайшов обчислювальний пристрій, саме тому новій мові було присвоєно його ім'я. Вірт наполягав згодом, що назва мови повинно починатися з великої літери як прізвище. Перша версія мови була створена для комп'ютера CDC 6000. Завдяки своїй чіткості, логічності та інших особливостей Паскаль надовго зайняв свою нішу, будучи прекрасним мовою для навчання програмуванню. Паскаль використовувався і для розробки серйозних програм-додатків. Жартували, що Вірт розробив іграшку, але багато поставилися до неї дуже серйозно. Згодом з'явилися різні версії мови і його розширення. Найбільш відомим розширенням став пакет Турбо Паскаль фірми Borland, що з'явився в 1983 році і відразу став подією в світі комп'ютерних технологій. Перша згадка про нього містилася в рекламі опублікованій в журналі Byte, а сам пакет призначений для операційної системи CP / M. На початку 1984 року його було перенесено в середу MS-DOS і придбав величезну популярність. З тих пір з'явилося декілька версій Турбо Паскаля, остання-сьома.

2. Модуль Graph

Турбо Паскаля містить близько п'ятдесяти різних процедур та функції, призначених для роботи з графічним екраном. У цьому ж модулі деякі вбудовані константи, які можуть бути використані в графічних програмах. Для того щоб скористатися всіма можливостями модуля Graph, на початку програми (після заголовка) необхідно помістити оператор використання Uses Graph; Основну частину модуля складають процедури введення базових графічних елементів, таких як точки, відрізки прямих ліній, Дуги і цілі кола та ін. Функція GraphErrorMsg. Повертає значення типу String, в якому за вказаним кодом помилки дається відповідне текстове повідомлення. Заголовок:Functional GraphErrorMsg (Code: Integer): String; Тут Code - код помилки, що повертається функцією GraphResult. Функція CloseGraph. Завершує роботу адаптера в графічному режимі і відновлює текстовий режим роботи екрану.

2.1 Опис деяких графічних процедур і функцій

1)Ellipse (X, Y: Integer; U1, U2, XR, YR: Word) Малює дугу еліпса поточним кольором; X, Y - координати центру еліпса; U1, U2 - кути до початкової і кінцевої точок дуги еліпса (див. процедуру Arc) ; XR, YR - горизонтальна і вертикальна півосі еліпса. 2)FillEllipse (X, Y: Integer; XR, YR: Word) Малює заштрихований еліпс, використовуючи X, Y як центр і XR, YR як горизонтальну і вертикальну півосі еліпса. 3)Line(X1,Y1, X2,Y2:Integer)Малює лінію від точки X1,Y1 до точки X2, Y2. 4)LineTo(X,Y:Integer)Малює лінію від поточного покажчика до точки X,Y. 5)SetBkColor (Соlor: Word) Встановлює колір фону.

2.2 Робота в графічному режимі

Перш, ніж приступити до створення графічних програм на Turbo Pascal, необхідно ознайомитися з найбагатшими графічними можливостями цієї мови, зосередженими в стандартних модулях (бібліотеках) GRAPH і CRT (CRT назва походить від Cathode-Ray Tube - електронно-променева трубка). Ці модулі містять опису стандартних констант, процедур і функцій, графічному режимі. При роботі в графічному режимі весь екран розбивається на окремі точки - "пікселі". Положення піксела також задається двома координатами - X і Y. Координата X збільшується зліва направо, а координата Y - зверху вниз. Підключення модулів CRT і GRAPH до програми здійснюється за допомогою ключового слова Uses (англ.uses - використовує) Uses Crt, Graph.



3. Модуль CRT

Модуль CRT містить опису констант,процедур і функцій, що забезпечують керування текстовим режимом роботи монітора і звуковим генератором.

3.1 Процедури

1)ClrScr- Очищає екран або вікно і поміщає курсор у верхній лівий кут. 2)Delay(D: Word)- припиняє роботу програми на вказане число D мілісекунд. Практично час затримки залежить від тактової частоти процесора. 3)GotoXY (X, Y: Byte)- переміщає курсор в позицію X рядка Y екрану. 4)NoSound-Вимикає джерело звуку. 5)Sound (F: Word)- запускає джерело звуку з частотою F (Гц). 6)TextBackGround (Color: Byte)- встановлює колір фону. 7)TextColor (Color: Byte)- встановлює колір символів. 8)Window(X1, Y1, X2, Y2: Byte)- визначає текстове вікно на екрані. X1, Y1 - координати лівого верхнього кута вікна, X2, Y2 - правого нижнього кута вікна.

3.2 Опції

1)KeyPressed: Boolean Аналізує натискання клавіші. Результат TRUE, якщо на клавіатурі натиснута клавіша (крім Alt, Ctrl і т.п.), і FALSE в іншому випадку. Чи не затримує виконання програми. 2)ReadKey: Char Читає символ з клавіатури без ехоповтора на екрані. Припиняє виконання програми, перш ніж натиснути на будь-яку клавішу, крім Alt, Ctrl і т.п.



4.Лістинг Програми

Program grapik;

Uses Crt, Graph;

const A=-100;B=100;XO=0;YO=0;

N=100;

var gd,gm,sgr,left,up,down,right,xgo,ygo,i:integer;

x, y :array [1..300] of real;

xg, yg: array [1..300] of integer;

Kx, Ky, Y_min, Y_max, X_min, X_max, Dx:real;

begin

gd:=0;gm:=0;

initgraph (gd,gm,'C:\tp70\bgi');

SetBkColor (3);

left:=40; up:=40; down:=440;

X_min:=A; X_max:=B;

Dx:=(B-A)/(N-1);

for i:=1 to N do begin

X[i]:=A+round(Dx*(i-1));

Y[i]:=1+X[i];

end;

Y_max:=Y[1];

Y_min:=Y[1];

for i:=1 to N do begin

if Y_max<Y[i] then Y_max:=Y[i];

if Y_min>Y[i] then Y_min:=Y[i];

end;

begin

Ky:=(down-up)/(Y_max-Y_min);

Kx:=Ky;

right:=left+round(Kx*(X_max-X_min));

if right>GetMaxX then

begin

right:=GetMaxX;

Kx:=(right-left)/(X_max-X_min);

Ky:=Kx;

up:=(down-round(Ky*(Y_max-Y_min)));

end;

for i:=1 to N do begin

Xg[i]:= left+round(Kx*(X[i]-X_min));

Yg[i]:= down-round(Ky*(Y[i]-Y_min));

end;

MoveTo (Xg[i], Yg[i]);

for i:=2 to N do

LineTo (Xg[i], Yg[i]);

XGO:=left+round(Kx*(XO-Y_min));

YGO:=down-round(Ky*(YO-Y_min));

Line(XGO,up,XGO,down);

Line(left,YGO,right,YGO);

for i:= 1 to N do

y[i]:=x[i]*x[i];

X_max:=y[1];

Y_min:=y[1];

for i:= 1 to N do

begin

if Y_max<y[1] then y_max:=y[1];

if Y_min>y[i] then y_min:=y[i];

end;

for i:=1 to N do

begin

xg[i]:=(left+round(Kx*(x[i]-x_min)));

yg[i]:=(down-round(Ky*(y[i]-x_min)));

end;

MoveTo (xg[i], yg[i]);

for i:=2 to N do

LineTo (xg[i], yg[i]);

End;

xg[i]:=yg[i];

for i:=1 to N do

MoveTo (xg[i],yg[i]);

LineTo (left, yg[i]);

readln;

closegraph;

end.



Висновок

У цій роботі описуються розв’язок систем нерівностей призначених для створення графіків в графічному середовищі Турбо Паскаля. Використовуючи вище перераховані процедури та функції, я навчився зображати графіки систем нерівностей, так само зміг показати переріз цих графіків. Написавши дану програму, я отримав навички роботи в графічному середовищі Турбо Паскаль, навчився правильно застосовувати різні процедури та функції, точно визначати і задавати координати графіків.



Блок–схема





РОЗРАХУНОК КООРДИНАТ.



ВИЗНАЧЕННЯ y_min,y_max.


РОЗРАХ.КОЕФІЦІЕНТА В МАСИВІ.


РОЗРАХ.ЕКРАННОГО КОЕФІЦІЕНТА.



ПОБУДУВА ГРАФІКУ.



ПОБУДУВА ВІСЕЙ OX,OY.







Математична модель


y – x2 ≥ 0,

y – x ≥ 1;

y=x2,

y= 1+x;

y=x2:

(0; 0), (2; 4);

y=1+x:

(2; 3), (1; 2).



Список використаних джерел

1)Е. А. Зуєв. Програмування на мові Turbo Pascal 6.0, 7.0, М.: Веста, Радіо і зв'язок, 1993, - С.376

2)Turbo Pascal: вчиться програмувати, О. А. Меженний, Москва:

Изд.дом «Вільямс», 2001

3)Основи мови Turbo Pascal (навчальний курс), П. И. Рудаков, М. А.Федотов, Москва: Радіо та зв'язок, 2000р.

4)Моргун Олександр Миколайович. Довідник по Turbo Pascal для студентів. - М.: Діалектика, 2006. - С. 608.