Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Формування формального визначення і написання програми, що реалізує роботу машини Тьюринга (Javascript)

Реферат Формування формального визначення і написання програми, що реалізує роботу машини Тьюринга (Javascript)





rCmd); parsedCommand=tmParseCommand (strCmd, idxLine ); (! parsedCommand) tmCompileError ( Непередбачена помилка в + idxLine + -му рядку raquo ;, b, e); ( errorMessage in parsedCommand) tmCompileError (parsedCommand.errorMessage, b, e); prefix = + ParsedCommand.smbFrom + parsedCommand.stFrom; (prefix in arNewProgram) tmCompileError ( Рядок + idxLine + laquo ;: Повторення команди + strCmd + для символу '

+ parsedCommand.smbFrom + ' і стану + ParsedCommand.stFrom, b, e); [prefix]=parsedCommand;

}

}=arNewProgram; true;

} tmParseCommand (str, idxLine) {

//var arMatch=str.match(/(.)([a-zA-Z0-9][a-zA-GI-KM-QS-Z0-9_^*]*)-gt;(.)([a-zA-Z0-9][a-zA-GI-KM-QS-Z0-9_^*]*)([LRH]?)/);arMatch =str.match(/(.)([a-zA-Z0-9](?:[^s-gt;]*[^s-gt;LRH])*)-gt;(.)([a-zA-Z0-9](?:[^s-gt;]*[^s-gt;LRH])*)([LRH]?)/);(!arMatch || ArMatch.length!=6) {: Рядок + IdxLine + laquo ;: Непередбачена помилка в команді + Str

}; smbFrom=arMatch [1]; stFrom=arMatch [2]; smbTo=arMatch [3]; stTo=arMatch [4]; mvTo=arMatch [5]; (! (smbFrom in setTMAlphabet)) {: Рядок + IdxLine + laquo ;: У команді + Str + символ + SmbFrom + не входить в алвфавіт Вашої машини Тьюринга

}; (! (stFrom in setTMStates)) {

errorMessage: Рядок + IdxLine + laquo ;: У команді + Str + стан + StFrom + не входить в безліч станів Вашої машини Тьюринга

}; (! (smbTo in setTMAlphabet)) {

errorMessage: Рядок + IdxLine + laquo ;: У команді + Str + символ + SmbTo + не входить в алвфавіт Вашої машини Тьюринга

}; (! (stTo in setTMStates)) {

errorMessage: Рядок + IdxLine + laquo ;: У команді + Str + стан + StTo + не входить в безліч станів Вашої машини Тьюринга

}; (! mvTo)= H raquo ;; {: smbFrom ,: smbTo ,: stFrom ,: stTo ,: mvTo

};

} tmClearTape () {(var idxCell=-tapeShift; idxCell lt; tapeShift; idxCell ++) {(idxCell, );

}

} tmSetConfig (strConfig) {(); (var idxSymbol=0; idxSymbol lt; strConfig.length; idxSymbol ++) (! (strConfigarAt (idxSymbol) in setTMAlphabet)) tmCompileError ( Символ + strConfigarAt (idxSymbol) + не входить в алфавіт Вашої машини Тьюринга ); (); (var idxSymbol=0; idxSymbol lt; strConfig.length; idxSymbol ++) (idxSymbol, strConfigarAt (idxSymbol)); (strConfig.length + 1); (0);

} tmSetState (strState) {(); (! strState) tmCompileError ( Невизначене стан машини Тьюринга ); (! (strState in setTMStates)) tmCompileError ( Стан + strState + не входить в безліч станів Вашої машини Тьюринга ); (ctlStateildNodes.length) .removeChild (ctlState.lastChild);=document.createTextNode (strState) ;. appendChild (tnState);=strState; true ;

} tmStep () {(); (strTMCurrentState == STOP ) {( Робота машини Тьюринга успішно завершена ); false;

} (! strTMCurrentState) tmCompileError ( Не встановлено стан машини Тьюринга ); (! (strTMCurrentState in setTMStates)) tmCompileError ( Стан + strTMCurrentState + raquo, не входить в безліч станів Вашої машини Тьюринга ); (isNaN (idxTMCurrentCell)) tmCompileError ( Чи не встановлена ??поточна комірка машини Тьюринга ); smbCurrent=tmGetCellValue (idxTMCurrentCell); (! smbCurrent)= B raquo ;; (! (smbCurrent in setTMAlphabet))

return tmCompileError ( Символ + smbCurrent + не входить в алфавіт Вашої машини Тьюринга );

var prefix= + SmbCurrent + strTMCurrentState; (! SetTMProgram)

return tmCompileError ( Немає жодної команди для виконання );

if (! (prefix in setTMProgram)) tmCompileError ( Немає команди для символу + smbCurrent + і стану + strTMCurrentState + raquo ;); cmd=setTMProgram [prefix]; (! (cmd.smbTo in setTMAlphabet))

return tmCompileError ( Символ + cmd.smbTo + не входить в алфавіт Вашої машини Тьюринга n +

При виконанні команди для символу + SmbCurrent + і стану + StrTMCurrentState + );

if (! (cmd.stTo in setTMStates))

return tmCompileError ( Стан + cmd.stTo + не входить в безліч станів Вашої машини Тьюринга n +

При виконанні команди для символу + SmbCurrent + і стану + StrTMCurrentState + ); (! (Cmd.mvTo == L || cmd.mvTo == R || cmd.mvTo == H )) tmCompileError ( laquo ; Непередбачена помилка при виконанні переміщення в команді для символу + smbCurrent + і стану + strTMCurrentState + );

tmSetCellValue (idxTMCurrent...


Назад | сторінка 3 з 8 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Машина Тьюринга. Парадигма програмування
  • Реферат на тему: Синхронні машини. Машини постійного струму
  • Реферат на тему: Оцінка стану самохідної сільськогосподарської машини Комбайна кормозбиральн ...
  • Реферат на тему: Проблеми спілкування вашої дитини з іншими людьми
  • Реферат на тему: Розробка онтологій 101: керівництво по створенню Вашої першої онтології