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, botów: 0