30/09/2018, 16:57

Bài tập bị lỗi phông chữ

Đây là bt môn ngôn ngữ hình thức của mình.nhưng k hiểu sao sau khi nhập n show ra cứ bị lỗi phông chữ. bạn nào biết sửa giúp mình với ^^

#include<iostream>
using namespace std;

typedef struct otomat
{
	char vt, vp, kh;
}OTMA;

bool lap(OTMA [], OTMA gt, int dc);
void nhapdc(OTMA &gt);
bool timdce(OTMA gt); 
bool thuanhan(char p, char *f, int q);
bool thua_nhan(char *f, int q, OTMA gt);
void show(OTMA gt);
OTMA cong(OTMA x, OTMA y);
void thuchien(OTMA *p, int &dc, char *f, int &q);
void show_dc(otomat *p, int dc, char *f, int q);
void nhap(OTMA *p, int &dc, char *f, int &q, char *a, int &n, char *b, int &m, char s);
int main()
{
	char a[100];
	char b[100];
	char f[20]; 
	OTMA p[100]; 
	int q, dc;
	int n, m;
	char s;
	nhap(p, dc, f, q, a, n, b, m, s);
	thuchien(p, dc, f, q);
	show_dc(p, dc, f, q);
	system("pause");
	return 0;
}

bool lap(OTMA *p, OTMA gt, int dc)//tim ra n~trang thai den chinh no
{
	for (int i = 0; i<dc; i++)
	if ((gt.vt == p[i].vt) && (gt.vp == p[i].vp) && (gt.kh == p[i].kh)) return true;
	return false;
}

void nhapdc(OTMA &gt)
{
	cout << "Trang thai nguon = "; 
    fflush(stdin);
    cin.get(gt.vt);
	gt.vt = toupper(gt.vt);
	cout << "Trang thai nguon = " << gt.vt;
	cout << endl;
	cout << "Ky hieu chuyen = "; 
	fflush(stdin);
    cin.get(gt.kh);
	gt.kh = toupper(gt.kh);
	cout << "Ky hieu chuyen = " << gt.kh;
	cout << endl;
	cout << "Trang thai dich = "; 
	fflush(stdin);
    cin.get(gt.vp);
	gt.vp = toupper(gt.vp);
	cout << "Trang thai dich = " << gt.vp;
	cout << endl;
	cout << endl;
}

bool timdce(OTMA gt) // tim ra dich chuyen epxilon
{
	if ((gt.vt != gt.vp) && (gt.kh == '*')) return true;
	return false;
}

bool baccau(OTMA x, OTMA gt)
{
	if (gt.vp == x.vt) return true;
	return false;
} 

bool thuanhan(char p, char *f, int q)// tim xem trang thai thua nhan co thuoc trong dich chuyen hay k
{
	for (int i = 0; i<q; i++)
	if (f[i] == p) return true;
	return false;
}

bool thua_nhan(char *f, int q, OTMA gt)// loai bo truong hop ca ve trai va vp deu la tt thua nhan va gap e
{
	for (int i = 0; i<q; i++)
	if ((gt.vp == f[i]) && (gt.kh == '*') && (thuanhan(gt.vt, f, q) == false)) return true;
	return false;
}

void nhap(OTMA *p, int &dc, char *f, int &q, char *a, int &n, char *b, int &m, char s)
{
	cout << "moi ban nhap otomat M=(X, Q, dc, q0, F ) : " << endl;
	cout << "quy uoc : " << endl;
	cout << "1. bo chu vao la ki hieu chu thuong. " << endl;
	cout << "2. tap huu han trang thai la tap cac ki hieu chu hoa." << endl;
	cout << " - - - - - - - - - - - - - - - - - - - - - - - -  
";
	cout << endl;
	cout << "ban muon nhap may ki hieu trong bo chu vao X ? " << endl;
	cout << "nhap n =  ";
	cin >> n;
	cout << endl;
	for (int i = 0; i<n; i++)
	{
		cout << endl;
		cout << "ki hieu vao thu " << i + 1 << " : ";
		cin >> a[i];
		a[i] = tolower(a[i]);
		cout << "ki hieu vao thu " << i + 1 << " la : " << a[i];
		cout << endl;
	}

	cout << endl;

	cout << " - - - - - - - - - - - - - - - - - - - - - - - -  
";
	cout << endl;
	cout << "ban muon nhap may tap huu han trang thai Q ? " << endl;
	cout << "nhap m =";
	cin >> m;
	cout << endl;
	for (int j = 0; j<m; j++)
	{
		cout << endl;
		cout << "trang thai thu  " << j + 1 << " : ";
		cin >> b[j];
		b[j] = toupper(b[j]);
		cout << "trang thai thu  " << j + 1 << " la : " << b[j];
		cout << endl;
	}
	cout << endl;

	cout << " - - - - - - - - - - - - - - - - - - - - - - - -  
";
	cout << endl;
	cout << "ban muon nhap bao nhieu dich chuyen ? ( epsilon nhap la * ) " << endl;
	cout << "So luong dich chuyen : "; cin >> dc;
	for (int i = 0; i<dc; i++)
	{
		cout << "Dich chuyen thu " << i + 1 << " : ";
		cout << endl;
		nhapdc(p[i]);
	}

	cout << " - - - - - - - - - - - - - - - - - - - - - - - -  
";
	cout << endl;
	cout << " nhap ki hieu bat dau q0 ! ";
	cin >> s;
	s = toupper(s);
	cout << " ki hieu bat dau la : " << s;
	cout << endl;

	cout << " - - - - - - - - - - - - - - - - - - - - - - - -  
";
	cout << endl;
	cout << " nhap bao nhieu trang thai thua nhan F ? ";
	cin >> q;
	for (int i = 0; i<q; i++)
	{
		cout << " trang thai thua nhan thu " << i + 1 << "la : ";
		cin >> f[i];
		f[i] = toupper(f[i]);
		cout << endl;
		cout << " trang thai thua nhan thu " << i + 1 << "la : " << f[i];
		cout << endl;
	}
}
void show_dc(OTMA *p, int dc, char *f, int q)
{
	cout << "________________________________________________________" << endl;
	cout << "Otomat moi co ham dich chuyen nhu sau:" << endl;
	for (int i = 0; i<dc; i++)
	if (p[i].kh != '*')
	{
		show(p[i]);
		cout << endl;
	}
	cout << "Cac trang thai thua nhan la: " << endl << "			";
	for (int i = 0; i<q; i++) cout << f[i] << ' ';
}
void thuchien(OTMA *p, int &dc, char *f, int &q)
{
	OTMA P;
	for (int i = 0; i<dc; i++)
	{
		if (timdce(p[i]) == true)
		{
			for (int j = 0; j<dc; j++)
			if (baccau(p[j], p[i]) == true)
			{
				P = cong(p[i], p[j]);
				if (lap(p, P, dc) == false)
				{
					p[dc] = P;
					dc += 1;
				}
			}
		}
		if (thua_nhan(f, q, p[i]) == true)
		{
			f[q] = p[i].vt;
			q += 1;
		}
	}
}
OTMA cong(OTMA x, OTMA y)
{
	OTMA kq;
	kq.kh = (x.kh)+(y.kh);
	kq.vp = (x.vp)+(y.vp);
	kq.vt = x.vt;
	return kq;
}
void show(OTMA gt)
{
	cout << "			 dich chuyen : " << gt.vt << ","<<gt.kh << "-> " << gt.vp;
}
Làm giàu, làm giàu, làm giàu..... viết 19:07 ngày 30/09/2018

Đọc tiêu đề với code là nản. Bạn tìm cách sửa tiêu đề lại cho đơn giản, nhấn mạnh vào cái bạn cần hỏi.

Còn code bạn quăng ra như thế riêng mình thì mình không xem giúp đâu.

bocapnhi viết 19:00 ngày 30/09/2018

ừ tại t chưa đăng bài lần nào nên k biết cách đăng. xl bạn và mn.

Làm giàu, làm giàu, làm giàu..... viết 19:02 ngày 30/09/2018

Bạn sửa lại như " Lỗi bài tập ngôn ngữ hình thức". Mà nhìn sơ qua như C++ ấy. Code bạn cũng sửa lại đi gì là lộn tùm lum, chỗ hightlight chỗ không. Nếu bạn phân vùng được chỗ code sai thì đăng chỗ đó lên riêng ra để xem cho dễ.

bocapnhi viết 19:03 ngày 30/09/2018

t k biết sai ở đâu .

Làm giàu, làm giàu, làm giàu..... viết 19:01 ngày 30/09/2018

Mình không biết C++ nên không biết để mời ai đó rành c++ vào giúp bạn.

X viết 19:11 ngày 30/09/2018

bạn nên chụp hình xem output bị ‘lỗi phông’ như nào @@

bocapnhi viết 19:09 ngày 30/09/2018

Nguyễn Đức Minh viết 19:02 ngày 30/09/2018

Lỗi font nào, không hiểu yêu cầu lắm.
Còn về code của bạn thì cái thấy đầu tiên là thiếu thư viện stdio.h để chạy fflush(stdin)…v…v…

Bài liên quan
0