Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Eof(f)таEoln(f)




 

Перша функція повертає значення True (істина), якщо вказівник файлу знаходиться в кінці файлу, а друга – якщо в кінці рядка.

1.6. Приклад 1. Створити новий типізований файл Inputa.txt та записати до нього до 20 випадкових цілих чисел. Зчитати дані з цього файлу та відсортувати їх на збільшення. Відсортований масив вивести на екран та дописати в кінець існуючого текстового файлу Outputa.txt, розділивши існуючі дані вільним рядком.

 

Program _File;

Uses Crt;

Var

Masiv:array [1..20] of word;

I, Imax, J, X:word;

f1:file of word;

f2:text;

 

Begin

TextBackGround (blue);

ClrScr;

TextColor (yellow);

{

Створення файлу Inputa.txt та заповнення його випадковою кількістю випадкових цілих чисел

}

Assign (f1, 'Inputa.txt');

Rewrite (f1);

Randomize;

Imax:=Random (20);

for I:=1 to Imax do

begin

J:=Random (777);

Write (f1, J);

end;

Close (f1);

{

Читання з файлу Inputa.txt невідомої

кількості елементів даних

}

Assign (f1, 'Inputa.txt');

Reset (f1);

I:=1;

While Not Eof(f1) do

begin

Read (f1, Masiv[I]);

I:=I+1;

end;

Close (f1);

{

Сортування елементів даних

кількістю Imax на збільшення

}

Imax:=I-1;

For I:=2 to Imax do

for J:=Imax downto I do

if Masiv[J-1] > Masiv[J] then

begin

X:=Masiv[J-1];

Masiv[J-1]:=Masiv[J];

Masiv[J]:=X;

end;

{

Запис відсортованих даних у файл

Outputa.txt та вивід їх на екран

}

Assign (f2, 'Outputa.txt');

Append (f2);

Writeln (f2);

For I:=1 to Imax do

begin

Writeln (f2,Masiv[I]);

Writeln (Masiv[I]);

end;

Close (f2);

 

Readln;

End.

 

2. ЗАВДАННЯ НА РОБОТУ

 

Розробити та запустити у роботу програму на мові програмування "Паскаль", яка вирішує задачу відповідно до заданого нижче варіанта. При цьому детально вивчити та практично застосувати пункт меню Options інтегрованого середовища мови.

2.1. Створити новий типізований файл, ім’я якого вводиться з клавіатури, та заповнити його 29 випадковими цілими числами. Прочитати і відобразити на екрані 1, 8, 15, 22, 29 елементи файлу та знайти серед них найменший. Результат з відповідним повідомленням записати в новий текстовий файл DATA.OUT та вивести на екран.

2.2. Створити новий текстовий файл DATA.IN та заповнити його 22 випадковими дійсними числами в проміжку від 9 до 125. Прочитати і відобразити на екрані перші 11 елементів файлу та знайти серед них найбільший. Результат дописати в кінець даного файлу з відповідним повідомленням та вивести на екран.

2.3. Обчислити значення функції Y=A*sin(В*X) при зміні Х від 0 до 3 з кроком 0,05. Значення Х та Y в форматі з фіксованою крапкою та з відповідним заголовком вивести в два стовпця на екран та записати в текстовий файл, імя якого задається з клавіатури. Значення параметрів А та В взяти з попередньо створеного текстового файлу ЕРА.ТХТ.

2.4. Знайти мінімальні елементи кожного стовпця дійсної матриці А3х4, яка знаходиться в попередньо створеному текстовому файлі ЕР.DАТ. Результат з відповідним повідомленням записати в новий текстовий файл ЕР.ОUТ та вивести на екран.

2.5. Створити новий типізований файл IN.DAT та записати до нього масив дійсних чисел, кількість елементів якого вводиться з клавіатури. Отримати новий масив шляхом додавання до поточних елементів масиву найменшого елементу. Результат дописати в кінець існуючого текстового файлу OUT.DAT.

2.6. Створити новий типізований файл EPA.DAT та заповнити його випадковими цілими числами. Прочитати і відобразити на екрані перший та останній елементи файлу та знайти серед них найбільший. Результат з відповідним повідомленням записати в новий текстовий файл EPA.OUT та вивести на екран.

2. 7. Створити новий текстовий файл DATA.IN та заповнити його 35 випадковими дійсними числами. Прочитати і відобразити на екрані останні 9 елементів файлу та знайти серед них найменший. Результат дописати в кінець даного файлу з відповідним повідомленням та вивести на екран.

2.8. Обчислити значення функції Y=B*соs(C* X) при зміні Х від 1 до 5 з кроком 0,1. Значення Х та Y в форматі з фіксованою крапкою та з відповідним заголовком вивести в два стовпця на екран та записати в текстовий файл ЕРА.IN. Значення параметрів B та C взяти з текстового файлу ЕРА.ТХТ.

2.9. Знайти максимальні елементи кожного рядку цілочисленої матриці С4x4, яка знаходиться в текстовому файлі ЕР.DАТ. Результат з відповідним повідомленням записати в новий текстовий файл, ім’я якого задається з клавіатури, та вивести на екран.

2.10. Створити новий типізований файл ЕР.DАТ та записати до нього масив з 25 цілих чисел. Створити новий масив шляхом множення поточних елементів масиву на перший елемент. Результат дописати в кінець існуючого текстового файлу OUT.DAT.

 

3. КОНТРОЛЬНІ ЗАПИТАННЯ

 

3.1. Які види файлів підтримує мова програмування "Паскаль".

3.2. Яка послідовність роботи з файлами.

3.3. Як описуються файлові змінні для різних видів файлів.

3.4. Якими командами відкриваються файли для запису та читання інформації.

3.5. За допомогою яких команд здійснюється читання та запис інформації до файлу.


Комп'ютерний практикум № 6

ПОБУДОВА ГРАФІКІВ ФУНКЦІЙ НА МОВІ "ПАСКАЛЬ"

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

 

1. ТЕОРЕТИЧНІ ВІДОМОСТІ

 

1.1. Побудова на екрані графіків функцій здійснюється при роботі дисплея у графічному режимі, коли програмісту доступна кожна точка (pixel – піксель) екрана. Кількість точок по ширині та висоті екрана визначає його роздільну здатність, наприклад, 640х480. При цьому лівий верхній кут екрана має координату (0,0), рис. 1.1. Значення координат по осі Х та Y повинно бути цілочисленого типу.

Роздільність екрана визначається не тільки характеристикою дисплея, а й типом його відеоадаптера (відеокарти). Найбільш популярним є тип VGA, який підтримує три графічні режими, табл. 1.1.

 

Таблиця 1.1.

Тип адаптера Графічний режим Роздільність екрана
  VGA VGALo (або цифра 0) VGAMed (або цифра 1) VGAHi (або цифра 2) 640x200 640x350 640x480

 

1.2. Команди мови "Паскаль" для роботи у графічному режимі дисплея знаходяться в стандартному бібліотечному модулі Graph, тому його необхідно підключити в описуючій частині програми

 

Uses Graph;

Бібліотечний графічний модуль Graph зберігається в окремому файлі Graph.tpu

1.3. При роботі комп’ютера під керуванням операційної системи DOS дисплей автоматично встановлюється у текстовий режим, тому для переходу для роботи у графічному режимі його потрібно ініціювати у виконавчій частині програми за допомогою процедури

InitGraph (<тип графічного драйвера:integer>,

<графічний режим:integer>, <шлях до драйвера:string>);

для якої необхідно вказати наступні три параметри:

1) Тип графічного драйвера записується буквами чи цифрами в залежності від типу дисплея, наприклад, для найбільш поширених драйверів це такі значення: VGA або цифра 9, EGA або цифра 3, CGA або цифра 1. Для автоматичного визначення необхідного типу драйвера корисно використовувати функцію Detect;

2) Графічний режим за згодою забезпечує максимальну роздільність екрана. Якщо її потрібно зменшити, наприклад, для адаптера VGA, то значення режиму задається буквами чи цифрами відповідно до табл. 1.1;

3) Шлях до драйвера записується в апострофах з указуванням диска та каталогів. Якщо вони не вказуються, то пошук драйвера буде здійснюватися в поточному каталозі. Графічні драйвери зберігаються у файлах із розширенням .BGI, наприклад файл EGAVGA.BGI. Найчастіше всі драйвери знаходяться у підкаталозі BGI, що входить до каталогу програмних засобів мови "Паскаль".

1.4 Після завершення роботи у графічному режимі його потрібно обов'язково закрити процедурою CloseGraph;

1.5. Внутрішні помилки в модулі Graph зберігаються у функції GraphResult, значення яких використовуються для вирішення задачі коректного запуску графічного режиму дисплея. Коди помилок приймають значення від мінус одиниці до мінус 14, опис яких можна отримати у пункті меню Help. При відсутності помилок функція приймає значення нуль, яке ще позначається символами gkOk.

1.6. У графічному режимі за типом курсору на екрані існує невидимий вказівник розміром у піксель, який позначається СР (current pointer). При відкритті графічного режиму СР встановлюється у лівий верхній кут екрана, а потім переміщується при виконанні операцій виводу на екран. Встановлення вказівника в задану позицію на екрані, наприклад, в координати (х=200, у=100) здійснюється командою

 

MoveTo (200, 100);

 

1.7. Для побудови графіків та координатних сіток використовуються три команди малювання ліній.

З’єднання прямою лінією двох точок на екрані з координатами (х1=100, у1=50) та (х2=200, у2=150) здійснюється командою

 

Line (100, 50, 200, 150);

Лінія від вказівника до точки, наприклад, із координатами (х=250, у=150) малюється командою

LineTo (250, 150);

Цю команду зручно використовувати для виводу одного графіка.

Лінія в приростах від координат вказівника, наприклад, для приростів Dх=50, Dу=100, будується командою

 

LineRel (50, 100);

1.8. Колір ліній задається цифрами від нуля до 15 або словами від black (чорний) до white (білий), тобто як для текстового режиму. Наприклад, блакитний колір (blue) установлюється за допомогою команди

 

SetColor (blue);

 

За згодою встановлено білий колір ліній.

Колір фону екрана, наприклад, червоний, задається командою

 

SetBkColor (red);

За згодою встановлено чорний колір фону.

1.9. Товщина та тип лінії встановлюються процедурою

 

SetLineStyle (<тип, шаблон, товщина:word>);

 

Тип лінії можна задавати словами чи цифрами відповідно до табл. 1.1.

 

Табл.1.1.

Тип лінії   Примітка
SolidLn (або цифра 0) Суцільна лінія
DottedLn (або цифра 1) Лінія з точок
CenterLn (або цифра 2) Штрих-пунктирна лінія
DashedLn (або цифра 3) Штрихова лінія
UserBitLn (або цифра 4) Тип лінії задає користувач

 

Перші чотири типи є стандартними й для них значення шаблону задається рівним нулю. Є також можливість створювати свій тип лінії, задавши значення типу рівним чотири (UserBitLn). В цьому випадку шаблон записується 16-ма бітами, яким відповідає 16 пікселів ділянки лінії. Біт рівний одиниці, означає, що піксель світиться, а рівний нулю – не світиться. Комбінуючи ці біти, можна створити заданий тип лінії. Наприклад, усім одиничним бітам, тобто 1111111111111111, відповідає суцільна лінія. Значення бітів можна задавати й у шістнадцятковому коді, наприклад, для суцільної лінії $FFFF.

Лінія може бути нормальної товщини чи жирною. Товщина задається командами згідно з таблицею 1.2.

Табл.1.2.

Товщина   Примітка
NormWidth (або цифра 1) Нормальна товщина
ThickWidth (або цифра 3) Жирна лінія

 

За згодою встановлена суцільна лінія нормальної товщини, тобто

 

SetLineStyle (0,0,1);

 

1.10. Для виводу текстової інформації на екран у графічному режимі можна скористатися однією з двох команд

 

OutText (’Текст для виводу’);

та

 

OutTextXY (200,100,’Текст для виводу’);

 

Перша команда виводить інформацію відносно поточної позиції вказівника екрана, а друга – відносно заданої позиції вказівника, в наведеному прикладі – це координати (х=200, у=100).

Недоліком представлених команд виводу є те, що вони дозволяють виводити інформацію тільки рядкового типу string, проте часто необхідно виводити на екран числові значення змінних. Для виходу із ситуації числові дані попередньо перетворюються у рядкові за допомогою процедури

 

Str (<число>,<рядковий еквівалент>);

наприклад, числове значення змінної Min дійсного типу real передається змінній Smin рядкового типу string, а потім виводиться

 

Min:=10.3;

Str (Min,SMin);

OutText (Smin);

Текст може виводитися різними шрифтами та заданою величиною (розміром), які вказуються у команді

 

SetTextStyle (<шрифт, орієнтація тексту, розмір:word>);

 

Кожен шрифт зберігається в окремому файлі з розширенням .CHR найчастіше у підкаталозі BGI, що входить до каталогу програмних засобів. Параметри команди задаються словами чи еквівалентними цифрами. Позначення стандартних шрифтів мови "Паскаль" представлено в табл.1.3.

 

 

Табл.1.3.

Тип шрифту   Примітка
DefaultFont (або цифра 0) Растровий шрифт, матриця 8х8
TriplexFont (або цифра 1) Штриховий напівжирний шрифт
SmallFont (або цифра 2) Штриховий тонкий шрифт
SansSerifFont (або цифра 3) Штриховий рублений шрифт
GothicFont (або цифра 5) Штриховий готичний шрифт

 

Текст може виводитися горизонтально – зліва направо чи вертикально – знизу догори. Орієнтація задається командами згідно табл. 1.4.

Табл.1.4.

Орієнтація тексту   Примітка
HorizDir (або цифра 0) Горизонтально
VertDir (або цифра 1) Вертикально

 

Розмір шрифту встановлюється цифрами в межах від нуля до 10, причому нульове значення відповідає стандартному розміру шрифту.

За згодою встановлено растровий шрифт стандартного розміру, направлений горизонтально, тобто

 

SetTextStyle (0,0,0);

Вирівнювання тексту на екрані відносно позиції вказівника СР (точки виводу) здійснюється процедурою

 

SetTextJustify (<по горизонталі, по вертикалі:word>);

Вирівнювання задається командами у вигляді слів чи еквівалентних цифр відповідно до табл.1.5.

Табл.1.5.

Вирівнювання   Примітка
По горизонталі
LeftText (або цифра 0) Вказівник ліворуч тексту
CenterText (або цифра 1) Вказівник по центру тексту
RightText (або цифра 2) Вказівник праворуч тексту
По вертикалі
BottomText (або цифра 0) Вказівник вище тексту
CenterText (або цифра 1) Вказівник по центру тексту
TopText (або цифра 2) Вказівник нище тексту

За згодою встановлено вирівнювання по центру, тобто

 

SetTextJustify (1,1);

1.11. Для ефективної роботи програми з будь-яким драйвером та роздільністю екрана необхідно обчислювати координати точок на екрані відносно поточної роздільності. Для цього використовуються функції

 




Поделиться с друзьями:


Дата добавления: 2014-12-25; Просмотров: 358; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.053 сек.