הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 06-11-08, 00:13   # 11
SDF
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Sep 2006
מיקום: Negev
הודעות: 270

SDF לא מחובר  

לא ברור מכאן מה זה howmany.
ולמה הלולאה השלישית?

אני יכול לתת לך את הפתרון, השאלה אם זה מה שיעזור לך.
__________________
FreeBSD, a *nix operating system
  Reply With Quote
ישן 06-11-08, 00:15   # 12
Xinxy
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Feb 2008
הודעות: 259

Xinxy לא מחובר  

ציטוט:
נכתב במקור על ידי SDF צפה בהודעה
לא ברור מכאן מה זה howmany.
ולמה הלולאה השלישית?

אני יכול לתת לך את הפתרון, השאלה אם זה מה שיעזור לך.
עשיתי את howmany כדי שאני ידע כמה מילים מכיל מה שהמשתמש רשם לחיפוש במתריצה
והלולאה השלישית כדי לבדוק אם האות נמצאת - לא אני לא מצליח לחשוב על משהו אחר :\
  Reply With Quote
ישן 06-11-08, 00:17   # 13
SDF
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Sep 2006
מיקום: Negev
הודעות: 270

SDF לא מחובר  

לא אמרת שמכניסים מילה אחת?
__________________
FreeBSD, a *nix operating system
  Reply With Quote
ישן 06-11-08, 00:19   # 14
Xinxy
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Feb 2008
הודעות: 259

Xinxy לא מחובר  

ציטוט:
נכתב במקור על ידי SDF צפה בהודעה
לא אמרת שמכניסים מילה אחת?
אמ.. מילה אחת כמו lala :\

נראה לי שלא הסברתי טוב
עשיתי את howmany כדי שאני ידע כמה אותיות יש בדיוק במילה ואז לעשות עליה לולאה שתבדוק

עריכה:
אופס התכוונתי בהודעה הקודמת לכמה אותיות
  Reply With Quote
ישן 06-11-08, 00:27   # 15
SDF
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Sep 2006
מיקום: Negev
הודעות: 270

SDF לא מחובר  

אז אין צורך בפלוס אחד,
נניח ויש לך המילה ABA,
str[0] = A
str[1] = B
str[2] = A
סה"כ מילה בת 3 אותיות, כשהאינדקס האחרון הוא 2, אתה חורג שם מהגבול.

ובכל מקרה, הלולאה הפנימית (זאת עם הZ) בודקת כמה פעמים מופיעה אות ספציפית מהמטריצה
במחרוזת, מעבר לזה זה לא נותן לך כלום.

אני מציע דבר כזה:
שני לולאות שרצות על המטריצה. אינדקס שלישי שומר על האינדקס של המילה המבוקשת, ברגע שאתה
מוצא שהאות הנוכחית במטריצה שווה לאות הרשונה במחרוזת תתחיל לקדם את האינדקס של המילה,
אם אתה רואה שאין שווין לפני שאתה מגיע לסוף של המילה, אפס את האינדקס.
אם הגעת לסוף המילה בהצלחה, אז יופי טופי, ספור אותה.

אם לא היה ברור, הנה ההתחלה של הפונקציה לחיפוש מילה:
קוד:
int searchMatrix(char **mat, int x, int y, char * what)
{
	int length = strlen(what);
	int i, j, whatIndex = 0;
	int foundCounter = 0;
__________________
FreeBSD, a *nix operating system
  Reply With Quote
ישן 06-11-08, 00:43   # 16
Xinxy
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Feb 2008
הודעות: 259

Xinxy לא מחובר  

ציטוט:
נכתב במקור על ידי SDF צפה בהודעה
אז אין צורך בפלוס אחד,
נניח ויש לך המילה ABA,
str[0] = A
str[1] = B
str[2] = A
סה"כ מילה בת 3 אותיות, כשהאינדקס האחרון הוא 2, אתה חורג שם מהגבול.

ובכל מקרה, הלולאה הפנימית (זאת עם הZ) בודקת כמה פעמים מופיעה אות ספציפית מהמטריצה
במחרוזת, מעבר לזה זה לא נותן לך כלום.

אני מציע דבר כזה:
שני לולאות שרצות על המטריצה. אינדקס שלישי שומר על האינדקס של המילה המבוקשת, ברגע שאתה
מוצא שהאות הנוכחית במטריצה שווה לאות הרשונה במחרוזת תתחיל לקדם את האינדקס של המילה,
אם אתה רואה שאין שווין לפני שאתה מגיע לסוף של המילה, אפס את האינדקס.
אם הגעת לסוף המילה בהצלחה, אז יופי טופי, ספור אותה.

אם לא היה ברור, הנה ההתחלה של הפונקציה לחיפוש מילה:
קוד:
int searchMatrix(char **mat, int x, int y, char * what)
{
	int length = strlen(what);
	int i, j, whatIndex = 0;
	int foundCounter = 0;
בקשר ל+ זה הגיעה איכשהו למצב שאני צריך אותו, את זה דווקא אני דיי בטוח שעשיתי נכון
ואין הדבר הזה לא נקלט לי בשכל
אני הבנתי איך למצוא את המילה הראשונה
אבל אחרי שמצאתי - מה אני אמור לעשות? עוד לולאה אני לא חושב שתעזור לי
אמ.. ואני חושב שהלולאה השלישית היא דווקא עוזרת לי כי רק באמצעותה אפשר למצוא את המילים שיש מילה שהמשתמש רשם

אהה ולא השתמשתי בstrlen בגלל שלא למדנו ואנחנו יכולים להשתמש רק בפונקציות שלמדנו

וד"א אני מודה לך על העזרה אני מעריך את זה מאוד
  Reply With Quote
ישן 06-11-08, 00:50   # 17
SDF
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Sep 2006
מיקום: Negev
הודעות: 270

SDF לא מחובר  

אז תכתוב strlen משלך =)
קוד:
int strlen( char* st)
{
 int count = 0;
 for ( ; *st ; st++) count++;
 return count;
}
ה + 1 מיותר, אם ה
VS
לא זורק שגיאה, זה עוד לא אומר שזה נכון.
__________________
FreeBSD, a *nix operating system

Last edited by SDF; 06-11-08 at 00:59.. סיבה: טעות בקוד
  Reply With Quote
ישן 06-11-08, 00:56   # 18
Xinxy
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Feb 2008
הודעות: 259

Xinxy לא מחובר  

ציטוט:
נכתב במקור על ידי SDF צפה בהודעה
אז תכתוב strlen משלך =)
קוד:
int strlen( char* st)
{
 int count = 0;
 while (*ch) count++;
 return count;
}
ה + 1 מיותר, אם ה
VS
לא זורק שגיאה, זה עוד לא אומר שזה נכון.
אז זהו שגם בפונקציות אנחנו לא יכולים להשתמש כי לא למדנו
וד"א זה לא קשור לVS
הנה זה מה שעשיתי
קוד:
 for(i = 0; i < 6; i++)
 {
       if(forCheck[i] > 6)
       {
               howmany = i + 1;
       }
 }
ואז בלולאה השלישית מה שעשיתי היה שאם הHOWMANY שווה ל4 אז שזה יעשה קטן מחמש כי רק אז זה יבדוק לי 4
(אני לא יכול להשתמש גם בגדול ושווה כי לא למדנו)
  Reply With Quote
ישן 06-11-08, 02:10   # 19
SDF
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Sep 2006
מיקום: Negev
הודעות: 270

SDF לא מחובר  

אתה לומד בתיכון?
מה ז"א לא יכול להשתמש כי לא למדתם?
למה אני לא יכול לפתור בעיה במטמטיקה עם אינטגרל כי לא למדנו?

גדול שווה זה כבר מוגזם, strlen אני מבין, סבבה, אבל גדול שווה?
__________________
FreeBSD, a *nix operating system
  Reply With Quote
ישן 06-11-08, 07:39   # 20
Jerba
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Jun 2007
הודעות: 300

Jerba לא מחובר  

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

לא למדת דמיון , תפתור בלי דמיון
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 22:20.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ