Б С Бусигін - Прикладна інформатика - страница 26

Страницы:
1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83 

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

Begin End.

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

Begin

Writeln   ('Hello, World!'); End.

Після натиснення клавіш Ctrl+F9 у середовищі редактора ТП комп'ютер виконає програму і миттєво повернеться назад у середовище редактора. Щоб побачити результат роботи програми треба натиснути сукупність клавіш Alt+F5. Це дозволить побачити на екрані монітору цю вельми відому фразу. Натиснення будь-якої клавіші поверне Вас зворотно у редактор ТП.

Загальна (повна) структура програми на ТП приведена на рис. 8.l5.

Program   ProgName; {ProgName - ім'я програми, але сам оператор Program - необов'язковий}

Uses

... ; {Список модулів, з яких програміст для своїх цілей використовує різні об'єкти: процедури, функції, змінні і таке інше}

Const

...   ; { Визначення констант програми}

Type

...   ; {Опис типів змінних}

Var

...   ; {Перелік змінних, що використовуються у програмі з зазначенням їхніх типів}

ВИЗНАЧЕННЯ ПРОЦЕДУР {заголовки й тіла процедур} ВИЗНАЧЕННЯ ФУНКЦИЙ {заголовки й тіла функцій}

Begin

...   {Операторна частина програми} End.

Рисунок 8.15. Загальна структура програми на мові ТП ( 1 - розділ опису даних, 2 - операторна частина (розділ операторів)

19 Блок - смислова частина програми, що завершується точкою. Уся інформація, що розташована після точки останнього зарезервованого слова end середовищем ТИ до уваги не приймається!!!

Таким чином, програма починається з заголовка Program і імені програми, а блок вміщує розділ описів і розділ операторів. Розділ операторів уявляє собою так званий складений оператор (операторні дужки Begin End), який вміщує послідовність операторів, що виконуються і розподілені точкою з комою (;).

Можна покращити програму 'Hello, World!', додав у її кінці оператор процедури Readln без параметрів! Він зупиняє роботу програми у екрані результатів і чекає натиснення клавіши Enter для завершення роботи програми:

Begin

Writeln   ('Hello, World!'); Readln; End.

Але, коли програміст реалізує складну програму вона повинна відповідати стандартам мови і включає дві головні частини: опис даних і операторну частину, яка описує послідовність дій для виконання алгоритму програми. Частина опису даних складається зі стандартних розділів, які Ви можете вводити за необхідністю (рис. 8.16).

Real A,B,C,D; Begin

B  := 2.0;

C  := 7; A := B + C;

D  := b + c; Writeln('Resultat=', A, D)

End.

Рисунок 8.16. Програма обчислення виразів A=B+C та D=B+C.

(B=2.0; C=7)

Вправи

1. Яка є повна структура програми на мові Турбо Паскаль?

2. Які розділи входять у програму?

3. Чи можна продовжувати операторну частину програми після кінця блоку (End. )?

4. Запишіть у вигляді програм ТП вирази з попереднього розділу та виконайте їх на комп'ютері.

8.6. Інтерфейс програми користувача. Процедури введення-виводу

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

О користувача програми, яку виконує комп'ютер;

© розробника програми, якою користується користувач;

© комп'ютера, який забезпечує діалог, запрограмований розробником.

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

ПРОГРАМІСТ

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

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

ПРОГРАМА

Працює програма обчислення корнів квадратного рівняння Розробник: Драч А.А.

Уведіть коефіцієнти а, Ь, с:

ЕКРАН КОМПЬЮТЕРА

Працює програма обчислення корнів квадратного рівняння Розробник: Драч А.А.

Уведіть коефіцієнти а, Ь, с:

КОРИСТУВАЧ

Відповідає на закодовані

програмістом у програмі запитання і вводить потрібні для

її роботи дані.

КОМП'ЮТЕР

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

Рис. 8.17. Зміст інтерфейсу користувача

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

20бути. Наприклад, по ходу виконання програми, треба увести два числа дійсного типу, тобто числа, які мають крапку у своєму відображенні (2.357 та 42.9). Виникає питання: як попередити користувача, що комп'ютер чекає від нього тільки уводу (рос. - ввода) двох дійсних чисел (з крапками серед цифр при відображенні)?

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

Взагалі, для введення інформації у комп'ютер і вивіду її з нього існують чотири процедури: Read, ReadLn, Write та WriteLn. Як відомо, ТП не відрізняє великих літер від малих то не буде помилки, якщо імена ціх же процедур будуть записані тільки малими символами: read, readln, write та writeln.

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

Формат виклику: Read (xl, x2, x3... , xn);

Де х1, х2... , хп - змінні типів, що описані в розділі програми Var, при розбіжності поміж даними що описані і які у них вводяться виникає помилка введення-виводу.

Процедура ReadLn при повторному виклику зчитує дані з нової стрічки.

Приклади: Var

A,  B,  C,  D,  Suml,  Sum2   : real; Begin

Read(A,B); 1.8      3.4 <Enter>

Sum1:= A + B;

Read(C,D); 2.87    0.7 <Enter>

{Поміж числами повинно бути не менш одного пробілу}

Sum2:= C + D; Readkey End.

Використання процедури ReadLn

ReadLn (A,B); l.8    3.4 <Enter>

Sum:= A + B;

ReadLn (C,D); 2.6    0.7 <Enter>

Sum2:= C + D;

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

Приклад: Вивід цілих значень, що мають опис:

Var

I  : Integer;

Значення, що

Вираз для виводу

Результат на екрані

міститься у

цього значення

<— ліва крайня позиція

змінній I

 

поля вивіду екрану

134

Write(I);

134

56789

Write(I);

56789

287

Write(I,I,I);

287287287

134

Write(I:6);

134

1

Write(I:l0); 1

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

О з фіксованою крапкою ( -34.295 );

в з плаваючою крапкою або у експоненціальній формі (тобто 182600.0 = 1.826*105= +1.826Е+05 = 18.26Е4 і так далі).

При виводі числа з фіксованою крапкою потрібно відображати чотири складові:

О знак числа (знак "плюс" (+), як правило, не відображується); в цілу частину;

© крапку, що розподіляє цілу та дробову частини числа; О дробову частину.

У випадку виводу числа типу REAL з плаваючою крапкою для відображення його стандартно відводиться 18 позицій для восьми складових (рис. 8.18):

О пуста позиція (0);

в знак числа (пуста позиція якщо + або -) - займає одну позицію (1); © ціле значення мантиси (2); О розподіляюча крапка (3); © дробова частина мантиси (4);

© буква Е, що відзначає початок значення порядку числа (5); в знак порядку: плюс (+) або мінус (-) (6); © числове значення порядку (7).

Номери складових числа -—

0   12   3 4

5

б 7

Саме число —

-   2    .   815239   Е + 02

Рисунок 8.18. Складові числа з плаваючою крапкою

Примітка: У комп'ютерах типу Pentium III і вище відводиться ще більше знаків. А для зручності читання результатів можливо управляти кількістю знаків, що виводяться.

Приклад: Вивід дійсних значень, що описані:

Var

R : real;

{У поле шириною 18 символів виводиться десятинне значення змінної R у форматі з плаваючою крапкою й з 2-ма пустими позиціями перед числом, з яких друга - виділяється під знак числа}

Значення, що

Вираз для виводу

Результат на екрані

 

міститься у

цього значення

<— ліва крайня позиція

 

змінній R

 

поля вивіду екрану

 

715.432

Write(R);

7.1543200000Е+02

 

-1.919E+01

Write(R);

-1.9190000000Е+01

 

567.986

Write(R/2);

2.8399300000Е+02

 

511.04

Write(R:l5);

5.110400000Е+02

 

-511.04

Write(R:l5);

-5.110400000Е+02

 

46.78

Write(-R:l2);

-4.67800Е+01

 

511.04

Write(R:8:4);

511.0400

 

-46.78

Write(R:7:2);

-46.78

 

-46.78

Write(R:9:4);

-46.7800

 

 

 

 

Приклад програми з форматами для виводу даних:

Program MyFirst;

Uses Crt;

Var

A,  B  : Integer; Ratio  : Real; Begin

Write   ('Vvedite dva chisla A,  B: '); ReadLn(A,B);

WriteLn('A=        A:4,   ' B= B:6); Ratio  := A / B;

WriteLn('Rezultat Ratio = Ratio:7:2); Write('Najmite <Enter>_'); Readln; End.

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

Приклад програми на мові Турбо Паскаль, яка реалізує обчислення _згідно формул та інтерактивно взаємодіє з користувачем._

Program Second;   { Коментар: Типова програма на мові Турбо Паскаль}

Uses Crt; {Підключення модуля Crt}

const t=2.34 5; {числова константа}

const h :  integer = 55; {типізована константа}

Var {оператор опису змінних }

a,b,c,r,  s,Res  : Real; {дійсні змінні} i,j,k,n :  integer; {цілочисельні змінні} str :  string  [20]; {рядкова змінна}

Begin {Початок основного блоку програми}

ClrScr;      {Очищення екрану процедурою ClrScr } Writeln('Vvedite dannye dlya programmy: b,c,r,s' Readln(b,c,r,s); {Вводимо з клавіатури дані для задачі}

{ Реалізуємо наведену праворуч формулу — } {засобами функцій та операцій Турбо Паскалю }

{ й заносимо результат у змінну а }

{оператором присвоювання :=} {Піднесення до ступеню реалізуємо у вигляді формули: az = exp(z*ln(a)) }

a:=exp(l/4*ln(b*b*b+c*c*c))/(cos (sqr(r))*

sin(exp(2/5*ln(s))));

Writeln('Rezultat     a=',  а); {Виводимо на екран результат}

{Обчислюємо значення t згідно формули}

Res:=a*(sqr(b)*b/c);  {та заносимо у змінну Res}

t = a *

c

Writeln('Rezultat Res=

Res

Writeln('Na segodnya hvatit?' Write   ('Vvedite Vashe imya: ' {Виводимо на екран Res }

Writeln;

Readln(str); {Вводимо}

{власне ім'я у змінну str}

Writeln;

Writeln('Zdravstvuyte,     ',str); Writeln; Writeln('    i do svidaniya    ' ,str); Readln;

End.

Кінець програми

Страницы:
1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83 


Похожие статьи

Б С Бусигін - Прикладна інформатика