ABA


"שאלה בסיסית בC++, בנוגע למטריצות - אשמח לעזרה!"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #21079 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 21079
SMangam 
חבר מתאריך 27.10.05
270 הודעות
   21:09   15.01.15   
אל הפורום  
  שאלה בסיסית בC++, בנוגע למטריצות - אשמח לעזרה!  
 
   אהלן חברים,
יש לי שאלה בנוגע למטריצות...אני שנה א' במדעי המחשב (לומד באקדמית תל אביב יפו) ועכשיו התחלנו מערכים דו מימדיים.

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

הגדרתי את המטריצה, אבל אני לא יודע איך להזין לתוכה את הנתונים.
הגודל של המטריצה הוא מקסימום 100 שורות ומקסימום 256 עמודות.
בכל ירידת שורה (כלומר לחיצת אנטר \n) זה אמור לרדת שורה במטריצה.
אם יש 2 אנטרים רצוף (כלומר שורה ריקה) הוא מפסיק את ההזנות.
ניסיתי איזה שעה לכתוב את זה ואני פשוט לא מצליח.
מישהו יכול לתת איזה טיפ? לכתוב משהו ולהסביר אותו?

זה מה שכתבתי:

 

char input;
int i;
int j;
char matrix;
for (i = 0; i < 3; i++)
{
for (j = 0; j < MAX_COL; j++)
{
while (input != '\n')
{

}
}

}
}



סוג של נתקעתי, לא הבנתי איך אני מזין את הדבר הזה.

תודה!


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

  האשכול     מחבר     תאריך כתיבה     מספר  
  מכתב Dimona 15.01.15 21:35 1
     תודה על התגובה אחי, SMangam  15.01.15 21:37 2
         מכתב Dimona 15.01.15 21:38 3
             אז בעצם לעשות - SMangam  15.01.15 21:40 4
                 מכתב Dimona 15.01.15 21:44 5
                     תודה, אנסה אחי! SMangam  15.01.15 21:44 6
         יש כל מיני דרכים לעשות את זה.. ShocKi  15.01.15 21:47 7
             אני מנסה אבל לא כל כך מצליח, SMangam  15.01.15 21:50 8
                 אני ינסה להסביר מה הוא אמר nimroder 17.01.15 03:34 9
                     מעולה, תודה!!! SMangam  17.01.15 03:35 10

       
Dimona לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 28.11.10
1910 הודעות, 1 פידבק
   21:35   15.01.15   
אל הפורום  
  1. מכתב  
בתגובה להודעה מספר 0
 
   תעשה

cin>> matrix במקום i במקום j
זה פשוט לא נותן לי להציג סוגריים



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
SMangam 
חבר מתאריך 27.10.05
270 הודעות
   21:37   15.01.15   
אל הפורום  
  2. תודה על התגובה אחי,  
בתגובה להודעה מספר 1
 
   אבל איך אני עושה שבכל אנטר הוא ירד לשורה הבאה? כי הוא יכול פשוט לשמור את זה.
ואיך אני עושה שאחרי 2 אנטרים הוא יוצא מהלולאה בכלל?

תודה!


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Dimona לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 28.11.10
1910 הודעות, 1 פידבק
   21:38   15.01.15   
אל הפורום  
  3. מכתב  
בתגובה להודעה מספר 2
 
   אני הייתי עושה

do

while

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
SMangam 
חבר מתאריך 27.10.05
270 הודעות
   21:40   15.01.15   
אל הפורום  
  4. אז בעצם לעשות -  
בתגובה להודעה מספר 3
 
  
 

while (matrix != '\n')
cin >> matrix;

ככה?



                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Dimona לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 28.11.10
1910 הודעות, 1 פידבק
   21:44   15.01.15   
אל הפורום  
  5. מכתב  
בתגובה להודעה מספר 4
 
   אתה יכול לנסות , כל הקטע פה שתבין איך כל הדבר הזה עובד.
מקסימום אם נתקעת תשלח הודעה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
SMangam 
חבר מתאריך 27.10.05
270 הודעות
   21:44   15.01.15   
אל הפורום  
  6. תודה, אנסה אחי!  
בתגובה להודעה מספר 5
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ShocKi  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 19.3.02
20171 הודעות, 10 פידבק
   21:47   15.01.15   
אל הפורום  
  7. יש כל מיני דרכים לעשות את זה..  
בתגובה להודעה מספר 2
 
   אתה הרי ניגש למטריצה במקום i,j... אז כשקיבלת אנטר ראשון תעשה i++ ככה אתה תרד שורה. בנוסף, תגדיר משתנה flag שאם קראת אנטר אז flag=1, בכל קריאה של תו אחר תציב flag=0.

כך, שאם flag=1 וגם התו שאתה קורא כרגע הוא אנטר, אז זה אנטר שני ולכן אתה צריך לצאת.

זה פחות או יותר הלוגיקה, אתה צריך לכתוב את זה רק בצורה נכונה.

טכנית במקום לעשות הצבות ל flag אפשר לעשות את זה גם עם מודולו 2 אבל זה יותר בשביל האלגנטיות.


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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
SMangam 
חבר מתאריך 27.10.05
270 הודעות
   21:50   15.01.15   
אל הפורום  
  8. אני מנסה אבל לא כל כך מצליח,  
בתגובה להודעה מספר 7
 
   האם אני צריך לעשות בפור הראשון את השורות ובפור השני את הטורים? או להפך?
ויש מצב שאתה כותב לי רגע את מה שהסברת? כי לא כ"כ הבנתי את זה.
(הבנתי את הרעיון הכללי אבל אין לי שמץ של מושג איך לכתוב את זה...)

תודה רבה חבר.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
nimroder לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 25.9.09
8557 הודעות, 4 פידבק
   03:34   17.01.15   
אל הפורום  
  9. אני ינסה להסביר מה הוא אמר  
בתגובה להודעה מספר 8
 
   אני ארשום לך בפסאדו קוד
נגדיר:
flag = false; נעביר אותו ל true אם קיבלנו לרדת שורה פעם אחת
1. רוץ על I
1.1 רוץ על J
1.1.1 שורת הקליטה
1.1.2 אם הקלט == n\
1.1.2.1 אם flag == true
1.1.1.2.1 צא
1.1.2.2 flag = true
1.1.2.3 I++
1.1.3 אחרת
1.1.3.1 flag = false
1.1.3.2 תבצע פה מה שאתה צריך

ככה אתה בעצם בודק אם יש לך פעמיים רצוף ירידת שורה

אתה יכול גם להשתמש בwhile ובפלאג ואז כל פעם לקדם את i ו j מתי שצריך...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
SMangam 
חבר מתאריך 27.10.05
270 הודעות
   03:35   17.01.15   
אל הפורום  
  10. מעולה, תודה!!!  
בתגובה להודעה מספר 9
 
  


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

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

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



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