נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: מכונת מצבים בשפת c

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
aharondj
משתמש מתחיל
משתמש מתחיל
סמל אישי

הצטרף / הצטרפה: 12 June 2007
מדינה: Israel
משתמש: מנותק/ת
הודעות: 6
נשלח בתאריך: 13 October 2007 בשעה 20:16 | IP רשוּם
ציטוט aharondj

בעה"י

שלום חברים, אני מחפש הסבר בעברית על בניית מכונת מצבים בשפת c.

תודה ושבועה טוב

חזרה לתחילת העמוד הצג את כרטיס החבר של aharondj חפש הודעות אחרות של aharondj בקר בדף הבית של aharondj
 
אלצ'קו
אחראי פורומים
אחראי פורומים
סמל אישי
ג2ר פ33תי

הצטרף / הצטרפה: 20 January 2006
משתמש: מנותק/ת
הודעות: 609
נשלח בתאריך: 13 October 2007 בשעה 23:58 | IP רשוּם
ציטוט אלצ'קו

מכונת מצבים, באופן הכי בסיסי, היא אוטומט סופי דטרמיניסטי.
ומה זה בעצם? רשימת מצבים, מצב התחלתי, רשימת מצבים "מקבלים", רשימת קלטים, ופונקציית מעבר מהקלטים למצבים.
ומה זה בעצם? טבלה שבה הטורים הם קלטים והשורות הן מצבים. את המצבים המקבלים סמן באיזו דרך שבא לך, וכדי לפשט תגדיר את המצב הראשון כמצב ההתחלתי.
איך קוראים לטבלה ב-C? מערך דו-מימדי.

בהצלחה.
חזרה לתחילת העמוד הצג את כרטיס החבר של אלצ'קו חפש הודעות אחרות של אלצ'קו
 
aharondj
משתמש מתחיל
משתמש מתחיל
סמל אישי

הצטרף / הצטרפה: 12 June 2007
מדינה: Israel
משתמש: מנותק/ת
הודעות: 6
נשלח בתאריך: 16 October 2007 בשעה 11:09 | IP רשוּם
ציטוט aharondj

שלום,

תודה רבה. אך אני צריך הסבר קצת יותר פרטני ותכני, כלומר איך מגדירים מכונת מצבים בשפת c. אם אפשר דוגמא קטנה ופשוטה על התבנית התכנית של מכונת המצבים.

תודה

חזרה לתחילת העמוד הצג את כרטיס החבר של aharondj חפש הודעות אחרות של aharondj בקר בדף הבית של aharondj
 
צחי@
משתמש חבר
משתמש חבר


הצטרף / הצטרפה: 02 January 2007
מדינה: Israel
משתמש: מנותק/ת
הודעות: 209
נשלח בתאריך: 16 October 2007 בשעה 13:08 | IP רשוּם
ציטוט צחי@

לדוגמא, אוטומט שבודק האם הרצף 110 קיים בתוך מספר בינארי:

קוד:

#include <stdio.h>

int main()
{
 int transitionTable[3][2] = {
//input: 0 1
/* q0 */{0,1},
/* q1 */{0,2},
/* q2 */{3,1}
 };

 char buf[256];

 printf("Please enter a binary number: ");

 scanf("%s", buf);

 int state = 0; //initial state
 int value;
    char* pChar = buf;
 while (state != 3 && *pChar != '\0')
 {
  value = (int)(*pChar - '0'); //convert the char into an int valued 0 or 1

  if (value < 0 || value > 1)
  {
   printf("Number must be binary !");
   return 0;
  }

  state = transitionTable[state][value]; //state transition
  pChar++;
 }

 if (state == 3)
 {
  printf("The sequence 110 was found in the binary number.\n");
 }
 else
 {
  printf("The sequence 110 was NOT found in the binary number.\n");
 }

 return 0;
}

חזרה לתחילת העמוד הצג את כרטיס החבר של צחי@ חפש הודעות אחרות של צחי@ בקר בדף הבית של צחי@
 
אלצ'קו
אחראי פורומים
אחראי פורומים
סמל אישי
ג2ר פ33תי

הצטרף / הצטרפה: 20 January 2006
משתמש: מנותק/ת
הודעות: 609
נשלח בתאריך: 16 October 2007 בשעה 19:55 | IP רשוּם
ציטוט אלצ'קו

aharondj כתב:

שלום,

תודה רבה. אך אני צריך הסבר קצת יותר פרטני ותכני, כלומר איך מגדירים מכונת מצבים בשפת c. אם אפשר דוגמא קטנה ופשוטה על התבנית התכנית של מכונת המצבים.

תודה



על מה אתה צריך הסבר טכני? אינך יודע מהו מערך? אתה רוצה שאסביר לך איך כותבים פונקציה?
חזרה לתחילת העמוד הצג את כרטיס החבר של אלצ'קו חפש הודעות אחרות של אלצ'קו
 
aharondj
משתמש מתחיל
משתמש מתחיל
סמל אישי

הצטרף / הצטרפה: 12 June 2007
מדינה: Israel
משתמש: מנותק/ת
הודעות: 6
נשלח בתאריך: 16 October 2007 בשעה 22:47 | IP רשוּם
ציטוט aharondj

שלום צחי, תודה רבה.

אכן הייתי צריך דוגמת המחשה.

חזרה לתחילת העמוד הצג את כרטיס החבר של aharondj חפש הודעות אחרות של aharondj בקר בדף הבית של aharondj
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

קפיצה לפורום
אינך יכול/ה לשלוח נושאים חדשים בפורום זה
אינך יכול/ה להגיב לנושאים בפורום זה
אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה
אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה
אינך יכול/ה לצור סקרים בפורום זה
אינך יכול/ה להצביע בסקרים בפורום זה