Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Біл, алгоритми.doc
Скачиваний:
2
Добавлен:
18.09.2019
Размер:
280.58 Кб
Скачать

Автоматизовані системи управління технологічними процесами

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

Ці дослідження були систематизовані в монографії «Введение в АСУ» (2 вид. 1974)

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

В 1962 г. В. М. Глушков розпочав роботи над проектом, масштаби якого в галузі інформаційних технологій не мали і не мають аналогів по сьогодні — Загальнодержавної автоматизованої системи (ЗДАС). Беручись за цю роботу, Глушков особисто вивчив специфіку функціонування більше тисячі об'єктів народного господарства різних галузей. В. М. Глушков розрахував, що використання ЗДАС протягом 15 років коштуватиме близько 20 млрд. карбованців. Але за ці ж роки ЗДАС принесе країні більше, ніж 100 млрд. карбованців прибутку. По суті це було намагання створити науково-технічну базу керування економікою країни й організацію інформаційної індустрії, аналогічній тій, яка нині успішно функціонує у провідних країнах Заходу. Це безсумнівно був безпрецедентний виклик звичним канонам керування господарством країни. Під керівництвом В. М. Глушкова колективом спеціалістів багатьох інститутів був створений ескізний проект Єдиної мережі обчислювальних центрів. Передбачалося побудувати близько ста головних і понад 10 тисяч районних центрів для безперервної обробки, аналізу економічної інформації і прийняття обґрунтованих рішень. Однак цей проект так і не був реалізований, оскільки він не знайшов відповідної підтримки у вищого керівництва країни, яку жахали маштаби задумів Глушкова та перспектива кардинальної перебудови усталених методів господарювання. Для В. М. Глушкова, який вважав створення ЗДАС справою життя, це рішення було фатальним.

МАШИНА ПОСТА

Машина Поста - це абстрактна (неіснуюча реально) обчислювальна машина, створена для уточнення (формалізації) поняття алгоритму. Являє собою універсальний виконавець, що дозволяє вводити початкові дані і читати результат виконання програми. У 1936 р. американський математик Еміль Пост у статті описав систему, що має алгоритмічної простотою і здатну визначати, чи є та чи інша задача алгоритмічно вирішуваною. Якщо завдання має алгоритмічне рішення, то вона представима у формі команд для машини Поста. Машина Поста складається з ... нескінченної стрічки, поділеної на однакові осередки (секції). Осередок може бути порожньою (0 або порожнеча) або містити позначку (1 або будь-який інший знак), головки (каретки), здатної пересуватися по стрічці на одну клітинку в ту чи іншу сторону, а також здатною перевіряти наявність мітки, прати і записувати мітку. Поточний стан машини Поста описується станом стрічки і положенням каретки.Стан стрічки - інформація про те, які секції порожні, а які відзначені. Крок - це рух каретки на одну клітинку вліво або вправо. Стан стрічки може змінюватися в процесі виконання програми. Кареткою управляє програма, що складається з рядків команд. Кожна команда має наступний синтаксис: i K j, де i - номер команди, K - дія каретки, j - номер наступної команди (відсилання). Всього для машини Поста існує шість типів команд: V j - поставити мітку, перейти до j-му рядку програми. X j - стерти позначку, перейти до j-му рядку програми. <- J - зрушити вліво, перейти до j-му рядку програми. -> J - зрушити вправо, перейти до j-му рядку програми. ? j1; j2 - якщо в комірці немає мітки, то перейти до j1-й рядку програми, інакше перейти до j2-й рядку програми. ! - Кінець програми (стоп). У команди «стоп» відсилання немає. Варіанти закінчення виконання програми на машині Посту: Команда "стоп" - коректна зупинка. Виникає в результаті виконання правильно написаного алгоритму. Виконання неприпустимою команди - безрезультатна зупинка. Випадки, коли головка повинна записати мітку там, де вона вже є, або стерти мітку там, де її немає, є аварійними (неприпустимими). Відхід у нескінченність, зациклення. Машина Поста в результаті роботи алгоритму може взагалі не зупинитися (ніколи не дійти до команди «стоп» і ніколи не завершитися аварійною ситуацією). Елементарні дії (команди) машина Поста простіше команд машини Тьюринга.Тому програми для машини Поста мають більше число команд, ніж аналогічні програми для машини Тьюринга. Чому достатньо лише два різних символу (є мітка, немає мітки)? Справа в тому, що будь алфавіт може бути закодований двома знаками: залежно від алфавіту зростати може тільки кількість двійкових символів в букві алфавіту.

МАШИНА ТЬЮРІНГА

Машина Тьюринга (МТ) - абстрактний виконавець (абстрактна обчислювальна машина). Була запропонована Аланом Тьюрингом в 1936 році для формалізації поняття алгоритму. Машина Тьюринга є розширенням кінцевого автомата і, згідно тези Черча - Тьюринга, здатна імітувати всі інші виконавці (за допомогою завдання правил переходу), яким-небудь чином реалізують процес покрокового обчислення, в якому кожен крок обчислення досить елементарний. До складу машини Тьюрінга входить нескінченна в обидві сторони стрічка (можливі машини Тьюринга, які мають кілька нескінченних стрічок), розділена на осередки, і керуючий пристрій, здатне знаходитися в одному з безлічі станів.Число можливих станів керуючого пристрою звичайно і точно задано. Керуючий пристрій може переміщатися вліво і вправо по стрічці, читати і записувати в осередки стрічки символи деякого кінцевого алфавіту. Виділяється особливий порожній символ, що заповнює всі клітини стрічки, окрім тих з них (кінцевого числа), на яких записані вхідні дані. Керуючий пристрій працює згідно з правилами переходу, які представляють алгоритм, реалізований даної машиною Тьюринга. Кожне правило переходу наказує машині, в залежності від поточного стану і спостережуваного в поточній клітині символу, записати в цю клітку новий символ, перейти в новий стан і переміститися на одну клітину вліво або вправо. Деякі стану машини Тьюринга можуть бути помічені як термінальні, і перехід в будь-яке з них означає кінець роботи, зупинку алгоритму. Машина Тьюринга називається детермінованою, якщо кожної комбінації стану та стрічкового символу в таблиці відповідає не більше одного правила. Якщо існує пара «стрічковий символ - стан», для якої існує 2 і більше команд, така машина Тьюринга називається недетермінованої. Опис машини Тьюринга Конкретна машина Тьюринга задається перерахуванням елементів множини букв алфавіту A, безлічі станів Q і набором правил, за якими працює машина. Вони мають вигляд: qiaj → qi1aj1dk (якщо головка знаходиться в стані qi, а в найближчій комірці записана буква aj, то головка переходить в стан qi1, в клітинку замість aj записується aj1, головка робить рух dk, яке має три варіанти: на клітинку вліво (L), на клітинку вправо (R), залишитися на місці (N)). Для кожної можливої ​​конфігурації <qi, aj> є рівно одне правило. Правил немає тільки для заключного стану, потрапивши в яке машина зупиняється. Крім того, необхідно вказати кінцеве і початкове стану, початкову конфігурацію на стрічці і розташування голівки машини.

НОРМАЛЬНИЙ АЛГОРИТМ МАРКОВА

Нормальний алгоритм Маркова (НАМ, також марківський алгоритм) - один із стандартних способів формального визначення поняття алгоритму (інший відомий спосіб - машина Тьюринга). Поняття нормального алгорифм введено А. А. Марковим (молодшим) наприкінці 1940-х років в роботах по нерозв'язності деяких проблем теорії асоціативних обчислень. Традиційне написання і вимова слова «алгорифм» в цьому терміні також сходить до його автору, багато років читав курс математичної логіки на механіко-математичному факультеті МДУ. Нормальний алгорифм описує метод переписування рядків, схожий за способом завдання на формальні граматики. НАМ є Тьюринг-повним мовою, що робить його по виразної силі еквівалентним машині Тьюринга і, отже, сучасних мов програмування. На основі НАМ був створений функціональний мова програмування Рефаїл. Нормальні алгорифм є вербальними, тобто призначеними для застосування до слів у різних алфавітах. Визначення всякого нормального алгорифм складається з двох частин: визначення алфавіту алгорифм (до слів із символів якого алгорифм буде застосовуватися) та визначення його схеми. Схемою нормального алгорифм називається кінцевий впорядкований набір так званих формул підстановки, кожна з яких може бути простою або заключної. Простими формулами підстановки називаються слова виду, де і - два довільних слова в алфавіті алгорифм (звані, відповідно, лівої і правої частин формули підстановки). Аналогічно, прикінцевими формулами підстановки називаються слова виду, де і - два довільних слова в алфавіті алгорифм. При цьому передбачається, що допоміжні букви і не належать алфавітом алгорифм (в іншому випадку на виконувану ними роль роздільника лівої і правої частин слід обрати інші дві літери). Прикладом схеми нормального алгорифм в пятібуквенних алфавіті може служити схема Процес застосування нормального алгорифм до довільного слову в алфавіті цього алгорифм являє собою дискретну послідовність елементарних кроків, які перебувають в наступному. Нехай - слово, отримане на попередньому кроці роботи алгорифм (або вихідне слово, якщо поточний крок є першим). Якщо серед формул підстановки немає такої, ліва частина якої входила б в, то робота алгорифм вважається завершеною, і результатом цієї роботи вважається слово.Інакше серед формул підстановки, ліва частина яких входить в, вибирається сама перша. Якщо ця формула підстановки має вигляд, то з усіх можливих подань слова у вигляді вибирається таке, при якому - найкоротший, після чого робота алгорифм вважається завершеною з результатом. Якщо ж ця формула підстановки має вигляд, то з усіх можливих подань слова у вигляді вибирається таке, при якому - найкоротший, після чого слово вважається результатом поточного кроку, що підлягають подальшій переробці на наступному кроці. Наприклад, в ході процесу застосування алгорифм із зазначеною вище схемою до слова послідовно виникають слова,,,,,,,,, і, після чого алгорифм завершує роботу з результатом. Інші приклади дивіться нижче. Будь-який нормальний алгорифм еквівалентний деякої машині Тьюринга, і навпаки - будь-яка машина Тьюринга еквівалентна деякому нормальному алгорифм. Варіант тези Черча - Тьюринга, сформульований стосовно до нормальних алгорифм, прийнято називати «принципом нормалізації». Нормальні алгорифм виявилися зручним засобом для побудови багатьох розділів конструктивної математики. Крім того, закладені у визначенні нормального алгорифм ідеї використовуються в ряді орієнтованих на обробку символьної інформації мов програмування - наприклад, у мові Рефаїл.

Структурна теорема Бома-Джакопіні:   Т: будь-якому неструктурної алгоритму може бути побудований еквівалентний йому структурний алгоритм. Значення структурної теореми для практики програмування полягає в тому, що на її основі розроблений і широко використовується структурний метод програмування. Основою методу є використання принципу модульності побудови складних програм. При цьому кожен програмний модуль організовується у вигляді стандартного функціонального блоку (тобто будується тільки з трьох базових структур) і виконує лише одну функцію по обробці даних. В ідеалі кожен такий модуль повинен мати один вхід і один вихід. Модулі мають певну автономність, що дозволяє їх налагодження (тобто пошук і усунення помилок) вести незалежно від решти програми, а також забезпечує відносно просту модифікованості як окремого модуля, так і програми в цілому. Ефективність методу структурного програмування особливо помітна при створенні складних програм; модульний принцип дозволяє розбити загальну задачу на складові і відносно автономні частини, кожна з яких може створюватись та регламентуватиме незалежно (і навіть різними розробниками); безумовно, таке розбиття вимагає узгодження вхідних і вихідних параметрів модулів

ПРИНЦИП МОДУЛЬНОСТІ

Модульність в мовах програмування - принцип, згідно з яким програмний засіб поділяється на окремі іменовані суті, звані модулями. Модульність часто є засобом спрощення завдання проектування ПРОГРАМНИЙ ЗАСІБ і розподілу процесу розробки ПРОГРАМНИЙ ЗАСІБ між групами розробників. При розбитті ПРОГРАМНИЙ ЗАСІБ на модулі для кожного модуля вказується реалізована їм функціональність, а також зв'язки з іншими модулями. Роль модулів можуть грати структури даних, бібліотеки функцій, класи, сервіси та ін програмні одиниці, що реалізують деяку функціональність і мають інтерфейс до неї. Модульність програмного коду Програмний код часто розбивається на декілька файлів, кожен з яких компілюється окремо від інших. Така модульність програмного коду дозволяє значно зменшити час перекомпіляції при змінах, внесених лише в невелику кількість вихідних файлів, і спрощує групову розробку. Також це можливість заміни окремих компонент (таких як jar-файли, so або dll бібліотеки) кінцевого програмного продукту, що не вимагає перезбирання всього проекту (наприклад, розробка плагінів до вже готової програмі). Стандартом написання модульних програм є об'єктно-орієнтоване програмування. ООП забезпечує найбільш високу ступінь модульності в порівнянні з іншими парадигмами завдяки таким властивостям, як інкапсуляція, поліморфізм і пізніше зв'язування.

СТРУКТУРНИЙ МЕТОД ПРОГРАМУВАННЯ

Структурне програмування - методологія розробки програмного забезпечення, в основі якої лежить уявлення програми у вигляді ієрархічної структури блоків.Запропоновано в 70-х роках XX століття Е. Дейкстрой, розроблена і доповнена Н. Віртом. Відповідно до даної методологією Будь-яка програма являє собою структуру, побудовану з трьох типів базових конструкцій: послідовне виконання - одноразове виконання операцій в тому порядку, в якому вони записані в тексті програми; розгалуження - одноразове виконання однієї з двох або більше операцій, в залежності від виконання деякого заданого умови; цикл - багаторазове виконання однієї і тієї ж операції до тих пір, поки виконується деякий заданий умова (умова продовження циклу). У програмі базові конструкції можуть бути вкладені одна в одну довільним чином, але ніяких інших засобів управління послідовністю виконання операцій не передбачається. Повторювані фрагменти програми (або не повторюються, але представляють собою логічно цілісні обчислювальні блоки) можуть оформлятися у вигляді т. зв.підпрограм (процедур або функцій). В цьому випадку в тексті основної програми, замість поміщеного в підпрограму фрагмента, вставляється інструкція виклику підпрограми. При виконанні такої інструкції виконується викликана підпрограма, після чого виконання програми продовжується з інструкції, наступної за командою виклику підпрограми. Розробка програми ведеться покроково, методом «зверху вниз». Спочатку пишеться текст основної програми, в якому, замість кожного зв'язкового логічного фрагмента тексту, вставляється виклик підпрограми, яка буде виконувати цей фрагмент. Замість справжніх, працюють підпрограм, в програму вставляються «заглушки», які нічого не роблять. Отримана програма перевіряється і регламентуватиме. Після того, як програміст переконається, що підпрограми викликаються в правильній послідовності (тобто загальна структура програми вірна), підпрограми-заглушки послідовно замінюються на реально працюють, причому розробка кожної підпрограми ведеться тим же методом, що й основної програми. Розробка закінчується тоді, коли не залишиться жодної «затички», яка не була б видалена. Така послідовність гарантує, що на кожному етапі розробки програміст одночасно має справу з доступним для огляду і зрозумілим йому безліччю фрагментів, і може бути впевнений, що загальна структура всіх більш високих рівнів програми вірна. При супроводі та внесення змін до програми з'ясовується, в які саме процедури потрібно внести зміни, і вони вносяться, не зачіпаючи частини програми, які безпосередньо не пов'язані з ними. Це дозволяє гарантувати, що при внесенні змін та виправлення помилок не вийде з ладу якась частина програми, що знаходиться в даний момент поза зоною уваги програміста. Теорема про структурний програмуванні: Основна стаття: Теорема Бома-Якопіні Будь-яку схему алгоритму можна представити у вигляді композиції вкладених блоків begin і end, умовних операторів if, then, else, циклів з передумовою (while) і може бути додаткових логічних змінних (прапорів). Ця теорема була сформульована італійськими математиками К.Бомом і Дж.Якопіні в 1966 році і говорить нам про те, як можна уникнути використання оператора переходу goto. [Правити] Історія Методологія структурного програмування з'явилася як наслідок зростання складності розв'язуваних на комп'ютерах завдань, і відповідного ускладнення програмного забезпечення. У 70-і роки XX століття обсяги та складність програм досягли такого рівня, що «інтуїтивна» (неструктурована, або «рефлекторна») розробка програм, яка була нормою в більш ранній час, перестала задовольняти потребам практики. Програми ставали занадто складними, щоб їх можна було нормально супроводжувати, тому потрібна була якась систематизація процесу розробки та структури програм. Найбільш сильною критиці з боку розробників структурного підходу до програмування піддався оператор GOTO (оператор безумовного переходу), що був тоді майже у всіх мовах програмування. Неправильне і необдумане використання довільних переходів в тексті програми призводить до отримання заплутаних, погано структурованих програм (т.зв. спагетті-коду), за текстом яких практично неможливо зрозуміти порядок виконання і взаємозалежність фрагментів. Дотримання принципів структурного програмування зробило тексти програм, навіть досить великих, нормально читаються. Серйозно полегшилось розуміння програм, з'явилася можливість розробки програм в нормальному промисловому режимі, коли програму може без особливих труднощів зрозуміти не тільки її автор, а й інші програмісти. Це дозволило розробляти досить великі для того часу програмні комплекси силами колективів розробників, і супроводжувати ці комплекси протягом багатьох років, навіть в умовах неминучих змін в складі персоналу. Методологія структурної розробки програмного забезпечення була визнана «найсильнішою формалізацією 70-х років». Після цього слово «структурний» стало модним в галузі, і його почали використовувати скрізь, де треба і де не треба. З'явилися роботи по «структурному проектуванню», «структурному тестування», «структурному дизайну» і так далі. Загалом, відбулося приблизно те ж саме, що відбувалося в 90-х роках і відбувається в даний час з термінами «об'єктний», «об'єктно-орієнтований» і «електронний». Перелічимо деякі переваги структурного програмування: Структурне програмування дозволяє значно скоротити число варіантів побудови програми з однієї і тієї ж специфікації, що значно знижує складність програми і, що ще важливіше, полегшує розуміння її іншими розробниками. У структурованих програмах логічно пов'язані оператори перебувають візуально ближче, а слабо пов'язані - далі, що дозволяє обходитися без блок-схем та інших графічних форм зображення алгоритмів (по суті, сама програма є власною блок-схемою). Сильно спрощується процес тестування і налагодження структурованих програм.

АБСТРАКТНІ АВТОМАТИ

Абстрактний автомат (в теорії алгоритмів) - математична абстракція, модель дискретного пристрою, що має один вхід, один вихід і в кожний момент часу знаходиться в одному стані з безлічі можливих. На вхід цього пристрою надходять символи одного алфавіту, на виході воно видає символи (в загальному випадку) іншого алфавіту. Абстрактний автомат Формально абстрактний автомат визначається як п'ятірка Де S - кінцеве безліч станів автомата, X, Y - кінцеві вхідний і вихідний алфавіти відповідно, з яких формуються рядки, зчитуються і видані автоматом, - функція переходів, - функція виходів. Функціональна схема абстрактного автомата Абстрактний автомат з виділеним початковим станом називається ініціальний автоматом. Таким чином, абстрактний автомат визначає сімейство ініціальних автоматів Якщо функції переходів і виходів однозначно визначені для кожної пари, то автомат називають детермінованим. В іншому випадку автомат називають Недетермінірованним або частково визначеним. Якщо функція переходів та / або функція виходів є випадковими, то автомат називають імовірнісним. Обмеження числа параметрів абстрактного автомата визначило таке поняття як кінцевий автомат. Функціонування автомата полягає в породженні двох послідовностей: послідовності чергових станів автомата і послідовності вихідних символів, які для послідовності символів розгортаються в моменти дискретного часу t = 1, 2, 3, ... Моменти дискретного часу отримали назву тактів. Функціонування автомата в дискретні моменти часу t може бути описано системою рекурентних співвідношень: Для уточнення властивостей абстрактних автоматів введена класифікація. Абстрактні автомати утворюють фундаментальний клас дискретних моделей як самостійна модель, і як основна компонента машин Тьюринга, автоматів з магазинною пам'яттю, кінцевих автоматів та інших перетворювачів інформації. Модель абстрактного автомата широко використовується, як базова, для побудови дискретних моделей автоматів, які розпізнають, що породжують і перетворюють послідовності символів.

КІНЦЕВІ АВТОМАТИ

Кінцевий автомат - абстрактний автомат без вихідного потоку, число можливих станів якого звичайно. Результат роботи автомата визначається за його кінцевому стану. Існують різні варіанти завдання кінцевого автомата. Наприклад, кінцевий автомат може бути заданий за допомогою п'яти параметрів:, де: Q - кінцеве безліч станів автомата; q0 - початкове (стартове) стан автомата (); F - множина заключних (або допускають) станів, таких що; Σ - допустимий вхідний алфавіт (кінцеве безліч допустимих вхідних символів), з якого формуються рядки, зчитуються автоматом; δ - задане відображення безлічі у безліч підмножин Q: (Іноді δ називають функцією переходів автомата). Автомат починає роботу в стані q0, зчитуючи по одному символу вхідного рядка.Лічені символ переводить автомат в новий стан з Q відповідно до функцією переходів. Якщо по завершенні зчитування вхідного слова (ланцюжки символів) автомат виявляється в одному з допускають станів, то слово «приймається» автоматом. В цьому випадку говорять, що воно належить мові даного автомата.В іншому випадку слово «відкидається». Кінцеві автомати широко використовуються на практиці, наприклад у синтаксичних, лексичних аналізаторах, і тестуванні програмного забезпечення на основі моделей. Зміст [прибрати] 1 Інші способи опису 2 Детермінованість 3 Автомати й регулярні мови 4 Спеціалізовані мови програмування 5 Примітки 6 Див також 7 Посилання [Правити] Інші способи опису Діаграма станів (або іноді граф переходів) - графічне представлення безлічі станів і функції переходів. Являє собою навантажений односпрямований граф, вершини якого - стану КА, ребра - переходи з одного стану в інший, а навантаження - символи, при яких здійснюється даний перехід. Якщо перехід зі стану q1 в q2 може бути здійснено при появі одного з декількох символів, то над дугою діаграми (гілкою графа) повинні бути надписані все вони. Таблиця переходів - табличне представлення функції δ. Зазвичай у такій таблиці кожному рядку відповідає один стан, а колонки - один допустимий вхідний символ.В осередку на перетині рядка і стовпця записується дію, яку повинен виконати автомат, якщо в ситуації, коли він знаходився в даному стані на вході він отримав даний символ. [Правити] Детермінованість Кінцеві автомати поділяються на детерміновані і недетерміновані. Детермінований кінцевий автомат

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

Недетермінірованний кінцевий автомат (НКА) є узагальненням детермінованого. Недетермінованість автоматів досягається двома способами:

Існують переходи, помічені порожній ланцюжком ε З одного стану виходить кілька переходів, помічених одним і тим же символом Якщо розглянути випадок, коли автомат заданий наступним чином:, де: S - безліч стартових станів автомата, таке що; Тоді з'являється третя ознака недетермінізма - наявність декількох початкових (стартових) станів у автомата. Існує теорема, яка говорить, що «Будь недетермінірованний кінцевий автомат може бути перетворений в детермінований так, щоб їхні мови збігалися» (такі автомати називаються еквівалентними). Однак, оскільки кількість станів в еквівалентному ДКА в гіршому випадку зростає експоненціально з ростом кількості станів вихідного НКА, на практиці подібна детермінізації не завжди можлива. Крім того, кінцеві автомати з виходом в загальному випадку не піддаються детермінізації. В силу останніх двох зауважень, незважаючи на велику складність недетермінованих кінцевих автоматів, для завдань, пов'язаних з обробкою тексту, переважно застосовуються саме НКА. [Правити] Автомати й регулярні мови Для автомата можна визначити мову (безліч слів) в алфавіті Σ, який він представляє - так називаються слова, при введенні яких автомат переходить з початкового стану в один зі станів множини F. Теорема Кліні свідчить, що клас мов, представимо кінцевими автоматами, збігається з класом регулярних мов. Крім того, цей клас збігається з класом мов, що задаються регулярними граматиками. [Правити] Спеціалізовані мови програмування Мова послідовних функціональних схем SFC (Sequential Function Chart) - графічна мова програмування широко використовується для програмування промислових логічних контролерів (ПЛК). В SFC програма описується у вигляді схематичної послідовності кроків, об'єднаних переходами.

По́шук — в широкому сенсі — прагнення досягти будь-чого, знайти будь-що. Дії шукаючого, направлені на отримання нового або втраченого: нової інформації (пошук інформації), даних, відомостей, знаньрозвідки, відкриття нових закономірностей.

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

Опера́ція найме́ншого ко́реня — операція, що зіставляє кожній рекурсивній функції від n змінних   рекурсивну функцію   від   змінних.

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

Факториа́л числа n (обозначается n!, произносится эн факториа́л) — произведение всех натуральных чисел до n включительно:

.

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

програмою, яка зберігається в його пам’яті. Пам’ять зберігає як саму програму, так і дані, які

вона опрацьовує, — вхідні, проміжні й вихідні. Пам’ять комп’ютера є єдиною для програм і

даних. Вона складається з певної кількості однакових комірок, які є доступними для інших

пристроїв комп’ютера в довільний момент часу. Така організація пам’яті називається лінійною.

Комірки пам’яті послідовно пронумеровані. Щоб одержати доступ до вмісту комірки, достатньо

вказати її номер, який називається адресою комірки.

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

опрацювати будь-яку інформацію, подану у двійкових кодах.

Програмне управління принципово відрізняє комп’ютер від інших обчислювальних2

пристроїв: розв’язання задачі комп’ютером здійснюється автоматично за програмою.

ЦИКЛ

Цикл - різновид керуючої конструкції в високорівневих мовах програмування, призначена для організації багаторазового виконання набору інструкцій. Також циклом може називатися будь-яка багаторазово виконується послідовність інструкцій, організована будь-яким способом (наприклад, за допомогою умовного переходу). Визначення Послідовність інструкцій, призначена для багаторазового виконання, називається тілом циклу. Одиничне виконання тіла циклу називається итерацией. Вираз визначає, буде в черговий раз виконуватися ітерація, або цикл завершиться, називається умовою виходу або умовою закінчення циклу (або умовою продовження в залежності від того, як інтерпретується його істинність - як ознака необхідності завершення або продовження циклу). Змінна, що зберігає поточний номер ітерації, називається лічильником ітерацій циклу або просто лічильником циклу. Цикл не обов'язково містить лічильник, лічильник не зобов'язаний бути один - умова виходу з циклу може залежати від кількох змінних в циклі змінних, а може визначатися зовнішніми умовами (наприклад, настанням певного часу), в останньому випадку лічильник може взагалі не знадобитися. Виконання будь-якого циклу включає початкову ініціалізацію змінних циклу, перевірку умови виходу, виконання тіла циклу і оновлення змінної циклу на кожній ітерації. Крім того, більшість мов програмування надають кошти для дострокового управління циклом, наприклад, оператори завершення циклу, тобто виходу з циклу незалежно від істинності умови виходу (в мові Сі - break) і оператори пропуску ітерації (у мові Сі - continue). Безумовні цикли Цикл з постусловіем Цикл з виходом з середини Цикл з лічильником