IOPanel

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

תיכנות פורום בנושאי תיכנות , פיתוח אתרים , שפות תיכנות , אפליקציות סלולר וטאבלטים.

תוכנה ומערכות הפעלה : תיכנות

עזרה בC# עם שני מערכים ~

היי, אנחנו לומדים C# עכשיו ,מדעי המחשב א' ואני תקוע בשאלה מסויימת עשיתי חצי ממנה. המטרה היא שיש שני מערכים ...
תגובה
 
קישור חוזר הגדרות אשכול אפשרויות הצגת נושא
ישן 13-10-09, 20:31   #1 (קישור ישיר)
IO Member
 
תאריך הצטרפות: Aug 2007
הודעות: 435
שלח הודעה דרך MSN אל YosiAT
ברירת מחדל עזרה בC# עם שני מערכים ~

היי,
אנחנו לומדים C# עכשיו ,מדעי המחשב א' ואני תקוע בשאלה מסויימת עשיתי חצי ממנה.
המטרה היא שיש שני מערכים -
מערך בשם action בגודל X
ומערך בשם result בגודל X/3

המטרה היא לעבור על המערך ACTION וליבדוק האם יש את מספר 1 או 2,אם יש את המספר 1 אז עושים את פעולת החיבור ואם 2 את פעולת החיסור על שני האיברים הבאים דוגמא -

מערך ACTION
2 31 11 1 -40 10

מערך RESULT
20 -30

עשיתי חצי מהתרגיל , אבל יש לי בעיה עם החצי השני כלומר
הגעתי למצב בו אני מגלה אם יש לי 2 או 1 ואני מבצע את הפעולה שצריך אבל אני לא מוצא דרך בה אוכל להכניס את התוצאה למערך RESULT.
זה מה שעשיתי לבינתיים-
קוד:
        static void Main(string[] args)
        {
            int[] action = { 2,31,11,1,-40,10 };
            int[] result = new int[action.Length/3];
            
            
            for (int i = 0; i < action.Length; i++)
            {
                if (action[i] == 2)
                {
                  
                    result[0] = action[i +1] - action[i+2];
                    
                }
                else
                {
                    if (action[i] == 1)
                    {
                        
                        result[1] = action[i + 1] + action[i + 2];

                    }
                }

             

            }

            Console.WriteLine(result[0]+" "+result[1]);
        }
כמו שאתם רואים ההשמה בresult[0] ובresult[1] היא לא כל כך חכמה במערך שיש לי פעמיים פעולת חיבור(1) או חיסור(2).
YosiAT לא מחובר   הגב עם ציטוט
ישן 13-10-09, 22:05   #2 (קישור ישיר)
IO Folding Team
 
סמל האישי של static
 
תאריך הצטרפות: Dec 2007
הודעות: 2,111
ברירת מחדל

לא ממש הבנתי את השאלה...
מה ביקשו לעשות פה ולמה התוצאות הם 20 ו- 30-
__________________
cpu: i7 920 D0| mobo: Gigabyte Ga-EX58-UD4P | mem: Mushkin Black Line 12GB 1600MHz 9-9-9-24 | gpu: PNY 670GTX | case: Antec P190 | psu: Antec neo-link 1200w |
hd: 1TB Samsung F1 + Intel SSD 120Gb 330 , 320GB WD AAKS | display: Samsung T240 24" | keyboard: Logitech Wave | mouse: Logitech MX Revolotion + G700 | Speakers: Logitech Z-5500
static לא מחובר   הגב עם ציטוט
ישן 13-10-09, 22:15   #3 (קישור ישיר)
IO Member
 
סמל האישי של eyali23
 
תאריך הצטרפות: Mar 2009
הודעות: 216
ברירת מחדל

איך הגעת ל 30- הבנתי אבל ל 20 לא הבנתי
עריכה קטנה תשתמש במערך עזר שלישי שישמור לך את כל המספרים שהם ב RESULT ומשם תעבוד על חיבור או חיסור

נערך לאחרונה על ידי eyali23, 13-10-09 בשעה 22:25.
eyali23 לא מחובר   הגב עם ציטוט
ישן 13-10-09, 22:46   #4 (קישור ישיר)
IO Pro
 
תאריך הצטרפות: Feb 2009
הודעות: 1,083
ברירת מחדל

יעזור אם תיתן את השאלה עצמה כמו שהיא כתובה, נבין יותר טוב.

וואי וואי כמה זמן לא ראיתי #C בכזאת רמה (בלי להעליב או משהו)
פעם אחרונה היה בסמסטר א' שנה שעברה בקורס מבוא :P
intenGer לא מחובר   הגב עם ציטוט
ישן 13-10-09, 22:47   #5 (קישור ישיר)
IO Member
 
תאריך הצטרפות: Aug 2007
הודעות: 435
שלח הודעה דרך MSN אל YosiAT
ברירת מחדל

eyali23 - המורה לא רוצה שנשתמש בעוד מערך,בעוד משתנה זה בסדר הינה השאלה כמו שהיא בספר -

נתונים שני מערכים : action בגודל x וresult בגודל x/3 עבור שלם x המתחלק ב-3.
במערך action מאוחסנות שלשות של מספרים שלמים.המספר הראשון בכל שלשלה מייצג קוד של פעולה המתבצעת על שני המספרים הבאים אחריו.
הקודים האפשררים:
המספר 1 מייצג את פעולת החיבור,המספר 2 מייצג את פעולת החיסור.

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

אז ניתנת דוגמא , וזה מה שכתבתי למעלה -
מערך action מכיל את הערכים הבאים
קוד:
2 31 11 1 -40 10
ומערך result מכיל את הערכים הבאים:
קוד:
20 -30
YosiAT לא מחובר   הגב עם ציטוט
ישן 13-10-09, 23:05   #6 (קישור ישיר)
IO Folding Team
 
סמל האישי של static
 
תאריך הצטרפות: Dec 2007
הודעות: 2,111
ברירת מחדל

עכשיו זה ברור יותר...
הפלט של ה 20 הוא בגלל שבתחילת המערך היה 2 ואז בוצעה פעולת חיסור ב 31-11

הפלט 30- זה בגלל שהופיע 1 ואז היה 40- + 10
__________________
cpu: i7 920 D0| mobo: Gigabyte Ga-EX58-UD4P | mem: Mushkin Black Line 12GB 1600MHz 9-9-9-24 | gpu: PNY 670GTX | case: Antec P190 | psu: Antec neo-link 1200w |
hd: 1TB Samsung F1 + Intel SSD 120Gb 330 , 320GB WD AAKS | display: Samsung T240 24" | keyboard: Logitech Wave | mouse: Logitech MX Revolotion + G700 | Speakers: Logitech Z-5500
static לא מחובר   הגב עם ציטוט
קישור פירסומי
ישן 13-10-09, 23:12   #7 (קישור ישיר)
IO Folding Team
 
סמל האישי של static
 
תאריך הצטרפות: Dec 2007
הודעות: 2,111
ברירת מחדל

קוד:
      static void Main(string[] args)
        {
            int[] action = { 2,31,11,1,-40,10 };
            int[] result = new int[action.Length/3];
            int j=0
            
            for (int i = 0; i < action.Length; i++)
            {
                if (action[i] == 2)
                {
                  
                    result[j] = action[i +1] - action[i+2];
                    j++
                    
                }
                else
                {
                    if (action[i] == 1)
                    {
                        
                        result[j] = action[i + 1] + action[i + 2];
                        j++
                    }
                }

             

            }

            Console.WriteLine(result[0]+" "+result[1]);
        }


תראה אם זה פותר לך את הבעיה, אין לי קומפיילר ליידי להריץ אבל ממה שהבנתי זאת היתה הבעיה שלך
__________________
cpu: i7 920 D0| mobo: Gigabyte Ga-EX58-UD4P | mem: Mushkin Black Line 12GB 1600MHz 9-9-9-24 | gpu: PNY 670GTX | case: Antec P190 | psu: Antec neo-link 1200w |
hd: 1TB Samsung F1 + Intel SSD 120Gb 330 , 320GB WD AAKS | display: Samsung T240 24" | keyboard: Logitech Wave | mouse: Logitech MX Revolotion + G700 | Speakers: Logitech Z-5500
static לא מחובר   הגב עם ציטוט
ישן 13-10-09, 23:19   #8 (קישור ישיר)
IO Member
 
תאריך הצטרפות: Aug 2007
הודעות: 435
שלח הודעה דרך MSN אל YosiAT
ברירת מחדל

תודה רבה
פועל כפי שצריך

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

עשיתי את זה עם שתי לולאות , איך אפשר לקצר את זה?
קוד:
            int[] a = { -1,2,-3,4 };
            int[] b = new int[a.Length];

            int count = 0;
            
            
            for (int i = 0; i < a.Length; i++)
            {
                if (a[i] < 0)
                {
                    b[count] = a[i];
                    count++;
                }
            }


            for (int i = 0; i < a.Length; i++)
            {
                if (a[i] > 0)
                {
                    b[count] = a[i];
                    count++;
                }
            }

נערך לאחרונה על ידי YosiAT, 13-10-09 בשעה 23:24.
YosiAT לא מחובר   הגב עם ציטוט
ישן 14-10-09, 17:13   #9 (קישור ישיר)
IO Pro
 
תאריך הצטרפות: Feb 2009
הודעות: 1,083
ברירת מחדל

לא חושב שאפשרי לקצר.

מה עם 0? אם אתה מקבל 0 אתה אמור להתעלם ממנו?

YosiAT, איזה מגמה אתה?
כמה יחידות מחשבים אתה עושה?
איזה כיתה?

מצטער על הפלישה לפרטיות
intenGer לא מחובר   הגב עם ציטוט
ישן 14-10-09, 18:41   #10 (קישור ישיר)
IO Member
 
תאריך הצטרפות: Aug 2007
הודעות: 435
שלח הודעה דרך MSN אל YosiAT
ברירת מחדל

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

זה לא ממש גלישה לפרטיות ככה שאין לי בעיה לענות
YosiAT לא מחובר   הגב עם ציטוט
ישן 14-10-09, 18:46   #11 (קישור ישיר)
IO Pro
 
תאריך הצטרפות: Feb 2009
הודעות: 1,083
ברירת מחדל

זה היה בצחוק
intenGer לא מחובר   הגב עם ציטוט
ישן 14-10-09, 19:37   #12 (קישור ישיר)
IO Folding Team
 
סמל האישי של static
 
תאריך הצטרפות: Dec 2007
הודעות: 2,111
ברירת מחדל

יוסי אתה יכול לקצר את הקוד ולהוריד לולאת FOR אחת אם פשוט תעשה IF ואז ELSE

for (int i = 0; i < a.Length; i++)
{
if (a[i] < 0)
{
b[count] = a[i];
count++;
}
else
{
b[count] = a[i];
count++;

}
}
__________________
cpu: i7 920 D0| mobo: Gigabyte Ga-EX58-UD4P | mem: Mushkin Black Line 12GB 1600MHz 9-9-9-24 | gpu: PNY 670GTX | case: Antec P190 | psu: Antec neo-link 1200w |
hd: 1TB Samsung F1 + Intel SSD 120Gb 330 , 320GB WD AAKS | display: Samsung T240 24" | keyboard: Logitech Wave | mouse: Logitech MX Revolotion + G700 | Speakers: Logitech Z-5500
static לא מחובר   הגב עם ציטוט
ישן 14-10-09, 20:28   #13 (קישור ישיר)
IO Pro
 
תאריך הצטרפות: Feb 2009
הודעות: 1,083
ברירת מחדל

אבל ככה אתה לא מסדר את השליליים לפני החיוביים כמו שמתבקש.
מה שעשית זה בדיוק כמו לעשות ככה:
for (i=0;i<a.Length;i++)
{
b[count]=a[i];
}

או כמו כל פונקציה מובנית אחרת שמעתיקה מערך אחד לאחר.
intenGer לא מחובר   הגב עם ציטוט
ישן 14-10-09, 21:14   #14 (קישור ישיר)
IO Addict
 
סמל האישי של ZipoX
 
תאריך הצטרפות: Sep 2007
הודעות: 3,046
שלח הודעה דרך MSN אל ZipoX
ברירת מחדל

האמת שסטטיק טעה (אם הבנתי את הבעיה נכון), אתה צריך להעתיק את השלילים ורק אחרי זה את החיוביים, מה שהוא עשה זה להעתיק או זה או זה ולא אחד אחרי השני ואת שניהם. בכל מקרה מה שאתה יכול לעשות בקיצור הביעה זה להוריד בכלל את count, אין צורך בו ואתה יכול לעשות
קוד:
b[i]=a[i]
מכיוון שה i נעלם אחרי הfor אז אין צורך גם לקחת בחשבון משתנה אחר, ומכיוון שה i עצמו משמש כ counter אין גם צורך לעשות אחד חדש
__________________
MAIN : E5200 | MUGEN II | DFI P35 T2L | OCZ Platimum 2X2G 800MHZ CL4 | CLUB3D HD4850 | ENERMAX LIBERTY 400W
HTPC : AMD Sampron 140 2.7GHZ@AMD ATHLON II 440X2 | GA MA785GM-US2H | Wintec AMPX 2G 800MHZ | O\B HD4200
ציטוט:
פורסם במקור על ידי raziel1981 צפה בהודעה
העולם הוא בית משוגעים, ואנחנו המחלקה שהכי טוב להיות בה בנסיבות הקיימות
ZipoX לא מחובר   הגב עם ציטוט
ישן 15-10-09, 0:07   #15 (קישור ישיר)
IO Pro
 
תאריך הצטרפות: Feb 2009
הודעות: 1,083
ברירת מחדל

צודק, פשוט לעשות for (i=0; i<a.Length;i++)
{
b[i]=a[i]
}

זה בעצם מה שסטטיק עשה
intenGer לא מחובר   הגב עם ציטוט
תגובה


הגדרות אשכול
אפשרויות הצגת נושא

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

vB code הינו פועל
סמיילים הינו פועל
קוד [IMG] הינו פועל
קוד HTML הינו כבוי
Trackbacksהינו פועל
Pingbacks הינו פועל
Refbacks הינו פועל

נושאים דומים
אשכול מפרסם האשכול פורום תגובות הודעה אחרונה
עזרה קטנה עם לימודי מחשבים, יותר עצה מאשר עזרה ZipoX מחשבים ומה שמסביב 4 07-09-09 18:23
חייב עזרה בבחירה בין שני מערכים asi2k5 כרטיסי מסך 7 08-04-08 7:09
[עזרה]צריך עזרה עם ה-OC.. הזיכרון מגביל אותי :( kobi45 אוברקלוקינג 13 30-09-07 15:54
[עזרה] קניתי כבל לחיבור המחשב לטלוויזיה ואני צריכה עזרה. yolia1111 תמיכה טכנית 14 23-07-07 1:18
[עזרה] צריך עזרה לגבי מפרט מחשב+בחירת מארז *התקציב: 5.5K! Almog Design מפרטי מחשב 145 27-06-07 16:54


כל הזמנים הם GMT +3. השעה כרגע היא 22:18.





מופעל על ידי: vBulletin
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO
IOPanel.net © כל הזכויות שמורות