Міністерство освіти і науки України
Новокаховський техніко-економічний ліцей
Курсова робота з інформатики
На тему: Розв’язок системи нерівності з двома змінними
м. Нова Каховка 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
програма паскаль графічний рівняння
TurboPascal — це середовище розробки для мови програмування Паскаль. Використаний у TurboPascal діалект базувався на більш ранньому UCSD Pascal, що одержав поширення, упершу чергу, на комп'ютерах серії Apple II. Компілюються компонента Turbo Pascalбула заснована на компіляторі Blue Label Pascal, спочатку створеному в 1981 роціАндерсом Гейлсберг для операційної системи NasSys мікрокомп'ютера Nascom. Пізнішевін був переписаний як Compass Pascal для операційної системи CP / M, потім як TurboPascal для DOS і CP / M. Одна з версій Turbo Pascal була доступна під Apple Macintoshприблизно з 1986 року, але її розробка припинилася приблизно на рік. У 1982 роціПилип Кан придбав компілятор у Андерса Гейлсберг і переїхав з Парижа до Каліфорнії,де заснував компанію Borland. Коли в 1983 році з'явилася перша версія Turbo Pascal,такий тип середовища розробки був відносно новим. Під час дебюту на американськомуринку, Turbo Pascal продавався за ціною в 49,99 дол. Крім привабливої ціни, вбудованийкомпілятор Паскаля також був дуже високої якості. Приставка «Turbo» натякала якна швидкість компіляції, так і на швидкість виробленого їм виконуваного коду. TurboPascal створював машинний код за один прохід, без кроку компонування. Після рекламноїкампанії за перший місяць надійшло замовлень на 150 тис. доларів — так багато, щомісцеві банки відмовлялися оплачувати чеки і кредитні картки, підозрюючи шахрайство.За перші два роки було продано не менше 300 тисяч копій компілятора, що перевершилообсяг продажів всіх інших мов для мікрокомп'ютерів. Для того часу це була приголомшливасередовище розробки. Вона була проста і інтуїтивно зрозуміла, з добре організованимменю. Ранні версії використовували розкладку гарячих клавіш WordStar. У більш пізніхверсіях з'явилася можливість швидко отримати визначення ключового слова мови, простопоставивши курсор на ключове слово та натиснувши клавішу довідки. Довідкові статтічасто включали приклади коду, що використовує це ключове слово. Це дозволяло недосвідченимпрограмістам вивчати Паскаль навіть без допомоги книг, використовуючи лише середовищерозробки. В поставку входило велику кількість вихідних текстів демонстраційних іприкладних програм. Серед них були навіть шахи. Середа дозволяла легко вбудовуватив код на Паскалі вставки на мові асемблера. Користувач мав можливість проходитипрограму крок за кроком, при переході на асемблері блок це також працювало. В будь-якийкористувач міг додати змінну або зареєструватися у зручно розташоване вікно дляспостереження за ними. При порядкової налагодженню програм, що використовують графічнірежими IBM PC, відбувалося коректне перемикання між графічним режимом програми ітекстовим режимом середовища розробки. Крім усього цього, було засіб профілювання.Книги, включені в постачання Borland Pascal, давали детальний опис мови асемблераIntel аж до зазначення кількості тактових циклів, необхідних для виконання кожноїінструкції. У загальному і цілому, система давала чудові можливості для оптимізаціїкоду; користувачеві не потрібно користуватися чим-небудь крім середи розробки. Всебуло зроблено так ідеально, що навіть школяр міг цим користуватися. Ці якості дозволиливерсії Паскаля від Borland стати стандартом мови Паскаль де-факто. З початку 1990-хTP / BP використовується в університетах для вивчення фундаментальних концепційпрограмування. Ймовірно, розробка Microsoft Pascal була припинена через конкуренціюз високою якістю і невеликою ціною Turbo Pascal. Інша версія говорить, що Borlandуклав угоду з Microsoft на припинення розробки Turbo BASIC (середовища розробкидля BASIC, відгалузилися від Turbo Pascal), якщо Microsoft припинить розробку MicrosoftPascal. Деякий час 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
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
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 – 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)Основи мови TurboPascal (навчальний курс), П. И. Рудаков, М. А.Федотов, Москва: Радіо тазв'язок, 2000р.
4)Моргун ОлександрМиколайович. Довідник по Turbo Pascal для студентів. — М.: Діалектика, 2006. — С. 608.