русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Набір функцій і операцій, введених для кожного зі стандартних типів


Дата добавления: 2015-07-23; просмотров: 1083; Нарушение авторских прав


У своїй роботі програміст завжди стикається з таким поняттям, як величина. Що ж таке величина? З точки зору програмування величини — це дані, що обробляються програмами.

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

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

Для визначення констант служить зарезервоване слово const.

Формат опису:

Const < ідентифікатор > = < значення константи >;

Приклад: Const Max=1000;

Vxod=’сегмент 5’;

Є ряд констант, до значень яких можна звертатися без попереднього опису. Наприклад,

 

Ідентифікатор Тип Значення Опис
True boolean True "Істина"
False boolean False "Хибність"
Maxint integer Максимальне ціле

Змінні, на відміну від констант, можуть змінювати свої значення в процесі виконання програми.

Кожна змінна і константа належать до визначеного типу даних. Тип констант визначається компілятором автоматично. Тип змінних обов'язково вказується перед тим, як їх використати. Для опису змінних призначено зарезервоване слово var.

Формат опису: Var < ідентифікатор> : < тип >;

Приклад: Var Suml, Sum2: real;

Тип даних — це діапазон значень, що можуть приймати об'єкти програми, і сукупність операцій, які дозволяється виконувати над цими значеннями.

Усі типи даних у мові програмування Паскаль розділяються на дві групи: скалярні (прості), структуровані (складені).

Скалярні типи у свою чергу підрозділяються на стандартні та типи користувача. Стандартні типи пропонуються користувачам розроблювачами системи Turbo Pascal. Типи користувача — розроблюються самим програмістом.



До стандартних скалярних типів відносяться наступні типи: цілі, дійсні, літерні, булівські.

Величини цілих типів можуть бути подані як у десятковій, так і в шістнадцятковій системах. Якщо число представлене в шістнадцятковій системі, перед ним без проміжку записується знак $. Діапазон зміни шістнадцяткових чисел від $0000 до SFFFF.

Цілі типи даних являють собою значення, що можуть використовуватися в арифметичних виразах. Усі стандартні цілі типи зведені в наступну таблицю:

Тип Діапазон Необхідна пам'ять (байт)
Byte 0...255
Shortint -128...127
Integer -32768.. .32767
Word 0...65535
Longint -2147483648 ..2147483647

Дійсні типи даних являють собою дійсні значення, що використовуються в арифметичних виразах і займають у пам'яті від 4 до 10 байт. Паскаль допускає представлення дійсних значень у вигляді як із плаваючою, так і з фіксованою крапкою.

Дійсні десяткові числа з фіксованою крапкою записуються за звичайними правилами арифметики. Єдине, що відрізняє цей формат від математичного, це те, що ціла частина від дробової відокремлюється десятковою крапкою, а не комою. Якщо десяткова крапка відсутня, число вважається цілим. Перед числом може знаходитися знак «+» або «-» Якщо знак відсутній, за замовчуванням число вважається додатнім.

Дійсні десяткові числа у форматі з плаваючою крапкою подаються в наступному (експоненціальному) вигляді:

mЕ+р,

де m — мантиса (ціле або дробове число з фіксованою десятковою крапкою),

Е — означає «десять у степені»,

р - порядок (ціле число).

Взагалі мантиса повинна бути нормалізованою, тобто представленою у вигляді числа, що належить діапазону від 0 до 1 (це означає, що крапка завжди знаходиться перед першою цифрою числа). Однак програмісту дозволяється писати мантису у вигляді будь-якого дробового числа з фіксованою крапкою. Нормалізація при цьому виконується системою автоматично.

Приклад:

Число у форматі з плаваючою крапкою Значення числа
0.4500Е+02 0.45*10 =45
-2.600Е05 -2.6*10 =-260000
+0.45670Е-02 0.4567*10 =0.004567

Стандартний найбільш часто використовуваний дійсний тип даних представлений у наступній таблиці:

Тип Діапазон значень Мантиса Необхідна пам'ять (байт)
Real 2.9*10E-39...1. 7*10Е38 11-12

Літерний (символьний) тип може набувати значень кодової таблиці ПЕОМ (дивись таблицю ASCII кодів).

Символьній змінній в пам'яті виділяється один байт, тому вона можна зберегти тільки один символ ASCII таблиці.

Булівський тип подається двома значеннями: True (істина) або False (хибність). Він широко застосовується в логічних виразах і виразах відношення. Структуровані типи у своїй основі мають один або декілька скалярних типів даних. До структурованих типів даних відносяться рядки, масиви, файли, записи і т.д. Змінні і константи всіх типів використовуються у виразах. Вираз задає порядок виконання дій над елементами даних і складається з операндів (констант, змінних, звертань до функцій), круглих дужок і знаків операцій. Круглі дужки ставляться, як і в математиці, для керування порядком виконання операцій. Якщо дужки відсутні, операції виконуються в залежності від їх пріоритетів, про що буде сказано далі.

В мові Паскаль є такі операції:

• арифметичні;

• відношення (порівняння);

• логічні.

Операції можуть бути унарними та бінарними. У першому випадку операція відноситься до одного операнду і завжди записується перед ним, у другому операція виражає відношення між двома операндами і записується між ними.

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

Операції відношення виконують порівняння двох операндів і визначають, значення виразу є істинним або хибним. Результат завжди має булівський тип і приймає одне з двох значень: True (істина) або False хибність). Всі операції відношення зведені в наступну таблицю.

Операції Назва Вираз Результат
= Дорівнює А=В True, якщо А дорівнює В
<> Не дорівнює А<>В True, якщо А не дорівнює В
> Більше А>В True, якщо А більше В
< Менше А<В True, якщо А менше В
>= Більше або дорівнює А>=В True, якщо А більше або дорівнює В
<= Менше або дорівнює А<=В True, якщо А менше або дорівнює В

 

Результатом виконання логічного виразу є логічне значення True або False

Операндами служать дані тільки булівського типу. Список логічних операцій наведений у таблиці:

Опера ція Дія Вираз А В Результат
not Логічне заперечення not A True   False
      False   True
and Логічне "ТА" A and В True True True
      True False False
      False True False
      False False False
or Логічне "АБО" A or В True True True
      True False True
      False True True
      False False False

Виконання кожної операції відбувається з урахуванням її пріоритету.

 

Значення пріоритетів зазначені в наступній таблиці:

Операція Пріоритет Вид операції
Not, унарні «-» і «+» Перший (вищий) Унарна операція
*, /, div, mod, and Другий Операції типу множення
+, -, ord Третій Операції типу додавання
=. <>, <. >, <=, >= Четвертий (нижчий) Операції відношення

Арифметичні вирази у якості операндів можуть містити імена функцій.Стандартні функції (cos, sin, x та інші) вам знайомі з курсу математики, і їх використання у курсі інформатики відрізняється тільки правилами запису (синтаксису). Так, на відміну від математики, в програмуванні аргумент функції обов'язково береться в круглі дужки. Нижче поданий список цих функцій, де літерами X та І позначені відповідно: X — цілі та дійсні типи, І — тільки цілі.

Abs(X) — обчислення абсолютного значення (модулю) X. Тип результату збігається з типом параметра.

АгсТаn(Х) - обчислення кута, тангенс якого дорівнює X, значення кута подано в радіанах і може знаходитися в діапазоні від -р/2 до р/2. Для перетворення значення кута з радіанної міри в градусну необхідно значення кута помножити на число 180/р. Результат має дійсний тип.

Cos(X) — обчислення косинуса X, параметр задає значення кута в радіанах. Для перетворення значення кута помножити на число 180/р. Результат має дійсний тип.

Ехр(х) — обчислення значення експоненти аргументу (Е ). Результат завжди має дійсний тип.

Frac(X) — знаходження дробової частини X. Результат має дійсний тип.

Іnt(Х) — знаходження цілої частини X (дробова частина відкидається). Результат має дійсний тип.

Ln(x) — обчислюється натуральний логарифм аргументу. Результат має дійсний тип. За допомогою функцій Ехр та Ln можна обчислити довільний степінь числа наступним чином: a =Exp(b*Ln(a)).

Pi — повертає значення числа р (3.1415926).

Sin(X) — обчислення синуса X. Параметр задає значення кута в радіанах. Для перетворення значення кута з радіанної міри в градусну необхідно значення кута помножити на число 180/р. Результат має дійсний тип.

Sqr(X) — піднесення до квадрату значення X. Тип результату збігається з типом параметра.

Sqrt(X) — обчислення квадратного кореня з X. Тип результату дійсний.

Random — генерує значення випадкового числа з діапазону від 0 до 0.99. Тип результату дійсний.

Random(P) — генерує значення випадкового числа з діапазону від 0 до Р. Тип результату цілий. Щоб випадкові числа були «більш випадковими», необхідно періодично змінювати базу генерації. Для цього використовується процедура Randomize, що дозволяє при кожному новому запуску програми отримувати різні випадкові числа.

Для величин перелічувальних типів (всі цілі, літерний та булівський) існують також декілька зручних стандартних функцій та процедур, наведених нижче:

Dec(x,[dx]) — процедура зменшує значення змінної X на величину DX, а якщо параметр DX не заданий — на 1.

Inc(x,[dx]) — процедура збільшує значення змінної X на величину DX, а якщо параметр DX не заданий - на 1.

Pred(X) — функція, що визначає попереднє значення для даного типу. Наприклад, Pred(5)=4, Pred(True)=False, Pred('B')='A'.

Succ(X) — функція, що визначає наступне значення для даного типу. Наприклад, Succ(5)=6, Succ(True)=False, Succ('A')='B'.

Odd(X) — число перевіряється на парність. Аргументом цієї функції може бути тільки число типу longint, а результат дорівнює true, якщо аргумент парний, і false - в протилежному випадку.

 

3. Вказівка присвоювання. Вказівки введення та виведення.

Структура програми на мові програмування.

 

Вочевидь, що майже в будь-якій програмі будуть присутні обчислення, адже комп'ютер - це перш за все обчислювальна машина. Причому результати обчислень необхідно буде запам'ятати для подальшого використання. Для цього існує команда присвоєння.

Формат цього оператора наступний: <ім'я змінної> := <вираз>;

Виконується ця операція так: обчислюється вираз, що знаходиться праворуч від знака присвоєння, і отримане значення замінює поточне значення змінної, ім'я якої стоїть ліворуч від знака присвоєння.

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

Наприклад, такий математичний вираз: на мові Паскаль буде мати наступний

 

(a-b)/(2*c+(a/(c+(b-5)/(c-b))))

А такий:

a-34 на мові Паскаль: lE04*a-34.2*cos(beta).

Зверніть також увагу на те, що у всіх виразах потрібно обов'язково ставити знаки множення, а імена змінних — це ідентифікатори, і тому вони повинні відповідати раніше зазначеним правилам (так, грецька буква b, що використовується в математиці, замінюється у вище наведеному прикладі ідентифікатором beta).

Дуже важливо при створенні виразів стежити за типами операндів. Як було зазначено вище, тип даних дозволяє встановлювати внутрішній формат збереження даних та контролювати дії, що виконуються над ними. Контроль за використанням змінних на етапі компіляції програми виконується в мові Паскаль автоматично. З одного боку — це її важлива перевага над іншими мовами програмування. Але з іншого — іноді незручно те, що Паскаль майже не дозволяє автоматичне перетворення типів. Виключення зроблено тільки щодо констант та змінних цілих типів, які дозволяється використовувати у виразах дійсного типу. Наприклад, якщо змінні X та Y описані наступним чином: Var

X: integer; Y: real;

то оператор Y := X+2;

синтаксично не має помилок, хоча типи змінних і не збігаються. Перетворення типів (з цілого у дійсний) у цьому випадку виконується автоматично. В той же час оператор: X := 2.78;буде помилковим, тому що автоматичне перетворення дійсних типів у цілі не виконується. Зверніть увагу, що константа 12.0 з точки зору компілятора буде також дійсною, хоча дробова частина і дорівнює нулю, тому що константа містить десяткову точку.

Аналогічно не можна змішувати літерні та числові типи даних, тобто вираз типу: 5 + ‘F’.

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

Chr(I) — перетворює цілий тип у літерний, тобто повертає символ стандартного коду таблиці ASCII з номером, що дорівнює значенню І. Якщо значення більше 255, виникає програмне переривання.

Наприклад: Chr(105); результат =’I’.

Ord(S) — для значень літерного типу S, функція Ord повертає їх номер згідно з таблицею ASCII. Таким чином, літерний тип перетворюється у цілий.

Наприклад: Ord('A'); результат = 65.

Round(X) — повертає значення X, округлене до найближчого цілого числа. Результат має цілий тип, тобто дійсна змінна перетворюється на цілу.

Наприклад: Round(5.6); Результат = 6.

Тгunс(Х) — повертає найближче ціле число, яке менше або дорівнює X, якщо Х>=0, і більше або рівне X, якщо Х<0. Результат відноситься до цілого типу.

Виходячи з цього, наступний оператор: X := Y/X;

буде помилковим (X, як описано вище, має цілий, a Y — дійсний тип), а оператор X := round(Y/X); помилок не має.

Зверніть ще увагу на те, що операції DIV i MOD виконуються тільки з цілими типами даних і спроба використати у якості операторів для них дійсні дані призводить до помилки.

Наприклад, помилковими будуть вирази:

1.5 div 3 (один з операндів — дійсне число)

5 mod Y (змінна Y має дійсний тип)

4 / 1 div 2 (результатом операції ділення 4/1 буде дійсне число 4.0)

Введення даних — це передача інформації від зовнішнього носія в оперативну пам'ять для обробки.

Виведення — це зворотний процес, коли дані передаються після обробки з оперативної пам'яті на зовнішній носій.

У мові Паскаль стандартним засобом спілкування людини з ЕОМ є консоль, що складається з таких пристроїв, як клавіатура та екран монітора.

• Процедура читання Read забезпечує введення числових даних, символів, рядків і т.д. для наступної їхньої обробки.

Формат введення:

Read (xl,x2,...хn);

де х1, х2,... хn — змінні допустимих типів даних.

Значення х1, х2,...хn набираються мінімум через один проміжок на клавіатурі, при цьому вони відображаються на екрані для контролю правильності введення. Після набору даних однієї процедури Read натискається клавіша <Enter>. Значення введених даних повинні строго відповідати типам цих даних, інакше компілятор виводить на екран повідомлення про помилку.

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

• Процедура читання Readln аналогічна процедурі Read, єдина відмінність полягає в тому, що після зчитування останнього в списку значення для однієї процедури Readln дані для наступної процедури Readln будуть зчитуватися з початку нового рядка.

• Процедура запису Write робить виведення числових даних, символів, рядків і булівських значень на екран монітору.

Формат виведення: write (Yl, Y2,... Yn) — виведення на монітор;

де Yl, Y2,... Yn — дані, що виводяться.

• Процедура запису Writeln аналогічна процедурі Write, але після виведення останнього в списку значення для поточної процедури Writeln відбувається переміщення курсору до початку наступного рядка. Процедура Writeln, записана без параметрів, виконує тільки переміщення курсору на початок наступного рядка.

У процедурах виведення Write і Writeln є можливість запису виразу, що визначає ширину поля для виведення. У прикладах, що подаються далі, використовуються наступні умовні позначення:

• І — ідентифікатор, що визначає ціле число,

• R — ідентифікатор, що визначає дійсне число,

• p,q — цілі константи, що визначають довжину поля виведення та кількість цифр після десяткової крапки.

1.Виведення десяткового значення цілої величини І у крайні праворуч позиції поля шириною р (проміжки перед числом вказані знаком «-»).

 

Значення I   Вираз   Результат  
write(I:6);   - - - 134
-1 wrte(I:10);   - - - - - - - - -1
write(I*2:7);   - - - - 624

2.Виведення у крайні праворуч позиції поля шириною р значення дійсної величини R у форматі з фіксованою крапкою, причому після десяткової крапки виводиться q цифр (0<=q<=24), що представляють дробову частину числа. Якщо q=0, ні дробова частина, ні десяткова крапка не виводяться. Якщо q>24, то при виведенні використовується формат із плаваючою крапкою. Без використання форматування число також виводиться у форматі з плаваючою крапкою.

Значення R   Вираз   Результат  
511.04     write(R:8:4);   511.0400  
-46.78   Write(R:7:2);   _-46.78  
-46.78   Write(R:9:4);   -46.7800  

 

Програма на мові Паскаль складається з рядків, максимальна довжина яких не повинна перевищувати 127 символів. Програміст, набираючи текст програми, має право розміщувати рядки на екрані довільно. Рядок може починатися з будь-якої колонки. Кількість операторів у ньому довільна, причому відокремлюються вони один від одного крапкою з комою. Однак для яснішого сприйняття програми рекомендується розміщувати кожен оператор на окремому рядку, а складені оператори взагалі виокремлювати, роблячи відступи.

Синтаксично програма складається з необов'язкового заголовку і програмного блоку, який у свою чергу будується з двох частин:

• описової;

• виконавчої.

Блок, що не входить до складу будь-якого іншого блоку, називається глобальним. Блоки, що знаходяться в глобальному, називаються локальними. Глобальний блок — це основна програма, він присутній обов'язково. Локальні блоки — це процедури і функції, їх наявність не обов'язкова. Об'єкти програми (змінні, константи і таке інше) відповідно називають глобальними і локальними. Область дії об'єктів - блок, де вони описані, і усі вкладені в нього блоки.

На початку програми знаходиться заголовок, що складається в загальному випадку з зарезервованого слова Program та імені програми. Заголовок несе чисто змістове навантаження і може бути відсутнім.

Після заголовка знаходиться програмний блок, що складається в загальному випадку із п'яти розділів, перші чотири з яких — описова частина, а останній — виконавча. Склад цих блоків наступний:

• список імен використовуваних бібліотечних модулів (програм, що написані заздалегідь і можуть бути використані при розв'язуванні даної задачі),

• опис констант;

• опис типів користувача;

• опис змінних;

• опис процедур і функцій користувача;

• оператори.

Таким чином структура програми має такий вигляд:

Program <ім'я>;

Uses <ім'я1, ім'я2>;

{список використаних бібліотечних модулів}

Const < ідентифікатор > = < значення >;

Туре < ідентифікатор > = < опис типу >;

Var < ідентифікатор > : < тип >;

{ розділ опису підпрограм}

Begin

< оператори >;

End.

Будь-який розділ, крім розділу операторів, може бути відсутнім. Розділ uses завжди знаходиться в заголовку програми. Решта розділів можуть зустрічатися в програмі будь-яку кількість разів у довільному порядку. Головне, щоб усі описи об'єктів програми були зроблені до того, як вони будуть використані.

Розділ uses складається з зарезервованого слова Uses і списку імен стандартних бібліотечних модулів та бібліотечних модулів користувача.

Формат опису:

Uses < ім'я 1 >,< ім'я 2 >,...;

Бібліотечні модулі створюються заздалегідь і містять часто використовувані програми. Вони можуть бути створені самим користувачем або кимось іншим. У шкільному курсі ми використовуємо деякі зі стандартних модулів, що створені розробниками мови Паскаль: Crt і Graph.

Crt — містить засоби керування монітором у текстовому режимі, клавіатурою ПЕОМ, а також звукові ефекти.

Graph — містить пакет графічних засобів, що забезпечують ефективну роботу з екраном монітору у графічному режимі.

Як вже зазначалося, у розділі опису констант робиться присвоювання постійних значень ідентифікаторам констант. Розділ починається зарезервованим словом Const, за яким записується ряд виразів, що надають ідентифікаторам постійні числові або рядкові значення. Вирази присвоювання відокремлюються один від одного крапкою з комою.

Формат опису:

Const < ідентифікатор> = < значення >;

Приклад:

Const A = 10.25;

Мах = 1000;

V = 'Hello' ;

Кожна змінна, що трапляється в програмі, повинна бути описана. Опис обов'язково передує використанню змінної.

Формат опису: Var < ідентифікатор,... > : < тип >;

Приклад: Var A, S : real;

n : integer;

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

У програмі на мові Паскаль розділ операторів є основним. Він починається зарезервованим словом Begin (початок), далі розміщуються оператори мови, відділені один від одного крапкою з комою. Завершує розділ зарезервоване слово End (кінець) і крапка:

Begin

< серія >;

End.

В будь-якому місці програми можуть вживатися коментарі. Це текст, за допомогою якого програміст занотовує деякі пояснення для користувачів програми. Текст коментаря обмежується символами {} або (* *) і може містити комбінації латинських і російських літер, цифр і інших символів. В обмежувачах (* *) проміжки між дужкою і зірочкою заборонені, і, крім того, у тексті не повинні знаходитися знаки обмежувачів, з яких коментар починається. Обмежень на довжину коментаря немає.

4. Формування зображення на екрані ПЕОМ.

Монітор комп'ютера (з відеоадаптером CGA та вище) може працювати в одному з двох режимів:

• текстовому;

• графічному.

Текстовий режим дозволяє виводити на екран будь-який символ ASCII-таблиці у визначене знакомісце екрану, яке знаходиться на перетині рядка та стовпчика. Кількість знакомісць залежить від текстового режиму, але найчастіше дорівнює 25 рядкам по 80 стовпчиків у кожному. В цьому режимі можна керувати кольором тла та кольором і яскравістю символів, які вводяться з клавіатури.

В графічному режимі будь-яке зображення отримується як сукупність різнокольорових точок — пікселів. Кількість елементів зображення теж задається відповідним режимом, але стандартно дорівнює 640 на 480 пікселів по горизонталі та вертикалі.

Для роботи в текстових режимах розробниками мови програмування Паскаль були написані спеціальні підпрограми, що об'єднані в бібліотечний модуль Crt. Цей модуль може виконувати такі функції:

• регулювати яскравість світіння символів;

• керувати кольором зображення і тла;

• керувати текстовим курсором;

• організовувати роботу з текстовими вікнами;

• організовувати звукові ефекти;

• керувати клавіатурою.

Деякі з цих підпрограм ми розглянемо нижче.

Так, наприклад, наступні процедури дозволяють очищати екран та керувати рядками на екрані:

ClrScr — повністю очищує екран або поточне вікно і переміщує курсор у лівий верхній кут екрана або поточного вікна (координати 1,1);

ClrEol — вилучає всі символи починаючи з поточної позиції курсору до кінця рядка;

InsLine — вставляє порожній рядок перед поточним рядком; ,.

DelLine — вилучає вміст рядка, в якому розташований курсор. Усі рядки, що розміщені нижче, піднімаються на один рядок угору.

При роботі в текстовому режимі із кольоровим монітором кожний виведений на екран символ може бути одного з 16 (0—15) можливих кольорів. Тло може бути одним із 8 (0—7) кольорів. Для встановлення кольору виведених символів використовується процедура TextColor, для встановлення кольору тла — процедура TextBackGround. Є функція створення мерехтіння символів:

TextColor(Color:byte) — установити колір символів, що виводяться;

TextBackGraund(Color:byte) — установити колір тла.

Значення параметрів можуть задаватися як константами (наприклад, Yellow), так і їх числовимиеквівалентами (наприклад, 14), повний перелік яких наведений у таблиці:

Темні кольори Світлі кольори
O (Black) - чорний 8 (DarkGray ) - Темно-сірий
1 (Blue) - синій 9 (LightBlue) - світло-синій
2 (Green) - зелений 10 (LightGreen) - світло-зелений
З (Суап) - блакитний 1 l (LightCyan) - світло-блакитний
4 (Red) - червоний 12 (LightRed) - світло-червоний
5 (Magenta)-фіолетовий 13 (LightMagenta) - світло-фіолетовий
6 (Brown) - коричневий 14 (Yellow) - жовтий
7 (LightGray) - світло-сірий 15 (White)- білий

Щоб надати виведеним символам ефекту мерехтіння, при встановленні кольорів вказується константа Blink (або 16). Мерехтіння буде підтримуватися доти, поки не відбудеться установка кольору символів, що виводяться, без мерехтіння.

Приклад:

TextColor(Yellow+Blink);

Write( 'жовті символи, що миготять');

TextColor(12+16);

Write('світло-червоні символи, що миготять');

TextColor(6); Write('коричневі символи').

Існують також процедури, що керують яскравістю зображення. Всі вони діють до їх скасування, тобто до встановлення іншого режиму:

LowVldeo — встановлює режим мінімальної яскравості світіння виведених на екран символів.

NormVideo — встановлює режим нормальної яскравості світіння виведених на екран символів. Цей режим встановлюється автоматично при ініціалізації модуля Crt.

HighVideo — встановлює режим максимальної яскравості світіння.

Існує можливість у будь-який момент роботи програми використовувати для виведення не весь екран, а деяку його частину, що називається вікном. Розмір вікна визначається користувачем, але вікно не може перевищувати розміру екрана. Для організації вікон у Паскалі використовується процедура: Window(XI, Yl, X2, Y2) ; де XI, Y1 — координати лівого верхнього, а Х2, Y2 — правого нижнього кута вікна. Розмір максимального вікна (повний екран) — (1,1,80,25), мінімального — один стовпчик на один рядок.

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

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

GoToXY(X, Y:byte) — процедура переводить курсор у задану позицію екрана (або вікна) з координатами X (стовпчик), У (рядок); верхній лівий кут екрана має координати (1,1), а правий нижній у стандартному режимі (80,25);

WhereX, WhereY— функції, що дозволяють одержати відповідні значення X- або Y- координати курсору щодо поточного вікна. Діапазон значень, що повертаються, визначається розмірами поточного вікна або повного екрана.

ПРИКЛАД:

Написати фрагмент програми, що виведе в середині екрана прізвище учня червоним кольором, а у наступному рядочку під прізвищем — ім'я жовтим кольором. Прізвище необхідно вивести підвищеною яскравістю, а ім'я — з мерехтінням. Колір тла має бути синім:

program task;

uses crt;

begin

textbackground(blue); {встановлення кольору тла)

clrscr; (очищення екрана}

highvideo; {встановлення підвищеної яскравості зображення}

textcolor(red); (встановлення кольору виведення}

gotoxy(35,12); (переведення курсору в задану точку - центр екрана)

writeln(«Ivanov»); (виведення прізвища}

normvideo;

textcolor(yellow+blink); (встановлення кольору виведення зображення з мерехтінням)

gotoxy(35,13);

writeln(«Petro»); end.

У текстовому режимі операторами виведення можна виводити на екран будь-який символ ASCII-таблиці, навіть такий, клавіша якого відсутня на клавіатурі. В цьому випадку на екран монітора його можна вивести або за допомогою символу # з наступним ASCII-кодом символу, або набиранням ASCII-коду необхідного символу на додатковій цифровій клавіатурі (з натиснутою клавішею Alt). Наприклад, один і той самий символ «-» можна вивести на екран таким чином: Writeln('-'); (символ отриманий одночасним натисканням клавіш Alt+< ASCII код символу>} Writeln(#219);

За допомогою таких псевдографічних символів можна створити на екрані нескладний малюнок, схожий на всім відомий «японський кросворд», а також різного вигляду таблиці (дивись повний набір псевдографічних символів ASCII-таблиці).

Поряд із підпрограмами організації роботи з екраном модуль Crt містить засоби керування звуком.

У персональних комп'ютерів є можливість генерувати звукові сигнали- за допомогою вбудованого динаміка з частотою 37—32767 Гц. Гучність звуку не регулюється. Стандартний звуковий сигнал (біп) постійної тривалості (0,25 с) і частоти (800 Гц) викликається сьомим символом (G) кодової таблиці ASCII.

Приклад:

writeln('помилка в даних', G );

writeln('працює процедура',#7,#7) ;

writeln ( 'підкключений драйвер',Chr(7),Chr(7));

Для керування частотою звуку і його тривалістю в мові Паскаль використовуються стандартні процедури:

Sound(I) — активізує звукові засоби ПЕОМ. Ціле значення I вказує частоту звучання звуку в герцах. Звук зазначеної частоти буде генеруватися доти, доки не буде скасований процедурою NoSoud;

NoSound — скасування звуку. Скасовує звуковий режим, заданий процедурою Sound,

Delay(I) — вказує час, упродовж якого лунає сигнал.

Приклад: Begin

Sound(500);

Delay(2000);

NoSound;

End;

У даному прикладі звуковий сигнал частотою 500 Гц буде звучати 2 секунди (2000 мс).

За допомогою цих процедур можна створити найрізноманітніші звукові ефекти. Для цього використовується набір частот, що відповідають нотам різних октав:

Таблиця 2

Нота Велика октава Мала октава Перша октава Друга октава
До   130.81   261.63   523.25   1046.50  
Ре   146.83   293.66   587.33   1 1 74.07  
Мі   164.81   329.63   659.26   1318.05  
Фа   174.61   349.23   698.46   1396.09  
Соль   196.00   392.00   784.99   1568.00  
Ля   220.00   440.00   880.00   1760.00  
Сі   246.94   493.88   987.77   1975.00  

Для використання в процедурі Sound усі зазначені в таблиці значення частот округлюються.

Наприклад, для виконання за допомогою вбудованого динаміка відомої дитячої пісеньки «Ялинка» необхідно написати таку лінійну програму.

program muzika;

uses crt;

begin

sound(785);delay(10000);nosound;sound(659);delay(5000) ;nosound;sound(659);delay(5000);nosound;sound(785);delay(10000);nosound;sound(659);delay(5000);nosound;sound(659);delay(5000);nosound; sound(785);delay(5000) ;nosound;sound(698); delay(5000) ; nosound; sound(659); delay(5000); nosound; sound(587);delay(5000); nosound; sound(523); delay(20000); nosound; sound(785); delay(10000); nosound; sound(1046); delay(5000); nosound; sound(880); delay(5000); nosound; sound(785); delay(10000); nosound; sound(659); delay(5000); nosound; sound(659); delay(5000); nosound; sound(785) ; delay(5000) ; nosound; sound(698); delay(5000) ; nosound;sound(659) ; delay(5000); nosound; sound(587); delay(5000) ; nosound; sound(523); delay(20000); nosound; end.



<== предыдущая лекция | следующая лекция ==>
Алфавіт і словник мови | Процедури і функції для графічних побудов


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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