Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Структура програми мовою Pascal



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

<ім'я змінної> := <вираз>;

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

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

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

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

Наприклад, якщо змінні X та Y описані наступним чином:

Var

X: integer;

Y: real;

то оператору Y:= Х+2;синтаксично не має помилок, хоча типи змінних і не збігаються. Перетворення типів (з цілого у дійсний) у цьому випадку виконується автоматично.

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

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

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

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

Наприклад: Chr(lOS), результат = 'і'.

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

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

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

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

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

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

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

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

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

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

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

У мові Паскаль стандартним засобом спілкування людини з комп'ютером є консоль (тобто це такі пристрої, як клавіатура та екран монітора).

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

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

Read (x1, х2, ...хn);

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

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

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

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

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

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

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

Процедура запису Writeln аналогічна процедурі Write, але після виведення останнього в списку значення для поточної процедури Writeln відбувається переміщення курсору на початок наступного рядка. Процедура Writeln, записана без параметрів, виконує тільки переміщення курсору на початок наступного рядка. Наприклад: Writeln ('Y1=' ,Y1)

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

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

Значення І Вираз Результат
write(I:6); ______134
write(I:10); _______________1
write(I+I:7); _______624

2. Виведення у крайню праву позицію поля шириною p значення дійсної величини 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 — містить пакет графічних засобів, що забезпечують ефективну роботу з екраном монітору у графічному режимі.

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

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

Begin

< серія >;

End.

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

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.