פורסם 2011 במאי 1714 שנים יש לי תרגיל שאני אמור לקלוט בו N איברים,A1 ו-d ולהציג את ה-N האיברים של הסדרה ואת סכומה.כתבתי תוכנית וחילקתי אותו ל-3:כשה-N גדול מ-2כשה-N קטן מ-2 (שווה 1)כשה-N שווה 2באופציה הראשונה כשה-N גדול מ-2 הכל בסדר וזה עובד לי אבל איך שאני מווסיף את 2 האופציות האחרונות משהו מתחרבש לי:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace T100_2{ class Program { static void Main(string[] args) { int count = 0; int sum = 0; Console.Write("Enter N: "); string stN = Console.ReadLine(); int N = int.Parse(stN); Console.Write("Enter A1: "); string stA1 = Console.ReadLine(); int A1 = int.Parse(stA1); Console.Write("Enter d: "); string std = Console.ReadLine(); int d = int.Parse(std); while (N>2 && count<N) { Console.WriteLine(A1); sum = sum + A1; A1 = A1 + d; count++; } Console.WriteLine("The Sum Of The Series Is: " + sum); Console.ReadLine(); if (N==2) { Console.WriteLine(A1); Console.WriteLine(A1 + d); Console.WriteLine("The Sum Of The Series Is: " + (A1 + A1 + d)); } else { Console.WriteLine(A1); Console.WriteLine("The Sum Of The Series Is: " + A1); } } }}
פורסם 2011 במאי 1714 שנים שים לב שאתה עושה את הקטע הבא אחרי הלולאה לכל N:Console.WriteLine("The Sum Of The Series Is: " + sum);Console.ReadLine();כלומר גם אם N קטן או שווה 2 אתה תדפיס את השורה הזאת שם עם sum=0, ואז עוד פעם בתוך אחד משני התנאים הבאים. בגלל זה יש לך בלאגן. מעבר לזה הייתי ממליץ לעשות לולאה אחת שמטפלת בכל N - הבעיה הזו ממש לא דורשת if בשביל פתרון. לולאה כללית לכל N תטפל בזה היטב ותפשיט את כל העניין.
פורסם 2011 במאי 1714 שנים א. לא ברור למה בכלל אתה מפריד למקרים. ב. מה המשמעות של השורה הזו:while (N>2 && count<N)אם בתוך הלולאה אתה בכלל לא משנה את N? אין טעם לשים ב-while תנאי שאף פעם לא ישתנה. אם אתה רוצה שהלולאה תרוץ רק אם N>2 אז תשתמש ב-if מחוץ לה.
פורסם 2011 במאי 1714 שנים ...בדיוק אותה לולאה שעשית? (רק בלי להגביל N>2 כמובן)חוץ מזה, למדת לולאת for?
פורסם 2011 במאי 1714 שנים מחבר כן למדתי FORזה יהיה בסדר ? (אין לי את הסביבת עבודה פה אז אני לא יכול לבדוק)using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace T100_2{ class Program { static void Main(string[] args) { int count = 0; int sum = 0; Console.Write("Enter N: "); String stN = Console.ReadLine(); int N = int.Parse(stN); Console.Write("Enter A1: "); String stA1 = Console.ReadLine(); int A1 = int.Parse(stA1); Console.Write("Enter d: "); String std = Console.ReadLine(); int d = int.Parse(std); for (count<N) { Console.WriteLine(A1); sum = sum + A1; A1 = A1 + d; count++; } Console.WriteLine("The Sum Of The Series Is: " + sum); } }}
פורסם 2011 במאי 1714 שנים לא השתמשת ב-for בצורה נכונה - פשוט החלפת את המילה while ב-for (אם זה היה while אז זה היה בסדר דווקא).
פורסם 2011 במאי 1714 שנים מחבר אתה אומר שאם הייתי שם בתוכנית האחרונה פה WHILE במקום FOR זה היה בסדר ?אתה יכול להסביר לי מה ההבדלים ?
פורסם 2011 במאי 1714 שנים כן, זה מה שאני אומר.אתה מוזמן לפתוח את הספר/אתר/מורה שאתה לומד ממנו ולראות מה ההבדל בין for ל-while, ואיך ומתי משתמשים בכל אחד מהם.
פורסם 2011 במאי 1714 שנים מחבר אוקיי תודה רבהאגב אני מחפש (זה כבר לא לי) ספר טוב וממצה (אפילו באנגלית כי אני יודע שבעברית הם לא משהו) לשפת C# ואם אפשר גם אז שיהיה אפשר להשיג אותו בארץתודה.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.