Лабораторная работа № 1
(№ 9 по списку и инд. вариант t= 9 )
Студента группы ИТ 14-1
Красовский Абхай Владленович
Создание формального языка по его вербальному описанию
Цель работы – изучение основных понятий теории множеств, которые используются для создания формальных языков.
Ход работы
Создать программу на С++, которая будет продуцировать цепочки(слова) в трехсимвольном алфавите с записью их в файл, причем длина L цепочек ограничена: L1 L L2 и для каждой цепочки, отобранной в файл, должно выполняться условие < A >. Общее количество цепочек в файле должно быть не более M.
t |
Условие <А> |
L1 |
L2 |
M |
9 |
Начинается с символа «b», заканчивается символом «а», а символ «с» встречается в сочетании по два не менее одного раза |
5 |
10 |
20 |
1Код
#include "conio.h"
#include "iostream"
using namespace std;
void main()
{
char str[10];
int c = 0, string = 0, k = 0;
while(string < 20)
{
k = rand()%10 + 1;
if (k >= 5)
{
for (int j = 0; j < k; j++)
{
c = rand()%3 + 1;
if ( c == 1 ) str[j] = 'a';
if ( c == 2 ) str[j] = 'b';
if ( c == 3 ) str[j] = 'c';
}
for (int l = 0; l < k - 1; l++)
{
if ( str[0] == 'b' && str[k - 1] == 'a' && str[l] == 'c' && str[l+1] == 'c')
{
for (int m = 0; m < k; m++)
cout << str[m];
cout << "\n";
string++;
break;
}
}
}
}
_getch();
}
2.Блок-схема
3.Результат
4.Вывод: Изучил основные понятия теории множеств, которые используются для создания формальных языков.