ABA


"זקוק לעזרה עם תרגיל במטריצות בשפת C"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #10262 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 10262
ירוק-בנשמה
חבר מתאריך 22.4.02
1027 הודעות
   12:47   09.02.11   
אל הפורום  
  זקוק לעזרה עם תרגיל במטריצות בשפת C  
 
   המטרה:
כתבו תוכנית שקולטת לתוך מטריצה בגודל 6x6 מספרים שלמים חיוביים קטנים מ-20. אם הוקש מספר שלא בטווח הזה, חזרו וקלטו אותו שוב עד שיענה לתנאים המצויינים. על התוכנית להציג על המסך את מיקום כל תא, שערכי כל התאים שמסביבו הם 0.


אני חושב שהבנתי איך אני אמור לבדוק את התנאי - לחפש בלולאה מתי אחד האיברים לא שווה לאפס ואז לראות אם האיברים שמקיפים אותו כן שווים ואז לזכור את המיקום שלו אבל יש לי בעיה להביא את זה לכתיבה....


https://rotter.name/User_files/nor/4d5270fa6eca0f05.txt

תודה...


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  קודם כל בלולאה הראשונה חסר לך את התנאי של ה20 שדיברת חומוס 09.02.11 19:27 1
     קבל אחי תקינתי את זה וזה עדיין לא עובד לי.... ירוק-בנשמה 10.02.11 12:10 2
         מכתב חומוס 10.02.11 14:37 3
             לגבי התרגיל הראשון ירוק-בנשמה 10.02.11 16:39 4
                 אם מותר לך להשתמש בפונקציות ספריה זה ממש פשוט ShocKi  10.02.11 22:21 5
                 מכתב חומוס 10.02.11 23:36 6

       
חומוס לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 22.4.02
13069 הודעות, 5 פידבק
   19:27   09.02.11   
אל הפורום  
  1. קודם כל בלולאה הראשונה חסר לך את התנאי של ה20 שדיברת  
בתגובה להודעה מספר 0
 
ערכתי לאחרונה בתאריך 09.02.11 בשעה 19:39 בברכה, חומוס
 
עליו
חסר לך משהו בסגנון:

while(true)
 {
  if(הערך גדול מ0, קטן מ20 ושלם)
  {
----הכנסה למטריצה
  }

 }

בקשר לתנאי השני:
א) לא הבנתי למה הwhile, אתה הרי בודק כל פעם תא אחד
ב) שים לב שבשורה שרשמת אתה לא בודק ערכים שכנים אלא בודק את המשתנים של הלולאה.
אתה אמור לבדוק אם כל שכן שווה ל0, למשל עבור שכן אחד:


if mat[i-1][j-1]==0 ....

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

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ירוק-בנשמה
חבר מתאריך 22.4.02
1027 הודעות
   12:10   10.02.11   
אל הפורום  
  2. קבל אחי תקינתי את זה וזה עדיין לא עובד לי....  
בתגובה להודעה מספר 1
 
   מטריצה:

https://rotter.name/User_files/nor/4d53b8623ba6e9ab.txt


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

קטע סטרינג:

https://rotter.name/User_files/nor/4d53b96d3d6e341a.txt


תודה!


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
חומוס לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 22.4.02
13069 הודעות, 5 פידבק
   14:37   10.02.11   
אל הפורום  
  3. מכתב  
בתגובה להודעה מספר 2
 
ערכתי לאחרונה בתאריך 10.02.11 בשעה 14:57 בברכה, חומוס
 
עכשיו כשאני חושב על זה, משהו לא מסתדר לי בהגדרה של התרגיל:

כתבו תוכנית שקולטת לתוך מטריצה בגודל 6x6 מספרים שלמים חיוביים קטנים מ-20. אם הוקש מספר שלא בטווח הזה, חזרו וקלטו אותו שוב עד שיענה לתנאים המצויינים. על התוכנית להציג על המסך את מיקום כל תא, שערכי כל התאים שמסביבו הם 0

אם מראש אי אפשר להכניס 0 (מספר ניטרלי) אז איך התנאי של השכנים יכול
להתקיים (הרי מראש אף אחד מהם לא יהיה שווה ל0 - לפי התנאי)

ראיתי שגם בprintf,כשיש שגיאה הדפסת שינסו להכניס שוב מספר בין 1 ל20.

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

או שפשוט אני לא הבנתי את התרגיל


בקשר לתרגיל השני, מה שנשאל בIF זה:
"האם התו i במחרוזת הראשונה שונה מכל התווים האחרים במחרוזת השנייה"

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

מה שקורה בתוך הסוגריים החיצוניים זה שיש בדיקה (בכל סוגריים פנימיים שלהם) האם i שווה לאחד מהתווים במחרוזת השנייה. במידה והוא יהיה שווה באחד מזוגות הסוגריים הפנימיים אז ערך הסוגריים החיצוניים יהיה TRUE (כי TRUE או משהו אחר תמיד ייתן TRUE).
לבסוף הסימן קריאה ישלול את הTRUE ויהפוך את כל לולאת הIF לFALSE.

המצב היחיד בו לולאה הIF תתן TRUE היא אם כל הסוגריים הפנימיים יתנו FALSE כי אז ייווצר מצב של FALSE || FALSE || FALSE ... שייתן FALSE
ואז הסימן קריאה ישלול את הFALSE והIF יתן TRUE

מקווה שהבנת ... תגיד לי אם לא אני אנסה לפשט את זה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ירוק-בנשמה
חבר מתאריך 22.4.02
1027 הודעות
   16:39   10.02.11   
אל הפורום  
  4. לגבי התרגיל הראשון  
בתגובה להודעה מספר 3
 
   בוא פשוט נניח שמדובר ב-1 ולא באפס כיזה לא ממש עקרוני....

לגבי השאלה השניה, לא כ"כ הבנתי...

זה התרגיל:
כתבו תוכנית שקולטת מחרוזת באורך מקסימלי של 40 תוויום ובנוסף 5 תווים מהמשתמש.

התוכנית תציג על המסך את המחרוזת ללא 5 התוים שנקלטו.

קלטתי שתי מחרוזות, אני משווה את הראשונה מול השניה בלולאה ורוצה לבטל את השניה במידה והיא מופיעה בראשונה ולהדפיס את המחרוזת הראשונה


תודה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ShocKi  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 19.3.02
20171 הודעות, 10 פידבק
   22:21   10.02.11   
אל הפורום  
  5. אם מותר לך להשתמש בפונקציות ספריה זה ממש פשוט  
בתגובה להודעה מספר 4
 
   בעזרת הפונקציה strtok ראה את הפונקציה הזאת ואת מה שהיא עושה בלינק:

http://www.elook.org/programming/c/strtok.html

התרגיל נפתר מאוד מהר בעזרת זה.


קאש-באק ישראלי: https://www.cashback.co.il/?uref=33330
קאשבק לAsos ואמזון דרך Ebates: https://goo.gl/MX87Y7 - מקבלים 10$ לאחר שימוש ראשון.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
חומוס לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 22.4.02
13069 הודעות, 5 פידבק
   23:36   10.02.11   
אל הפורום  
  6. מכתב  
בתגובה להודעה מספר 4
 
אם אתה מניח שמדובר ב1 אז אף מיקום לא יענה בחיים על ההגדרה
"שערכי כל התאים שמסביבו הם 0" ואין טעם בכלל לבדוק את זה

אני לא סתם מציין את זה, כי זה קריטי לתרגיל


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net