Курсовая работа - Изучение конечного автомата
.docS0 – исходное состояние, счетчик букв равен 0;
S1 – переход к рабочему состоянию, номер текущего элемента массива равен 1;
S2 – определение содержимого ячейки (цифра или буква);
S3 – состояние увеличения счетчика букв.
S4 – состояние проверки наличия несосчитанных ячеек;
S5 – состояние перехода к следующей ячейке, увеличение номер текущего элемента массива;
S6 – конечное состояние счета букв;
S7 – вывод счетчика букв.
X1 – ввод исходных данных;
X2 – переход к процессу подсчета;
X3 – переход к увеличению счетчика букв;
X4 – переход к состояние перехода к следующей ячейке
X5 – переход к следующей ячейке;
X6 – продолжение счета ячеек;
X7 – переход в конечное состояние;
X8 – вывод результатов;
Y1 – количество ячеек содержащих буквы.
-
X1
X2
X3
X4
X5
X6
X7
X8
S0
S1
S0
S0
S0
S0
S0
S0
S0
S1
S1
S2
S1
S1
S1
S1
S1
S1
S2
S2
S2
S3
S4
S2
S2
S2
S2
S3
S3
S3
S3
S4
S3
S3
S3
S3
S4
S4
S4
S4
S4
S5
S4
S6
S4
S5
S5
S5
S5
S5
S5
S2
S5
S5
S6
S6
S6
S6
S6
S6
S6
S6
S7
S7
S7
S7
S7
S7
S7
S7
S7
S7
-
X1
X2
X3
X4
X5
X6
X7
X8
S0
-
-
-
-
-
-
-
-
S1
-
-
-
-
-
-
-
-
S2
-
-
-
-
-
-
-
-
S3
-
-
-
-
-
-
-
-
S4
-
-
-
-
-
-
-
-
S5
-
-
-
-
-
-
-
-
S6
-
-
-
-
-
-
-
Y1
S7
-
-
-
-
-
-
-
-
program task5;
var
a: array [1..100] of char;
n, i, count: integer;
begin
// S0 – исходное состояние, счетчик букв равен 0;
count := 0;
// X1 – ввод исходных данных;
write(’enter cell count:’);
readln(n);
for i := 1 to n do begin
write(‘a[‘, i, ’]=’);
readln(a[i]);
end
// S1 – переход к рабочему состоянию, номер текущего элемента массива равен 1;
// X2 – переход к процессу подсчета;
for i := 1 to n do begin // X6 – продолжение счета ячеек;
if (a[i] in [’a’..’z’, ’a’..’z’, ’а’..’я’, ’a’..’я’]) then begin // S2 – определение
// содержимого ячейки (цифра или буква);
// X3 – переход к увеличению счетчика букв;
// S3 – состояние увеличения счетчика букв.
count := count + 1;
end
// X4 – переход к состояние перехода к следующей ячейке
// S4 – состояние проверки наличия несосчитанных ячеек;
// X5 – переход к следующей ячейке;
// S5 – состояние перехода к следующей ячейке, увеличение номер текущего элемента массива;
End
// S6 – конечное состояние счета букв;
// X8 – вывод результатов;
writeln(’letters count: ’, count); // S7 – вывод счетчика букв.
// Y1 – количество ячеек содержащих буквы.
end.