נשלח בתאריך: 02 January 2007 בשעה 11:34 | | IP רשוּם
|
|
|
|
יש לי שאלה כזאת:
התוכנית קולטת טקסט מהמסך, סוף הקלט מזוהה על ידי התו '\n' (enter).
הטקסט מורכב מתווי ASCII של א"ב האנגלי (אותיות גדולות וקטנות), ספרות וקו תחתי (_). במידה והטקסט בנוי מתווים אחרים מהמוגדרים לעיל, התוכנית תוציא פלט שגיאה (error), לאחר סוף הקלט (ז"א התוכנית תמשיך לקרוא את הקלט עד תו הסיום '\n') ותסיים את התוכנית.
הנח כי לא תקבל קלט יותר מ-80 תווים (80 תווים לא כולל '\0').
לאחר שלב קליטת הקלט, יש לאפשר תפריט למשתמש (מבלי להציגו במסך) המכיל את 4 האופציות כדלהלן. לאחר בחירת האופציה התוכנית תבצע את דרישת האופציה ואח"כ התוכנית תסתיים.
בחירת אופציה 1, תתבצע ע"י קלט של התו '1', בחירת אופציה 2, תתבצע ע"י קלט של התו '2', וכך גם לגבי אופציות 3, 4 (enter ('\n') יסמל את סוף קליטת האופציה).
במידה והמשתמש מקיש קלט לא חוקי (לא אחת מהאופציות), התוכנית מדפיסה "no option", ומסתיימת (דוגמת קלט לא תקין: 13 , מאחר וצריך להכניס מספר בין 1 ל- 4 [כמובן שיהיה enter לאחר הכנסת האופציה]).
אופציה 1 – בדיקת דקדוק
התוכנית סורקת את הטקסט ומדפיסה את כל המילים (עם קו תחתי אחד בניהם) שלא שייכות ל"מילון".
להלן הגדרת "המילון":
- כל המילים המורכבות מאותיות גדולות בלבד שייכות למילון
- כל המילים המכילות אותיות קטנות (לפחות אות קטנה אחת) ובנוסף מסתיימות ברצף התווים ed או ing או s, שייכות למילון (ed, ing, s קטנות) --- אם המילה היא רק ing או s או ed אזי היא אינה שייכת למילון.
- המילים הבאות שייכות למילון (בתנאי שהמילה מורכבת מאותיות גדולות בלבד, או אותיות קטנות בלבד, אך לא צרוף של אותיות גדולות וקטנות):
oi
owe
oyou
ohe
oshe
oit
othey
owas
owere
oam
ois
oare
owill
obe
(דוגמה: sHe לא שייך למילון)
- מילים המורכבות מאותיות (גדולות או קטנות או קומבינציה של שניהם) ובתנאי שמצורפת ספרה או מספר ספרות יהיו שייכות למילון.
להלן דוגמאות של מילים השייכות למילון לפי הגדרה זו:
ab6, AB7y, AAAA8, 9iii7
כל שאר המילים, שלא עונות על הקריטריונים דלעיל, לא שייכות למילון.
מה שעשיתי בינתיים...
#include <iostream.h> #include <string.h>// contains function prototypes void main() {
int tab; char letter; int number; int index; if ( tab != letter || tab != number || tab !='_') { cout<<" error\n"; } else { cout<<"choose number 1 to 4\n";
}
if (number<1 || number>4) { cout<<"no option\n"; }
else if (number==1) { char word;// all word in the statement that I called him words char bigwords;//the big letters char words[81];//80 tabs plus NULL bigwords=strupr(words); for (index=0; index=NULL;index++) { if( word==bigwords) cout<<"error input\n"; } else if(word!=bigwords) { while (letter>96) { if(String.substr(1,String.length()-1) == "s" || String.substr(2,String.length()-2) == "ed" || String.substr(3,String.length()-3) == "ing"){ Dict.add(); } } char milim []={"i","we","she","you","he","it","they","was","were","am","is","are","will","be","I","YOU","SHE","HE",WE","IT", "THEY","WAS","WERE","AM","IS","ARE","WILL","BE"}
אודה לכל עזרה ולהבין איפה הטעויות שלי....
|