Symulacja działania automatu

0

Cześć.
Mam problem z projektem, który muszę stworzyć na strukturach/tablicach w języku C.
Nie mam pomysłu jak zacząć i jak powinny wyglądać struktury przy tym wypadku. (Znam niestety tylko podstawy języka, a wykładowca na pierwszym roku rzucił nas na głęboką wodę). Liczę na pomoc lub podpowiedzi . Zadanie w linku https://iv.pl/images/41028044907527009459.png

0

Możesz zrobić tablicę takich struktur:

char name = 'A'
char zero = 'B'
char one = 'C'

I w name nasz nazwę wierzchołka, zero gdzie przechodzisz pod wpływem zera, one gdzie pod jedynką. Startujesz w ustalonym miejscu później tylko skaczesz po tablicy i wypisujesz name.

0
	#define MaxItem 20
struct ItemST{
	int ID_0,	// ID wire 0 - false
		ID_1;	// ID wire 1 - true
		
	char MyChar;// Char in Vertex
	
}Items[MaxItem];// Vertex Array

char String[10]={1011000110};	// "Road"
char Return[10];				// Return :)

int ID;	// Selected Vertex ID

if(String[i]=="1")
	ID=Items[ID].ID_1;
	Return[i]==Items[ID].MyChar;
else
	ID=Items[ID].ID_0;
	Return[i]==Items[ID].MyChar;

Nie testowałem tego i zapewne ma sporo błędów
ponieważ problem twój jest nieco rozwinięty
dlatego wymagałby większej ilości kodu niż
jakieś 4/5 linijek a ponad tę ilość jestem
strasznie leniwy i nie chce mi się tego robić :)

Osobiście zachował... zachowuję się tak jak twój
nauczyciel, ponieważ to najlepszy sposób na nauke

ale nie martw się już nie nauczam :)
więc nie trafiłeś na swojego nauczyciela xD

Mniej więcej masz tu kilka podpowiedzi :x...
wystarczy uzupełnić brakujący kod i poprawić
parę błędów które pewnie są...

Edit:

#include <iostream>

struct ItemST{		// Seksowna struktura <3
	short ID_0,		// ID do Vertexa jesli znak to 0
		  ID_1;		// ID do Vertexa jesli znak to 1

	char MyChar;	// Skopiowałem łączenia z twojego obrazka
}Item[8]={
	{1,3,'A'},		// pierwszy vertex <3
	{2,6,'B'},
	{3,7,'C'},
	{4,6,'D'},
	{5,0,'E'},
	{7,2,'F'},
	{7,5,'G'},
	{0,3,'H'},
};

int main()
{
	char String[255];	// tu masz przechowywany ciag 010101010
	char Return[255];	// tu masz ciag liter po przetworzeniu 0101
	
	std::cout<<" -= Max Size: 255 =- "<<std::endl;
	std::cout<<" .-= Enter String(0/1): ";std::cin>>String;

	int ID=0;			// ID obecnie wybranego vertexa na start ID 0
	int i=0;			// po prostu I <3

	while((String[i]=='1')||(String[i]=='0'))
	{
		switch(String[i])
		{
			case '1':
			Return[i] = Item[ID].MyChar;
			ID = Item[ID].ID_1;
				break;
			
			case '0':
			Return[i] = Item[ID].MyChar;
			ID = Item[ID].ID_0;
				break;
		}
		i++;
	}
	std::cout<<Return;

}

Hyba działa :3...
The Meow !...

Nie poprawiaj tego błędu ort. !

//Edit:
nic nie napisales przez cały dzień dlatego dałem ci na wszelki wypadek gotowca :)
i tak nie mam nic do roboty xD

1 użytkowników online, w tym zalogowanych: 0, gości: 1