Автор: Пользователь скрыл имя, 23 Августа 2011 в 17:59, аттестационная работа
Будь який нормальний алгорифм визначається вказанням алфавіту, в якому він діє, та схеми нормального алгорифма. Алфавітом нормального алгорифма може бути довільний скінченний алфавіт A. Формулами підстановок в алфавіті A називаються вирази подібні p → q (проста пістановка) або p →• q (кінцева підстановка), де p та q — деякі слова в алфавіті A, які називаються лівою та правою частинами формули відповідно (вважається, що алфавіт A не містить символів → та →•).
Постановка задачі 3
Теорія 4
Нормальні алгоритми 4
Визначення нормального алгорифма 4
Принцип дії 4
Приклад роботи 4
Алгоритм програми 6
Скріншоти 11
Міністерство освіти і науки України
Полтавський національний технічний університет
Ім. Юрія Кондратюка
Факультет
інформаційних та
телекомунікаційних
технологій і систем
Розрахунково-графічна робота
з
дисципліни «Теория
алгоритмів»
Виконав: студент групи 202-ТН
Фомичов Д. С.
Викладач: Гвоздик Д.М
Полтава 2010
Оглавление
Розробити
програму для виконання бінарних логічних
операцій NOT і OR алгоритмом Маркова.
Нормальні алгорифми (нормальні алгоритми) — вербальні алгоритми, тобто, алгоритми, що перетворюють слова деякого (фіксованого) алфавіту. Поняття нормального алгорифма введене радянським математиком А. А. Марковим.
Нормальний алгорифм Маркова (НАМ) — система послідовних застосувань, підстановок, які реалізують певні процедури отримання нових слів із базових, які побудовані на певному алфавіті.
Будь який нормальний алгорифм визначається вказанням алфавіту, в якому він діє, та схеми нормального алгорифма. Алфавітом нормального алгорифма може бути довільний скінченний алфавіт A. Формулами підстановок в алфавіті A називаються вирази подібні p → q (проста пістановка) або p →• q (кінцева підстановка), де p та q — деякі слова в алфавіті A, які називаються лівою та правою частинами формули відповідно (вважається, що алфавіт A не містить символів → та →•).
Кожний нормальний алгорифм в алфавіті A має скінченну кількість таких формул підстановок. Їх записуть у вигляді списку. Цей список називається схемою алгорифма.
Застосування нормального алгорифма до слова s полягає в наступному.
Цей процес може обірватись сам собою на деякому слові, в яке не входить ліва частина жодної з формул алгорифма. Крім того, постулють, що описаний вище процес зупиняється, коли до чергового слова застосувати одну із кінцевих формул підстановки, тобто, формул видуp →• q. Якщо процес закінчується, то отримане останнє слово є результатом застосування алгорифма до словаs.
В якості прикладу схеми нормального алгоритму можна навести наступну схему в алфавіті з п'яти літер |*abc:
При застосуванні алгорифма з наведеною вище схемою до слова | * | | будуть отримуватись слова:
Результатом застосування буде слово | | .
#include<iostream>
#include<string>
using namespace std;
int main(){
cout<<"Choose your destiny:"<<endl;
cout<<"1. OR"<<endl;
cout<<"2. NOT"<<endl;
int d;
cin>>d;
if(d==1){
char code[256];
cout<<"Enter code: ";
cin>>code;
string mass;
mass=code;
cout<<mass<<endl;
int i=0;
while(i<256){
if ( (code[i]=='/') && (code[i+1]=='a') ){
code[i]
code[i+
i=-1;
cout<<
}
if ( (code[i]=='/') && (code[i+1]=='b') ){
code[i]
code[i+
i=-1;
cout<<
}
if ( (code[i]=='1') && (code[i+1]=='a') ){
code[i]
code[i+
i=-1;
cout<<
}
if ( (code[i]=='0') && (code[i+1]=='a') ){
code[i]
code[i+
i=-1;
cout<<
}
if ( (code[i]=='1') && (code[i+1]=='b') ){
code[i]
code[i+
i=-1;
cout<<
}
if ( (code[i]=='0') && (code[i+1]=='b') ){
code[i]
code[i+
i=-1;
cout<<
}
if ( (code[i]=='a') && (code[i+1]=='1') ){
code[i]
for(int j=i+1; j<256; j++){
c
}
i=-1;
cout<<
}
if ( (code[i]=='a') && (code[i+1]=='0') ){
code[i]
for(int j=i+1; j<256; j++){
c
}
i=-1;
cout<<
}
if ( (code[i]=='b') && (code[i+1]=='1') ){
code[i]
for(int j=i+1; j<256; j++){
c
}
i=-1;
cout<<
}
if ( (code[i]=='b') && (code[i+1]=='0') ){
code[i]
for(int j=i+1; j<256; j++){
c
}
i=-1;
cout<<
}
if ( (code[i]=='/') && (code[i+1]=='1') ){
code[i+
i=-1;
cout<<
}
if ( (code[i]=='/') && (code[i+1]=='0') ){
code[i+
i=-1;
cout<<
}
i++;
}
i=0;
while(i<256){