суботу, 28 квітня 2018 р.

Чи можна дати точне означення інформації?

Інформація є фундаментальним науковим поняттям. Воно є первинним і не має строгого наукового визначення. Особливість цього поняття є його універсальність – воно використовується практично у всіх сферах людської діяльності: природничих науках, філософії, біології, економіці. Разом з тим фундаментальної природничо-наукової дисципліни, яка б займалась природою інформації, не існувало. Фізика, хімія, біологія вивчають властивості інформації, а не її природу. Конкретний смисл поняття “інформація” залежіть від того, в якому контексті воно використовується.
В останні роки інформатика почала формуватись як природничо-наукова дисципліна, однак вона не вийшла ще за межі прикладної технічної науки, тому також не ввела до цих пір строгого поняття інформації. В кращому випадку її розглядають як змістовну частину даних, яка інтерпретується людиною.
Однак наукове визначення інформації дається досить просто, якщо припустити, що інформація – це динамічний об’єкт, не існуючий в природі сам по собі, а той, що утворюється в результаті взаємодії даних та методів. Він існує стільки, скільки триває ця взаємодія, а весь інший час він перебуває у вигляді даних.
Отже, інформація – це продукт взаємодії даних та методів, який розглядається в контексті цієї взаємодії.
Наприклад, книга – це сховище даних. Вона призначена для одержання інформації візуально, шляхом читання. Якщо спробувати різні книжки навпомацки, також можна одержати інформації, хоча напевне не ту, яка передбачалась авторами. Даний приклад пояснює сутність контексту взаємодії даних та методів.
Контекстний метод опрацювання даних – це той метод, який призначений для обробки даних певного типу. Цей метод відомий як тому, хто створює дані, так і тому, хто їх використовує. Для графічних даних контекстним є метод спостереження. Для текстових даних контекстним є метод, оснований на зорові та знання мови тексту. Для даних, що подаються радіохвилями, контекстними є методи перетворення даних за допомогою радіо або телевізійного приймача.
Є свої особливості і для комп’ютерної інформації. Для даних, що подаються в числовій формі і зберігаються у вигляді сигналів, зареєстрованих на магнітних ( або інших) носіях, контекстними є методи апаратні та програмні методи обчислювальної техніки.
З визначення інформації випливає важлива властивість інформації – динамічність. Тобто, інформація існує досить нетривалий термін часу – рівно стільки, скільки триває взаємодія даних та методів під час її створення, споживання та перетворення. Як тільки це ця взаємодія завершується, ми знову маємо справу з даним, але поданими вже в іншій формі. В даному випадку ми маємо справу з інформаційним процесом. Такий процес являє собою цикл утворення інформації з даних і збереження її у вигляді нових даних. Інформація існує досить нетривалий термін часу, але інформаційний процес триває стільки, скільки існують носії інформації. Наприклад, вивчаючи старовинні надписи, вчені продовжують інформаційний процес, розпочатий багато років тому.
Особливість інформаційного процесу в обчислювальній техніці полягає у тому, що певні його етапи відбуваються автоматично, без участі людини. В ході цих етапів дані, подані у вигляді зареєстрованих сигналів. взаємодіють як з апаратними методами (комп’ютерами та іншим обладнанням), так і з програмними методами (комп’ютерними програмами). При цьому важливою особливістю комп’ютерних програм є їх двоїстість. З одного боку, вони ведуть себе як дані, а з іншого – як методи опрацювання даних.

Мова програмування Тurbo Рascal


Практична робота «Циклічні алгоритми на мові Pascal»
1.Скласти алгоритм знаходження всіх дільників натурального числа А. Протестуйте алгоритм для  натуральних значень А: а)12; б)32; в)60; г)41; д)100;  е)20; є)81; ж)29.
program  Dilnyk_1;                                                                                 {назва    алгоритму}
var  a,n,c,d: integer;                    {оголошення  змінних величин: a,n,c,d - це цілі числа}
begin                                                                                             { початок    алгоритму}
    readln(a);                                  {оголошення  про введення  числа a - це ціле число}
    n:=1;                                                      {присвоєння  першого дільника - це число 1}
    while  (n <= sqrt(a) )  do  begin        {цикл з передумовою ; поки n<= квадр. корінь з а}
       c:=a mod n;                                                                {с  присвоємо остачу від  а:n}
       d:=a div n;                                                        {d присвоємо цілу частину від  а:n}
       if c = 0 then begin                   {розгалуження при діленні а:n націло, то виводимо n}
          writeln(n);                                                  {виведення  числа n – дількника числа А}
if n <> d then writeln(d );              {розгалуження якщо а:n націло і n ≠ d, то виводимо d}
       end;                                           {закінчення неповного розгалуження з умовою c = 0}
       inc(n);                           {присвоєння цілій змінній  n – наступного числа, тобто  n+1}
    end;                            {закінчення циклу з передумовою  при  n>квадр. корінь з а }
end.                                                                                                     {закінчення алгоритму}
2. Скласти алгоритм знаходження суми цифр натурального числа А. Протестуйте алгоритм для  натуральних значень А: а)4444; г)1023456.
program  SUMMA_2;                                                                           {назва    алгоритму}                                                                          
var  a, x, i, s: integer;                  {оголошення  змінних величин: a, x, i, s - це цілі числа}   
begin                                                                                                  { початок    алгоритму}
     writeln('Введіть ціле число');    {оголошення  про введення  числа a - це ціле число}
     readln(a);  x:=a;                                   {залишку х від числа а спочатку  присвоємо  а}
     s:=0;                                                                      {сумі цифр  s  у числі  а присвоємо 0}
     while (x <> 0) do begin                        {цикл з передумовою  поки  x ≠ 0, то виконати}
       s := s + (x mod 10);                {до суми цифр  s  у числі  а присвоємо чергову цифру}
       x := x div 10;           {залишку х від числа а  присвоємо  число без останньої цифри}
     end;                                                          {закінчення циклу з передумовою,  при  x = 0}
     writeln( 'Сумма цифр числа ',a,' = ', s );                    {виводимона екран  суму цифр  s}
end.                                                                                                    {закінчення алгоритму}.
3. Скласти алгоритм знаходження простих чисел, (це числа, що мають тільки два дільники. Протестуйте алгоритм: LIMIT = 20; LIMIT = 500; LIMIT = 500.
program  PRIME_2;                                                                             {назва    алгоритму}                                                                          
const  LIMIT = 20;                                           {оголошення  постійної величини: LIMIT}   
var  i, j, lim: integer;                   {оголошення  змінних величин: a, x, i, s - це цілі числа}   
begin                                                                                                    {початок  алгоритму}
  writeln;                                                   {друк на екрані  простих чисел з нового рядка}
  for i:=1 to LIMIT do begin     {цикл з лічильником від 1 до LIMIT та аналіз простоти}
      j:=2; lim:=round(sqrt(i));               {перше просте число 2;  і до  lim =квадр. корінь з і}    
      while (i mod j <> 0) and (j <= lim) do inc(j);             {вкладений цикл з передумовою}   
      if (j > lim) then write( i,' ' );       {неповне розгалуження якщо j > lim, то виводимо i }    
  end;                            {закінчення циклу з лічильником,  вихід  з циклу при  і = LIMIT}

end.                                                                                                    {закінчення алгоритму}.




Завантаження і налагодження програми FreePascal

  Для завантаження в робоче вікно програми FreePascal, потрібно у підменю File вибрати команду Open ([F3]).
Команда Open відкриває діалогове вікно Open File,  в якому можна вибрати файл для відкриття в редакційному вікні:
Open a File



Діалогове вікно містить поле введення імен файлів, список файлів, інформаційну панель, стандартні кнопки CANCEL і HELP  та кнопки ( OPEN, REPLACE). Якщо виділити файл і [Enter] то у рядок Name виведеться ім’я файла із списку файлів Files.
Для початку сеансу налагодження потрібно вибрати  команду  Trace Into в меню  Run (або натиснути [F7]).  
Перший натиск клавіші  [F7] ініціалізує сеанс налагодження. Повторний натиск [F7], почне виконання програми.

8. Робота з вікнами.
Для роботи з вікнами використовуються команди пункта меню Window, а саме:
Size/Move (Ctrl + F5) – переміщення вікна мишкою установивши курсор на екрані або на рядку імені.
Zoom (F5) – зміна розмірів вікна ( розкривається мишкою на все робоче вікно або перейде до попереднього розміру).
Next (F6) – перехід до наступного вікна .
 Previous   ([Shift + F6]) – перехід до попереднього  ( до першого після останнього, до другого після першого).
Close ([Alt + F3]) – закрити всі вікна.
[Close + Enter]  - розкриття робочого вікна на весь екран.
Перехід від одного вікна до іншого можна здійснювати також за допомогою комбінацій клавіш [Alt + N ], де  N – номер існуючого вікна, тобто того, яке попередньо було створено як робоче.

9. Отримання допомоги  про оператори, функції тощо.
Для отримання допомоги потрібно виконати одну із наступних дій:
1.     Натиснути [ Shift + F1]. У списку, що відкриється  вибрати потрібне і [Enter].
2.     Натиснути [Shift + F1], перемістити курсор на чисте поле вікна і набрати потрібний оператор. Як тільки буде набрана достатня кількість букв, на екрані появляться оператори чи функції із даними буквами.
3.     Виділити у програмі потрібний оператор ( встановивши на нього курсор) і натиснути  [Ctrl + F1]. Якщо оператор написаний неправильно, то виведуться всі назви подібні до виділеного.
         
          10. Загальна структура програми на мові Паскаль
Загальна структура програми на мові Паскаль має вигляд :

PROGRAM <ім’я>;
[<блок описувачів ;>]

BEGIN

 <блок операторів, кожен із яких закінчується символом;>
END.
BEGIN вказує на початок блоку і після нього не ставиться ніяких знаків; END вказує на кінець блоку (програми) після нього ставиться”;” або ”.”; оператори програми розміщуються між даними двома словами. Включені в програму коментарі не виконуються і поміщаються між символами ” {} ”. Крім таких коментарів у програму можна включити, при потребі, спеціальні глобальні директиви для компілятора, які визначили б режим  його роботи при трансляції програми, містили вказівки на включення у текст програми фрагментів других програм тощо. Такі директиви починаються парою символів ({$) і закінчуються символом (}). Приклад: директива {$R+} відміняє діапазон типу даних.
В програмі також можна використовувати пропуски, які не впливають на її виконання, але завдяки яким можна зміщувати оператори один по відношенню до другого і тим самим робити програму легшою для читання.
Відповідно програма складається із:
-              заголовка програми;
-              опису даних, з якими виконуються дії (описова частина);
-              опису послідовності дій, які необхідно виконати (виконувана частина).
Дії представляються операторами мови, дані вводяться за допомогою описів і визначень.
Опис даних текстуально повинен передувати опису дій і має містити інформацію про всі об’єкти, що будуть використовуватись в діях (операторах).
Опис даних  і опис послідовності дій утворюють блок (тіло) програми.
 Наприклад, задавши USES Crt; можна у розділі операторів задати оператор очистки екрану ClrScr;.
Повна структура програми може мати такий вигляд:
PROGRAM <ім’я;>
USES <список модулів і бібліотек;>
[Описова частина, яка може містити наступні розділи:
Розділ оголошення позначок  LABEL…;
Розділ констант  CONST…;
Розділ типів даних  TYPE…;
Розділ змінних  VAR…;
Розділ процедур  PROCEDURE<ім’я;>
                               <тіло процедури;>
Розділ функцій  FUNCTION<ім’я;>
                              <тіло функції;>]
Виконувана частина яка записується в операторних дужках.
                               BEGIN
                                <оператори;>
                               END.
Примітки:
1. Будь-який із перших шести розділів може бути відсутнім.
2. Оператор USES може бути включений у програму тільки один раз і він пишеться зразу після службового слова PROGRAM.

ЗАВДАННЯ ДЛЯ САМОПІДГОТОВКИ

1.     Розпочніть роботу з Free Pascal (FP).
2.     Створіть новий файл-програму {Активізація головного меню – F10, File / New}
3.     Наберіть текст нуль-програми з назвою EmpyCode.
4.     Збережіть програму у файлі з іменем Prog101.pas {File / Save}.
5.     Закрийте вікно {Window / Close}.
6.     Завершіть роботу з FP {File / Exit}.
7.     Завантажте FP.
8.     Відкрийте збережену програму .
9.     Змініть назву програми на FirsCode.

10. Збережіть змінену програму у файл Prog102.pas {File / Save As}.


Ідентифікатори.
Ідентифікатори складаються самим програмістом і являють собою ім’я для задання елементів програми (констант, змінних, імен програм, процедур, функцій тощо.)
Ідентифікатори складаються за наступними правилами:
-                    він повинен починатись з букви або знака підкреслення;
-                    букви використовуються із латинського алфавіту і можуть бути великі, малі...(rezalt, Rezalt..);
-                    починаючи з другої позиції поряд із буквами можна приміняти і цифри;
-                    в якості ідентифікатора не можна використовувати зарезервовані слова;
-                    ідентифікатор не повинен містити пропусків;
-                    довжина ідентифікатора може бути довільна у межах допустимого і складатись із довільної кількості слів, об’єднаних наприклад знаком підкреслення. Наприклад, my_text_1.
У ТurboРascal 7.0 порівняння ідентифікаторів здійснюється по перших 63-х символах.

Розділ опису позначок

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

Позначкою може бути довільне ціле число чи ім’я константи.
Закінчується розділ “;”
Наприклад: LABEL 20,18,1960,M1;
Позначка від оператора відділяється символом “:”.
Наприклад: MI: <оператор;>
                20:; 
Позначки ставляться перед операторами, які необхідно виділити для передачі на них управління, наприклад з допомогою оператора GOTO.

Розділ задання констант

Всі дані у програмі інтерпретуються як константи (сталі) або змінні.

Розділ задання констант починається із службового слова CONST. Визначення (задання) констант здійснюється шляхом присвоєння ідентифікатору конкретного значення яке від імені відділяється символом ”=”. Одна константа від другої відділяється  символом“;”

Приклад задання констант:
CONST MILE =5280; {числова}
K =’A’;                  {символьна}
Z =’відомість’;    {рядкова}
Існує ряд констант, до значень яких можна звертатись без попереднього визначення. Такі константи ще називаються зарезервованими.

                
ТАБЛИЦЯ ЗАРЕЗЕРВОВАНИХ КОНСТАНТ
Ідентифікатор
Тип
Значення
Опис
Pi
Real
3.1415926536E+00
Число ПІ
True
boolean
True
Істина
False
boolean
False
Хибність
Maxint
integer
32767
Max мале число
        
         Будь-який визначений в програмі ідентифікатор константи може входити у всі конструкції, у яких може бути присутнє зв’язане з ним значення.
Наприклад, якщо X, Y, ONE визначені як константи, SUM як змінна, то вираз, SUM = (X+Y)/ ONE; є правильним. В той же час вираз  X = Y /ONE не допустимий, оскільки ідентифікатор константи X буде міняти своє значення, що є невірним.
Крім звичайних констант, у мові PASCAL можна використовувати типізовані константи, які описуються у розділі опису констант разом із звичайними константами і які містять як тип так і значення const.
Наприклад: CONST Max: integer =999;
                                    T: string =’заголовок’.
Дані константи не можуть використовуватись при описі других констант чи типів, а також у лівій частині оператора присвоєння.

Розділ задання типів даних
Починається із службового слова  TYPE.
В мові Pascal довільна зміна характеризується своїм типом. Під типом розуміють множину значень, які може приймати змінна і, як наслідок, множину операцій, допустимих над даною змінною.
Pascal є типізованою (статичною мовою). Це означає, що тип змінної визначається при її описі і не може бути змінений.
Змінна може брати участь тільки в цих операціях, які допустимі її типом.
Тип даних визначає:
-         формат представлення даних в пам’яті комп’ютера;
-         множину допустимих значень, які може приймати змінна, що належить даному типу;
-         множину допустимих операцій, які можна приміняти по відношенню до даного типу.
У мові Pascal користувач може використовувати стандартні (базові) типи даних, а також може сам задавати типи даних, які йому потрібні для роботи, тобто на базі стандартних типів створювати типи даних користувача. Стандартні типи даних і типи користувача називаються скалярними типами.
Стандартні скалярні типи даних в мові Pascal діляться на чотири групи:
·       цілий тип;
·       дійсний тип;
·       символьний (літерний) тип;
·       булевий (логічний) тип.
Розглянемо кожен із даних типів.
1. Цілий тип.
Дана група типів задає цілі числа із різних діапазонів. Є п’ять типів цілих даних, для задання яких використовуються слова ідентифікатори.
Діапазони даних:
Shorting        -128…127
Integer          -32768…32767
Longint         -2147483648…2147483647
Byte              -0…255
Word            -0…65535
Значення цілих типів можуть задаватись у програмі як у десятковому, так і у шістнадцятковому виді.
2. Дійсний тип.
Дана група визначає множину дійсних значень із різних діапазонів. Розділювачем між цілою і дробовою частинами є символ (.). Для для їх завдання використовуються слова ідентифікатори:

Ім’я
Значення
Кількість знаків
Real
2.9 E-39...1.7 E 38
11-12
Single
1.5 E-45...3.4 E 38
7-8
Double
5.0 E-324...1.7 E 308
15-16
Extended
3.4 E-4932...1.1 E 4932
19-20
Comp
-2 E 63...+2 E 62
19-20
 
3. Символьний тип.
Значеннями даного типу є символи із множини ASCII (American Standart Code For Information Interchange – американський стандартний код для обміну інформацією). Дана множина містить 256 різних символів, включаючи букви (малі і великі), цифри і спеціальні символи. Для задання даного типу використовують слово char. Значення даного типу береться в апострофи. Над ними можна виконувати тільки операції порівняння. Наприклад, вираз ‘B’>’А’ буде правильним, оскільки В має більший номер у кодовій таблиці, ніж А.
Користувач має можливість також задавати значення символьного типу вказанням безпосередньо числового значення ASCII – коду. Для цього перед числом, що задає код  символу ставиться знак # (дієз).
Наприклад,
VAR
         St : char;
BEGIN
         St:=# 65; {присвоїти змінній st символ ‘A’, код  якого = 65}
Числове значення після символу # не повинно перевищувати 255.
Можна також вказувати в якості значень змінних типу  char спеціальні “управляючі коди”. Їх задають за допомогою структури “^С” (ctrlС), де С – код управляючого символу.
4. Булевий тип.
Може приймати тільки одне з двох значень істинне і хибне.
Існує два значення булевого типу: істина і хибність. Для їх задання використовуються відповідно ідентифікатори true і false.
Діляться на: арифметичні, операції відношення і логічні.
Розділ змінних
Починається  службовим словом Var за яким слідує список змінних значення яким в подальшому буде присвоєно будь-яким допустимим способом : тип елементів. Закінчується список символом “ ;”.
Однотипні елементи у списку розділяються між собою символом кома. 

Операції

1. Арифметичні операції.
Дані операції виконують арифметичні дії у виразах над значенням операндів цілого і дійсного типів.
Операція
Дія
Тип операндів
Тип результатів
Бінарні:



+
Додавання
цілий, дійсний
цілий, дійсний
Віднімання
цілий, дійсний
цілий, дійсний
*
Множення
цілий, дійсний
цілий, дійсний
/
Ділення
цілий, дійсний
дійсний
Div
Ділення націло
цілий
цілий
Mod
Остача
цілий
цілий
And
Арифметичне “і”
цілий
цілий
Or
Арифметичне“або”
цілий
цілий
Hor
Виключаюче“або”
цілий
цілий
Унарні :



+
Збереження знаку
цілий, дійсний
цілий, дійсний
Заперечення або зміна знаку
цілий, дійсний
цілий, дійсний
Not
Арифметичне заперечення
цілий
цілий

2. Операції відношення.
Дані операції виконують порівнення операндів і визначають, істинне чи хибне значення виразу, тобто результатом є true або false.
Операції: -, <,>,<>,>=,<=
In – приналежність (A in B) буде давати true, якщо А знаходиться в списку В, ( інакше false).
3. Логічні операції.
Результатом виконання логічних операцій є логічне значення true або false. Операндами служать дані типу boolean.
Логічні операції:
Not – логічне заперечення (not A
And – логічне “і” (A and B)
Or – логічне “або” (A or B)
Xor – виключає “або” (A xor B)
Приклад, (A<10) and (B<100). Тут операції відношення повинні братись у дужки.
Вирази
Вираз задає порядок виконання дій над елементами даних і складається іх операндів (сталих, змінних, звернень до функцій), круглих дужок і знаків операцій.
Пріоритет виконання операцій: обчислення функцій; піднесення до степеня; присвоєння знаку ; not, *, /, div, mod, and, +, -, xor, =, <>, <,>, <=, >=, in.
Для точного визначення порядку виконання обчислень у виразі необхідно враховувати наступні правила:
1.     Операнд, що знаходиться між двома операціями з різними пріоритетами пов’язуються з операцією, що має більш високий пріоритет.
2.     Операнд, що знаходиться між двома операціями з рівними пріоритетами пов’язується з тією операцією, яка знаходиться зліва від нього, тобто операції з однаковими пріоритетами виконуються зліва направо.
3. Частина виразу, що міститься в круглих дужках виконується швидше, ніж операції що розміщені зліва чи справа від дужок.

Стандартні функції і процедури роботи з числовими типами даних.
1. Арифметичні 
ABS (x), x – цілого або дійсного типу і такий же результат;
ARCTAN (x), x I результат тільки дійсного типу;
COS (x), x I результат тільки дійсного типу, значення кута в радіанах;
SIN (x), x I результат тільки дійсного типу в радіанах;
EXP (x),x I результат тільки дійсного типу (е=2,718282)
FRAC (x), x I результат тільки дійсного типу – обчислення дробової частини  числа х;
INT (x), x I результат тільки дійсного типу – обчислення цілої частини від х, (відкидає дробову частину числа).
LN (x), x I результат тільки дійсного типу – обчислює Ln(x);
SIN (x), x I  результат тільки дійсного типу в радіанах;
SQR (x),x – ціле чи дійсне; піднесення х до квадрату;
SQRT (x), x – дійсне; обчислення квадратного кореня із х;
RANDOM, дійсне, генерує значення випадкового числа із діапазону 0..99
RANDOM (I), тип WORD (0,…,65535) – генерує значення випадкового числа із діапазона 1..I
X=e - піднесення до степеня


2. Скалярні.
Процедура DEC (x[,n]) – зменшує значення цілочисельної змінної х на величину n. Якщо n відсутнє, то х зменшується на 1.
Процедура INC (x[,n]) – збільшує значення цілочисельної змінної х на величину n. Якщо відсутнє, то х збільшує на 1.
Функція ODD (I),I –цілого типу, результат – булевого. Повертає True якщо I непарне, і False, якщо I – парне.

3. Перетворення типів.
Функція ORD (X), тип дискретний, результат ціле – видає код символу Х.
Приклад,  ORD (a) →97;
                  ORD (s)→5;
Функція СHR (I) тип 1 – ціле, результат Char (літ.). Повертає символ стандартного коду рівного значенню I. Якщо 1>255, то виникає програмне переривання.
Функція ROUND (x), x – дійсне, результат – longint (ціле) – повертає значення, заокруглене до ближчого цілого числа.
Функція TRUNC (x), x – дійсне, результат – longint (ціле) – повертає ближче ціле число <=x, якщо x>=0, і>=x, якщо х<0.
Функція Upcase (x), - тип аргумента і результата char. Змінює малу латинську букву на велику.
Функція LEIGHT (St), Ststring, результат – integer – підраховує довжину символів в рядку St.
Процедура CONCAT (strl, str2,…strn) –типи – string – виконує з’єднання рядків str1,…strn в тому рядку, у якому вони вказані в списку параметрів. Результуючий рядок не повинен перевищувати 255 символів.
Процедура DELETE ( St, Poz,  N) – удаляє N символів із рядка St починаючи з позиції Poz.
Процедура INSERT (Str1, Str2,Poz) – вставляє рядок Str1 в рядок Str2 починаючи з позиції Poz.,
Процедура STR (I, St)- перетворює числове значення величини І у тип рядок і розміщує результат у рядок St.
Процедура VAL (St, I,Cod) –  перетворює значення St  у величину  цілого чи дійсного типу і поміщає результат в І. Cod - ціла  змінна. Якщо під час операції перетворення помилки не виявлено, то Cod = 0, якщо виявлено ( наприклад, літерне значення буде переводитись у числове), то Cod буде містити номер позиції першого помилкового символу.
Функція POS (Str1,Str2), тип аргументу – string, результату – byte (байтовий О..255) – знаходить підрядок Str2 в рядку Str1 і вказує номер позиції, у якій знаходиться перший символ підрядка.
Функція COPY (St,I,j) – формує рядок довжиною з позиції і рядка St.

Введення –виведення даних
1. Процедури Read i Readln  для введення даних.
Процедура читання Read забезпечує введення числових даних , символів , рядків і т.д. для подальшої їх обробки операторами програми . Формат : ( [FV] , X1, X2, …, Xп);
Де  FV – ім’я пристрою , звідки вводяться дані . По замовчуванню Fv відповідає CON, тому при введенні даних з клавіатури FN можна не вказувати .
Х1, Х2, ..., Хп –список ідентифікаторів змінних допустимих типів . Дані значення при введенні набираються на клавіатурі як мінімум через один пропуск і висвічуються на екрані . Після набору даних для процедури Read натискається клавіша введення [ENTER] .
Якщо у програмі є декілька процедур Read , то дані для них вводяться потоком , тобто після введення значень змінних для однієї процедури Read дані для наступної процедури можна набирати у тому ж рядку , що і для попередньої аж до закінчення рядка . Після цього здійснюється перехід на наступний рядок  .
Наприклад :

VAR
  A, B; integer ;
   C, D: real , ;

begin
   Read( A, B ) ;

   Read( C, D ) ;

На клавіатурі набираємо : 20  75  2.46  4.12 {ENTER}, хоча можна натискати [ENTER] після кожного Read.
Оператор Read можна використати для організації пауз довільної довжини при виконанні програми .
Для цього досить записати :
Read( CON , Ch );
CON – ім’я стандартного файлу клавіатури , Ch – літерна змінна .
Програма продовжить роботу тільки після того , як буде натиснута довільна клавіша на клавіатурі , причому введений символ на екрані не відображається .
Процедура читання Readln аналогічна процедурі Read, тільки після зчитування останнього в списку значення для одної процедури Readln дані для наступної процедури  Readln  будуть зчитуватись з початку нового рядка .
Наприклад :
Readln( A, B );
Readln( C, D);
Набравши тепер на клавіатурі значення для А і В:   43_76  {Enter} курсор автоматично перейде на 2-ий рядок , де будуть набиратись дані для С і  D:
2.46_7.15 {Enter}, якщо ввести всі 4-и числа для A, B, C, D  і тоді [Enter] то сприймуться перші два .

2. Процедури Write Writeln для виводу даних .
Процедура Write служить для виводу числових даних, символів, рядків і булевих  значень.
Формат:
Write( [ FV ], Y1, Y2, …,Yn );
де  FV – ім’я вивідного пристрою. По замовчуванню FV відповідає CON.–консолі і його можна опускати;
Y1,Y2,…, Yn  – результати виконання виразів , сталих , імен змінних текстів і т. п. 
Наприклад :
Write( 500 ) ;
Write( A+B-5 ); Результат виведення злиється .
Write( Lst, результат обчислень =’, Rezalt );

Процедура виводу  Writeln.
         Дія даної процедури аналогічна Write, але після виводу останнього у списку значення для поточної процедури здійснюється переведення курсора на початок наступного рядка . Запис процедури Writeln без параметру , викликає переведення рядка ( тобто виводить порожній рядок ) .
Наприклад :
Const
       A=4;
       B=6;
Begin
       Writeln( ‘A =’, A );
       Writeln( ‘B =’, B ) ;
        Writeln( ‘Сума  А+В рівна’, A+B );
End .
Результат виконання :
A=4
B=6
Сума А+В рівна 10
Оператори мови
1. Оператор присвоєння ( : = )
Формат:
 <змінна>:=<вираз;>
Тут:  :  <змінна> – довільна допустима змінна і нічого іншого;
<вираз> – довільний допустимий вираз, в чому числі і константа.     
Дія оператора
Виконується вираз, що стоїть в його правій частині, і результат присвоюється змінній, ідентифікатор якої розміщений в лівій частині. При цьому тип виразу повинен бути сумісний з типом змінної.
Наприклад :
Begin
Fact := True;
A: = G;
Suma := X + Y;
C:=5;

2. Складений оператор.
Cкладений  оператор представляє собою групу із довільного числа операторів, відділених один від іншого символом “;” і обмежену операторними дужками Begin i End;.
Формат:
Begin
< оператор ; >
< оператор ; >
………….
<оператор ; >
end;
Наприклад :
begin 
  A: =A * B + D;
  Rez : = A * Pi;
  Writeln( Rez : 10:5 )   
end;
Складений оператор  сприймається як одне ціле і може знаходиться в довільному місці програми, де синтаксис мови допускає наявність оператора.

ЗАВДАННЯ ДЛЯ САМОПІДГОТОВКИ

1.     Розпочати роботу з ТР.
2.     Відкрити файл F007.
3.     Змінити назву програми на Expression.
4.     Описати змінні а, х, у, дійсного типу.
5.     Додати рядки, що вводять значення змінних а, х з клавіатури.
6.     Обчислити значення змінної у за формулою  для довільних а, х,  вивести результат на екран.
7.     Зберегти програму у файлі з іменем F008.
8.     Перевірити дію даної програми.
9.     Описати константу Рі.
10.            Добавити у формулу для обчислення у ще один доданок:
11.            Зберегти і перевірити дію програми.
12.            Створити нову програму з іменем Plosha.
13.            Описати змінні а, b, с, s як змінні дійсного типу.
14.            Додати рядки, які вводять значення змінних а, b, с з клавіатури.
15.            Обчислити площу трикутника за формулою Герона S=.
16.            Вивести дане значення на екран.
17.            Зберегти дану програму і перевірити її дію.
18.            Закрити всі вікна.
19.            Виконати завдання, використовуючи хід роботи, згідно вказаного варіанту.
20.            Завершити роботу з ТР.