Flatik.ru

Перейти на главную страницу

Поиск по ключевым словам:

страница 1страница 2 ... страница 7страница 8
1. Способи передачі параметрів процедурам (обов‘язкові, необов’язкові, за посиланням, значенням, невизначена кількість параметрів). Модифікатори доступу та існування. Використання зовнішніх процедур Win Api.

Підпрограми описуються за допомогою ключового слова Sub і Function. Процедура Sub являє собою послідовність інструкцій мови VB, обмежених інструкціями Sub і End Sub, що виконує дії, але не повертає значення. Ïðîöåäóðà Function подібна процедурі Sub, однак на відміну від останньої, вона повертає значення. Повернення значення здійснюється шляхом його присвоєння імені функції в одній чи декількох інструкціях процедури. Çначення, яке повертається із процедури Function може бути масив у змінній Variant, або дані типу заданого користувачом. Процедура може одержувати аргументи, як наприклад константи, змінні, чи вирази, передані їй іншою процедурою. Якщо процедура не має аргументів, інструкція повинна містити порожні дужки.



[Private | Public] [Friend] [Static] Sub name [(список аргументів)]

[блок інструкцій]

[Exit Sub]

[блок інструкцій]

End Sub

Значення ключових слів. Private, Public, Friend -визначають область видимості процедури. Friend - процедура доступна тільки усередині проекту - тільки для модулів класів. Static - локальні змінні процедури Sub повинні зберігатися між викликами функції. Зарезервоване слово Static не робить впливу на змінні, описані поза підпрограмою, навіть якщо ці змінні використовуються в даній процедурі. Cписок формальних аргументів використовує наступний синтаксис:

[Optional][ByVal | ByRef][ParamArray] varname[( )] [As type] Для виклику процедури-підпрограми варто вказати ім'я процедури, після якого без дужок потрібно вказати список аргументів через кому. Може бути використане ключове слово Call для виклику. У цьому випадку обов'язково потрібні дужки для списку аргументів. Процедури типу Sub можуть бути рекурсивними, тобто вони можуть викликати самі себе для виконання визначеної задачі. Однак застосування рекурсії може привести до переповнення стека. Optional і ParamArray дозволяють формувати список необов'язкових параметрів. Optional - ключове слово, що вказує, що аргумент не є обов'язковим. При використанні цього елемента всі наступні аргументи, що містить список аргументів, також повинні бути необов'язковими і бути описані за допомогою ключового слова Optional. Всі аргументи, описані як Optional, повинні мати тип Variant. Для запобігання логічних протиріч не допускається використання ключового слова Optional для кожного з аргументів, якщо використовується ключове слово ParamArray. Визначення наявності передачі значень необов'язкових параметрів при виклику здійснюється за допомогою функції IsMissing. Функція IsMissing повертає True, якщо в зазначений аргумент не було передане значення; у противному випадку повертається False. Для аргументів, описаних із ключовим словом ParamArray, функція IsMissing завжди повертає False.

Наприклад,



Function ReturnTwice(Optional A)

If IsMissing(A) Then

ReturnTwice = Null

Else

ReturnTwice = A * 2

End If

End Function

Необов'язковим параметрам за замовчуванням може бути присвоєно значення Sub l (Optional x as variant = 40000) Тип даних заданих у параметрах типу Variant визначають за допомогою наступних булевых функцій IsNumeric, IsDate, IsNull, IsEmpty, IsArray. Функція VarType повертає значення типу Integer, що вказують підтип змінної.



IntVar = 459: StrVar = "Усім привіт": DateVar = #2/12/69#

MC = VarType(IntVar) ' Повертає 2.

MC = VarType(DateVar) ' Повертає 7.

MC = IsNumeric(IntVar) ' Повертає True.

ByVal - вказує, що аргумент передається за значенням, а не по посиланню.

Зарезервоване слово ByVal не можна використовувати для змінної з обумовленим користувачем типом чи даних для змінної об'єктного типу даних.



ParamArray - використовується тільки як останній елемент у списку аргументів для вказівки, що кінцевим аргументом є необов'язковий масив значень типу Variant. Ключове слово ParamArray дозволяє задавати довільну кількість аргументів. Воно не може бути використане зі словами ByVal, ByRef чи Optional. Щоб визначити, чи був переданий ParamArray перевіряють розбіжність його верхньої і нижньої границі за допомогою функцій Ubound – повертає значення типу Long, що містить максимальний доступний індекс вказаної розмірності масиву і Lbound - повертає нижню границю масиву. Наприклад,

function sum (paramarray s()) as single

dim a as single

if Ubound(s) <= Lbound(s) then Exit Function

For Each x In s

sum=sum+x

Next

End Function

При виклику процедур Sub чи Function є стандартної позиційна передача аргументів, тобто в порядку проходження в описі процедури. У програмах на VB, аргументи можуть також передаватися по іменах, поза залежністю від позиції.

Наприклад наступна процедура Sub має три аргументи:

Sub P(Optional strName As String, Optional intAge As Integer, Optional dteBirth As Date)

...

End Sub

Цю процедуру можна викликати, передаючи її аргументи відповідно до позицій і розділяючи комами:



P "Маша", 26, #2-21-74# чи

call P ( "Маша", , #2-21-74#)

Можливий також виклик цієї процедури з передачею іменованих аргументів, розділених комами,



P intAge:=26, dteBirth:=#2/21/69#, strName:="Маша"

Для задання іменованого аргументу застосовують ім'я аргументу, за яким ставиться двокрапка зі знаком рівності (:=) і значення аргументу. Іменовані аргументи особливо корисні при виклику процедури з необов'язковими аргументами (Optional). Якщо використовуються іменовані аргументи, то коми для позначення відсутніх позиційних аргументів не потрібні і не важлива послідовність. Усі функції операційної системи доступні розроблювачам прикладних програм на VB. Реалізується ця можливість за допомогою системних бібліотек динамічного компонування (WinApi) - файли з розширенням dll. Список параметрів і опис синтаксису для виклику і використання цих програм поставляється разом із системою. Можливості зручного перегляду надає користувачу програма API Text Viewer - у каталозі VB. Для того, щоб використовувати системну програму з бібліотеки динамічного компонування необхідно вказати транслятору джерело процедур - бібліотеку. Оператор Declare використовується тільки в стандартному модулі і на рівні модуля для опису посилань на зовнішні процедури з бібліотек динамічного компонування. Для підпрограм



[Public | Private ] Declare Sub ім'я Lib "ім'я_бібліотеки" [Alias "псевдонім" ]([список_аргументів])]

Для функцій



[Public | Private ] Declare Function ім'я Lib "ім'я_бібліотеки" [Alias "псевдонім" ] [([список_аргументів])][As тип]

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

У стандартному модулі.



Public Declare Sub MessageBeep Lib "User32" (ByVal int As Integer)

Після створення посилання на процедуру з бібліотеки DLL в інструкції Declare ця процедура викликається в програмі звичайним образом.



MessageBeep(intB)

Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpbuffer As String, nSize As Long) As Long

....

Call GetUserName(sBuffer, lSize




2.   Алгоритм одновимірного пошуку на основі поліноміальної інтерполяції. Поліноміальна інтерполяція Цілком вірогідно, щовикористовуючи більше інформації про функцію, що мінімізується, можна одержати суттєво покращені і швидкодіючі алгоритми. Такими є алгоритми поліноміальної інтерполяції. Загальний принцип цих алгоритмів є наступним: на кожному кроку функція, що мінімізується f апроксимується деякою модельною функцією f^, точку мінімуму, якої знайти легко, і ця точка береться в якості поточного наближення розшукуваної. Оскільки лінійна функція кінцевого мінімуму на необмеженій множині не має, те найпростішою придатною функцією є квадратичний поліном виду : f^=ax2+bx+c Якщо а>0, то f^ має мінімум у точці х*, що задовольняє рівності 2ax*+b = 0 і ця точка може служити непоганим наближенням екстремуму шуканої функції. Для визначення коефіцієнтів а,b і с необхідна будь-яка трійка незалежних характеристик цієї функції. Наприклад, якщо відомі значення функції і перших двох похідних, то в якості f^ можна взяти перші члени розкладання функції в ряд тейлора: f^(h) = f (x0+ h) = f(x0)+ hf' (xo) +(h2/2!) f'' (xo). Якщо f'' (xo) >0, то наближення до точки экстремума визначиться рівністю: f' (xo) +h f'' (xo)=0, відкіля h= f' (xo) / f'' (xo). Якщо |f (x0+ h) - f (x0)| більше необхідної точності (і, це обов'язково, функція є безперервною), обчислення можна повторити поклавшиx0=(x0+ h).Ця обчислювальна процедура являє собою не що інше як реалізацію методу Ньютона для пошуку нулів функції f' (x). Частіше відомі значення функції в трьох точках x1, x2. x3 - кінці сегмента інтервалу непевності й одна точка усередині інтервалу. Апроксимуючу функцію будують на основі цих даних. У цьому випадку також припускають, що апроксимуюча функція имеет вид: f^(x)=a + bx +cx2 .Коефіцієнти a,b,c визначають як вирішення системи 3-х рівнянь із трьома невідомими

f(x1)=a + bx1 +cx12 f(x2)=a + bx2 +cx22 f(x3)=a + bx3 +cx32 Точка х4 визначається як вирішення рівняння 4.4. Новий інтервал непевності вибирається в такий спосіб. Якщо f(х4) Якщо f(х4)>f(x2) і х4 < x2, то покладаємо х1=х4, х2=х2, х3=х3.

Якщо f(х4) x2, то покладаємо х1=х2, х2=х4, х3=х3. Якщо f(х4)>f(x2) і х4 > x2, то покладаємо х1=х1, х2=х2, х3=х4.Обчислення повторюємо до тих пір поки не виконуються умови останову алгоритму. Обчислення припиняються (умови останову мають місце) якщо або інтервал непевності, або поліпшення функції цілі на кожній ітерації, менше заданого, або якщо відстань між будь-якими двома точками менше точності обчислень.

3. Класифікація геометричних моделей для використання в інженерних САПР.

Існує три типи геометричних моделей: каркасні моделі, поверхневі моделі та комбіновані моделі. Каркасні моделі характеризуються тим, що при їх використанні об’єкти зображаються на сцені тільки своїми ребрами, що забезпечує найнижчий рівень реалістичності. Поверхневі моделі характеризуються тим, що при їх використанні об’єкти зображаються не тільки ребрами, а й поверхнями, які сполучають ці ребра. При цій моделі до об’єктів застосовується також освітлення, накладення текстур та інші ефекти візуалізації. При використанні комбінованих моделей об’єкти будуються на основі як каркасної, так і поверхневої моделі. Базовими елементами цієї моделі являються паралелепіпед, конус, сфера, піраміда, циліндр. В даній моделі для побудови об’єкта використовуються теоретико-множинні операції: об’єднання (+); віднімання (-).
4. Особливості програмування каркасної геометричної моделі.

Існує три типи геометричних моделей: каркасні моделі, поверхневі моделі та комбіновані моделі. Каркасні моделі характеризуються тим, що при їх використанні об’єкти зображаються на сцені тільки своїми ребрами, що забезпечує найнижчий рівень реалістичності. Поверхневі моделі характеризуються тим, що при їх використанні об’єкти зображаються не тільки ребрами, а й поверхнями, які сполучають ці ребра. При цій моделі до об’єктів застосовується також освітлення, накладення текстур та інші ефекти візуалізації. При використанні комбінованих моделей об’єкти будуються на основі як каркасної, так і поверхневої моделі. В системах каркасного моделирования форма представляется в виде набора характеризующих ее линий и конечных точек. Линии и точки используются для представления трехмерных объектов на экране, а изменения формы осуществляются путем изменения положения и размеров отрезков и точек. Другими словами, виртуальная модель представляет собой каркасную проекцию формы, а соответствующее математическое описание представляет собой набор уравнений кривых, координат точек и сведения о связности кривых и точек. Сведения о связности описывают принадлежность точки к конкретным кривым, а также пересечение кривых друг с другом. Такие модели просты, но с их помощью можно моделировать ограниченный класс объектов, аппроксимирующими поверхностями, в этом случае, являются плоскости или квадрики. Каркасные модели в основном применяются в системах малой и средней производительности. Особенностью каркасной модели является то, что для ее описания используются геометрические объекты первого порядка – линии или ребра. Каркасные модели применяются, как правило, для задания объектов, представляющих собой полиэдры или объекты, получаемые перемещением образующей, которая фиксируется в некоторых положениях. Трехмерная модель в этом случае содержит список координат вершин полиэдра с указанием связей между ними. В случае использования каркасных моделей для представления объектов, ограниченных сложными поверхностями,в системах малой производительности для отображения таких объектов на экранах графических дисплеев прибегают к ряду условностей. Системы средней и высокой производительности позволяют воспроизводить изображения объектов, использующих каркасные модели,с необходимым для восприятия количеством графических элементов. Имеются классы задач САПР, где проволочные модели являются достаточными для получения решения.


5. Розподілені і неоднорідні бази даних.

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

В общем, случае база данных это набор сведений, относящихся к определенной теме или задаче, а также инструменты, которые позволяют осуществлять поиск и обновление необходимой информации. Комплекс программных средств, которые позволяют осуществлять поиск и обновление необходимой информации часто называют системой управления базой данных (СУБД). Физически компьютерная база данных - это один или несколько файлов. Принципы построения программного обеспечения для информационных систем часто называют архитектурой программного обеспечения. Считают, что принципы логической организации данных определяются моделью данных. Если файлы данных размещены на разных компьютерах, то это распределенная база данных. Если информационная система использует по разному логически организованные данные, то такую базу данных называют неоднородной базой данных. Например, если данные системы хранятся в формате Access, Foxpro, Paradox то это неоднородная система. Под распределённой базой данных понимают базу данных,объекты которой распределены между узлами вычислительной сети. Распределение возникает в том случае, если реляционная таблица распределяется по кортежам или по столбцам. Например, база данных «сеть магазинов» может быть распределена по географическому принципу. Способ распределения данных по кортежам или столбцам называется фрагментацией. Тиражирование копий реляционных таблиц по нескольким узлам сети называют репликацией. Для управления транзакциями в условиях распределённости по фрагментам необходима глобальная схема базы данных. Глобальная схема позволяет ответить на вопрос о местоположении любого из фрагментов распределенной базы данных.

6. Технологія та необхідність поліморфних викликів в СОМ

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

Поліморфізм ( із грецької) означає багато форм. Поліморфізм можна визначити як властивість об'єктів-родичів по різному здійснювати однотипні дії, тобто однотипні дії у множині родинних об'єктів мають множину різних форм. Тобто метод "Намалювати на екрані" крапку і коло повинен реалізуватися по різному. Визначення об'єктного типу TCircle містить наступні елементи: поля X, Y, Visible, Color, успадковані від батьківського типу TPoint; власне поле Radius; метод TCircle.Create, що ініциалізує поля TCircle. Цей метод перевизначає для типу TCircle успадкований від TPoint метод TPoint.Create. Зверніть увагу, що для ініціалізації полів X, Y, Visible, Color використовується виклик методу TPoint.Create, що успадкований від TPoint у типі TСircle. Треба зазначити, що відмінною рисою мови Turbo Pascal вер-сії 7.0, яка відноситься до механізму спадкування, являється нове зарезервоване слово inherited. Це слово призначене для використання замість імені безпосереднього предка даного об’єкта. Воно використовується для виклику батьківського методу. Тому замість складеного імені успадкованого методу. Tpoint.Create (a, b, col); можна написати inherited Create (a, b, col);

методи TCircle.Show; Circle.Hide і TCircle.Move. Ці методи цілком перевизначають однойменні методи з TPoint (тому що для малювання й пересування кола потрібні інші методи). Так як стандартна процедура малювання кола з модуля Graph також має ім'я Circle, то для її однозначної ідентифікації використовується складене ім'я Graph.Circle; два успадкованих методи GetX, GetY для одержання поточних координат центра кола; власний метод GetR для одержання радіуса кола.У цьому прикладі ми побачили як перевизначають однойменні методи в типах - нащадках. Методи можна перевизначати. А от поля , зазначені в бать-ківському типі, безумовно, успадковуються типом - нащадком і не можуть бути в ньому перевизначені ( тобто імена полів нащадка не повинні збігатися з іменами полів типу-предка). Крім того, новий метод у типі-нащадку може мати зовсім інші параметри, ніж однойменний метод із типу-предка. Методи Create, Show, Move визначені в об'єкті OneCircle, тому їхні виклики однозначно обробляються компілятором. Що стосується методів GetX, GetY, то вони не визначені безпосередньо в типі TCircle, до якого належить об'єкт OneCircle. У такому випадку компілятор, не знайшовши методу, що викликається, переглядає визначення батьківського типу і діє відповідно до даного методу.


7. Регістри та лічильники.

Регістром називається упорядкована послідовність тригерів, призначена для зберігання машинних слів і виконання мікрооперацій над ними. Мікрооперація - це елементарна машинна дія, у результаті якої змінюється значення слова або здійснюється його пересилання. Узагальнена структура регістра показана на мал.1, де КС - комбінаційна схема; Qi - вихід і-го тригера ( і = 1, n ); fi - функція збудження і-го тригера ( наприклад, Ji , Ki , Ri , Si , Di , Ti ); С і Т - тактуючі входи відповідно тригерів та регістрів, які використовуються не завжди. Кількість розрядів (тригерів) називають довжиною регістра. Регістр довжини n може знаходитись у будь-якому з 2n станів, інакше кажучи, у такий регістр можна записати 2n різних слів. Відрізняють синхронні та асинхронні регістри. У синхронних регістрах мікрооперації виконуються за тактуючим сигналом Т. Настроювання регістра на потрібну мікрооперацію здійснюється завчасним установленням на керуючих входах коду мікрооперації S1S2 ... Sm. У асинхронних регістрах тактуючий вхід Т відсутній. Кожна і-а мікрооперація виконується під дією власного керуючого сигналу yi. При виконанні мікрооперації у кожному розряді регістра здійснюється однакове перетворення інформації. Характер мікрооперації висловлюється через стани сигналів у момент часу (t), передуючий виконанню мікрооперації, та у момент(t+1) завершення мікрооперації. Найчастіше на регістрах виконують мікрооперації занесення (приймання, записування) слова паралельним кодом, зсуву слова, а також установлення початкового (найчастіше нульового) стану.Занесення слова здійснюється через інформаційні входи Di (i = 1, n). Для і-го розряду регістра можна записати Qit+1 = Dit , тобто при виконанні цієї мікрооперації у і-й розряд регістра записується значення сигналу на вході Di. Регістри, на яких виконуються мікрооперації зсуву, називаються зсувними.Зсув слова може здійснюватися ліворуч ( у бік старших розрядів) або праворуч ( убік молодших розрядів) на k розрядів одночасно (k=1, n ). Регістри, маючі кола як лівого, так і правого зсуву, називаються реверсивними. Зсув слова ліворуч та праворуч на один розряд описується відповідно рівняннями Qi+1t+1 =Qit та Qit+1 = Qi+1t ( і = 1, n ). Установлення нульового стану регістру(Qit+1=0,і=1,n) здійснюється, як правило, через асинхронні установочні входи тригерів.За допомогою регістрів можна виконувати і інші перетворення інформації, наприклад, порозрядні логічні операції: кон’юнкцію ( Qit+1 = QitDit ); диз’юнкцію (Qit+1 = Qit Dit ); нерівнозначність ( Qit+1 = Qit Dit ); інвертування розрядів ( Qit+1 = Qit ) і т.д. Виходами регістра бувають безпосередньо виходи тригерів, але іноді КС містить елементи, що здійснюють видачу інформації. Видача слова може бути виконана у прямому, оберненому чи парафазному кодах. Крім того, регістр може мати виходи з трьома станами ( стан логічного нуля, логічної одиниці та високоомний стан ). Для видачі слова у прямому коді до виходів регістра підключають прямі виходи тригерів Qi, у оберненому - інверсні Qi , у парафазному - прямі та інверсні. Для того, щоб на вхід машини надходили команди, уводиться спеціальний механізм-програмний лічильник. Він реалізується за допомогою одного з регістрів, а усі інші регістри використовуються для зберігання інформації. Стан програмного лічильника є адреса чергової команди. Тому функція f переходу машини з одного стану в інший має вигляд f : Q x P Q x P, де Q - множина станів пам’яті, а Р - множина станів програмного лічильника. Елемент відображення f :(qa, pb ) (qc, pd )означає: зі стану пам’яті qa виділити команду за адресою pb, перевести машину у стан й (виконати команду) і встановити у програмному лічильнику значення pd.Так, у будь-якому комп’ютері, як і у МНП, є програмний лічильник; тільки він має обмежену кількість двійкових розрядів (нехай m). Тоді максимальна кількість значень чисел, що можуть зберігатись у програмному лічильнику, дорівнює 2m . В цілому пам’ять реального комп’ютера також обмежена і складається з деякої кількості k регістрів з скінченою кількістю розрядів.

8. Клітинні автомати. Модель більярдних куль



Клітинний автомат-це сукупність кліток простору (можливо, багатовимірного), кожна з яких може знаходитися в одному з декількох станів. Клітинні автомати є дискретною моделлю, заснованою на рекурентних правилах: наступний крок є результатом вживання правив до конфігурації, досягнутої на попередньому кроці. От як еволюціонує Всесвіт (інколи її зручно розглядати теж як клітинний автомат), населений такими автоматами. Весь простір (Всесвіт) розбитий на клітки, кожна з яких може знаходитися в одному з декількох станів. (Самі клітки теж можна розглядати як прості автомати. Тоді можна сказати, що в деяких клітках "живут" прості автомати.) Ці клітки (прості автомати) підкоряються певним правилам .Самі правила зазвичай настільки прості, що можуть бути занумеровані числами. Що проте виходять в результаті життєдіяльності таких організмів конфігурації можуть бути дуже складними. Іншими словами, співтовариство примітивних організмів (тобто організмів, що живуть по вельми примітивних правилах) може створити вельми складну соціальну структуру. Можливе і інше трактування: хоча самі елементарні частки влаштовані просто і підкоряються вельми простим законам, вони утворюють наш Всесвіт. (Зрозуміло, Всесвіт влаштований вельми складно.) Как правило, рассматриваются автоматы, где состояние определяется самой клеткой и ближайшими соседями. В качестве решетки обычно рассматривается кубическая решетка. Один из самых интересных примеров клеточного автомата — игра «Жизнь». Клеточный автомат состоит из набора объектов (ячеек), обычно образующих регулярную решетку. Состояние отдельно взятого i-го объекта (или ячейки) в момент времени n характеризуется некоторой переменной, которая может быть целым, действительным или комплексным числом, либо представлять собой набор из нескольких чисел. Рассматриваемые состояния ячеек изменяются синхронным образом через дискретные интервалы времени в соответствии с локальными вероятностными правилами, которые могут зависеть от состояния переменных в ближайших соседних узлах. Эти правила не меняются со временем. Клеточный автомат является дискретной динамической системой, поведение которой полностью определяется в терминах локальных зависимостей. Назовём дискретным пространством пространство над дискретным множеством элементов. Экземпляр пространства этого класса будем называть решёткой клеточного автомата, а каждый его элемент — клеткой. Каждая клетка характеризуется определённым значением из некого множества. О клетке говорят, что она содержит или имеет соответствующее значение, либо находится или пребывает в состоянии, кодируемом данным значением ain. Оно можем быть булевым, целым, числом с плавающей точкой, множеством или другим объектом, в зависимости от потребностей задачи. Совокупность состояний всех клеток решётки называется состоянием решётки. Состояние решётки меняется в соответствии с некоторым законом, который называется правилами клеточного автомата. Каждое изменение состояния решётки называется итерацией. Время в рассматриваемой модели дискретно и каждая итерация соответствует некому моменту времени. Правила определяют, какое значение должно содержаться в клетке в следующий момент времени, в зависимости от значений в некоторых других клетках в текущий момент, а также, возможно, от значения, содержащегося в ней самой в текущий момент. Если новое состояние клетки зависит от текущего её состояния, то о соответствующем клеточном автомате говорят, что он является автоматом с клетками с памятью, иначе — автоматом с клетками без памяти. Множество клеток, влияющих на значение данной, за исключением её самой, называется окрестностью клетки. Окрестность клетки удобнее задавать, если на решётке ввести метрику, поэтому далее, для удобства, будем говорить о решётке, как о дискретном метрическом пространстве. Одно из главных отличий клеточной системы от всех прочих вычислительных систем состоит в том, что во всех других системах присутствуют две принципиально различные части: архитектурная, которая фиксирована и активна (то есть выполняет некоторые операции) и данные, которые переменны и пассивны (то есть сами по себе они ничего сделать не могут). У клеточных автоматов и та, и другая части состоят из принципиально изоморфных, неотличимых друг от друга элементов. Таким образом, вычислительная система может оперировать своей материальной частью, модифицировать, расширять себя и строить себе подобных.

КА можно разделить на детерминированные и вероятностные, подвижные и неподвижные, однородные и неоднородные, простые абстрактные и сложные, точно описывающие реальные системы. Кліти́нний автома́т — сукупність, до якої входять: Набір клітинок, які утворюють періодичну решітку. Задані правила переходу, що визначають стан клітини за теперішнім станом самої клітинки та тих її сусідів, що знаходяться від неї на певній відстані, яка не перевищує максимальну. У якості ґратки зазвичай беруть розбиття на куби дво- чи тривимірного простору. Один з найцікавіших прикладів клітинного автомата — гра «Життя».

Основний напрям дослідження клітинних автоматів — алгоритмічна вирішуваність якихось задач. Також розглядаються питання побудови початкових станів, при яких клітинний автомат вирішуватиме задану задачу. Залишається відкритим, наприклад, питання про можливість побудови машини Тюринга у грі «Життя». В бильярдной модели идеально отражающие "зеркала" - поверхности, меняющие направление движения шаров, расположены таким образом, что движение шаров по столу моделирует прохождение битов информации через логические вентили (см. рисунок внизу). Как и раньше, присутствие шара в определенной части "компьютера" интерпретируется как 1, а отсутствие - как 0. Если два шара одновременно достигают логического вентиля, то они сталкиваются, и траектории их движения изменяются; новые траектории представляют при этом выходные данные вентиля. Фредкин, Тоффоли и другие разработали схемы расположения зеркал, соответствующие различным типам логических вентилей, и доказали, что можно построить бильярдную модель любого логического элемента, необходимого для вычислений. Бильярдная модель компьютера: движение бильярдных шаров по поверхности стола моделирует прохождение битов информации через логический вентиль. В бильярдных логических вентилях (слева) траектории шаров изменяются при их столкновениях друг с другом или с "зеркалами". Кроме функций, выполняемых ими в вентилях, зеркала могут менять угол траектории шара (а), сдвигать ее в сторону (b), задерживать шар, не меняя его конечного направления или скорости (с), или заставлять траектории пересекаться (d). Зеркала можно расставить таким образом, чтобы получившийся в результате "компьютер" выполнял функции любого логического устройства. Например, можно построить бильярдный компьютер для распознавания простых чисел. Такой компьютер (справа) на входе принимает произвольное пятизначное двоичное число (в данном случае 01101, или 13) и фиксированную входную последовательность 01. Как и вентиль Фредкина, бильярдный компьютер возвращает больше битов на выходе, чем нужно пользователю. В рассматриваемом случае он возвращает само исходное число (представляющее собой "лишний" выход) и "ответ": последовательность 10, если число на входе простое, и 01, если оно составное.


1. Способи передачі параметрів процедурам (обов‘язкові, необов’язкові, за посиланням, значенням, невизначена кількість параметрів). Модифікатори доступу та існування. Використання зовнішніх процедур Win Api

Способи передачі параметрів процедурам (обов‘язкові, необов’язкові, за посиланням, значенням, невизначена кількість параметрів). Модифікатори доступу та існування. Використання зов

2248.64kb.

01 10 2014
8 стр.


Мовні обов’язки громадян

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

2339.7kb.

23 09 2014
11 стр.


Біноміальний розподіл

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

67.38kb.

08 10 2014
1 стр.


В чем заключается принцип win-win (выигрыш – выигрыш), и как его реализовать Из этой заметки вы узнаете: Как распознавать ситуации типа win-lose, или «перетягивание каната»

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

63.46kb.

16 12 2014
1 стр.


Код модуля: фамв 6 05 9 Тип модуля: обов’язковий Семестр

Обсяг модуля: загальна кількість годин – 324 (кредитів єктс – 9); аудиторні години – 118

27.33kb.

13 09 2014
1 стр.


Перечень административных процедур, осуществляемых отделом физической культуры, спорта и туризма лиозненского райисполкома по заявлениям граждан

Замещающий временно отсутствующего ответственного работника, для выполнения соответствующих функций по административным процедурам

169.89kb.

13 10 2014
1 стр.


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

Абсентеїзм (лат abcentia – відсутність) -байдуже ставлення людей до використання своїх політичних прав, ухилення від виконання громадянських обов’язків, передусім від участі у вибо

549.02kb.

12 10 2014
3 стр.


Компании B&R; и Baumüller заключают соглашение о долгосрочном сотрудничестве

Генеральный директор Baumüller Ральф Дитрих подчеркнул: "Это сотрудничество говорит об отменном качестве и производительности продукции Baumüller. Это классическая ситуация win-win

6.96kb.

17 12 2014
1 стр.