פורסם 2009 במאי 116 שנים אני לא מצליח לפתור את השאלה הבאה: בנה מטריצה 5X5 והחלף את השורות בעמודות.בניתי הדפסתי אבל אני לא מוצא דרך להחליף את השורות והעמודות חוץ מאולי להכניס את השורה ואת העמודה למערך.
פורסם 2009 במאי 116 שנים מה הכוונה הבחלף שורות בעמודות? אני מנחש שאתה לא מתכוון פשוט ללהשתמש באינדקסים הפוךאז אם הכוונה היא להחליף את הערכים בין התאים במטריצה סימטרית אז אתה יכול להתשמש כזהfor (i=0 , i<MAX-1 , i++) for (j=i+1 , J<MAX , J++) Temp=Arr[i,i+j] Arr[i,i+j]=Arr[i,i+j] Arr[i+j,i]=tempוכן לא רשמתי "תחבירית" נכון.
פורסם 2009 במאי 216 שנים מחבר לא הבנתי.יש לי בעיה עם המטריצה שאני לא מבין איך זה עובד ואיך הלסתכל על זה יש אפשרות שאולי אתה תעלה איור של מטריצה ותסביר לי על מה ואיך להסתכל.אני חושב שזו הסיבה שאני לא מבין איך למצוא גם את האלכסון שהשני ועוד הרבה דברים..
פורסם 2009 במאי 216 שנים בשביל להחליף בין השורות והעמודות של מטריצה (מה שנקרא שחלוף) צריך להעביר כל כל איבר במקום ה-[a[i,j למקום ה-[a[j,i.לכן, הפתרון צריך להיות מבוסס על משהו כזה:for (int i = 0 ; i < 5 ; ++i) { for (int j = 0 ; j < 5 ; ++j) { int temp = arr[i,j]; arr[i,j] = arr[j,i]; arr[j,i] = temp; }}אבל מה? הפתרון הזה בעייתי - כי נעבור על כל זוג תאים (i,j ו-j,i) פעמיים, ככה שבסופו של דבר לא עושים כלום.לכן צריך לדאוג לעבור רק על התאים שמעל (או מתחת) לאלכסון הראשי, כלומר:for (int i = 0 ; i < 5 ; ++i) { for (int j = i+1 ; j < 5 ; ++j) { int temp = arr[i,j]; arr[i,j] = arr[j,i]; arr[j,i] = temp; }}ככה דואגים שכל זוג תאים יוחלף בדיוק פעם אחת.
פורסם 2009 במאי 216 שנים חחח אחרי כל השנים הללו אני שמח שאני עדין בכיוון ;Dאבל נראה לי שמה שרשמתי היה יותר מדויק, מיכוון שאין לך מה לרוץ על האיבר האחרון באלכסון לכן I קטן מ4 (למרות שזה יפול בשורה הבאה)כמו כן או שאתה עושה J++ או שאתה עושה מוסיף ל J אחד בהתחלה אבל לא ביחד ...לא הבנתי.יש לי בעיה עם המטריצה שאני לא מבין איך זה עובד ואיך הלסתכל על זה יש אפשרות שאולי אתה תעלה איור של מטריצה ותסביר לי על מה ואיך להסתכל.אני חושב שזו הסיבה שאני לא מבין איך למצוא גם את האלכסון שהשני ועוד הרבה דברים..לגבי הסבר, בעצם אתה הולך על האלכסון של המטרציה משחלף שורה בעמודה ומסתכל על המינור הבאאו במילים אחרות אתה לוקח את השורה הראשונה ומחליף ערכים עם העמודה הראשונה עכשיו מסתכל על המטריצה בלי השורה והעמודה הראשונה ועושה אותו דבר.זה יכול להשמע מסובך אם אתה לא לוקח דף ומקשקש את הבעיה על הדף ( כך אני הייתי עושה )אחרי כמה דוגמאות ופתרונות אתה כבר תחשוב על דרך להפוך מטריצה הזאת למטריצה שניה.
פורסם 2009 במאי 216 שנים אבל נראה לי שמה שרשמתי היה יותר מדויק, מיכוון שאין לך מה לרוץ על האיבר האחרון באלכסון לכן I קטן מ4 (למרות שזה יפול בשורה הבאה)הבדל זניח.כמו כן או שאתה עושה J++ או שאתה עושה מוסיף ל J אחד בהתחלה אבל לא ביחד ...מה?
פורסם 2009 במאי 216 שנים מחבר שניצל יש לי בעיה קטנה ואולי מישהו יוכל לעזור לי.באיזה זוית ראייה להסתכל על דברים כאלה,אני ישר מאבד ריכוז או שאני לא מצליח ואז כשאני רואה את הפתרון אני צוחק על עצמי ולא מבין איך לא ידעתי לפתור את זה.for (int i = 0; i < cols; i++) { for (int j = 0; j <rows ; j++) Console.Write(Mat[j,i] + " "); Console.WriteLine(); }מה אתה אומר על פתרון כזה?
פורסם 2009 במאי 216 שנים מחבר הפתרון שהראתי לך הוא של חבר,אני מצייר מטריצה מכניס ערכים עושה טבלת מעקב ולא מצליחיכול להיות שאני מסתכל על זה לא נכון.יש אפשרות שתעשה טבלת מעקב או איור שמסביר את זה.אני פשוט לא מבין אני מיואש[br]פורסם בתאריך: 2.05.2009 בשעה 15:36:30אני חושב חושב מנסה ולא מבין איך זה הופך את זה זה מבלבל אותי
פורסם 2009 במאי 216 שנים תחשוב על זה כך:for (int i = 0; i < cols; i++) for (int j = 0; j <rows ; j++) פעולהזה הבסיס, כך אתה עובר על כל האיבר המתריצה.*במקרה שלנו מספר השורות שווה למספר העמודותעכשיו מה שאתה צריך לעשות זה להחליף מקום, בין שורות לעמודות, כלומר להפוך A[i,J] -> A[J,I] xיש כמה דרכים לעשות את זה, (אני אתן לך אחת יותר פשוטה להבנה) מה שהכי חשוב זה להבין שאתה לא באמת צריך לרוץ על כל המטריצה כי אם החלפת את איבר 1,2 אתה לא צריך להחליף את איבר 2,1 (כי 1,2 הוחלף כבר עם 2,1)...לכן אתה מסתכל על איזה איברים אתה כן צריך לעשות את החלפה ותראה שאלו רק האיברים שמתחת לאלכסון.כלומר איבר 1,1 ואיבר 2,2 וכו... זה לא משנה אם אתה מחליף עמודה בשורה הם נשארים במקום והאחרים כל אלו שמתחת מתחלפים אם אלו שמעל (כמו שאמרנו 1,2 -> 2,1 ) כלומר נתחיל לרוץ משורה שניה (I=1for (int i = 1; i < MAX; i++) for (int j = 0; j <MAX ; j++) פעולהונחליף את כל התאים שמתחת לאלכסון, זה אומר שבשורה השניה (I=1) יש רק תא אחד מתחת לאלכסון (תספור)בשלישית(I=2) יש 2 תאים, כלומר J=0,1 או במילים אחרות J>Ifor (int i = 1; i < MAX; i++) for (int j = 0; j < i ; j++) פעולהעכשיו רק נשאר לך לכתוב את הפעולה שתיהיה, להלחליף את האיבר שמעל האלכסון אם זה מתחתTEMP=Arr[i,j]Arr[i,j]=Arr[j,i]Arr[j,i]=tempאין יותר מובן מזה.
פורסם 2009 במאי 216 שנים או קי סבבה אתה בכיתה י"א לחוץ טילים מהבגרות ואתה נתקע בדבר הכי פשוט שיש:פשוט תבנה שני מערכים דו מימדיים (מטריצות) אחת היא המקורית. בשניה אתה פשוט מבצע עליה לולאה כפולה של 5 (יענו שתי לולאות FOR על שני משתנים שונים) ואז אתה כותב: [b[i,j]=a[j,i .פשוט מאוד לא?נ.בI וJ הם המשתנים של הלולאות פור.A מצערך מקורי.B מערך משני אליו אתה מכניס בסדר הפוך את טורים והשורות.
פורסם 2009 במאי 216 שנים מחבר using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication14{ class Program { static void Main(string[] args) { int[,] Mat = new int[5, 5]; int rows = Mat.GetLength(0); int cols = Mat.GetLength(1); for (int i = 0; i < rows; i++) for (int j = 0; j < cols; j++) Mat[i, j] = int.Parse(Console.ReadLine()); for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) Console.Write(Mat[i, j] + " "); Console.WriteLine(); } for (int i = 0; i < cols; i++) { for (int j = 0; j < rows; j++) Console.Write(Mat[j, i] + " "); Console.WriteLine(); } } }}אני לא מבין איך זה עובד.אני מצייר על מחברת מטריצה 5X5 מכניס ערכים לכל אינדקס ואז עובר על הקוד.הקטע הוא שאני לא מבין איך זה הופך את זה,אני מנסה להסתכל בקוד לראות איך זה הופך אבל לא מבין.[br]פורסם בתאריך: 2.05.2009 בשעה 16:09:36אני בכיתה י' יום שני יש לי מתכונת וזה הורס לי הכול עם אני לא מבין את המטריצה.אני מתוסכל ברמות אטומיות.אני מנסה להסביר לשניצל מה אני לא מבין אבל פשוט קשה להסביר.אני חוזר על קוד שוב ושוב מצייר את המטריצה מנסה לראות איך זה הופך אבל לא מבין למען השם[br]פורסם בתאריך: 2.05.2009 בשעה 16:11:57הבנתי את זה סוף סוף.פשוט הפרנציפ מעצבן כל פעם להסתכל על הנקודות זה משגע את הבנאדם
פורסם 2009 במאי 216 שנים amir85, תשתמש בטג קוד (כפתור # למעלה) במקום להצמיד לשמאל, כדי שהקוד שלך ייראה נורמלי.omfir, תסתכל על הקוד הזה: for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) Console.Write(Mat[i, j] + " "); Console.WriteLine(); } for (int j = 0; j < cols; j++) { for (int i = 0; i < rows; i++) Console.Write(Mat[i,j] + " "); Console.WriteLine(); }(זה אותו קוד כמו שלך, רק החלפתי בין השמות של i ו-j בחלק השני)החלק הראשון מדפיס את המטריצה כמו שהיא.החלק השני מדפיס את המטריצה המשוחלפת.שים לב שכל ההבדל בין החלקים הוא הסדר של הלולאות - בחלק הראשון עוברים קודם כל על השורות (i), ובכל שורה עוברים על כל העמודות. בחלק השני עוברים קודם כל על העמודות (j), ובכל עמודה עוברים על כל השורות.
פורסם 2009 במאי 216 שנים מחבר הבנתי. אבל הנה שאלה קשה שלא הצלחתי לפתור12. כתוב תוכנית, אשר א. קולטת ציוני 5 בחינות ל40 תלמידים. ב. חשב והדפס ממוצע כתתי לכל מקצוע ומקצוע. ג. חשב והדפס את הציון הממוצע שקבל כל תלמיד. ד. מצא את הממוצע המקסימאלי של כל מקצוע וכל תלמיד, וציין באלו מספרי מקצועות הגענו לממוצע מכסימאלי, עשה זאת גם לגבי הממוצע המכסימאלי לתלמיד, ורשום את מספרי התלמידים שקבלו ממוצע זה.איפה אני שם את המקצועות ואיפה את התלמידים זה מבלבל.שניל אני מאוד מעריך את יוזמתך לעזור לי! וגם לאמיר ולכל החברה שעוזרים.תודה רבה מקרב לב
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.