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

Автор: Пользователь скрыл имя, 15 Сентября 2013 в 18:50, контрольная работа

Краткое описание

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

Файлы: 1 файл

ТВП.docx

— 214.01 Кб (Скачать)

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


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

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

 

 

 

 

 

 

 

 

 

 

Контрольная Работа по дисциплине

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

 

Студент    

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

____________________

Э.К. Насыров

 

«__» _________2013

 

Форма обучения

заочная

 

Курс

4

 

№ варианта

3

 

Ст. преподаватель

____________________

 
 

«__» _________2013

 

 

Челябинск

2013

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

 

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

 

Вариант 3.

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

 

Математическая модель: 
A=({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},-множество переходов; 
q0,-начальное состояние; 
q6}-конечное состояние. 
Дополнительно в алфавит программы введен символ #-пусто, как символ окончания ввода. 

 

 

 

 

 

 

 

 

Сеть Петри.

 
В роли "полочек" или устройства выбирающего  направление - выступает оператор. 
Программа написана на Delphi 6, как приложение консоль.

  1. program Project1;
  2. {$APPTYPE CONSOLE}
  3. uses
  4. SysUtils;
  5. var
  6. State:integer;
  7. CurrentABC:string;
  8. CurrentJob:string;
  9. CurrentTerm:char;
  10. {Рекурсивная процедура преобразования строки}
  11. function str2line(a:string):string;
  12. begin{str2line}
  13. if length(a)>1{условие выхода из рекурсии}
  14. then result:=a[1]+','+str2line(copy(a,2,length(a))){вставляем запятую после каждой буквы}
  15. else result:=a[1];{единственная буква - копируем}
  16. end;{str2line}
  17. {вводим терминальный символ допустимого алфавита}
  18. function LoadTerm(term_ABC:string;c:integer):char;
  19. var
  20. d:string;
  21. begin{LoadTerm}
  22. repeat
  23. {выводим сообщение о состоянии и допустимых терминальных символах}
  24. write('State ',c,'. Please enter the characters(',str2line(term_ABC),'):');
  25. {вводи терминальный символ}
  26. readln(d);
  27. if pos(d[1],term_ABC)=0 then writeln('Error! Expected characters: ',str2line(term_ABC)){сообщение об ошибке ввода}
  28. until pos(d[1],term_ABC)>0;{выходим если введенный символ есть в допустимом алфавите алфавите}
  29. result:=d[1];{сохраняем результат работы}
  30. end;{LoadTerm}
  31. begin
  32. {начальная установка параметров}
  33. State:=0;{начальное состояние автомата}
  34. CurrentABC:='ab';{допустимый алфавит}
  35. CurrentJob:='';{результат работы автомата}
  36. {начало работы конечного автомата}
  37. repeat
  38. CurrentTerm:=LoadTerm(CurrentABC,State);{вводим терминальный символ}
  39. CurrentJob:=CurrentJob+CurrentTerm;{добавляем его в результат работы}
  40. {конечный автомат-контроль и изменение состояний}
  41. case State of
  42. 0:case CurrentTerm of
  43. 'a':begin
  44. State:=1;{переводим автомат в состояние 1}
  45. CurrentABC:='abc';{изменяем допустимый алфавит}
  46. end;
  47. 'b':begin
  48. State:=2;{переводим автомат в состояние2}
  49. CurrentABC:='b';{изменяем допустимый алфавит}
  50. end;
  51. end;{case CurrentTerm of}
  52. {state=0}
  53. 1:case CurrentTerm of
  54. 'b':begin
  55. State:=2;{перводим автомат в состояние 2}
  56. CurrentABC:='b';{изменяем допустимый алфавит}
  57. end;
  58. 'c':begin
  59. State:=3;{переводим автомат в состояние 3}
  60. CurrentABC:='b';{изменяем допустимый алфавит}
  61. end;
  62. end;{case CurrentTerm of}
  63. {state=1}
  64. 2:State:=4;{переводим автомат в состояние 4}
  65. {state=2}
  66. 3:begin
  67. State:=5;{переводи автомат в состояние 5}
  68. CurrentABC:='b#';{изменяем допустимый алфавит}
  69. end;
  70. {state=3}
  71. 4:State:=6;{переводим автомат в режим окончания работы}
  72. {state=4}
  73. 5:if CurrentTerm='#' then State:=6;{проверяем окончание работы автомата}
  74. {state=5}
  75. end;{case state of}
  76. until State=6;
  77. if pos('#',CurrentJob)>0 then delete(CurrentJob,pos('#',CurrentJob),1);{удаляем символ окончания работы}
  78. Writeln('Result: ',CurrentJob);{вывод результата работы}
  79. Readln(CurrentJob);{ожитания наджатия клавиши ВВОД}
  80. end.

 

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

 

 

 

Литература

 

Основная

  1. Бройдо В.Л. Вычислительные системы, сети телекоммуникации. - СПб.: Питер, 2005. – 568 с.
  2. Мелехин В.Ф. Вычислительные машины, системы и сети. – М.: Академия, 2006. – 560 с.
  3. Пятибратов А.П. Вычислительные системы, сети телекоммуникации. - М.: Финансы и статистика, 2005. – 470 с.

 

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

  1. Высшая математика / Под ред. Н.М. Кремера. - М.: ЮНИТИ - ДАНА, 2007
  2. Дорофеева А.В. Высшая математика. – М.: Дрофа, 2003. – 384 с.: ил.
  3. Хандадашева Л.Н. Программное обеспечение. Вычислительные сети. – Ростов н/Д.: МарТ, 2005. – 320 с.

 

 


Информация о работе Теория вычислительных процессов