shvebish1 פורסם 2014 ביולי 10 Share פורסם 2014 ביולי 10 שלום, אני אשמח אם מישהו יוכל לעזור לי ( כבר שברתי את הראש שעות על זה ) אני רוצה לכתוב תוכנית שהמשתמש מכניס מספר ורק בעזרת לולאות (ללא מערכים וללא מחסניות) לרשום כפלט את כל המספרים השונים זה מזה וכמה פעמים הם מופיעים .... לדוגמא: המספר 12340001 הפלט יהיה : 1 - מופיע 2 2 - מופיע 1 3 - מופיע 1 4 - מופיע 1 0 - מופיע 3 תודה מראש לעוזרים. קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2014 ביולי 10 Share פורסם 2014 ביולי 10 תתחיל מלכתוב תוכנית שסופרת ומדפיסה רק כמה פעמים מופיעה הספרה 1. קישור לתוכן שתף באתרים אחרים More sharing options...
shvebish1 פורסם 2014 ביולי 10 מחבר Share פורסם 2014 ביולי 10 הבעיה היא לא לספור כמה פעמים הספרה מופיעה אלא לרשום את הספרה שאני רוצה לספור רק פעם אחת ...(כמו בדוגמא ש 1 מופיע פעמיים אז היא לא כתובה פעמיים בפלט). קישור לתוכן שתף באתרים אחרים More sharing options...
shvebish1 פורסם 2014 ביולי 10 מחבר Share פורסם 2014 ביולי 10 זאת לא בעיה.... אני מחפש כיוון... קישור לתוכן שתף באתרים אחרים More sharing options...
shvebish1 פורסם 2014 ביולי 10 מחבר Share פורסם 2014 ביולי 10 כן רשמתי בהודעה הראשונה... הכיוון שאני חשבתי זה לקחת את המספר כסטרינג ולעבור בשתי לולאות FOR שאחת תרוץ ותבדוק אם המספר האחרון שווה לאחד המספרים בהמשך . אם כן שלא ירשום אותו ואם לא אז שירשום אותו.... ובלולאה השניה פשוט תתבצע הספירה במשתנה COUNTER. הבעיה היא שתמיד שאני רץ המספר יש כמה ספרות שונות ולכן הוא רושם לי את המספר כמה פעמים .... ואסור לשכפל מספר.... הדרך השניה שחשבתי זה בתפריט סוויטש ... אבל זה ממש מגושם ולא נראה לי שזאת הכוונה בתרגיל - - - תגובה אוחדה: - - - public class try1 { public static void main(String[] args) { int num = 1000001; int temp; int counter0 = 0; int counter1 = 0; int counter2 = 0; int counter3 = 0; int counter4 = 0; int counter5 = 0; int counter6 = 0; int counter7 = 0; int counter8 = 0; int counter9 = 0; while (num > 0) { temp = num % 10; switch (temp) { case (0): counter0++; break; case (1):counter1++; break; case (2):counter2++; break; case (3):counter3++; break; case (4):counter4++; break; case (5):counter5++; break; case (6):counter6++; break; case (7):counter7++; break; case (8):counter8++; break; case (9):counter9++; break; } num /= 10; } if (counter0 > 0) System.out.println("the number '0' " + " " + counter0 + " times"); if (counter1 > 0) System.out.println("the number '1' " + " " + counter1 + " times"); if (counter2 > 0) System.out.println("the number '2' " + " " + counter2 + " times"); if (counter3 > 0) System.out.println("the number '3' " + " " + counter3 + " times"); if (counter4 > 0) System.out.println("the number '4' " + " " + counter4 + " times"); if (counter5 > 0) System.out.println("the number '5' " + " " + counter5 + " times"); if (counter6 > 0) System.out.println("the number '6' " + " " + counter6 + " times"); if (counter7 > 0) System.out.println("the number '7' " + " " + counter7 + " times"); if (counter8 > 0) System.out.println("the number '8' " + " " + counter8 + " times"); if (counter9 > 0) System.out.println("the number '9' " + " " + counter9 + " times"); } זה מה שחשבתי.... לא נראה לי שזאת כוונת המשורר.... אבל זה עובד חחחחחח קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2014 ביולי 10 Share פורסם 2014 ביולי 10 כשאתה כותב קוד תשתמש בטג קוד (צריך להשתמש במצב מתקדם בשביל זה) כדי שיהיה יותר קריא.השיטה שלך היא יחסית בסדר, כאמור היא לא יפה במיוחד כי היא דורשת משתנה עבור כל ספרה, אבל ככה זה כשאתה לא יכול להשתמש במערכים.תחשוב איך אתה עושה את זה ע"י שימוש במשתנה counter אחד בלבד, אבל עם עוד לולאה (דהיינו האלגוריתם יהיה פחות יעיל). קישור לתוכן שתף באתרים אחרים More sharing options...
shvebish1 פורסם 2014 ביולי 10 מחבר Share פורסם 2014 ביולי 10 סליחה אני חדש פה ...בכל מקרה , אתה מתכוון ללולאת FOR שפשוט תרשום ? קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2014 ביולי 10 Share פורסם 2014 ביולי 10 כן, התכוונתי ללולאת for, אבל לא הבנתי בדיוק את השאלה שלך. קישור לתוכן שתף באתרים אחרים More sharing options...
shvebish1 פורסם 2014 ביולי 10 מחבר Share פורסם 2014 ביולי 10 אני הכוונתי לעשות לולאת FOR שתצור את כל משתני COUNTER השונים ולולאה נוספת שתדפיס אותם...לזה התכוונת ? קישור לתוכן שתף באתרים אחרים More sharing options...
שניצל פורסם 2014 ביולי 10 Share פורסם 2014 ביולי 10 אי אפשר לעשות כזה דבר - לולאה שיוצרת משתנים. משתנים הם hard coded, לא נוצרים דינמית. הדרך היחידה ליצור "משתנים" בצורה דינמית היא באמצעות מערך. קישור לתוכן שתף באתרים אחרים More sharing options...
Second Edition פורסם 2014 ביולי 14 Share פורסם 2014 ביולי 14 אם הבנתי נכון : שתי לולאות (רמז: מקוננת ) .שמות משתנים , שמשתנים תו"כ זמן הריצה .מספיק - תחשוב ! קישור לתוכן שתף באתרים אחרים More sharing options...
shayfroid פורסם 2014 באוגוסט 17 Share פורסם 2014 באוגוסט 17 הפתרון שלך בסדר גמור למקרה ספציפי שתחום הערכים שלך לא גדול מדי (10 ערכים 0 עד 9). הפתרון הפחות יעיל יהיה נכון לכל תחום ערכים (מעל כל א"ב). הלולאה החיצונית מבצעת איטרציה על הערכים שאת כמות המופעים שלהם אתה מחפש לספור, (במקרה זה 0 עד 9). אז מה נותר בעצם לעשות עם לולאה פנימית? מה תעשה בלולאה החיצונית לאחר שהפנימית סיימה, ולפני שאתה עובר לאיטרציה הבאה בחיצונית? קישור לתוכן שתף באתרים אחרים More sharing options...
Gil28 פורסם 2014 באוגוסט 17 Share פורסם 2014 באוגוסט 17 אתה מבין שזה דיון מלפני יותר מחודש? קישור לתוכן שתף באתרים אחרים More sharing options...
shayfroid פורסם 2014 באוגוסט 18 Share פורסם 2014 באוגוסט 18 מבין לגמרי, ואמנם התשובה נוסחה ככזו שפונה לשואל אבל אנשים אחרים עוד יקראו את השרשור וההכוונה הנוספת מיועדת בעיקר עבורם. קישור לתוכן שתף באתרים אחרים More sharing options...
Recommended Posts
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.