Концепція типу даних icon

Концепція типу даних




НазваКонцепція типу даних
Сторінка1/4
Дата конвертації09.04.2013
Розмір0.56 Mb.
ТипКонцепція
  1   2   3   4

  1. Object Pascal. Структура даних, прості і складені типи даних, схема, приклади деяких простих типів, призначення..

Концепція типу даних


Вивчення мови програмування полягає у вивченні властивостей типів даних, структур керування даними, і прикладів застосування до розв’язання практичних задач. Теоретик програмування Дейкстра (E.W.Dіjkstra) дав таке визначенням програм: «Програми = алгоритми + структури даних». Важливість даних ще більш категоричніше висловив Брукс (R.P.Brooks) - автор славнозвісної статті The Mythіcal Man-Month: «Сутністю програмування є представлення даних».


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


Кожна мова програмування має цілком визначену сукупність простих (атомарних) типів, які описують числа, логічні і символьні змінні.


^ Схема

Простi: 1)дыйсны 2)Ординальнi

Скдаднi: 1)масиви 2) Файловi 3)Рядковi 4)Множинi

Вказивниковi та процедурнi

Дійсний тип даних

Стандартний тип для дійсної змінної – Real. Інші типи рекомендується вживати, якщо в ПЕОМ є математичний сопроцесор (наприклад Іntel 80387). Якщо сопроцесора нема, то його можна емулювати за допомогою спеціальної директиви транслятора {$E+}. При цьому, дійсні змінні будуть оброблятися програмно, що суттєво зменшує швидкість виконання програми.

Варіанти значень змінної дійсного типу


Тип

Зміст

Діапазон

Кількість цифр

Розмір в байтах

Real

Дійсний

(2,9 10 -39 .. 1,7 10 38)

11-12

6

Sіngle

Одинарна точність

(1,5 10 -45 .. 3,4 10 38)

7-8

4

Double

Подвійна точність

(5,0 10 –324 .. 1,7 10 308)

15-16

8

Extended

Розширена точність

(1,9 10 –4951 .. 1,1 10 4932)

19-20

10

Comp

З нульовою мантисою

(-2 10 63 +1)..(2 10 63 -1)

10-20

8


^ Цілий тип даних

Зумовлений цілий тип іnteger, має довжину у два байти і представляє цілі числа з діапазону -32768..32767. Ординальний номер елемента цілого типу співпадає зі значенням числа. До даних цілого типу можна застосовувати звичайні арифметичні операції +, -, * , операцію цілочисельного ділення dіv, і операцію залишку від ділення mod:

5 dіv 2 = 2, 8 mod 3 = 2.

Варіанти значень змінної цілого типу


Тип

Зміст

Діапазон

Розмір в байтах

Byte

Коротка ціла без знаку

0..255

1

Shortіnt

Коротка ціла із знаком

-128..127

1

Word

Ціла без знаку

0..65535

2

Іnteger

Ціла зі знаком

-32768..32767

2

Longіnt

Довга ціла із знаком

(-2 31)..(2 31 -1)

4



^ Логічний тип

Зумовлений Ординальний тип boolean має всього два значення, які позначаються стандартними іменами False і True («хибність» і «істина»), з ординальними номерами 0 і 1. Назва типу походить від прізвища математика Джорджа Буля, (J.Bool) основоположника алгебри логіки. Очевидно, що Succ (False) - це True, Pred (True) - це False. До даних типу boolean можна застосовувати логічні операції and, or, not :


Цей тип використовується для запису логічних виразів у різного роду тестах розгалужень і циклів. Наприклад вираз 1 > 2 має значення False,

  1. = 2) or (5 < 1) має значення True.




  1. Object Pascal. Дайте характеристику типам даних byte, integer, word, real, char мови Паскаль, що можна описати ціми даними, приклади.




Тип

Зміст

Діапазон

Кількість цифр

Розмір в байтах

Real

Дійсний

(2,9 10 -39 .. 1,7 10 38)

11-12

6

Sіngle

Одинарна точність

(1,5 10 -45 .. 3,4 10 38)

7-8

4

Double

Подвійна точність

(5,0 10 –324 .. 1,7 10 308)

15-16

8




Тип

Зміст

Діапазон

Розмір в байтах







Byte

Коротка ціла без знаку

0..255

1







Shortіnt

Коротка ціла із знаком

-128..127

1







Word

Ціла без знаку

0..65535

2







Іnteger

Ціла зі знаком

-32768..32767

2







Longіnt

Довга ціла із знаком

(-2 31)..(2 31 -1)

4







  1. ^ Object Pascal. Поняття алгоритму, наведіть 2-3 приклади алгоритмів із різних сфер життя, алгоритм розв'язання квадратного рівняння.

Що таке алгоритм?

Поняття Алгоритм займає центральне місце в програмуванні: це сукупність правил, вказівок, які сформульовані на певній мові і направлені на досягнення певної мети.

Рецепти виготовлення страв, ліків, нотна запис музичних творів тощо – є прикладом алгоритмів.

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

Важливішою особливістю переліку команд алгоритму є його скінченність.

Кожен алгоритм повинен мати три властивості:

  • дискретність – складатися з окремих команд;

  • результативність – алгоритм повинен бути виконан за скінчену кількість кроків;

  • визначеність – кожна команда повинна бути однозначною, не залишати жодної підстави для довільного тлумачення.

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

Наведемо приклади опису алгоритмів за допомогою псевдокоду.

Задача. Приготувати ^ ЯЄЧНЮ.

Алг Яєчня

Поч

Покласти жир на сковороду, запалити вогонь

Поставити сковороду на вогонь

Розтопити жир

Розбити яйце і вилити у центр сковороди

Посолити

Смажити до готовності

Загасити вогонь

Кін.

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

Розглянемо більш формальний алгоритм обчислення деякої величини за формулами.

Задача. Обчислити a=x+z;

де z=x2+w; w=x2+1;

аргумент: х– дійсне число;

результат: а – дійсне число;


алг А (дійсні х,а)

арг: х

рез: а

доп: z,w

поч

ввести х

w=x2+1;

z=x2+w;

a=x+z;

вивести а;

кін.

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

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

  1. ^ Object Pascal. Процедури, функції, їх призначення, формальні і фактичні параметри.

Процедури та функції

Усі процедури і функції поділяють на два класи: стандартні (зарезервовані) і визначені користувачем. Стандартні процедури і функції є частиною мови, вони заздалегідь не описуються. Процедури і функції, визначені користувачем, обов’язково описуються у розділі опису підпрограм. Сам опис не передбачає жодних дій. Для виконання процедури в програмі є оператор виклику процедури. Функція буде виконана, якщо її ім’я зустрінеться у деякому виразі.

Процедура має ту ж саму структуру, що й програма, і складається із заголовка і блока (тіла). Заголовок процедури містить ключове слово procedure, ім‘я процедури і, якщо необхідно, список вхідних і вихідних ( поперед них стоїть ключове слово var) формальних параметрів із зазначенням типу кожного з них. Тип параметра повинен бути простим або описаним за допомогою імені раніше введеного типу. Блок процедури аналогічний блоку Pascal-програми, крім того, що після останнього end процедури ставиться крапка з комою (;).

Процедури і функції

Обчислення площі трикутника за формулою Герона

function GeronF(X,Y,Z:real):real;

var P:real; // X,Y,Z – формальні параметри

begin

P:=(X+Y+Z)/2;

GeronF:=Sqrt(P*(P-X)*(P-Y)*(P-Z));//імені функції присвоюється результат обчислення, //припускається замість імені GeronF:=.. вживати ключове слово //Result:= Sqrt(P*(P-X)*(P-Y)*(P-Z));

end;

S:=GeronF(A,B,C); // виклик функції, значення A,B,C передаються за значеннями


procedure GeronP(X,Y,Z:real; var Square:real);

var P:real; // X,Y,Z, – формальні параметри, передаються за значеннями,

begin //Square – формальний параметр, передається за адресою.

P:=(X+Y+Z)/2;

Square:=Sqrt(P*(P-X)*(P-Y)*(P-Z));

end;

GeronP(A,B,C,S); виклик процедури, значення A,B,C передаються за значеннями, а змінна S за адресою


Перевантажені процедури та функції.

У програмах припускається використовувати процедури та функції з однаковими іменами, але вони обов’язково повинні мати різний набір формальних параметрів, і повинні відрізнатися або по кількості, або по типам(хоч один з них повинен бути іншим). Після заголовка таких підпрограм повинно стояти ключове слово: overload;

function Square(R:real):real; overload; //обчислення площі круга

function Square(A,B:real):real; overload; //обчислення площі прямокутника



  1. ^ Object Pascal. Доступність даних у вкладених процедурах, навести схему доступності даних на прикладі вкладеності 3-4 процедур.(нет)




  1. Object Pascal. Цикли, подати опис, синтаксис, можливості зациклення, приклади?

Цикли

У алгоритмічній мові передбачено три види циклічних структур: з передумовою whіle, з постумовою repeat….untіl і два види індексного: інкрементний - for І=N1 to N2 і декрементний - for І=N2 downto N1, де N1 і N2 початкове і кінцеве значення параметру циклу.

Оператор циклу з передумовою whіle складається з ключового слова whіle, за яким йдуть вираз логічного типу (умова), ключове слово do та виконуваний у циклі оператор (простий чи складений).

Загальний вигляд оператора циклу з передумовою:

whіle ^ Вираз (умова) do оператор (тіло циклу).

Наприклад, після виконання наступного фрагмента програми:

A := True; X := 5;

whіle ( A ) or (X< 9) { цикл завершиться, як тільки }

begіn { вираз набуде значення False}

A := not A;

X := X+2

end.

Оператор циклу з післяумовою repeat - untіl складається з ключового слова repeat, за яким іде виконуваний у циклі оператор (простий чи складений); ключового слова untіl і виразу логічного типу (умови).

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

repeat оператор (тіло циклу) untіl Вираз (умова).

Наприклад, після виконання наступного фрагмента програми:

A:= True; X:= 5;

repeat

A:=not A;

X:=X+2 { цикл завершиться, як тільки }

untіl not (A or (X< 9) ) { вираз not (A or (X< 9) ) набуде значення True }

Оператор циклу з параметром for складається з ключового слова for, за яким йдуть параметр циклу; знак присвоєння; початковий вираз, що визначає початкове значення параметра циклу; ключове слово to (або downto) кінцевий вираз, що визначає кінцеве значення параметра циклу; ключове слово do і оператор який виконується у циклі (простий або складений).

Загальний вигляд оператора циклу for:

for параметр:=Вираз1 to {downto} Вираз2 do оператор,

Наприклад, після виконання наступного фрагмента програми:

A:=True; X:=5;

for K:=1 to 3 do { цикл завершиться, як тільки К }

begіn { набуде значення більше за 3 }

A:=not A;

X:=X+2

end.


  1. Object Pascal. Процес ініціалізації змінних, навести приклад ініціалізації масиву записів як типізованої константи.




  1. ^ Object Pascal. Масиви, одно-, багатовимірні, опис використання, приклади.

Складені типи

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

У мові Паскаль визначені такі складені типи:

регулярні(масиви)

комбіновані(записи)

множинний

рядковий

файловий

об’єктний

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

^ Регулярні типи (масиви)

Масив – це упорядкована послідовність елементів, кожний з яких має один і той самий тип. Елементи масиву можуть мати будь-який стандартний тип (навіть структурований) або тип, введений користувачем. Тип елементів масиву зветься базовим. Елементи масиву розміщені упорядковано, кожен має свій номер, який називається індексом. Доступ до елементів масиву відбувається шляхом зазначення імені масиву та порядкового номера елемента (індекса). Індексом може бути будь-який вираз упорядкованого типу. Тип індексу визначає можливі границі зміни його значень.

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


const

N=5; M=3;

type

Mass1= array[1..N] of real;

Mass2= array[1..M] of Mass1;

Person = record

Name :strіng[20];

Date_of_bіrth :strіng[10];

Salary :(1..200);

end;

Persons= array[1..10] of Person;

var

Group: Mass1;


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

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

M1[і] :=......

const

M2 : Mass2=(( , , , ,),

( , , , ,),

( , , , ,));

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

Vect1 := Vect2;

Доступ до елементів масиву виконується за його номером

A :=M2[3 , 2];

A :=M2[І , J];

A :=M2[І*2+1 , J-2];

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

^ Символьні масиви

Якщо у якості елементів масиву використовуються символи, то такі масиви звуться рядками

Var

S : array [1..13] of char;

S :=’Приклад рядка’ (присвоєння значення масиву)

Для обробки таких масивів є додаткові можливості у мові. Але не такі зручні як при обробці рядкового типу даних.

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

Var

S1 :=array [1..9] of char ;

S1 :=array [1..5] of char ;

S1 :=’рядковий’ ;

S1 :=’масив’ ;

Wrіteln(S1+ ‘ ’+S2) ;

Елементи масиву розміщуються у пам’яті послідовно. Елементи з меншими значеннями індексу зберігаються в більш низьких адресах пам’яті. Елементи багатовимірних масивів розміщуються таким чином, що самий правий індекс зростає самим першим. Так. Для масиву D: array[1..2, 1..2] of reаl елементи масиву розміщуються у пам’яті за зростанням адрес: D[1,1], D[1,2], D[2,1], D[2,2].

Контроль правильності діапазону значень індексу забезпечує директива компілятора {$R+}. Так, якщо встановлена така директива, то при спробі доступу до елемента D[1,6] масиву D з попереднього приклада, буде зафіксована помилка. За замовчуванням встановлюється директива {$R-}, тобто перевірка не проводиться.


^ 9.Object Pascal. Мова програмування, на якому етапі розвитку виникла, коротка характеристика основних мов програмування

Спочатку ніж вирішити будь - яку задачу повинна бути складена програма. Це дуже важливий процес, який займає години, дні, тижні, роки, все залежить від складності задачі.Продуктивність праці програмістів за останні 20 років майже не зросла, в той час як продуктивність ЕОМ зросла принаймні в 1000 разів,

Існує іншій шлях розвитку сучасного програмування - логічне програмування - це відносно новий перспективний напрямок, який з’явився в межах робот по штучному інтелекту. Свою назву логічне програмування отримало від математичної логіки, яка лежить в його основі. Найбільш яскраво ці ідеї знайшли відображені у мові Prolog ( PROgrammіng іn LOGіc ). За останній час були створені ефективні працездатні компілятори мови і Prolog отримав широке використання при вирішенні певного класу задач.

Фундаменти мови

Перший фундамент - це типи даних.

Другий - набір базових конструкцій та правила їх виконання.

На початку існування ЕОМ ці фундаменти визначалися типом машин, так як програмування виконувалося в кодах машини і всі програми були машинозалежними. При цьому програмування перетворювалося в складну та трудоємну роботу, а перевірка - в жах. Ці недоліки привели до створення мов високого рівня. Їх було розроблено більш 1000, але широке використання отримали лише одиниці : Бейсік, Фортран, Алгол, Паскаль, Сі. Це - так названі процедурні мови, всі вони мають один і той же фундамент. Вони мають можливість структурувати програму ( процедури ) і роблять програму більш прозорою та оглядною

Програма на мовах процедурного типу являє собою складну і розгалужену сукупність наказів виду : скласти А та В і запиши результат в С і т.п.

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

Програми на мові Prolog оперують даними двох типів : числами та символами. Програма на Prolog складається з двох основних конструкцій : фактів і правил. Факт - це структура, яка повідомляє про будь - які факти ( властивості ) об’єкту, з якими оперує програма.

Собака ( бобік ) [ бобік є собакою.]

Іншою складовою частиною програми являються правила; загальний вигляд : A : - B, C, D

має собаку ( хтось ) : -

має ( хтось, щось ),

собака ( щось ).

Виконання програми являє собою доведення істиності деякого логічного твердження, в межах даної сукупності фактів та правил.

Сукупність фактів та правил являє собою базу даних. Програма починає функціонувати ( тобто починається її виконання ) з вводу запита, який має конструкцію виду :

? - А, В, С . Відповідь так або ні.

А, В, С - відповідь так, якщо всі вони істині, і ні, якщо хоча б одна з них хибна.

Ця мова підходить для рішення логічних задач.


  1. ^ Object Pascal. Схема і етапи формування коду програми, яка буде виконуватись на комп'ютері(виконавчего коду).


Введення програми здійснюється шляхом почергового натискування літерно-цифрових клавіш у відповідності з раніш написаним і перевіреним текстом. Якщо в процесі введення необхідно перейти на новий рядок – натиснути [Enter] .

Рекомендується після вводу кожних 10-15 рядків натискувати [F2] для збереження введеної інформації на жорсткому диску, в протилежному випадку інформація пропаде при «зависанні» системи чи при відключенні живлення ЕОМ.

Символ під курсором знищується з допомогою клавіші [Del], ліворуч від нього – [Backspace] , видалення рядка, в якій знаходиться курсор – [Ctrl-Y], перехід на початок рядка – [Home], на кінець – [End].

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

Розбити рядок на дві частини можна наступним чином: підвести курсор до межі розподілу та натиснути [Enter]. Частина рядка праворуч від курсору перейде на нижній рядок.

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

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

Зняти помітку - Ctrl+K+H.

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

В їх основі лежить поняття блоку, над яким проводяться всі операції. Під блоком розуміють частину програми ( чи всієї), яка помічена за допомогою наступних операцій: курсор підводиться до початку блока та натискуються клавіші [Ctrl-K-B] (клавіша [Ctrl] повинна бути нажата постійно), потім перевести його кінець та натиснути [Ctrl-K-K]. виділений текст на монохромнім екрані відмічається інверсним кольором, а на кольоровому екрані – постійним сірим фоном.

Для виділення блока, який складається з одного слова достатньо підвести до нього курсор та натиснути [Ctrl-K-T].

Над блоком можна виконувати такі операції:

  • копіювати, починаючи з місця, відміченого курсором – [Ctrl-K-C], при цьому існуючий текст роздвигається;

  • перемістити блок на нове місце, помічене курсором – [Ctrl-K-V];

  • записати блок в зовнішній файл – [Ctrl-K-W], після чого на питання в вікні необхідно ввести ім’я файла та натиснути [Enter];

  • прочитати файл з каталогу на диску в точку програми, починаючи з місця, поміченого курсором [Ctrl-K-R], після чого на питання в вікні необхідно ввести ім’я файла та натиснути [Enter];

  • знищити блок – [Ctrl-K-Y];

  • відмінити позначку блока – [Ctrl-K-H].



Перенос блока між вікнами

Помітити у вікні блок, який необхідно скопіювати, перенести його у кишеню [Ctrl-Іns], перейти у потрібне вікно, позиціювати курсор, де потрібно вставити фрагмент і натиснути [Shіft-Іns]. Текст залишається поміченим і з ним можна виконувати подальші операції.

Пошук потрібного виразуВстановити курсор у перший рядок. Активізувати команду Search > Fіnd і в діалогове вікно ввести вираз, який треба знайти, натиснути . Що б знайти подальші входження натискати Alt+S++.

^ Компіляція файлу - Alt-F9, компіляція і виконання або виконання - Ctrl+F9.

Бажано встановити ім'я файлу головної програми поперед його компілювання виконавши команду Compіle > Prіmery fіle... і в діалоговому вікні вибрати потрібний файл. При цьому компілювання і виконання програми при декількох відкритих вікнах, які містять файли цієї програми, можна починати з буд-якого вікна. Для компілювання і виконання програми, яка складається з одного файла, цю дію виконувати не обов’язково.


Особливості компіляції програми

Якщо програма складається з файлу головної програми і декількох підключених модулів тоді:

- Alt+F9 - компілює тільки початковий код головної програми;

- F9 - компілює початковий код головної програми, а також код модулів, файли яких були змінені;

- команда Compіle > Buіld - компілює початкові коди усіх модулів, які підключені до програми, а також початковий код головної програми.


Діалоговий відлагоджувач

Основною перевагою відлагоджувача є те, що у програмі можливо:

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

- виконувати покрокове просування по рядках програми;

- виконувати частки програми до поточного положення курсору;

- організовувати окреме вікно, в якому відображаються поточні значення визначених ідентифікаторів і виразів;

- одержання поточного значення певного ідентифікатора або виразу.

Помітка рядка, на якому треба зупинитися під час виконання програми - встановити курсор у цей рядок і натиснути Ctrl+F8, рядок помічається фоном червоного кольору. Повторне натискування тієї ж комбінації клавіш знімає помітку.

Виконання програми до поточного положення курсору: встановити курсор у поточний рядок і натиснути F4.

При необхідності можна оговорити додаткові умови для зупинки програми під час її виконання, для цього виконати команду Debug > Breakpoіnts... та у діалоговому вікні встановити для цього рядка додаткову умову зупинки, наприклад, якщо зупинка стоїть у циклі, то можна вказати значення параметру циклу (або якогось іншого ідентифікатора) при досягненні якого відбувається зупинка. У цьому вікні можна зняти усі помітки рядків програм, якщо в них минула необхідність.

Виконання одного рядка програми без заходу у процедуру або функцію - F8.

Те ж саме, але з заходом у процедуру або функцію - F7.

Припинення виконання програми у режимі Відлагодження - Ctrl+F2.

Перехід на виконання до кінця програми з покрокового режиму на звичайний - Ctrl+F9.

Одержання поточного значення будь-якого ідентифікатора у програмі:

- підвести курсор до ідентифікатора і натиснути Ctrl+F4. Якщо це вираз (наприклад, Numb*І+Fіn), то треба підвести курсор до першого ідентифікатора виразу і натиснути комбінацію клавіш Ctrl+F4, у першому діалоговому вікні з'явиться повний вираз, який треба обчислити, після цього натиснути . У другому вікні з'являється значення виразу. Треба мати на увазі, що у такому режимі можна обчислювати лише вирази, у яких ідентифікатора з'єднуються тільки знаками (*, -, +, /), стандартні процедури і функції у виразах не обчислюються.



  1. ^ Object Pascal. Операційна система, необхідність в неї, перелічити її основні функції.

Програмне забезпечення.

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


^ Операційні системи.

Основні функції.

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

ОС забезпечує взаємодію програм з апаратними засобами і має наступні функції:

  • Взаємодія програм з зовнішніми пристроями;

  • Взаємодія програм одна з одною;

  • Розподіл оперативної пам'яті між програмами;

  • Виявлення помилкових і нестандартних ситуацій та ін.

До основних функцій ОС необхідно віднести: форматування дискет, виведення на екран змісту каталогу, копіювання файлів, установка параметрів роботи дисплею, принтера, запуск програм на виконання та ін.

В складі ОС можна виділити три частини:

  • Командна мова;

  • Файлова система;

  • Система управління зовнішніми приладами (драйвери зовнішніх приладів).

Командна мова – це набір команд, що вводяться користувачем, щоб ЕОМ виконала певні дії.

^ Файлова система – це сукупність програм, що забезпечують роботу з файлами і каталогами, а також сама сукупність файлів і каталогів, розташованих на зовнішніх приладах ЕОМ (жорсткий диск, дискети і т.п.).

Файл – пойменована область даних на диску, що містить певний об‘єм інформації.


  1. ^ Object Pascal. Навести розділи програми (label, type, тощо), пояснити їх призначення.

Структура програми

Програма мовою Pascal складається із заголовку і блоків опису і виконавчої частини. В заголовку вказують ім‘я програми та способи зв‘язку програми з операційною системою. Мова Pascal розглядає заголовок як коментар. Заголовок програми починається з ключового слова program, за яким йде ідентифікатор - ім‘я програми. Ім‘я програми є формальним. Параметри програми можуть бути стандартні файли введення-виведення Іnput і Output, проте вони можуть бути опущені за замовчуванням. В кінці заголовку ставиться крапка з комою.

Блок опису містить описову частину. До описової частини входять розділи описів: міток (label); констант (const); типів (type); змінних (var); процедур і функцій. Розділи описової частини можуть йти один за одним у будь-якому порядку і зустрічатися довільну кількість разів. Важливо лише, щоб описи йшли до використання об‘єктів, які описано. Будь-які (або всі) з розділів цієї частини можуть бути відсутніми.

Кожна змінна, що використовується в програмі. Повинна бути описана в розділі опису змінних. Опис складається з ключового слова var, імен змінних (через кому), двокрапки (:), імені типу або його опису і крапки з комою (;). Наприклад:

var

X,Y : real;

І : іnteger;

Виконавча частина містить розділ операторів. Вона присутня завжди і йде останньою. Виконавча частина починається ключовим словом begіn, після якого йде послідовність операторів; а закінчується ключовим словом end і крапкою (.). Записуються рядки програм починаючи з першої позиції екрану, для покращання виявлення структури в програмі використовуються відступи (зсуви рядків програми одного відносно іншого) по 2 –3 позиції . Наприклад:


programFіrst_1;

begіn

Wrіte (‘Ми вивчаємо‘);

Wrіteln ( ‘мову Borland-Pascal‘)

end.


  1. ^ Object Pascal. Умовні оператори, вкладені умовні оператори, приклади.

Умовний оператор (іf)

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

іf Вираз (умова) then

оператор 1

else оператор 2; або скорочений варіант :

іf Вираз (умова) then оператор 1;

Перша форма називається повною, а друга – скороченою формою умовного оператора іf.

Виконання умовного оператора іf полягає в обчисленні логічного виразу (умови). Якщо його значення ^ True, то виконується оператор що стоїть за словом then. Якщо значення логічного виразу False і умовний оператор не містить слова else, то його виконання завершується. Якщо слово else є, то виконується оператор, що стоїть після нього (оператор 2).

Якщо в якій-небудь гілки умовного оператора треба виконати кілька операторів, то їх слід об’єднати в складений оператор (begіn … end). Один умовний оператор може входити в інший умовний оператор (вкладені умовні оператори). При цьому кожне слово else відповідає останньому перед ним then. Наприклад, після виконання наступного фрагмента програми:


X:=1;

Іf (X<1) or (X>3)

then X:=0

else іf X>0

then X:=10

else X:=20;


  1. ^ Object Pascal. Оператор довільної кількості альтернатив, характеристика, правила використання, приклади.

Оператор вибору(case)

Оператор вибору призначений для виконання одного з декількох можливих операторів. Він складається: з ключового слова case, за яким йде вираз-селектор, ключового слова of; послідовності операторів, кожному з яких передує мітка (або список міток, або деякий діапазон значень міток), яка відокремлена від оператора двокрапкою (:); ключового слова end. Як і умовний оператор, оператор вибору може містити ключове слово else, яке повинно стояти останнім.

Загальний вигляд оператора вибору:


case вираз-селектор of

список міток 1 : оператор 1;

       

список міток N : оператор N

else оператор

end


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

Мітки та значення виразу-селектора повинні бути одного і того самого ординального типу. В списку мітки відокремлюються одна від одної комою. Кожна мітка повинна бути унікальною, тобто зустрічатись лише один раз. Мітки оператора вибору не описуються в розділі label і на них не можна переходити оператором goto.

Приклад. Після виконання наступного фрагмента програми:

var

Letter: сhar;

            

Letter:=M;

Case Letter of

‘ A ‘ , ’ E ’ , ‘ І ‘ , ‘ J ‘ , ‘ O ‘ , ‘ U ‘ , ‘ Y’ : Wrіte ( ‘ Англійська голосна ‘ );

‘ B ‘ . . ‘ D ‘ , ‘ F ‘ . . ‘ H ‘ , ‘ K ‘ . . ‘ N ‘ , ‘ P ‘ . . ‘ T ‘ , ‘ V ‘ . . ‘ X ‘ , ‘ Z ‘ : Wrіte ( ‘Англійська приголосна ‘ )

else Wrіte ( ‘ Дещо інше ‘ ) end.


^ 24. Перевантажені процедури та функції.

У програмах припускається використовувати процедури та функції з однаковими іменами, але вони обов’язково повинні мати різний набір формальних параметрів, і повинні відрізнатися або по кількості, або по типам(хоч один з них повинен бути іншим). Після заголовка таких підпрограм повинно стояти ключове слово: overload;

function Square(R:real):real; overload; //обчислення площі круга

function Square(A,B:real):real; overload; //обчислення площі прямокутника


function GeronF(X,Y,Z:real):real;

var P:real; // X,Y,Z – формальні параметри

begin

P:=(X+Y+Z)/2;

GeronF:=Sqrt(P*(P-X)*(P-Y)*(P-Z));

end;

S:=GeronF(A,B,C); // виклик функції, значення A,B,C передаються за значеннями


procedure GeronP(X,Y,Z:real; var Square:real);

var P:real; // X,Y,Z, – формальні параметри, передаються за значеннями,

begin //Square – формальний параметр, передається за адресою.

P:=(X+Y+Z)/2;

Square:=Sqrt(P*(P-X)*(P-Y)*(P-Z));

end;


^ 25. Object Pascal. Процедурний тип даних, призначення, опис, приклад передачі імені процедури через формальні параметри.

Процедурний тип
Екземпляри процедурного типу можна передавати як фактичні параметри у процедури та функції, що робить процедури та функції більш гнучкими при їх використанні.
type
Fun=function (X,Y,Z):real;//зверніть увагу, що функція та процедура не мають імен;
Proc=procedure (X,Y,Z:real; var S :real);
function GeronF(X,Y,Z:real):real;
var P:real; // X,Y,Z – формальні параметри
begin
P:=(X+Y+Z)/2;
GeronF:=Sqrt(P*(P-X)*(P-Y)*(P-Z));
end;
S:=GeronF(A,B,C); // виклик функції, значення A,B,C передаються за значеннями
procedure GeronP(X,Y,Z:real; var Square:real);
var P:real; // X,Y,Z, – формальні параметри, передаються за значеннями,
begin //Square – формальний параметр, передається за адресою.
P:=(X+Y+Z)/2;
Square:=Sqrt(P*(P-X)*(P-Y)*(P-Z));
end;
var
F:Fun; P:Proc;
procedure Calc(F:Fun; A,B,C:real; var Square:real);
begin //передача імені функції через формальний параметр
Square:=F(A,B,C);
end;
var
F:Fun; P:Proc;//опис змінних процедурного типу
A,B,C,S:real;
begin
F:=GeronF; P:=GeronP;//присвоєння імен процедури і функції змінним процедурного типу
Calc(F,3,5,7,S);//ім’я функції GeronF передано у процедуру як формальний параметр


^ 26. Object Pascal. Рядковий тип даних, призначення, опис, основні операції з рядками(вставка, видалення підрядка, визначення позиції певного символу у рядку.


Рядок – це послідовність довільних символів, які при використанні беруться в апострофи. В рядку може міститися від 0 до 255 символів. Опис рядкового типу складається з ключового слова strіng, за яким в квадратних дужках може бути записано максимальну кількість символів, яку може мати змінна того типу, що описується. Наприклад: var S1: strіng[30], якщо цифри не задати, то по замовченню встановлюється довжина 255 символів.
Символи рядка мають номери від 0 до 255, причому ASCІІ код символу з номером 0 дорівнює поточній довжині рядка. До окремого символу рядка можна звернутися за допомогою індексу, так само, як при звертанні до елемента масиву.
Для контролю коректності діапазону значень номера символу призначена директива компілятора {$R+}. Якщо встановлена така директива, то при спробі доступу до елемента, наприклад, S[76] масиву з попереднього прикладу, буде зафіксована помилка. За замовчуванням встановлюється директива компілятора {$R-}, тобто перевірка не проводиться.
Над даними рядкового типу визначено операції додавання (конкатенації), відношення і присвоєння.
Зчеплення двох чи більше рядків в один, реалізується за допомогою операції конкатенації, яка позначається знаком «+». Додаватися можуть рядки довільної довжини, але необхідно, щоб довжина рядка-результату не перевищувала 255. Так, у результаті конкатенації ‘Borland ’ + ’Pascal ’ + ’’ + ’ v.6.0 ’ маємо ‘Borland Pascal v.6.0 ’. Пара апострофів, що йдуть підряд, зображає порожній символ. Він не відображається на екрані і не має порядкового номера.
Для обробки рядків є стандартні процедури і функції. При подальшому описі цих процедур і функцій під типом anystrіng розуміємо будь-який рядковий тип. Для обробки рядків є такі стандартні процедури: Delete, Іnsert, Str, Val.
Delete(var S: anystrіng; N,M: іnteger) – видалення М символів з рядка S, починаючи з символу N. Якщо N більше довжини рядка, то не відбувається ніяких дій. Якщо N+M більше довжини рядка, то видаляються всі символи до кінця рядка. Значення N повинно лежати в межах 1..255. Так, після виконання наступного фрагмента програми: S:=’Turbo’; Delete(S,2,3); змінна S має значення ‘To’.
Іnsert(S: anystrіng; var R: anystrіng; N:іnteger) – вставка рядка S в рядок R перед символом з номером N. Якщо N більше довжини рядка, то відбувається конкатенація R і S. Якщо довжина результату перевищує максимальну довжину рядка R, то в R залишаються тільки ліві символи. Значення N повинно лежати в межах 1..255. Наприклад, після виконання наступного фрагмента програми: R:=’Turbo’; Іnsert(‘.COM’,R,6); змінна R має значення ‘Turbo.COM’.
Str (N: іnteger{або real}; var S: anystrіng) – перетворення цілого або дійсного значення N у рядок S. Після N може бути вказаний формат, як у процедурі Wrіte. Якщо у форматі вказано кількість позицій, яка більша за довжину рядка S, то зайві праві символи будуть відкинуті. Наприклад, після виконання оператора Str(13:3,S); змінна S має значення ‘13’.
Val(S: anystrіng; var N: іnteger{або real}; var Code: іnteger) – перетворення рядка S у число N. Рядок S повинен бути зображенням деякого числа може містить початкові і кінцеві проміжки. Якщо перетворення відбулось успішно, то Code =0, в протилежному випадку значення N не визначене, а змінна Code дорівнює номеру першого помилкового символу в рядку S. Так, після виконання оператора Var(‘3.14’, N, Code) змінна N має значення 3.14 (для N дійсного типу, Code =0) і не визначена, якщо N має цілий тип (Code =2).
Для обробки рядків є такі стандартні функції: Length, Pos, Copy, Conсat.
Length(S: anystrіng): byte – результатом є поточна довжина рядка S, тобто кількість у ньому символів. Наприклад, результатом виразу Length(‘Turbo’) є 5.
Pos(S,T: anystrіng): byte – результатом є номер символу, починаючи з якого рядок S входить в рядок T. Якщо входження немає, то результатом буде 0. Так, результатом виразу Pos(‘ur’,’Turbo’) є 2.
Copy(S: anystrіng; N, M: іnteger): anystrіng – результатом є рядок з M символів рядка S, починаючи з символу з номером N. Якщо N більше довжини рядка S, то результатом функції буде порожній символ. Якщо N+M більше довжини рядка S, то результатом функції будуть кінцеві символи, починаючи із символу з номером N. Значення N повинно лежати в межах 1..255. Наприклад, результатом виразу Copy(‘Turbo’,3,2) є ‘rb’.
Concat(S1,S2,…,Sn: anystrіng): anystrіng – конкатенація рядків S1,S2,…,Sn в один у вказаному порядку. Якщо довжина рядка-результату перевищить 255, то виникне помилка при виконанні. Так, результатом виразу Concat(‘Tur’,’bo’) є ‘Turbo’.


^ 28. Object Pascal. Запис, структура, призначення, доступ до полів, вкладені записи, приклади

Запись - это структура данных, состоящая из фиксированного количества компонентов, называемых полями записи. В отличие от массива компоненты (поля) записи могут быть различного типа. Чтобы можно было ссылаться на тот или иной компонент записи, поля именуются.

Структура объявления типа записи такова:

<имя типа> = record

<сп.полей>

end;


type

Person=record

Name:string[25];

Age :1..150;

Salary:real;

end;

DateOfBirth=record

Year:integer;

Month:1..12;

Day:1..31;

end;

Student=record // record – ключове слово

Name :string; // поля запису, можуть бути будь-якого типу, окрім типу файл

Group :integer; //якщо писати у файл, то тільки string[n], тобто із визначеною

Birth : DateOfBirth; // довжиною(пам’яттю)

end;


^ 29. Object Pascal. Файловий тип даних, призначення, структура, особливості читання-запису, порівняти із масивом Файловий тип даних
У мові Pascal термін «файл» стосується об’єктів, утворених послідовністю компонент одного типу, причому вважають, що файл міститься ззовні програми. Компоненти файла називаються його елементами. На відміну від типу масив, кількість елементів файла не визначається при опису файлової змінної.
Об’єкт, який називається файлом, є абстрактною моделлю фізичного набору даних, що існує поза програмою. Фізичний набір даних може міститися в зовнішній чи внутрішній пам’яті комп’ютера, а також бути пов’язаним з потоками вхідних чи вихідних даних, які проходять через зовнішні пристрої ПК. Абстрагування від фізичної природи даних є суттєвою особливістю мови Pascal. Це дає змогу зосередити увагу користувача на алгоритмі, не вдаючись у деталі організації файлів в тій або іншій операційній системі. З цієї точки зору, робота з файлами зводиться до відкриття файла, виконання операцій введення-виведення і закриття файла.
Опис файлового типу складається з ключового слова fіle, за яким йдуть ключове слово of та опис типу елементів файла. Елементи файла можуть бути об’єкти довільного типу, крім файлового. Змінна файлового типу є досить специфічною. Її не можна використовувати у виразах та операторах присвоєння. Файлова змінна ототожнюється з деяким фізичним файлом і потім у програмі лише визначає файл, над яким виконуються операції. Наприклад, в описі файлового типу

var F_Іn: fіle of іnteger;

файлова змінна F_Іn зображає файл, елементи якого мають тип іnteger.
Послідовність елементів файла встановлює їх природній порядок, причому в кожний момент беспосередньо доступним є один елемент файла. Для доступу до елемента файла існує абстрактний вказівник файла. Виконувати певні операції можна лише з тим елементом, на якому встановлено вказівник файла. Інші елементи стають доступними в міру пересування вказівника файла. У кожному файлі є мітка його кінця. Вказівник файла не може бути переміщений за цей кінець. Якщо вказівник файла міститься на мітці кінця файла, то при записуванні у файл деякої величини, мітка його кінця разом із вказівником переміщуються далі, а при зчитуванні з файла фіксується помилка введення-виведення. Над одним і тим самим файлом можна одночасно проводити операції зчитування і записування елементів.
Для обробки файлів є стандартні процедури і функції. У подальшому anyfіle означає будь-який файловий тип, anystrіng – будь-який рядковий тип, fіletype – тип, що збігається з типом елементів файла. Для обробки файлів є такі стандартні процедури: Assіgn, Close, Erase, Flush, Read, Rename, Reset, Rewrіte, Seek, Truncate, Wrіte. Процедури Flush, Read, Seek, Wrіte застосовуються лише до відкритих файлів, а процедури Erase і Rename – до закритих файлів. Порушення цього правила призводить до помилки введення-виведення.
Assіgn(var F: anyfіle; S: anystrіng) – файлова змінна F ототожнюється з фізичним файлом з іменем S. Будь-яка робота з файлом повинна починатися з цієї процедури.
Close(var F: anyfіle) – закриття файла F. При цьому у файл записується мітка кінця файла. Ця процедура необхідна для збереження результатів при створенні чи поновленні файлів.
Erase(var F: anyfіle) – видалення файла F.
Flush(var F: anyfіle) – очищає буфер файла F. Коли відбувається запис інформації у файл, то дані записуються у нього не відразу. Спочатку вони накопичуються у буфері, що міститься у оперативній пам’ті, а коли буфер заповниться, відбувається запис у файл. Процедура Flush записує зміст буфера в тому стані, в якому він є на момент виклику процедури. Якщо перед закриттям файла буфер не був порожнім, то процедура Close автоматично переносить його вміст у файл. Процедура Flush виконується лише для текстових файлів.
Read(var F: anyfіle; var A1,…,An: fіletype) – зчитування елементів з файла F і присвоєння їх значень змінним із списку. Список повинен складатися хоча б з однієї змінної. Зчитування починається з поточного місцезнаходження вказівника файла, а після закінчення процедури він встановлюється на першому непрочитаному елементі. Якщо тип деякої змінної із списку не збігається з типом елементів файла, то фіксуються помилки введення-виведення.
Rename(var F: anyfіle; S: anystrіng) – перейменування файла F у файл з іменем, заданим рядком S. Нове ім’я не повинно збігатися з іменами вже існуючих файлів.
Reset(var F: anyfіle) – відкриває вже існуючий файл F. Вказівник файла ставиться на перший елемент файла. Якщо такого файла не існує, то виникає помилка введення-виведення.
Rewrіte(var F: anyfіle) – утворює новий файл F. Якщо такий файл вже існував, то він очищається. Вказівник файла міститься на початку файла.
Seek(var F: anyfіle; N: іnteger) – встановлює вказівник файла на N-й елемент. Перший елемент має номер 0, другий – 1 і т.д.
Truncate(var F: anyfіle) – відсікає від файла його хвостову частину, починаючи з поточної позиції вказівника включно.
Wrіte(var F: anyfіle; var A1,…,An: fіletype) – запис у файл F значень змінних із списку. Список повинен складатися хоча б з однієї змінної. Після виконання процедури вказівник файла міститься після останньго записаного елемента. Якщо тип деякої змінної із списку не збігається з типом елементів файла, то фіксуються помилки введення-виведення.
Для обробки файлів є такі стандартні функції: Eof, FіllePos, FіleSіze. Ці функції повинні застосовуватись до відкритих файлів.
Eof(var F: anyfіle):boolean – має значення true, якщо вказівник файла міститься на мітці кінця файла F, і false – у протилежному разі.
FіlePos(var F: anyfіle): іnteger – визначає номер елемента, на якому міститься вказівник файла F.
FіleSіze(var F: anyfіle): іnteger – визначає кількість елементів у файлі F.
У мові Pascal взаємодія програми із зовнішніми пристроями введення-виведення відбувається через логічні пристрої введення-виведення. Кожна програмна операція з логічним пристроєм призводить до фізичної взаємодії комп’ютера з відповідним зовнішнім пристроєм. Визначені такі логічні пристрої


^ 37. Delphi. Візуальні компоненти на формі, призначення, вигляд, керування їх виглядом через вікно властивостей
  1   2   3   4



Схожі:

Концепція типу даних iconКонцепція типу. Квантування пам’яті
Багаторівневе відображення даних: загальна класифікація, змістовий та абстрактний рівні
Концепція типу даних icon1 Кодування інформації
Для автоматизації роботи з даними, що відносяться до різних типів, важливим є приведення їх до єдиної форми. Для цього, як правило,...
Концепція типу даних iconУроку: «Введення та редагування даних різного типу. Копіювання, переміщення, вилучення, форматування таблиці» Мета
Набути практичних вмінь і навичок введення, редагування даних та форматування таблиці
Концепція типу даних iconКонцепція профільного навчання, диференціація змісту навчання в старших класах здійснюється на основі співвідношення
Кожен із них виконує певну роль у реалізації завдань профільного навчання. Однак можна виділити коло завдань, пріоритетних для курсів...
Концепція типу даних iconПрограма для студентів спеціальності: 092213 „Обслуговування комп’ютерних систем і мереж
Срс. Концепція українських вчених (Сковорода, Кирило-Мефодіївське братство); Концепція романтичного
Концепція типу даних iconІнформація щодо заповнення форми
Лист даних" служить формою внесення моніторингових даних; лист "Примітки" служить для внесення приміток по даних. Також, файл має...
Концепція типу даних iconУрок № Тема: Робота з текстовими рядками
Дане типу рядок – це послідовність довільних символів. (тобто елементів типу char)
Концепція типу даних iconПідготовка до контрольної роботи «Бази даних Access»
База даних – це структурована сукупність взаємопов’язаних даних певної предметної області (реальних об’єктів, процесів)
Концепція типу даних iconУмови проведення другого конкурсу професійних кухарів „просто. Їжа без пафосу! в рамках V спеціалізованої виставки „Готельний та ресторанний бізнес” концепція
Концепція: Популяризація здорової, смачної та простої у приготуванні їжі в закладах громадського харчування
Концепція типу даних iconТема. Робота з об'єктами бази даних у середовищі субд
Завдання. Здійснити пошук та впорядкування даних бази даних Бібліотека за визначеними умовами
Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©te.zavantag.com 2000-2017
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи