Шукати в цьому блозі

Хто Вам більше подобається і кому Ви надаєте перевагу?

РОЗДІЛ "ІНФОРМАТИКА"56-60


п
56.Методи впорядкування масивів.
Під сортуванням (впорядкуванням) звичайно розуміють процес перестановки об'єктів даної множини у визначеному порядку. Ціль сортування - полегшити наступний пошук елементів у відсортованій множині. Наприклад, якщо вихідна сукупність даних впорядкована, то значно полегшуються операції пошуку елементів із заданими властивостями.
У загальному випадку елементом масиву може бути запис, що складається з декількох полів. Сортування може проводитися по кожному з полів, яке називається  в цьому випадку ключем. Так, якщо список службовців сортується по коду службовців, то ключем є код, якщо за  прізвищем  - ключем є прізвище і т.п. Якщо ж елементами масиву є дані простого типу (цілий, дійсний і т.д.), то ключем буде саме значення елементу.
Основні вимоги до сортування масивів – раціональне  використання пам'яті. Це означає, що переупорядкування елементів потрібно виконувати в цьому ж самому  масиві. Методи, що пересилають елементи з масиву А в масив В,  нами розглядатись не будуть. .
Існує кілька різних методів сортування, що відрізняються ступенем складності й ефективністю. Зручна міра ефективності утворюється при підрахунку числа С - необхідних порівнянь ключів і М – кількості  пересилань елементів. Ці числа визначаються деякими функціями від числа n – кількості  елементів, що впорядковуються.. Гарні алгоритми сортування вимагають порядку n•logn порівнянь, однак, вони досить  складні. Щоб розібрати основні принципи сортувань, скористаємося спочатку розглядом щодо простих методів, що вимагають порядку n2 порівнянь ключів.
Методи, що сортують елементи усередині масиву, можна розбити на чотири основних класи в залежності від покладеного в їх основі прийому:
· сортування включеннями;
· сортування вибором;
· сортування обміном;
При розгляді основних методів зробимо припущення:
· в ролі структури даних для розгляду алгоритмів сортування оберемо одновимірний цілочисельний масив;
· сортування буде здійснюватись без використання допоміжних масивів;
· впорядкування здійснюється за зростанням;
· в головній програмі діє такий опис даних.
const n=...;
{кількість елементів масиву визначається користувачем}
type
massiv = array[1..n] ofinteger;
var
a:massiv;
i:integer;
Методи сортування.
Сортування простим вибором
Сутність методу полягає у наступному. На першому кроці обирається найменший елемент і міняється місцями з першим. На другому кроці серед решти елементів знову обирається найменший елемент і міняється місцями з другим. Цей процес продовжується до повного впорядкування вихідного масиву. Проілюструємо роботу методу на прикладі масиву з 10 елементів. На кожному кроці найменший елемент виділятимемо іншим кольором.
Вихідний масив:
44  55  12  42  94  18  06  67  32  13
Після першого кроку:
06  55  12  42  94  18  44  67  32  13
Після другого кроку:
06  12  55  42  94  18  44  67  32  13
На останньому кроці
06  12  13  18  32  42  44  55  67  94
При записі алгоритму на кожному кроці доцільно при пошукові найменшого елементу запам’ятовувати не сам елемент, а його номер. Це спростить алгоритм. Процедура сортування простим вибором має такий вигляд:
procedure straightselection (var a: massiv);
var
i,j,k: integer;
x: integer;
n1,n: integer;
begin
{границі масиву}
n1:= Low(a);
n:= High (a);
{впорядкування}
for i:= n1 to n do
begin
  k:=i;
  for j:= i+1 to n do
  if a[j]<a[k] then k:=j;
  if  k >i then
  begin
  x:=a[i];
  a[i]:=a[k];
  a[k]:=x;
  end;
end;
end;
Число C порівнянь ключів не залежить від початкового порядку ключів:
C=1/2 (n+n–1).
Мінімальне число пересилань у випадку початково  упорядкованих елементів має значення:
Mmin=0
Найбільше значення ця величина приймає  у випадку, коли елементи вихідного масиву розташовані в зворотному порядку до впорядкування (тобто, впорядковані за спаданням):
Mmax=trunc (n2/4).
Сортування простим обміном
Наведений нижче алгоритм  сортування простим обміном заснований на принципі порівняння й обміну пари сусідніх елементів доти, поки не будуть відсортовані всі елементи. Сутність методу полягає у тому, що на кожному кроці порівнюються пари сусідніх елементів. Якщо “лівий” елемент більший за “правий”, то вони міняються місцями. Тобто, здійснюється впорядкування кожної пари елементів. Порівняння здійснюємо, починаючи з кінця масиву в зворотному природному порядку напрямку. В результаті елементи з малими значеннями будуть рухатись в бік початку масиву.
Якщо ми для розмаїтості будемо розглядати масив, розташований вертикально, і, уявляти  елементи пухирцями в резервуарі з водою, що володіють «вагами», які повідають їхнім ключам, то кожен прохід по масиві проводить до «спливання» пухирця на відповідній його вазі рівень.
Застосування методу розглянемо на прикладі впорядкування масиву з 10 елементів. Елементи, що переміщувались вліво, виділимо кольором.
Вихідний масив:
44  55  12  42  94  18  06  67  32  13
Після першого кроку:
06  44  55  12  42  94  18  13  67  32
Після другого кроку:
06  12  44  55  13  42  94  18  32  67
Після останнього кроку:
06  12  13  18  32  42  44  55  67  94
Процедура для запису алгоритму має вигляд:
procedurebubblesort (var a: massiv);
var
i,j: integer;
x: integer;
n1,n: integer;
begin
{границі масиву}
n1:=low(a);
n:= high (a);
{впорядкування}
for i:= n1 to n-1 do
  for j:= n downto i+1 do
  if a[j]<a[j-1] then
  begin
  x:=a[j];
  a[j]:=a[j-1];
  a[j-1]:=x;
  end;
end;
Число порівнянь для сортування даним методом дорівнює:
C=1/2 (n- n),
а кількість пересилань
Mmin  = 0, 
Mср = 3/4 (n- n), 
Mmax  = 3/2 (n- n).
Сортування простими включенням (бульбашки)
1. Цей метод звичайно використовують гравці в карти. Елементи (карти) умовно розділяються на впорядковану послідовність a1,...,ai-1 і вхідну послідовність ai,...,an, яку потрібно впорядкувати. На кожному кроці, починаючи з другого, беруть поточний елемент невпорядкованої частини і передають у впорядковану  послідовність, уставляючи його на підходяще місце.  Вставка здійснюється “посуванням” елементів впорядкованої послідовності на певну кількість кроків вправо. Посування закінчується при виконання однієї з двох умов:
· знайдено елемент aіз ключем меншим, чим ключ x (елемента, який впорядковується);
· досягнутий лівий кінець готової послідовності.
Оскільки наперед кількість таких “посувань” невідома, для практичної реалізації алгоритму доцільно застосувати цикл з передумовою. Застосування методу розглянемо на прикладі впорядкування масиву з 10 елементів. Елементи, що переміщувались вправо, виділимо кольором.
Вихідний масив:
44  55  12  42  94  18  06  67  32  13
Перший крок: переставляється елемент х=12
44  55  55  42  94  18  06  67  32  13
44  44  55  42  94  18  06  67  32  13
12  44  55  42  94  18  06  67  32  13
Другий  крок: переставляється елемент х=42
12  44  55  55  94  18  06  67  32  13
12  44  44  55  94  18  06  67  32  13
12  42  44  55  94  18  06  67  32  13
Третій  крок: переставляється елемент х=18
12  42  44  55  94  94  06  67  32  13
12  42  44  55  55  94  06  67  32  13
12  42  44  44  55  94  06  67  32  13
12  42  42  44  55  94  06  67  32  13
12  18  42  44  55  94  06  67  32  13
….
Процедуроа реалізації алгоритму має вигляд:
procedurestraightinsertion (var a: massiv);
var
i,j: integer;
x: integer;
n1,n:integer;
begin
{границі масиву}
n1:= low(a);
n:= high(a);
{впорядкування}
for i:= n1+1 to n do
begin
x:=a[i];
j:=i-1;
while (j>=L) and (a[j]>x) do
  begin
  a[j+1]:=a[j];
  j:=j-1;
  end;
  a[j+1]:=x;
end;
end;

Бінарний пошук елемента із вказаними властивостями у впорядкованому одновимірному масиві.
Якщо ж масив впорядкований, то можна з’ясувати, чи є дане число в масиві, іншим способом, значно ефективнішим. Пояснимо його на прикладі. Нехай маємо впорядкований за зростанням масив з 10 чисел: 2, 5, 8, 12, 13, 16, 17, 20, 22, 30 і деяке дане число х. Порівняємо це число із значенням елемента масиву, який знаходиться посередині масиву (з числом 13). Якщо дане число х дорівнює 13, то воно в масиві є, якщо ні, то з’ясуємо, чи більше дане число числа 13 (х>13). Якщо так, то його потрібно шукати тільки серед правої половини масиву, якщо ні, то тільки серед лівої половини масиву. Таким чином область пошуку звужується вдвічі. На наступному кроці поступаємо так саме: порівнюємо дане число із значенням елемента масиву, який знаходиться посередині тієї частини масиву, яка залишилися для пошуку. Знову або дане число дорівнює значенню цього елемента масиву, або залишаємо для пошуку або ліву, або праву половини тієї частини масиву, що залишилася, тобто область пошуку знову зменшується вдвічі.
Такий метод пошуку є значно ефективнішим, ніж попередній, бо значно швидше приводить до результату, особливо для великих N (максимум за [log2N] +1кроків, де N– кількість елементів у масиві, а квадратними дужками тут позначена ціла частина числа). 
Такий метод пошуку заданого числа в одновимірному масиві називається методом половинного (бінарного) пошуку.
Відповідна процедура, в якій реалізується цей метод для впорядкованого масиву з 10 цілих чисел, виглядає так:
procedure TForm1.Button1Click(Sender: TObject);
var a: array [1..10] ofInteger; i, x, left, right, m: Integer; f: Boolean;
begin
for i  := 1 to 10  do
  a[i] := StrToInt(Memo1.Lines[i-1]);
  x := StrToInt(Edit1.Text);
  left := 1; // Початковий номер елемента тієї частини масиву, де відбуватиметься пошук
  right:= 10;  // Кінцевий номер елемента тієї частини масиву, де відбуватиметься пошук
  f := false; // Задане число в масиві поки що не знайдене
while (left<=right) andnot f do
begin
    m := (left+right) div 2; // Номер елемента посередині тієї частини масиву, де далі продовжуватиметься пошук
if x > a[m]
then left := m+1 // Змінюється початковий номер елемента тієї частини масиву, де відбуватиметься пошук
elseif x < a[m]
then right := m-1 // Змінюється останній номер елемента тієї частини масиву, де відбуватиметься пошук
else f := true; // Число в масиві знайшлося
end;
iff
thenEdit1.Text := 'Число в масиві є'
elseEdit1.Text := 'Числа в масиві немає';
end;



57. Опис та використання підпрограм
У Паскалі підпрограма є частиною основної програми, її опис дається між розділом var головної програми та її програмним блоком (першим begin). Підпрограм може бути декілька, їх описи розміщуються у довільному порядку один за одним. Опис підпрограми можна порівняти із записуваною в математиці формулою «у загальному вигляді», в яку при розрахунках підставляються конкретні значення. Як і формулу, підпрограму можна використовувати для різних даних, які передаються з програми, що її викликає. Тому параметри, які використовуються в описі підпрограми, називають формальними, а параметри, над значеннями яких виконуються операції, вказані в підпрограмі, називають фактичними.
Підпрограма — це спеціально оформлений алгоритм, який можна використовувати багато разів при розв'язуванні задач.
У Паскалі розрізняють два види підпрограм: процедури і функції. Основна різниця між ними полягає в тому, що процедура може мати будь-яку кількість вхідних і вихідних даних (параметрів), а функція — довільну кількість вхідних і тільки одне вихідне значення.
Підпрограми мають структуру, аналогічну до структури головної програми. Вони починаються з заголовка із спеціальним словом — ознакою підпрограми, далі вказується ім'я підпрограми і, при потребі, список формальних параметрів. Далі розміщуються всі розділи описів, які є в головній програмі: мітки, константи, типи і змінні. У цих розділах описуються дані, які використовуються тільки всередині підпрограми. Такі дані називаються локальними, У підпрограмі можуть використовуватися також змінні, описані у викликаючій програмі. Такі змінні називаються глобальними. Вони можуть використовуватися не лише програмами, які викликають, а й підпрограмами.
При роботі з підпрограмою завжди виділяється два етапи: опис підпрограми, тобто запис алгоритму розв'язання
задачі в спеціальній формі, і виклик підпрограми — передача їй даних на обробку з викликаючої програми та отримання результатів.
Реалізація базових алгоритмічних структур процедурною мовою програмування.
Базові структури алгоритмів (керуючі структури) – це способи керування процесами обробки даних. Комбінуючи керуючі структури, можна складати програми для розв’язання різноманітних задач. Виділяють три базові алгоритмічні конструкції: лінійні алгоритми (послідовне виконання); умова розгалуження; цикли.
Лінійна структура (наступність) передбачає, що тіло алгоритму являє собою послідовність команд, виконуваних одна за іншою поспіль. Умова (розгалуження) – це вид керуючої структури, що передбачає можливість вибору з кількох варіантів, для кожного з яких, залежно від визначеної умови, виконується різна послідовність команд. Цикл – це вид керуючої структури, що дозволяє багаторазово повторити задану послідовність команд.
Розгалуження. У мові Паскаль алгоритм із розгалуженням реалізований за допомогою умовного оператора if.
Загальний вигляд умовного оператора if.
if<вираз>
then<оператор 1>
else<оператор 2>
де <вираз> - будь-який вираз логічного типу  (що виробляє в результаті True або False); <оператор 1> і  <оператор 2> - оператори мови Паскаль. Якщо вираз набуде значення True, то виконується <оператор 1>, в іншому разі - <оператор 2>.
Цикли
1. Безумовний цикл
Якщо заздалегідь відома кількість повторень циклу, то можна скористатися циклом із покроковою зміною аргументу. Його перевагою є стислість і простота запису. Циклічні програми з покроковою зміною аргументу мовою Паскаль реалізовані за допомогою оператора циклу for:
for<лічильник циклу> : = <вираз 1>to<вираз 2>do<тіло циклу>
де <лічильник циклу> - змінна будь-якого типу,  <вираз 1> і <вираз 2> - вирази такого самого типу; <тіло циклу> - будь-яка послідовністьоператорів, щоповторюєтьсядоти, доки <лічильник циклу> не набере значення <вираз 2>. <Лічильник циклу> збільшується на 1 після кожного виконання циклу. Для його зменшення на 1 зарезервоване слово toзмінене на словоdownto.
2. Цикл-поки (з передумовою)
До нього входять як базові такі структури: блок перевірки умови Р і блок S, що називається тілом циклу. Блок перевірки умови розташований раніше тіла циклу і керує роботою циклу. Оскільки тіло циклу S розташоване після перевірки умови Р, то може статися, що за певних умов блок S не буде виконано жодного разу.
Циклічні програми з передумовою мовою Паскаль реалізовані за допомогою оператора циклу while:
while<вираз>do<оператор>
де <вираз> - будь-який вираз логічного типу (що виробляє в результаті True або False); <оператор> - оператор (складений оператор) мови Паскаль. Якщо вираз набуде значення True, то виконується <оператор>, в іншому разі виконання циклу завершується.
3. Цикл-до (з постумовою)
Характеризується тим, що перевірка умови Р стоїть після тіла циклу. Під час роботи циклу з постумовою тіло циклу S виконується принаймі один раз і буде виконуватися доти, доки не справдиться умова Р. Справдження умови Р в цьому випадку – умова закінчення циклу. Циклічні програми з постумовою мовою Паскаль реалізовані за допомогою оператора циклу repeat:
repeat
<тіло циклу>
until
де <тіло циклу> - будь-яка послідовність операторів, що повторюється доти, доки <вираз> не набере значення True.

Опис процедур та функцій процедурною мовою програмування
Підпрограма – це самостійна частина програми, що реалізує певний алгоритм. Підпрограми зручно використовувати, коли в програмі доводиться виконувати ті самі дії, але з різними даними. Розрізняють два типи підпрограм: процедури і функції. Головна відмінність між ними полягає у тому, що функція повертає значення і може бути використана у виразі, а процедура може бути викликана на виконання.
Формальні параметри – це параметри, описані в заголовку процедури. Значення величини, що вказується у виклику процедури, називається фактичним параметром процедури, або параметром виклику процедури. Кількість і тип фактичних параметрів мають суворо відповідати кількості й типам формальних параметрів. Зміст використовуваних фактичних параметрів залежить від того, у якому порядку вони перераховані при виклику процедури. Фактичний параметр є значенням, що замінює собою формальний параметр при виконанні процедури; з цим значенням параметра виконується викликана процедура. Локальні змінні (від лат. – місце) – це змінні, описані в розділі описів підпрограми. Локальні змінні можуть використовуватися й мінятися тільки операторами даної підпрограми. Локальні об’єкти створюються при вході в процедуру і знищуються при виході з неї.
1. Локальні змінні недоступні поза процедурою чи функцією.
2. Зміни, що відбуваються із змінними у процедурі, не впливають на значення змінних з тими ж іменами, але які описані поза даною процедурою
Глобальні змінні – це змінні, описані в розділі описів головної програми.
1. Глобальні змінні доступні поза процедурою чи функцією. 
2. Будь-яка зміна глобальної змінної у процедурі змінює її значення поза процедурою.
Процедури:
1. Стандартні (є частиною ТУРБО-системи і можуть бути викликані без оголошення): процедури для роботи з рядками; процедури для роботи з файлами; процедури розміщення динамічних параметрів; процедури введння-виведення; процедури завершення
2. Які визначаються користувачем (оголошуються у розділі описів)
Для використання процедур у програмі широко розповсюдженою мовою програмування Паскаль їх необхідно описати в розділі описів головної програми. Опис міститься в програмі після розділу опису змінних і складається і з заголовка і тіла процедури. Заголовок процедури складається із службового слова procedure, ідентифікатора процедури і списку формальних параметрів, взятого в круглі дужки. Елементи списку параметрів відокремлюються один від одного комами:
procedure<ім’я процедури> (<параметри>);
Тіло процедури за структурою аналогічне програмі, тобто містить описи об’єктів: міток, констант, типів, змінних, а також розділ операторів. Розглянемо як приклад процедуру обчислення дискримінанта квадратного рівняння:
procedureDiscr (A, B, C, D: real);
begin
D:=B*B-4*A*C;
end;
У цій процедурі використано змінні A, B, C, D типу real, що виступають як формальні параметри
Функція – це різновид підпрограми. Функція повертає значення і може бути використана у виразі. Правила відповідності між фактичними і формальними параметрами у разі алгоритмів-функцій залишаються такими самими, як і для алгоритмів-процедур. Відмінність функцій від процедур полягає у тому, що результати обчислень, виконаних процедурою, присвоюються певним аргументам процедури, в той час як результат обчислення функції присвоюється самій функції.
Для використання функції в програмі мовою Паскаль її необхідно описати в розділі головної програми. Опис функції починається з заголовка function і закінчується типом даних значення, що повертається:
function<ім’я функції> (<параметри>): <тип даних>;
Складений оператор, що розташовується в описі функцій після заголовка і, можливо, після опису локальних міток і змінних, повинен обов’язково містити у собі оператор присвоювання, у якому ліворуч від := розміщене ім’я функції.
Розглянемо як приклад функцію обчислення площі трикутника за формулою Герона:
functionGeron (a,b,c: real): real;
var p: real;
begin
p:=(a+b+c)/2;
Geron:=Sqrt(p*(p-a)*(p-b)*(p-c))
end;
Рекурсивнi алгоритми. Реалізація рекурсивних алгоритмів процедурною мовою програмування
Рекурсія – спосіб звернення процедури або функції до самої себе, але із зміненими вхідними даними. Рекурсію зручно використовувати в задачах, що зводяться до розв’язання підзадач одного типу, але різної розмірності. Наприклад, обчислення факторіала числа n можна подати через звертання до обчислення факторіала числаn-1:
n!=n(n-1)!
Рекурентні співвідношення (формули) встановлюють залежність резуль­татів деяких дій (операцій) на n-ому кроці від результатів аналогічних дій, одержаних на попередньому п - 1 кроці.
Рекурсивний алгоритм – це алгоритм при виконанні якого зустрічається вказівка про виконання його самого. Рекурсія може бути прямою (безпосередньою) – якщо в алгоритмі є вказівки про виконання цього ж алгоритму, або опосередкованою – в алгоритмі немає прямих вказівок про виконання цього ж алгоритму, але є вказівки про виконання інших алгоритмів, в яких є вказівки про виконання даного алгоритму. В такий спосіб в алгоритмі можуть бути опосередковані посилання через інші алгоритми на цей самий алгоритм.
Будь-яка рекурсія містить три елементи: 1) початкове значення проміжного результату (на нульовому кроці) перед початком прямого ходу; 2) спосіб одержання проміжного результату на і-му кроці прямого ходу через проміжний результат, одержаний на (і-1)-му кроці; 3) умова завершення процесу.
Приклад: задача Фібоначчі
fib(1)=1; fib(2)=1;..., fib(n)=fib(n-1)=fib(n-2).
Одержали рекурентне співвідношення, де черговий член послідовності виражається через два попередні, за винятком перших двох членів.
function fib (n: integer): integer;
begin
if (n=1) or (n=2)
then fib:=1
else fib(n)=fib(n-1)=fib(n-2)
end;
Процедури та функції, що призначені для роботи з випадковими числами.
Random: Повертає випадкове число.
Оголошення: Function Random [(Range Word)]: <тип параметра>;
Режим: Windows, Real, Protected

зауваження:

Якщо параметр Range не визначений, то результатом буде випадкове число типуReal в діапазоні 0 <= X <1. Якщо параметр Range визначений, то результатом будевипадкове ціле число в діапазоні 0 <= X <Range.

Якщо Range дорівнює 0, то значення 0 і буде повернуто.

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

Приклад функції Random
UsesCrt;
Begin
    Randomize;
    Repeat
       {Виводимо текст випадковими кольорами}
       TextAttr: = Random (256);
       Write ('!');
    Until KeyPressed;
End.

Наприклад Random на диапазоні A-Z буде мати вигляд так
x:=Random(A+Z)-A; - це для цілих чисел

Для дробових буде так
x:=(A+Z)*Random-A;


Модульне програмування та його реалізація в системах процедурного програмування.
Модуль– це автономно компілююча програмна одиниця, що включає в себе різні компоненти розділу описів (типи, константи, змінні, процедури і функції)
Структура
Unit<ім’я>;
Interface<інтерфейсна частина>;
Implementation<виконуюча частина>;
Begin<ініціююча частина>;
End.
Огляд стандартних модулів
В ТР є 8 стандартних модулів: SYSTEM, DOS, CRT, PRINTER, GRAPH, OVERLAY, TURBO3, GRAPH3.
SYSTEM.До нього входять всі стандартні процедури і функції Паскаля, а також вбудовані процедури і функції, що не ввійшли в інші стандартні модулі.
PRINTER.Вивід тексту на принтер
CRT.Входять процедури і функції, що забезпечують управління текстовим режимом роботи екрана. Можна переміщувати курсор в будь-яку позицію екрана, змінювати колір символів і фону.




58. Об’єктно-орієнтоване та візуальне програмування
Об’єктна модель системи об’єктно-орієнтованого візуального програмування: поняття класу, властивостей класу, методів класу та їх використання в процесі реалізації взаємодії об’єктів.
Об'єктно́-орієнтоване́програмува́ння (ООП) — одна з парадигм програмування, яка розглядає програму як множину «об'єктів», що взаємодіють між собою. В ній використано декілька технологій від попередніх парадигм, зокрема успадкування, модульність, поліморфізм та інкапсуляцію. Не зважаючи на те, що ця парадигма з'явилась в 1960-тих роках, вона не мала широкого застосування до 1990-тих. На сьогодні багато із мов програмування (зокрема, Java, ActionScript 3, C#, C++, Python, PHP, Ruby та Objective-C) підтримують ООП.
Клас визначає абстрактні характеристики деякої сутності, включаючи характеристики самої сутності (її атрибути або властивості) та дії, які вона здатна виконувати (її поведінки, методи або можливості). Наприклад, клас Собака може характеризуватись рисами, притаманними всім собакам, зокрема: порода, колір хутра Класи вносять модульність та структурованість в об'єктно-орієнтовану програму. Як правило, клас має бути зрозумілим для не-програмістів, що знаються на предметній області, що, у свою чергу, значить, що клас повинен мати значення в контексті. Також, код реалізації класу має бути досить самодостатнім. Властивості та методи класу, разом називаються його членами.
Метод
Можливості об'єкту. Оскільки Сірко — Собака, він може гавкати. Тому гавкати() є одним із методів об'єкту Сірко. Він може мати і інші методи, зокрема: місце(), або їсти(). В межах програми, використання методу має впливати лише один об'єкт; всі Собаки можуть гавкати, але треба щоб гавкала лише одна окрема собака.
Приховуванняінформації (інкапсуляція)
Приховування деталей про роботу класіввідоб'єктів, щоїхвикористовуютьабонадсилаютьїмповідомлення. Так, наприклад, клас Собака має метод гавкати(). Реалізація цього методу описує як саме повинно відбуватись гавкання (приміром, спочатку вдихнути() а потім видихнути() на обраній частоті та гучності). Петро, хазяїн пса Сірка, не повинен знати як він гавкає. Інкапсуляція досягається шляхом вказування, які класи можуть звертатися до членів об'єкту
Успадкування
В деяких випадках, клас може мати «підкласи», спеціалізовані версії класу. Наприклад, клас Собака може мати підкласи Коллі та Пікінес. В цьому випадку, Сірко буде екземпляром класу Вівчарка. Підкласи успадковують атрибути та поведінку своїх батьківських класів, і можуть вводити свої власні.
Поліморфізм
Поліморфізм означає залежність поведінки від класу, в якому ця поведінка викликається, тобто, два або більше класів можуть реагувати по різному на однакові повідомлення. Наприклад, якщо Собака отримує команду голос(), то у відповідь можна отримати Гав; якщо Свиня отримує команду голос (), то у відповідь можна отримати Хрю.
Візуальне програмування-програма, в якому для передачі сематики вик більш як один вімір.
Використання середовища візуального програмування (наприк­лад, VisualBasic) дозволяє поєднати «старий», математико-алго-ритмічний, і «новий», інформаційно-технологічний, підходи до навчання інформатики, які до цього часу існували в одному курсі прак­тично незалежно один від одного. Повна відмова від математико-ал-горитмічного підходу призвела б до скорочення інтелектуально-ло­гічного аспекту навчання, в той же час відмова в'щ вивчення сучасних
інформаційних технологій ускладнила би формування основ загаль­ної інформаційної культури.
Крім того, системи візуального програмування є провідниками об'єктно-оріентованоїтехнопогїіMicrosoftта ідеології ресурсів, які ви­користовуються спільно, а з іншого боку пропонує користувачеві струк-туровану, а також просту та зручну мову запису і налагодження про­грам, що використовуються як при створенні нових програм, так і для програмування в офісних продуктах Microsoft.
Програмування в середовищі VisualBasicсуттєво відрізняється від програмування в процедурних, процедурно-орієнтованих мовах про­грамування, а також мовах логічного програмування.
До основних принципів середовищ візуального програмування, які відрізняють їх від процедурних, слід віднести:
 відокремлення елементів (об'єктів) програми, які пов'язані з інтерфейсом користувача, від її алгоритмічної частини;
 швидкість і простота створення, модернізація інтерфейсу про­грам, в якому використовуються готові елементи (блоки), що реалізу­ють деякі великі функції (процедури) управління програмою;
 використання вже існуючих кодів, описаних іншими мовами про­грамування.
Система візуального програмування базується на ідеї подійно-орі-єнтованого програмування: програма  сукупність об'єктів реально­го або віртуального світу, з кожним з яких пов'язаний деякий обме­жений набір подій. При відбуванні кожної події форми і елементи управління можуть деяким чином «реагувати» на них відповідно до написаного програмного коду, який створюється користувачем для кож­ного об'єкта окремо. Програмний код пов'язаний з формами (вікнами) і елементами управління та використовується для реалізації відповід­ної реакції програми на дії користувача або відбування системної події.
Стандартне програмування традиційно орієнтується на послідов­ний опис деякого конкретного процесу, тому написання програм є кро-піткою працею програміста. В такому процесі необхідно детально опи­сувати кожний крок, передбачений програмою. Одним з недоліків такого стилю є те, що той, хто складає програму, повинен до програ­ми все записати сам. У програмуванні, що орієнтоване на реакції на події, замість детального опису кожного кроку програміст повинен вка­зати, як слід реагувати на різні події (чи дії користувача), до яких, на­приклад, можна віднести вибір вказівки, клацання кнопкою миші, пе­реміщення миші тощо. На одні з подій можна передбачити деяку реакцію, інші—просто проігнорувати. При цьому створюється не одна велика програма, а кілька програм, які складаються із набору взаємо­діючих процедур, що управляються користувачем.
Використання середовища візуального програмування вже при складанні найпростіших програм надає можливість учням одразу спо­стерігати наслідки своєї роботи, що дуже важливо на перших кроках


59.Об'єктно-орієнтоване програмування
есть еще альтернатива Морзе 4 часть (там много, развернуто) стр. 225
Об'є́ктно-орієнто́ване програмува́ння (ООП) — одна з парадигм програмування, яка розглядає програму як множину «об'єктів», що взаємодіють між собою. В ній використано декілька технологій від попередніх парадигм, зокрема успадкування, модульність, поліморфізм та інкапсуляцію. Попри те, що ця парадигма з'явилась в 1960-тих роках, вона не мала широкого застосування до 1990-тих. Сьогодні багато мов програмування (зокрема, Java, C#, C++, Python, PHP, Ruby та Objective-C, ActionScript 3) підтримують ООП.
На відміну від традиційних поглядів, коли програму розглядали як набір підпрограм, або як перелік інструкцій комп'ютеру, ООП програми можна вважати сукупністю об'єктів. Відповідно до парадигми об'єктно-орієнтованого програмування, кожний об'єкт здатний отримувати повідомлення, обробляти дані, та надсилати повідомлення іншим об'єктам. Кожен об'єкт — своєрідний незалежний автомат з окремим призначенням та відповідальністю[2].
Об'єктно-орієнтоване програмування - це метод програмування, оснований на поданні програми у вигляді сукупності взаємодіючих об'єктів, кожен з яких є екземпляром певного класу, а класи є членами певної ієрархії наслідування.[3]
На думку Алана Кея, розробника мови Smalltalk, якого вважають одним з «батьків-засновників» ООП, об'єктно-орієнтований підхід полягає в наступному наборі основних принципів:
·           Все є об'єктами.
·           Всі дії та розрахунки виконуються шляхом взаємодії (обміну даними) між об'єктами, при якій один об'єкт потребує, щоб інший об'єкт виконав деяку дію. Об'єкти взаємодіють, надсилаючи і отримуючи повідомлення. Повідомлення — це запит на виконання дії, доповнений набором аргументів, які можуть знадобитися при виконанні дії.
·           Кожен об'єкт має незалежну пам'ять, яка складається з інших об'єктів.
·           Кожен об'єкт є представником (екземпляром, примірником) класу, який виражає загальні властивості об'єктів.
·           У класі задається поведінка (функціональність) об'єкта. Таким чином усі об'єкти, які є екземплярами одного класу, можуть виконувати одні й ті ж самі дії.
·           Класи організовані у єдину деревовидну структуру з загальним корінням, яка називається ієрархією успадкування. Пам'ять та поведінка, зв'язані з екземплярами деякого класу, автоматично доступні будь-якому класу, розташованому нижче в ієрархічному дереві.
Таким чином, програма являє собою набір об'єктів, що мають стан та поведінку. Об'єкти взаємодіють використовуючи повідомлення. Будується ієрархія об'єктів: програма в цілому — це об'єкт, для виконання своїх функцій вона звертається до об'єктів що містяться у ньому, які у свою чергу виконують запит шляхом звернення до інших об'єктів програми. Звісно, щоб уникнути безкінечної рекурсії у зверненнях, на якомусь етапі об'єкт трансформує запит у повідомлення до стандартних системних об'єктів, що даються мовою та середовищем програмування. Стійкість та керованість системи забезпечуються за рахунок чіткого розподілення відповідальності об'єктів (за кожну дію відповідає певний об'єкт), однозначного означення інтерфейсів міжоб'єктної взаємодії та повної ізольованості внутрішньої структури об'єкта від зовнішнього середовища (інкапсуляції).
Першою мовою програмування, в якій були запропоновані принципи об'єктної орієнтованості, була Симула. На момент своєї появи (в [[1967 році), ця мова програмування запропонував революційні ідеї: об'єкти, класи, віртуальні методи тощо, однак це все не було сприйнято сучасниками як щось грандіозне. Тим не менше, більшість концепцій були розвинені Аланом Кейем та Деном Інгаллсом у мові Smalltalk. Саме він став першим широко поширеним об'єктно - орієнтованою мовою програмування.
В даний час кількість прикладних мов програмування (список мов), що реалізують об'єктно -орієнтовану парадигму, є найбільшим по відношенню до інших парадигм. В області системного програмування до сих пір застосовується парадигма процедурного програмування, і загальноприйнятою мовою програмування є мова C. Хоча при взаємодії системного і прикладного рівнів операційних систем стали помітно впливати мови об'єктно-орієнтованого програмування. Наприклад, однією з найбільш поширених бібліотек мультиплатформовий програмування є об'єктно-орієнтована бібліотека Qt, написана мовою C++.
Візуальне середовище програмування
Візуальне середовище програмування - Інтегроване середовище розробки програмних засобів (IDE, яке містить редактор вихідного коду, компілятор чи/або інтерпретатор, засоби автоматизації збірки та засоби для спрощення розробки графічного інтерфейсу користувача. Середовища для візуального програмування також надають змогу конструювати програми шляхом операування графічними об’єктами. Багато сучасних візуальних середовищ програмування використовуються для реалізації принципів об'єктно-орієнтованого підходу у розробці програмного забезпечення.
гіпертекст
Visual Basic - вступ до візуального програмування

Visual Basic - це засіб розробки програмного забезпечення, створений та підтримуваний корпорацією Microsoft, який складається з мови програмування і середовища розробки. Мова Visual Basic успадкувала дух, стиль і, частково, синтаксис свого предка — мови Бейсік, у якої є чимало діалектів. У той же час Visual Basic поєднує в собі процедури та елементи об’єктно-орієнтованих та компонентно-орієнтованих мов програмування. Середовище розробки VB містить інструменти для візуального конструювання користувальницького інтерфейсу. 
Visual Basic вважається потужним засобом швидкої розробки прототипів програми, розробки додатків баз даних і взагалі для компонентного способу створення програм, що працюють під управлінням операційних систем родини Microsoft Windows. Перше визнання серйозними розробниками Visual Basic отримав після виходу третьої версії - VB3. Остаточне визнання як повноцінного засобу програмування для Windows - при виході п’ятої версії - VB5. Версія VB6, що входить до складу Microsoft Visual Studio 6.0, стала по-справжньому зрілим і функціонально багатим продуктом. Після цього розробники з Microsoft суттєво змінили напрямок розвитку даної технології.

1. Основні поняття. Технологія роботи у середовищі Visual Basic базується на ідеях об’єктно-орієнтованого та візуального програмування. Ідея об’єктно-орієнтованого програмування полягає в інкапсуляції (об’єднанні) даних і засобів їх опрацювання (методів) у тип, який називається об’єктом. Прикладами об’єктів можуть бути елементи керування у вікні: кнопки, списки, текстові поля тощо. Середовище візуального програмування Visual Basic - це графічна автоматизована оболонка над об’єктно-орієнтованою версією мови
Basic. Якщо у мові Basic структурними одиницями є дані та команди, то тут такою структурною одиницею є візуальний об’єкт, який називається компонентом. Автоматизація програмування досягаєтеся завдяки можливості переносити компонент на форму (у програму) з палітри компонентів і змінювати його властивості, не вносячи вручну змін до програмного коду.
Формою називають компонент, який володіє властивостями вікна Windows і призначений для розташування інших компонентів. Компоненти служать для організації діалогу з користувачем. Це кнопки, списки, текстові поля, зображення, конструктор меню тощо. Вони відображаються на екрані під час виконання програми.
Проект — це сукупність файлів, з яких складається програма створена в середовищі Visual Basic.

2. Інструменти середовища Visual Basic. Вікно середовища містить головне меню, панель інструментів, а також:
• палітру компонентів (ToolBox);
• вікно властивостей об’єктів (Properties Window);
• вікно форми (Form);
• редактор коду (Code).
Усі ці засоби можна відкрити у разі потреби командами головного меню View => ToolBox, View => Properties Window, View => Form та View => Code.

3. Головне меню та панель інструментів. Головне меню склається з таких команд (пунктів): File, Edit, View, Project, Format, Debug, Run, Query, Diagram, Tools, Add-Ins, Window, Help.
Меню File містить стандартні команди для роботи з файлами проекту. За допомогою цих команд можна створити новий проект (New Project), відкрити чи закрити файл проекту (Open Project, Remove Project), додати проект (Add Project), зберегти проект чи форму (Save Project, Save Project As, Save Form, Save Form As), роздрукувати вибрані файли проекту (Print) чи створити exe-модуль (Make Project.exe).
Меню Edit містить стандартні команди для пошуку та заміни фрагмента тексту (Find, Replace, Find Next), команди роботи з буфером (Copy, Cut, Paste тощо) тощо. У меню View знаходяться команди візуалізації елементів середовища. Меню Project містить команди керування проектом, зокрема команди додавання файлів до проекту (Add Form, Add Module тощо).
За допомогою команд меню Format можна вирівнювати компоненти відносно сітки та між собою (Align), задавати порядок відображення компонентів, які перетинаються (Order => Bring to Front, Order => Send to Back), змінювати розміри вибраного компонента (Make Same Size) і т.і.
Меню Debug призначене для налагодження проекту та пошуку помилок. Меню Run містить команди керування роботою програми (Run, Break, End, тощо). У меню Tools знаходяться команди для задання параметрів середовища.
Панель інструментів служить для розташування кнопок інструментів. На ній можуть міститися кнопки всіх згаданих команд.
4. Палітра компонентів. Палітра компонентів розташована в окремому вікні. Щоб помістити компонент у центр вікна форми, двічі клацають на його піктограмі. Якщо потрібно розташувати компонент десь на формі, клацають один раз на його піктограмі і обводять контур у потрібному місці форми. Вибраний компонент можна переміщати на формі, а також змінювати розміри, перетягуючи його маркери.
5. Вікно властивостей об’єктів. За допомогою вікна властивостей можна задавати початкові значення властивостей об’єкта. Вікно інспектора об’єктів містить список компонентів поточної форми, а також дві закладки для властивостей: упорядковані за алфавітом (Alphabetic) та за призначенням (Categorised). Щоб активізувати вікно інспектора об’єктів, використовують клавішу F4. Список властивостей складається з двох стовпців: лівий містить назви властивостей компонентів, а правий - їхні значення.
Для введення значень властивостей числового та текстового типу (Width, Name тощо) використовується стандартне поле введення. Значення властивостей перерахованого типу (Alignment, Mouse-Pointer тощо) задаються комбінованим списком, звідки вибирають потрібне. Деякі комплексні властивості (Font, Picture, Icon тошо) використовують діалогові вікна, набір керуючих елементів яких залежить від конкретної властивості.
6. Вікно форми. Форма - це вікно Windows, яке утворюється в одному з можливих для вікон стилів. Увесь внутрішній простір є робочою областю, яка має сітку вирівнювання для зручного розташування компонентів на формі. Для виконання групових операцій декілька компонентів можна об'єднувати. Для цього необхідно натиснути на ліву клавішу миші і переміщенням вказівника охопити всі потрібні компоненти. У групу долучають компоненти, які хоча б частково попадають в охоплену область. Можна також долучити/вилучити окремий елемент. Для цього необхідно натиснути та, не відпускаючи її, вибрати мишею потрібний компонент на формі. Вилучення виокремлених компонентів чи групи виклавішу Shift та, не відпускаючи її, вибрати мишею потрібний компонент на формі. Вилучення виокремлених компонентів чи групи виконується клавішею Delete. Переміщення виокремленого компонента в межах форми здійснюється мишею. Над компонентами та їхніми групами можна виконувати операції вирізування, копіювання в буфер обміну і вставляння з буфера.
Вирівнювати компоненти можна як відносно вікна форми, так і один відносно одного. Для цього використовується команда головного меню Format => Align. Інша можливість - безпосередньо задати властивості Left та Top компонентів. Компоненти у групі вирівнюються відносно того компонента, який попав у групу першим.
7. Структура проекту. Проектом називають сукупність файлів з яких Visual Basic створює готову для виконання програму. До складу кожного проекту входять наступні файли:
• файл проекту *.vbp. Це невеликий файл, який містить посилання на всі файли проекту та ініціалізує програму;
• файли опису всіх форм, які входять у проект: файл модуля
*.bas і файл форми *.frm. У цих файлах містяться тексти Basic-програми;
• файл ресурсів програми *.frx. У ньому описані ресурси, які не належать формі, наприклад, піктограма програми; *.
• файл параметрів проекту *.vbw;
Для збереження проекту необхідно задати імена форм (автоматично пропонуються імена Form1.frm, Form2.frm, ...), модулів (Module1.bas, Module1.bas, ...) та ім’я проекту (Project1.vbp). Ці імена можна змінити на власні. Для переміщення проекту на інший комп’ютер необхідно мати лише файли таких типів: *.vbp, *.frm, *.bas, *.frx. Інші файли створюються автоматично.
8. Редактор коду. Редактор коду програми знаходиться в окремому вікні. У верхній частині цього вікна розміщено два комбіновані списки компонентів форми та подій, які можуть бути до них застосовані. Застосування події до певного об'єкта веде до появи заготовки базового коду відповідної процедури (підпрограми) у вікні редактора. Заготовка (шаблон) складається з заголовка процедури та ключових слів End Sub. Отже, код проекту має такий загальний вигляд:

'Опис глобальних змінних
Private Sub <ім’я об’єкта>_<ім’я методу>()
'Тут користувач записує тіло процедури
End Sub
'Інші процедури

60.
Теоретично гіпертекст — це усього лише зручний спосіб представлення інформації. Але на практиці гіпертекст — це можливість зробити посилання на інші документи за допомогою слів, фраз, малюнків. Ім’я кожного з цих місць можна зв'язати з іншим документом, у якому міститься більш докладна інформація. Коли користувач вибирає посилання в першому документі, браузер відкриває другий документ із більш докладними даними.
У гіпертексту є дві важливі особливості.
 1. Інформація ніяк не впорядковується — документи просто зв'язуються один з одним за допомогою посилань. Хоча головною метою багатьох методів є саме впорядкування інформації тим або іншим способом (наприклад, у виді ієрархії), у гіпертексті основна увага приділяється створенню інформаційних зв'язків. Таким чином, гіпертекст — це спроба створення моделі, що описує спосіб представлення інформації в мозку людини.
2. Інформаційні зв'язки можуть існувати між самими різними документами. Створюючи впорядкований список або схему, ви поміщаєте на кожне місце в списку або ієрархії (тобто в структурі) тільки один елемент. А в гіпертексті кожен інформаційний фрагмент (або елемент) може знаходитися в багатьох, причому зовсім різних, місцях структури.
Документи HTML.
HTML (Hypertext Markup Language — мова гіпертекстової розмітки) служить для опису Web-сторінки, що зберігається у виді звичайного текстового файлу з розширенням *.htm або *.html. Головна мета HTML — описати формат вмісту Web-сторінки, він описується з допомогою дескрипторів (tag) HTML. Дескриптори визначають способи форматування тексту, служать розпізнавальними знаками зображень або таблиць, дозволяють зв'язувати слова або фрази з іншими документами в Internet.
Якщо дати коротке означення Web-сторінки, то це комбінація тексту і дескрипторів HTML, що описують способи форматування цього тексту.
HTML — це стандарт, прийнятий Консорціумом Всесвітньої інформаційної мережі (W3C — World Wide Web Consortium).

Термін Web-сторінка позначає документи в Web, у яких для опису атрибутів форматування використовується мова HTML. HTML-документ — це ще одна назва Web-сторінки, причому більш точне, оскільки HTML використовується не тільки в Web.
Робота з динамічними даними
Динамічний HTML користується в даний час величезною популярністю, оскільки дозволяє розроблювачеві створити дійсно інтерактивну Web-сторінку, а не статичний документ. Подібна можливість досягається за рахунок того, що для кожного елемента Web-сторінки можна написати сценарій. Наприклад, можна написати сценарій зміни кольору слова при приміщенні на нього покажчика миші, чи написати сценарій імітації феєрверку при натиненні кнопки миші на деяких елементах Web-сторінки.

Створення Web-сторінок з допомогою мови HTML
Гіпертекстові Web-сторінки зберігаються в звичайних текстових файлах з розширенням НТМ або HTML. HTML – мова розмітки гіпертекстових документів, призначена для створення та написання гіпертекстів. HTML – базується на стандартній мові узагальненої розмітки (SGML - Standard Generalized Markup Language) та призначений для опису взаємопов'язаних документів у розподіленій мережевій інформаційній системі WWW. HTML описує не тільки структуру документів, а й зв'язок між ними. У загальному вигляді HTML – це набір стилів (tags), які виділяють різні компоненти WWW-документів.
Основним елементом HTML є дескриптори або теги. Документ форматується при додаванні дескриптора, що точно вказує, як повинен виглядати текст. Дескриптори HTML розташовані у кутових дужках <>. Умовно дескриптори модна розбтити на три частини:
· Дескриптори, які інформують браузер про те, що документ є HTML-документом, і дескриптори коментарів.
· Дескриптори заголовків HTML-документа.
· Дескриптори тіла HTML-документа.
Розрізняють два тири дескрипторів: дескриптори-контейнери  і прості дескриптори.
Дескриптори-контейнери обмежують текст із двох сторін. Завершальний дескриптор відрізняється від починаючою тільки косою рисою – </ >. Між ними може знаходитися як текст, так і інші дескриптори.
Існують також дескриптори, що не є контейнерами. Ці дескриптори просто вставляють спеціальний елемент або виконують спеціалізовану функцію на Web-сторінці. Наприклад, один з найбільш вживаних дескрипторів <BR> використовується для розриву рядка, а дескриптор <IMG> використовується для вставки на сторінку малюнка. У цих випадках завершальні дескриптори не використовуються.
Структура документів HTML
Кожен файл HTML має однакову базову структуру. Умовно його можна розбити на дві частини – заголовок і тіло. Відповідно є дескриптори які відносяться до заголовка і тіла html-документу, але крім цього, як ми говорили, існують ще загальні дескриптори. Тому, структуру html, розглядають поряд з структурою дескрипторів. 
В загальному кожен html-файл починається з дескрипторів <HTML> і закінчується дескриптором </HTML>. Усередині цього контейнера вкладені два інші: <НЕАD> і <BODY>. Контейнер <HEAD> містить заголовну інформацію про документ, а контейнер <BODY> вміст документа.   В загальному ж структура html-файлу така:
<html>
    <head>
    Текст заголовку html-документа
    </head>
<body>
    Текст html-документу
</body>
</html>
Попереднє форматування тексту на Web-сторінці
При відображенні HTML-тексту у браузері всі зайві пробіли ігноруються. Так, якщо ви вставити між двома словами три пробіли, то все одно буде відображатися тільки один. Якщо ви вставите три порожніх рядки між двома рядками тексту, то всі ці порожні рядки заміняться одним пробілом, а текст розірветься по границі вікна.
Для того щоб точно розташувати окремі елементи форми на сторінці, використовуйте контейнер <PRE>. При цьому залишаться всі пробіли, табуляції, переведення рядків і також оригінальний шрифт.
Приклад:
<html>
    <head>
    <title>Збереження форматування</title>
    </head>
<body>
    При відображенні файлу HTML у браузері всі зайві пробіли ігноруються.
Так, якщо ви вставити між двома словами три пробіли,        то все одно   буде відображатися тільки один.
Якщо ви вставите два порожніх рядки між двома рядками тексту, то всі ці порожні рядки заміняться одним пробілом, а текст розірветься по границі вікна.
<pre>Цей самий текст, але з дескриптором pre
При відображенні файлу HTML у браузері всі зайві пробіли ігноруються.
Так, якщо ви вставити між двома словами три пробіли, то все одно   буде відображатися тільки один.
Якщо ви вставите два порожніх рядки між двома рядками тексту, то всі ці порожні рядки заміняться одним пробілом,
а текст розірветься по границі вікна.</pre>
</body>
</html>

Використання фреймів
За допомогою фреймів (кадрів) вікно Web-броузера поділяється на самостійні вікна. У кожному кадрі міститься окрема Web-сторінка.
За допомогою кадрів вікно можна спочатку розділити на рядки, а потім на стовпчики, або, навпаки, спочатку на стовпчики, а потім на рядки.
Очень часто определенную информацию на сайте необходимо представить в виде списков. Списки позволяют упорядочить и систематизировать различную информацию и представить ее для посетителя в удобном виде. Списки в HTML могут быть трех разновидностей: маркированные списки, нумерованные списки и списки определений.
CSS
Каскадні таблиці стилів (англ. Cascading Style Sheets або скорочено CSS) — спеціальна мова, що використовується для відображення сторінок, написаних мовами розмітки даних. Найчастіше CSS використовують для візуальної презентації сторінок, написаних HTML та XHTML, але формат CSS може застосовуватися до інших видів XML-документів.
CSS має різні рівні та профілі. Наступний рівень CSS створюється на основі попередніх, додаючи нову функціональність або розширюючи вже існуючи функції. Рівні позначаються як CSS1, CSS2 та CSS3. Профілі — сукупність правил CSS одного або більше рівнів створені для окремих типів пристроїв або інтерфейсів. Наприклад, існують профілі CSS для принтерів, мобільних пристроїв тощо.
CSS використовується авторами та відвідувачами веб-сторінок для того, щоб визначити кольори, шрифти, верстку та інші аспекти вигляду сторінки. Одна з головних переваг — можливість розділити зміст сторінки (або контент, наповнення, зазвичай HTML, XML або подібна мова розмітки) від вигляду документу (що описується в CSS).
JavaScript — назва реалізації стандарту мови програмування ECMAScript компанії Netscape, базується на принципах прототипного програмування. Найпоширеніше і найвідоміше застосування мови — написання сценаріїв для веб-сторінок, але, також, використовується для впровадження сценаріїв керування об’єктами вбудованими в інші програми.
JavaScript розроблений у компанії Netscape. На сьогоднішній день підтримується більшістю браузерів. Текст програми включається безпосередньо в HTML-документ і інтерпретується самим браузером (точніше, вбудованим у браузер рушієм JavaScript). Застосовується в основному для часткової автоматизації обробки і маніпуляції даними, які використовує сторінка.
JavaScript має низку властивостей об’єктно-орієнтованої мови, але завдяки концепції прототипів підтримка об’єктів в ній відрізняється від традиційних мов ООП. Крім того, JavaScript має ряд властивостей, властивих функціональним мовам, — функції як об’єкти першого рівня, об’єкти як списки, каррінг (currying), анонімні функції, замикання (closures) — що додає мові додаткову гнучкість.
Використання JavaScript в HTML
При використанні в рамках технології DHTML JavaScript код включається в HTML-код сторінки і виконується інтерпретатором, вбудованим в браузер. Код JavaScript вставляється в теги <script></script> з обов’язковим по специфікації HTML 4.01 атрибутом type="text/javascript", хоча в більшості браузерів мова сценаріїв за умовчанням саме JavaScript.
Язык JavaScript обеспечивает, помимо средств обработки отдельных обращений пользователя к гиперсвязям, возможность распознавания момента перехода на другую страницу и выполнения соответствующих действий при наступлении этого события. Язык JavaScript прекрасно подходит для решения рутинных ежедневных задач, таких как проверка достоверности данных, обработка форм, а также для выполнения действий над строковыми и числовыми значениями, т.е. тех задач, которые нельзя решить с помощью существующих диалектов языка HTML. С его помощью можно динамически создавать документы HTML, то есть такие документы, которые создаются программой на языке JavaScript, а ие самим пользователем. Следовательно, в документе можно реализовать управление структурой документа в соответствии с заданными правилами. Наиболее важно то, что с появлением языка JavaScript статический характер страниц HTML стал уделом прошлого. Ниже перечислены основные области применения языка JavaScript:
·  Динамическое создание документа HTML с помощью программы
·  Проверка достоверности полей форм HTML до передачи их на сервер
·  Локальный ввод информации для управления программой на языке JavaScript
·  Предоставление пользователю возможности выбора операций, выполняемых броузером
·  Вывод сообщений для пользователя (например, предостережений) в соответствующих окнах
·  Локальная обработка форм, локальный ввод информации пользователем и другие "домашние" задачи
WEB-редакторы
WEB-редактор - это. прежде всего, инструмент для облегчения работы по написанию WEB-страниц. Их довольно много и каждый из них обладает сильными и слабыми сторонами (кому что нравится).
Текстовый редактор Блокнот (Notepad) - самый простой, входящий в стандартные средства любой ОС серии Windows. Требует больших знаний о языке HTML, хорошего понимания структуры Web-страниц. Желательны профессиональные знания, дающие возможность при таких скромных средствах создавать Web-сайты с использованием технологий Active X , Flash.
HomeSite - очень хороший HTML-редактор.Обладает массой достоинств, среди них: подсветка тэгов, расширенный поиск и замена сразу в нескольких файлах, встроенный редактор стилей, проверка целостности ссылок, поддержка проектов и др.http://www.macromedia.com/software/homesite/
Графические Web-редакторы
Графические Web-редакторы - специализированные системы визуального программирования на языке HTML - являются лишь вспомогательными средствами, ускоряющими процесс написания программ. В окне редакторов такого типа документ отображается практически также, как потом его покажет броузер. Таким образом реализуется принцип WYSIWIG (What You See Is What You Get - что видишь, то и получишь).
Macromedia Dreamweaver - - самый лучший на сегодняшний день визуальный HTML-редактор. В отличие от остальных визуальных редакторов, создает гораздо более корректный код и очень удобен. Особенно полезен при написании динамического HTML.
http://www.macromedia.com/software/dreamweaver/
Macromedia Flash - - векторный редактор и аниматор, который позволяет создавать и встраивать в web-странички эффектные анимационные ролики.
http://www.macromedia.com/software/flash/

Web - публикации работают по технологии клиент-сервер. Web - сервер - это программа, запущенная на компьютере, предназначенном для предоставления документов другим машинам, которые посылают соответствующие запросы. Web - клиент - это программа, которая позволяет пользователю запрашивать документы с сервера. Поскольку сервер задействуется только тогда, когда запрашивается документ, такая технология является весьма эффективной, поскольку требует незначительных ресурсов сервера. Чтобы опубликовать документы в Web, Вы должны расположить их на постоянно доступном сервере. При этом постоянное подключение к Internet стоит дорого, а скорости модема явно недостаточно для поддержания трафика. Однако для публикаций в Internet совсем необязательно иметь свой собственный Web - сервер с постоянным подключением к сети. Многие провайдеры Internet включают возможность публикации Web - документов в основной набор своих услуг или предлагает это за небольшую дополнительную плату. Стоимость таких публикаций зависит от поставщика и, конечно же, от того, что именно Вы хотите опубликовать. Сумма может варьироваться от нескольких десятков долларов в месяц за простую домашнюю страницу до нескольких тысяч - за интерактивный “виртуальный магазин”.
Dynamic HTML или DHTML — это способ создания интерактивного веб-сайта, использующий сочетание статичного языка разметки HTML, встраиваемого (и выполняемого на стороне клиента) скриптового языка JavaScript, CSS (каскадных таблиц стилей) и DOM (объектной модели документа).
Комп’ютерна гра́фіка — це графіка, тобто двовимірні зображення, які створюються, перетворюються, оцифровуються, обробляються і відображаються засобами обчислювальної техніки, включаючи апаратні і програмні засоби.Рухома комп'ютерна графіка називається комп’ютерним відео або комп’ютерною анімацією.
Гіперпосила́ння (інколи гіперланка) — це активний (виділеним кольором) текст, зображення чи кнопка на веб-сторінці, натиснення на яку (активізація гіперпосилання) викликає перехід на іншу сторінку чи іншу частину поточної сторінки.
Існує два основних типи гіперпосилань: внутрішні й зовнішні. Внутрішні гіперпосилання — це посилання на об'єкти в межах одного документа. За їхньої допомоги можна переміщуватися всередині однієї Веб-сторінки. Такі посилання доцільно використовувати на довгих сторінках, щоб мати можливість швидко переміщуватися між розділами.
 Зовнішні гіперпосилання — це посилання на віддалені HTML-файли або на будь-які файли, які належать до HTML-документів. Для завдання гіпертекстового переходу до іншого документа ви-
користовується парний тег <А> (від англ. anchor— якір).

Об'єктна модель документа (англ. Document Object Model, DOM) — специфікація прикладного програмного інтерфейсу для роботи зі структурованими документами (як правило, документів XML). Визначається ця специфікація консорціумом W3C.З точки зору об'єктно-орієнтованого програмування, DOM визначає класи, методи та атрибути цих методів для аналізу структури документів та роботи із представленям документів у вигляді дерева. Все це призначено для того, аби надати можливість комп'ютерній програмі доступу та динамічної модифікації структури, змісту та оформлення документа.

61.Декларативні мови програмування. Особливості декларативних мов програмування. Мова логічного програмування. Створення бази знань та її опис мовою логічного програмування. Формування запитів до бази знань. Використання рекурсії в логічному програмуванні.

Відповідь:
1)    Декларативне програмування — парадигма програмування відповідно до якої, програма описує, який результат необхідно отримати, замість описання послідовності отримання цього результату.
Наприклад, веб-сторінки HTML — декларативні, оскільки вони описують, що містить сторінка та що має відображатись — заголовок, шрифт, текст, зображення — але не містить інструкцій як її слід відображати.
Ця парадигма мов програмування відмінна від імперативних мов програмування, таких як, наприклад, Фортран, C, і Java, які вимагають від розробника детального описання алгоритма отримання результатів.
Стисло кажучи, для отримання результатів, імперативні програми явно конкретизують алгоритм, а декларативні — явно конкретизують мету і залишають реалізацію алгоритму на допоміжному програмному забезпеченні (наприклад, інструкція вибірки SQL конкретизує властивості даних, які слід отримати від бази даних, але не процес отримання цих даних).
Відповідно до іншого визначення, програма «декларативна», якщо її написано винятково функціональною мовою програмування, логічною мовою програмування, або мовою обмежень. Назва «Декларативна мова» іноді використовується, щоб згрупувати всі ці мови програмування та протиставити їх імперативним мовам програмування.
Ці два визначення частково перекриваються. Зокрема, програмування обмеженнями і, меншою мірою, логічне програмування, зосереджуються на описі властивостей бажаного рішення (що), залишаючи невизначеним фактичний алгоритм, який необхідно використати для знаходження рішення (як). Проте, більшою мірою, мови логічного програмування, і, меншою, — мови обмеження, можуть описувати алгоритми і деталі реалізації, будучи таким чином не строго декларативними за першим визначенням.
Декларативні мови програмування
Декларативні мови програмування - це мови програмування високого рівня, в яких програмістом не задається покроковий алгоритм рішення задачі ( "як" вирішити завдання), а деяким чином описується, "що" потрібно отримати як результат. Механізм обробки зіставлення за зразком декларативних тверджень вже реалізовано у пристрої мови.
Типовим прикладом таких мов є мови логічного програмування (мови, засновані на системі правил). У програмах на мовах логічного програмування відповідні дії виконуються тільки за наявності необхідного дозвільної умови.
Характерною особливістю декларативних мов є їхня декларативна семантика. Основна концепція декларативної семантики полягає в тому, що зміст кожного оператора не залежить від того, як цей оператор використовується в програмі. Декларативна семантика значно простіша за семантику імперативних мов.
Найпоширенішою мовою логічного програмування є мова Пролог.
2). Логічне програмування — парадигма програмування, а також розділ дискретної математики, що вивчає методи і можливості цієї парадигми, засновані на виведенні нових фактів з даних фактів згідно із заданими логічними правилами. Логічне програмування засноване на теорії математичної логіки. Найвідомішою мовою логічного програмування є Prolog, що є за своєю суттю універсальною машиною виводу, що працює в припущенні замкнутості системи фактів.
Першою мовою логічного програмування була мова Planner, в якій була закладена можливість автоматичного виведення результату з даних і заданих правил перебору варіантів (сукупність яких називалася планом). Planner використовувався для того, щоб знизити вимоги до обчислювальних ресурсів (за допомогою методу backtracking) і забезпечити можливість виведення фактів, без активного використання стека. Потім була розроблена мова Prolog, яка не вимагала плану перебору варіантів і була, в цьому смислі, спрощенням мови Planner.
Від мови Planner також відбулися логічні мови програмування QA-4, Popler, Conniver, і QLISP. Мови програмування Mercury, Visual Prolog, Oz і Fril будувалися вже від мови Prolog. На базі мови Planner було розроблене також декілька альтернативних мов логічного програмування, не заснованих на методі backtracking, наприклад, Ether.
Пролог — мова логічного програмування. Пролог заснований на теорії предикатів першого порядку. Назва мови програмування розшифровується як (Програмування в логіці). Ідея використання можливостей наведення теорії предикатів першого порядку — одна з головних переваг мови Пролог для комп'ютерних наук взагалі та штучного інтелекту.
Основними поняттями у мові Пролог є факти, правила логічного висновку та запити, що дозволяють описувати бази знань, процедури логічного виводу та прийняття рішень.
Факти у мові Пролог описуються логічними предикатами з конкретними значеннями. Правила в Пролозі записуються у формі правил логічного виводу з логічними висновками і списком логічних умов.
Особливу роль у інтерпретаторі Прологу відіграють конкретні запити до баз знань, на які система логічного програмування генерує відповіді «істина» і «брехня». Для узагальнених запитів із змінними у якості аргументів система Пролог виводить конкретні дані на підтвердження істинності узагальнених відомостей і правил виводу.
Факти в базах знань на мові Пролог представляють конкретні відомості (знання). Узагальнені відомості і знання в мові Пролог задаються правилами логічного виводу (визначеннями) і наборами таких правил виводу (визначень) над конкретними фактами і узагальненими відомостями.
Майже всі сучасні комп’тери засновані на ранніх, розроблених у 40-х роках ідеях фон Неймана та його коллег. Машина фон Неймана має більшу пам’ять і процесор, оснащений локальною пам’яттю і комірками, що називаються регістрами. Процесор може завантажувати дані з пам’яті в регістри, виконувати арифметичні та логічні операції над вмістом регістрів і надсилати значення регістрів на згадку. Програма мащини фон Неймана являє собою послідовність команд виконання перерахованих операцій разом з додатковою більшістю команд управління, які впливають на вибір наступної команди.В міру подолання технічних проблем створення комп’ютерів накопичувалися проблеми пов’язані з їх використанням.Труднощі змістилися з області виконання програм комп’ютера в область створення програм для комп’ютера. Почалися пошуки мов програмування, які були зрозумілі людині. Починаючи з мови, яка сприймається комп’ютером (машинної мови), стали з’являтися більш зручні формалізми і системи позначень. І хоч ступінь абстракції мов зріс, починаючи з нібито асемблера і далі до Фортрана, Алгола, Паскаля і Ади,всі вони несуть друк машини з архітектурою фон Неймана. Характерні особливості програмування на комп’ютерах фон Неймана призводять до розподілу праці: є люди, які думають як вирішити задачу, і розробляють відповідні методи, а є люди-кодувальщики, які пишуть тексти программ, тобто виконують прозаїчну і стомлюючу роботу з перекладом інструкції розроблювачів у команди, які сприймаються комп’ютером.
Джерела логіки пов’язані з дослідженнями наукової думки. Логіка є точною мовою для явного вираження цілей, знань і припущень. Логіка дає выражения целей, знаний и предположений. Логіка дає підставу, що дозволяє виводити наслідкиз вихідних положень. Логіка дозволяє, виходячи зі знання про істинність або помилковість деяких тверджень, зробити висновок про істинність або помилковість інших тверджень. Логіка дозволяє обґрунтовувати несуперечність тверджень і перевіряти істинність наведених доводів.
Актуальність та принцип роботи
Prolog - це здійснена компанією Borland Іnternatіonal реалізація мови програмування високого рівня. Prolog компиляторного типу. Її відрізняє більша швидкість компіляції й рахунку. Prolog призначений для видачі відповідей, які він логічно виводить за допомогою своїх потужних внутрішніх процедур. Так програма на Prolog у кілька рядків може замінити кілька сторінок тексту при програмуванні на якій-небудь іншій мові. Завдяки наявності потужних засобів зіставлення, Prolog придатний не тільки для використання в додатках, що ставляться до області штучного інтелекту й обробці природно-мовних конструкцій, але також застосовуємо в таких традиційних областях, як, наприклад, керування базами даних. Ідея використання логіки у мовах програмування виникла у початку 70-х років. Першими дослідниками, які розроблювали цю ідею, були Роберт Ковальський, Мартен ван Емден та Ален Колмерое з Единбургу. Своєю популярністю серед професіоналів створення штучного інтелекту Пролог зобов’язаний ефективною реалізацією цієї мови в Единбурзі Девідом Уорреном.
Існує безліч історично складених та протидіючих один одному поглядів на Пролог. Пролог швидко завоював популярність в Європі як практичний інструмент програмування. В Японії Пролог опинився у центрі розробки комп’ютерів нового покоління. З іншого боку, через визначені історичні факти, в США Пролог отримав визнання трохи пізніше. Один з цих факторів був пов’язаний з Мікропленнером, мовою, близькою до логічного програмування, але реалізованою неефективно. Цей негативний досвід, який відноситься до Мікропленнера, був невиправдано розповсюджений і на Пролог. Але пізніше після появи ефективної реалізації, запропонованої Девідом Уорреном, цей погляд було скасовано.
Своїм корінням Пролог сягає математичної логіки. Якщо традиційні мови програмування є процедурно-орієнтованими, Пролог заснований на декларативній точці зору на програмування. Ця якість Пролога змінює програмістське мислення та робить програмування мовою Пролога захоплюючим зайняттям, що потребує інтелектуальних зусиль.
Мова програмування Пролог базується на обмеженому наборі механізмів, що включають до себе зіставлення зразків, деревовидне представлення структур даних та автоматичне повернення. Цей невеликий набір створює дивовижно потужний та гнучкий програмний апарат. Пролог особливо добре застосовувати для вирішення задач, в яких фігурують об’єкти (зокрема структури) та відносини між ними. При використанні предикат можна вказувати як точні дані, так і відносини між ними.
Пролог – це мова програмування, призначена для обробки символьної нечислової інформації. На малюнку представлено простий приклад – родинні відносини. Той факт, що Том є батьком Боба можна представити так:
parent(tom, bob).
http://www.refine.org.ua/images/referats/4819/image001.gif
Ця програма містить шість речень. Кожне речення оголошує один факт існування відношення «батько». Питання до системи – це завжди послідовність, що складається з однієї або кількох цілей. Для того, щоб відповісти на питання, система намагається досягти всіх вказаних цілей. Що означає досягти цілі? Досягти цілі – це означає показати, що твердження, які містяться в питанні, дійсні у реченні, що усі відносини програми дійсні. Іншими словами, досягти цілі – це означає показати, що вона логічно витікає з фактів та правил програми. Якщо питання містить змінні, система повинна до того ж знайти конкретні об’єкти, які забезпечують досягнення цілі.
Мова Пролог добре пристосована для вирішення тих завдань, в яких мова йде про відносини між різними об'єктами. Програмування на Пролозі складається у визначенні відносин й у постановці питань, що стосуються цих відносин.
Процес, у результаті якого Пролог-система встановлює, чи задовольняє об'єкт запит, містить у собі логічний вивід і дослідження різних варіантів. Все це робиться автоматично самою Прологом-системою й, як правило, приховано від користувача.
Найбільше часто використовуваною структурою в Пролозі є списки. Список або порожній, або складається з голови й хвоста, що, у свою чергу, також є списком. Як правило, для списків існує спеціальна нотація й визначені операції: визначення приналежності елемента списку, конкатенація, додавання елемента, видалення елемента, видалення підсписка й т.п.
Для того, щоб показати відмінності технології логічного програмування від технології алгоритмічного програмування розкриємо поняття алгоритмічного програмування.
Технологія алгоритмічного програмування базується на методі послідовної деталізації алгоритмів. Спочатку формулюється основний алгоритм, що складається з "великих" блоків (команд), частина яких може бути незрозуміла виконавцеві (не входить у його систему команд). У цьому випадку вони записуються як виклики допоміжних алгоритмів. Потім відбувається деталізація, тобто всі допоміжні алгоритми докладно розписуються з використанням команд, зрозумілих виконавцеві.
Як основний алгоритм, так і допоміжні алгоритми можуть включати основні алгоритмічні структури: лінійну, що розгалужується й циклічну. У лінійній алгоритмічній структурі всі команди виконуються в лінійній послідовності, одна за іншою. В алгоритми, що розгалужуються, входить умова, залежно від виконання або невиконання якого виконується та або інша послідовність команд (серій).
У циклічні алгоритми входить послідовність команд, виконувана багаторазово. Така послідовність команд називається тілом циклу.
Алгоритми можуть бути описані різними способами:
· записані на природній мові;
· зображені у виді блок-схеми;
· записані на алгоритмічній мові;
· закодовані на мові програмування.
Для кодування алгоритму мовою програмування необхідно знати синтаксис мови, тобто його основні оператори, типи змінних й ін. Команди й різні типи алгоритмічних структур реалізуються мовою програмування за допомогою операторів. Кожен оператор має свій формат.
У формат операторів, крім ключових слів, входять змінні й арифметичні вираження. Змінні бувають різних типів, тип змінної визначає, які значення може приймати ця змінна.
Команда
Формат оператора
Введення даних
INPUT <список змінних>
Команда
PRINT <список змінних>
Присвоювання
LET <змінна> = <арифметичне вираження>
Команда розгалуження
IF <умова> THEN <оператори> ELSE <оператори>
Команда циклу
<оператори>NEXT<змінна>
Команда циклу
FOR <змінна> FROM <арифметичне вираження> TO <арифметичне вираження>
Арифметичні вираження можуть містити в собі: числа, змінні, знаки арифметичних виражень, стандартні функції й круглі дужки.
Мова програмування характеризується властивими йому механізмами керування й обробки даних. Пролог як універсальну мову програмування можна розглядати й із цих точок зору. При успішному виконанні обчислення засобу керування програм мовою Пролог подібні до засобів керування у звичайних процедурних мовах. Звертання до деякої мети відповідає виклику процедури, порядок цілей у тілі правила відповідає послідовності операторів.
Основна мета логічного програмування – створити можливість розробки програм мовою високого рівня. В ідеалі програміст повинен записати аксіоми, що визначають необхідні відносини, повністю ігноруючи, яким образом ці аксіоми будуть використатися в процесі виконання. Наявні мови логічного програмування, і, зокрема Пролог, усе ще далекі від цього ідеалу декларативного програмування. Не можна ігнорувати конкретний, чітко певний спосіб моделювання абстрактного оператора в реалізації кожної мови. Ефективне логічне програмування вимагає знання й використання цього способу.
3). Створення бази знань та її опис мовою логічного програмування.
База знань, БЗ (англ. Knowledge base, KB) — це особливого роду база даних, розроблена для управління знаннями (метаданими), тобто збором, зберіганням, пошуком і видачею знань. Розділ штучного інтелекту, що вивчає бази даних і методи роботи із знаннями, називається інженерією знань.
Інше визначення ж говорить, що: База знань — це сукупність відомостей (про реальні об'єкти, процес, події або явища), що відносяться до певної теми або задачі, організована так, щоб забезпечити зручне представлення цієї сукупності як в цілому так і будь-якої її частини. Це означає, що система управління базою знань (саме знань, а не даних) повинна забезпечити уявлення і обробку моделі, зіставною за своєю складністю з моделлю, що використовується свідомістю людини.
Найважливіший параметр БЗ — якість знань, що накопичені в ній. Кращі БЗ містять релевантну і свіжу інформацію, мають довершені системи пошуку інформації і ретельно пророблену структуру і формат знань.
Прості бази знань можуть використовуватися для зберігання даних про організації: документації, інструкцій, статей технічного забезпечення. Головна мета створення таких баз — допомогти менш досвідченішим людям знайти існуючий опис способу вирішення якої-небудь проблеми предметної області.
Онтологія може служити для представлення в базі знань ієрархії понять і відношень між ними. Онтологія, яка ще містить і екземпляри об'єктів не що інше, як база знань.
База знань — важливий компонент інтелектуальної системи. Найвідоміший клас таких програм — експертні системи. Вони призначені для знаходження способу вирішення специфічних проблем, базуючись на записах БЗ і на користувацькому описі ситуації.
Створення і використання систем штучного інтелекту потребує величезних баз знань.

Немає коментарів:

Дописати коментар