Теория вычислительных процессов

  • Вид работы:
    Контрольная работа
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    121,14 Кб
  • Опубликовано:
    2013-09-17
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Теория вычислительных процессов

Муниципальное образовательное учреждение

Высшего профессионального образования

Южно - Уральский профессиональный институт









Контрольная Работа

Теория вычислительных процессов


Студент

гр. ПСз-1-09, факультет Управления и информационных технологий

Э.К. Насыров







Челябинск

2013

Практические задачи

Задачи должны быть выполнены в Delphi. Решение задачи должно начинаться с построения математической модели. После чего должен быть представлен листинг программы и спецификация. Каждая задача должна сопровождаться необходимым количеством комментариев и содержать результаты выполнения программы. По каждой задаче должны быть составлены стандартные схемы программы и построена сеть Петри.

Вариант 3.

1.      Постройте одноленточный автомат над алфавитом {a, b, c}, допускающий следующие множества слов: {anbbb | n ³ 0}, {ancbm | n ³ 1, m ³ 1}.

Математическая модель:=({a,b,c},-алфавит терминальных символов;

{q0,q1,q2,q3,q4,q5,q6},-множество состояний;

{q0a>q1 | q0b>q2 | q1a>q1 | q1b>q2 | q1c>q3 | q2b>q4 | q3b>q5 | q4b>q6 | q5b>q5 | q5#>q6},-множество переходов;,-начальное состояние;}-конечное состояние.

Дополнительно в алфавит программы введен символ #-пусто, как символ окончания ввода.

Сеть Петри.

программа символ сеть петри

В роли "полочек" или устройства выбирающего направление - выступает оператор.

Программа написана на Delphi 6, как приложение консоль.

1.      program Project1;

2.     

.        {$APPTYPE CONSOLE}

.       

.        uses

.        SysUtils;

.        var

.        State:integer;

.        CurrentABC:string;

.        CurrentJob:string;

.        CurrentTerm:char;

.       

.        {Рекурсивная процедура преобразования строки}

14.    function str2line(a:string):string;

15.    begin{str2line}

.        if length(a)>1{условие выхода из рекурсии}

17.    then result:=a[1]+','+str2line(copy(a,2,length(a))){вставляем запятую после каждой буквы}

18.    else result:=a[1];{единственная буква - копируем}

.        end;{str2line}

.       

.        {вводим терминальный символ допустимого алфавита}

22.    function LoadTerm(term_ABC:string;c:integer):char;

23.    var

.        d:string;

.        begin{LoadTerm}

.        repeat

.        {выводим сообщение о состоянии и допустимых терминальных символах}

28.    write('State ',c,'. Please enter the characters(',str2line(term_ABC),'):');

29.    {вводи терминальный символ}

.        readln(d);

31.    if pos(d[1],term_ABC)=0 then writeln('Error! Expected characters: ',str2line(term_ABC)){сообщение об ошибке ввода}

32.    until pos(d[1],term_ABC)>0;{выходим если введенный символ есть в допустимом алфавите алфавите}

.        result:=d[1];{сохраняем результат работы}

.        end;{LoadTerm}

.       

.        begin

.        {начальная установка параметров}

.        State:=0;{начальное состояние автомата}

.        CurrentABC:='ab';{допустимый алфавит}

.        CurrentJob:='';{результат работы автомата}

.        {начало работы конечного автомата}

.        repeat

.        CurrentTerm:=LoadTerm(CurrentABC,State);{вводим терминальный символ}

.        CurrentJob:=CurrentJob+CurrentTerm;{добавляем его в результат работы}

.        {конечный автомат-контроль и изменение состояний}

.        case State of

.        0:case CurrentTerm of

.        'a':begin

.        State:=1;{переводим автомат в состояние 1}

.        end;

.        'b':begin

.        State:=2;{переводим автомат в состояние2}

.        CurrentABC:='b';{изменяем допустимый алфавит}

.        end;

.        end;{case CurrentTerm of}

.        {state=0}

.        1:case CurrentTerm of

.        'b':begin

.        State:=2;{перводим автомат в состояние 2}

.        CurrentABC:='b';{изменяем допустимый алфавит}

.        end;

.        'c':begin

.        State:=3;{переводим автомат в состояние 3}

.        CurrentABC:='b';{изменяем допустимый алфавит}

.        end;

.        end;{case CurrentTerm of}

.        {state=1}

.        2:State:=4;{переводим автомат в состояние 4}

.        {state=2}

.        3:begin

.        State:=5;{переводи автомат в состояние 5}

.        CurrentABC:='b#';{изменяем допустимый алфавит}

.        end;

.        {state=3}

.        4:State:=6;{переводим автомат в режим окончания работы}

.        {state=4}

.        5:if CurrentTerm='#' then State:=6;{проверяем окончание работы автомата}

.        {state=5}

.        end;{case state of}

.        until State=6;

82.    if pos('#',CurrentJob)>0 then delete(CurrentJob,pos('#',CurrentJob),1);{удаляем символ окончания работы}

.        Writeln('Result: ',CurrentJob);{вывод результата работы}

.        Readln(CurrentJob);{ожитания наджатия клавиши ВВОД}

85.    end.

Программа реализует оба множества последовательностей (anbbb, где n=0,1,2,... и ancbm, где n,m=1,2,3,...)

При попытке ввести неверный символ выдается ошибка и ввод повторяется.


Литература

Основная

1.      Бройдо В.Л. Вычислительные системы, сети телекоммуникации. - СПб.: Питер, 2005. - 568 с.

.        Мелехин В.Ф. Вычислительные машины, системы и сети. - М.: Академия, 2006. - 560 с.

.        Пятибратов А.П. Вычислительные системы, сети телекоммуникации. - М.: Финансы и статистика, 2005. - 470 с.

Дополнительная

1.      Высшая математика / Под ред. Н.М. Кремера. - М.: ЮНИТИ - ДАНА, 2007

2.   Дорофеева А.В. Высшая математика. - М.: Дрофа, 2003. - 384 с.: ил.

3.      Хандадашева Л.Н. Программное обеспечение. Вычислительные сети. - Ростов н/Д.: МарТ, 2005. - 320 с.


Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!