gshhar פורסם 2011 במאי 24 מחבר Share פורסם 2011 במאי 24 אוקיי אז התחלתי לרשום משהו, כרגע רק את קליטת המספרים הראשוניים אל תוך המערך.אני מתחיל ב-3 בודק אותו מול מה שבמערך (המספר 2) סבבה לא מתחלק ומכניס אותו למערך.המספר 4 כבר עושה לי בעיות כי הוא לא מתחלק ב-i1 אבל איך אני ממשיך ובודק אותו מול i0 ?using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace T206{ class Program { static void Main(string[] args) { //define prime number array int[] PrimeNum = new int[29]; //insert first prime number into array PrimeNum[0] = 2; //number of primes currently in the array int nPrimes = 1; //first munber to check int num = 3; for (int i = 0; i < nPrimes; i++) { if (num % PrimeNum[i] == 0) { num++; } else { PrimeNum[i] = num; nPrimes++; num++; } } Console.ReadLine(); } }} קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2011 במאי 24 Share פורסם 2011 במאי 24 שוב, אתה לא מפריד בין החלק שבודק אם המספר הוא ראשוני, והחלק שמכניס אותו למערך.קודם כל תבדוק אם המספר הוא ראשוני.אחר כך תכניס אותו למערך (למקום הנכון במערך, ליתר דיוק). קישור לתוכן שתף באתרים אחרים More sharing options...
gshhar פורסם 2011 במאי 24 מחבר Share פורסם 2011 במאי 24 אבל למה לא להכניס ישר את המספר אם הוא ראשוני ?אם אני לא מכניס אותו איפה אני ישמור אותו לאח"כ ? קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2011 במאי 24 Share פורסם 2011 במאי 24 כי הבעיה היא שאתה מכניס אותו לתוך המערך לפני שבכלל סיימת לבדוק אם הוא ראשוני.הקוד שלך אומר כזה דבר:נבדוק אם המספר 8 מתחלק ב-2. אם כן, אז הוא לא ראשוני - נגדיל את num ב-1 ונמשיך הלאה. אבל אתה לא ממשיך הלאה - אתה ממשיך בתוך אותה לולאה שאמורה לבדוק את המספר 8!נניח שהיינו בודקים את 9. אז הוא לא מתחלק ב-2, האם זה אומר מיד שהוא ראשוני? לא, זה רק אומר שהוא לא מתחלק ב-2. אם הוא לא מתחלק בכל הראשוניים שקטנים ממנו, רק אז הוא בטוח ראשוני.נתתי לך את הקוד שאמור לבדוק אם מספר הוא ראשוני, ובכל זאת מחקת חלקים מהקוד. איפה bool isPrime?הבעיה העיקרית היא שאתה מערבב בין שתי לולאות שונות:לולאה אחת צריכה לעבוד על מספר אחד, ולבדוק אם הוא ראשוני (ע"י מעבר על כל הראשוניים הקטנים ממנו).לולאה שנייה היא זו שדואגת להכניס מספרים למערך - היא צריכה לעבור מספר מספר, ולבדוק מי מהם ראשוני (באמצעות הלולאה ראשונה). קישור לתוכן שתף באתרים אחרים More sharing options...
gshhar פורסם 2011 במאי 24 מחבר Share פורסם 2011 במאי 24 לא למדתי את השיטה של bool isPrime אז לא ידעתי בדיוק מה זה אומר אבל עדיין לא הבנתי אם אני בודק את 5 למשל והוא ראשוני מה לעשות איתו אם אני לא מכניס אותו למערך ? קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2011 במאי 24 Share פורסם 2011 במאי 24 "לא למדתי את השיטה של bool isPrime"?אז תלמד. לא לומדים תנאים ולולאות לפני שלומדים את כל הטיפוסים הבסיסיים - int, double, char ו-bool.אחרי שאתה יודע ש-5 הוא ראשוני אתה כן צריך להכניס אותו למערך. אבל רק אחרי שסיימת לבדוק אותו ואתה יודע בוודאות שהוא ראשוני! קישור לתוכן שתף באתרים אחרים More sharing options...
gshhar פורסם 2011 במאי 24 מחבר Share פורסם 2011 במאי 24 כן אבל תוכל להראות לי איך אני בודק אותו גם עם 2 וגם עם 3 ?אני לא מצליח לעשות לולאה כזויכול להיות שהראת לי כבר אבל פיספסתי קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2011 במאי 24 Share פורסם 2011 במאי 24 אתה צוחק עליי, נכון?כבר כתבתי לך את הקוד הזה!האלגוריתם שלך צריך להיות משהו כזה:num = 2;while (primes array is not full){ bool isPrime = (do something that checks if num is prime) if (isPrime) { add num to the array } num++;} קישור לתוכן שתף באתרים אחרים More sharing options...
gshhar פורסם 2011 במאי 24 מחבר Share פורסם 2011 במאי 24 אני יגיד לך מה אני לא מבין בו:עד ה-BREAK הראשון בסדר.בוא נגיד שאני מתחיל מהמספר 3 (כי 2 נתון לי שהוא ראשוני והוא כבר במערך), אם 3 מתחלק ב-2 הוא לא ראשוני אבל הוא לא מתחלק אז הוא כן ראשוני, עכשיו את הלולאה שלך של ה-FOR לא ממש הבנתי כאילו מה קורה עכשיו אם אני בודק כי את המספר 4 אני מבין שהוא נכנס ל-IF אז הוא לא ראשוני אבל אז אני אמור לקלוט את המספר 5 ואותו אני רוצה לבדוק מול 2 ומול 3 והקוד שלך רק בודק מספר מסויים, את הקוד הזה הבנתי איכשהו קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2011 במאי 24 Share פורסם 2011 במאי 24 אל תחשוב על 3. תחשוב שבמערך כבר נמצאים המספרים 2,3,5 ותנסה לכתוב את הקוד עבור 6 ו-7. קישור לתוכן שתף באתרים אחרים More sharing options...
gshhar פורסם 2011 במאי 24 מחבר Share פורסם 2011 במאי 24 עשיתי את זה מקודם עם עם זה שהיה לי במערך 2,3,5,7 אז עשיתי קוד שאם אתה מכניס מספר הוא אומר לך אם הוא ראשוני או לא פשוט בכיתה עדיין לא למדנו את מה שאתה רשמת לי עם ה-BOOL ואני רוצה להשתמש בכילים שנתנו לנו עד עכשיו וזה משגע אותי שאני לא מצליח, בכל מקרה זה מה שעשיתי מקודם:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace T206{ class Program { static void Main(string[] args) { int[] PrimeNum = new int[5]; PrimeNum[0] = 2; PrimeNum[1] = 3; PrimeNum[2] = 5; PrimeNum[3] = 7; int count = 0; Console.WriteLine("Enter Number: "); int num = int.Parse(Console.ReadLine()); while (count < 4) { if (num % PrimeNum[count] != 0) { count++; } else { Console.WriteLine("The Number Is Not Prime Number"); Console.ReadLine(); return; } } Console.WriteLine("The Number Is Prime Number"); Console.ReadLine(); } }} קישור לתוכן שתף באתרים אחרים More sharing options...
gshhar פורסם 2011 במאי 24 מחבר Share פורסם 2011 במאי 24 סליחה שאני משגע אותך אבל אני פשוט רוצה להשתמש לבנתיים רק במה שלמדתי, פשוט מה אני אמור להוסיף לקוד הזה שלי שרשמתי עכשיו קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2011 במאי 24 Share פורסם 2011 במאי 24 איך הגעתם ללולאות בלי ללמוד מה זה bool?שאלה לי אליך - האם נדרשתם לעבוד עם מערך, או שפשוט נדרשתם להדפיס את 30 הראשוניים הראשונים? קישור לתוכן שתף באתרים אחרים More sharing options...
gshhar פורסם 2011 במאי 24 מחבר Share פורסם 2011 במאי 24 כי המורה שלי מלמד אותנו ככה והוא ישלים לנו את זה, אתה יודע איך זה - כל מורה והשיטה שלו ואותי בתור אחד שלא יודע תיכנות ורק התחיל זה מבלבל פתאום ללמוד תוך כדי דברים חדשים ואז בכיתה אני אראה שפתרו את זה בדרך אחרת.בכל מקרה את התרגיל הזה אני אמור לפתור עם מערך, פשוט 2 נתון לי ראשוני אז להתחיל מ-3 ולבדוק אם הוא מתחלק בכל הראשוניים שמתחתיו ולהדפיס את 30 המספרים הראשונים הראשוניים. קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2011 במאי 24 Share פורסם 2011 במאי 24 אין שום היגיון בדרך שהמורה שלך מלמד אותך. זה כמו ללמד כפל וחילוק לפני חיבור וחיסור. אבל לא משנה, אני לא אתווכח על זה.בכל מקרה אתה לא חייב להשתמש ב-bool. אתה יכול סתם להגדיר int isPrime ואז לתת לו ערך 1 או 0 בהתאם לאם המספר ראשוני או לא. כלומר, משהו כזה: // Create the array int[] PrimeNum = new int[30]; PrimeNum[0] = 2; PrimeNum[1] = 3; PrimeNum[2] = 5; PrimeNum[3] = 7; int nPrimes = 4; // number of primes currently in the array int num = 8; int isPrime = 1; for (int i = 0; i < nPrimes; i++) { if (num % PrimeNum[i] == 0) { isPrime = 0; break; } } if (isPrime == 1) { Console.WriteLine("The Number Is a Prime Number"); } Console.WriteLine("The Number Is Not Prime Number"); }הקוד הזה רק בודק אם num (שכאן הוא 8 ) הוא ראשוני, ומדפיס את התוצאה. אתה צריך לדאוג להכניס או לא להכניס אותו למערך בהתאם, ולעטוף את זה בלולאה ראשית.אמרתי את זה כבר קודם, ואני אומר את זה שוב - אתה צריך שתי לולאות. אחת שעוברת על המספרים, ואחת שבודקת אם מספר נתון הוא ראשוני. קישור לתוכן שתף באתרים אחרים More sharing options...
Recommended Posts
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.