עבור לתוכן

אשמח לעזרה מאנשים שיודעים java (לא ידעתי אם פה או במשוב ועזרה) :)

תגובה מומלצת
צוות האתר אישר תגובה זו וניתן לסמוך על התוכן הנכתב בה.

יוצר/ת האשכול EYT
  • heisenberg
  • 215
  • 2.1k הודעות
(נערך)

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

הפעולות עצמן עובדות אך כאשר מחוברות לתוכנית עצמה התוכנית פשוט לא עושה את העבודה

אני מכניס את המספר כאשר זה מוציא את הפלט אך זה פשוט נתקע על זה (נותן לי את האפשרות להכניס עוד מספרים אך לא מבצע את התוכנית)

אני אפרסם כאן את התוכנית למי שיש כוח לקרוא את זה (78 שורות אבל כולל כל הסוגריים המעצבנים)

http://pastebin.com/VfC96A9t

נערך על ידי EYT
pastebin מחודש
קישור ישיר להודעה
שתף באתרים אחרים

  • תגובות 16
  • נוצר
  • תגובה אחרונה

משתמשים מובילים באשכול זה

ימים פופלאריים

משתמשים מובילים באשכול זה

ימים פופלאריים

React
  • 13
  • 696 הודעות

אני מגיע הבייתה יום שבת בערב אני יתקן לך את הקוד. יש לך הרבה בעיות שם. תשתמש בdebug על מנת למנוע בעיות.

מה התאריך הגשה שאתה צריך את זה?

נ.ב.

פעם הבאה תשתמש בpastebin.com זה עדיף

קישור ישיר להודעה
שתף באתרים אחרים

The Donger
  • Tomer
  • 325
  • 1.2k הודעות

אשמח אם תסדר את הקוד שיהיה קריא...

קישור ישיר להודעה
שתף באתרים אחרים

יוצר/ת האשכול EYT
  • heisenberg
  • 215
  • 2.1k הודעות
אשמח אם תסדר את הקוד שיהיה קריא...

עובד על זה עכשיו

כמו שריאקט אמר אני אשים את זה בpaste bin כי חשבתי שזה יתמוך בזה אבל זה לא P:

קישור ישיר להודעה
שתף באתרים אחרים

יוצר/ת האשכול EYT
  • heisenberg
  • 215
  • 2.1k הודעות
אני מגיע הבייתה יום שבת בערב אני יתקן לך את הקוד. יש לך הרבה בעיות שם. תשתמש בdebug על מנת למנוע בעיות.

מה התאריך הגשה שאתה צריך את זה?

נ.ב.

פעם הבאה תשתמש בpastebin.com זה עדיף

נערך עם קישור לpastebin

תאריך הגשה הוא יום ראשון

הקוד עצמו בסדר אחרת זה לא היה נותן לעשות compile

הפקודות עצמן אני לא בניתי אלא השותפה שלי אבל מבדיקה שלי הן עובדות כמו שצריך

ואני יודע שבטוח יש שיטה הרבה יותר קלה לעשות את זה אבל כל עוד זה יעבוד זה מצוין

קישור ישיר להודעה
שתף באתרים אחרים

The Donger
  • Tomer
  • 325
  • 1.2k הודעות
עובד על זה עכשיו

כמו שריאקט אמר אני אשים את זה בpaste bin כי חשבתי שזה יתמוך בזה אבל זה לא P:

a = number%10;b = a%10;

שורה 42

אתה עושה שארית למספר ומכניס את זה לA

ואז אתה עושה שארית לA ומכניס את זה לB?

נקח את המספר789

זה ייקח את 789 ויוציא ממנו את 9 ויכניס לA

ואז זה ייקח את 9 יעשה לו שארית ויכניס לB?

אני לא יודע אם זה בכוונה או חלק מהטעות..

קישור ישיר להודעה
שתף באתרים אחרים

יוצר/ת האשכול EYT
  • heisenberg
  • 215
  • 2.1k הודעות
(נערך)
a = number%10;b = a%10;

שורה 42

אתה עושה שארית למספר ומכניס את זה לa

ואז אתה עושה שארית לa ומכניס את זה לb?

נקח את המספר789

זה ייקח את 789 ויוציא ממנו את 9 ויכניס לa

ואז זה ייקח את 9 יעשה לו שארית ויכניס לb?

אני לא יודע אם זה בכוונה או חלק מהטעות..

האמת לא שמתי לב לזה חחח תודה אני אבדוק אם זה מטפל בזה

בעיקרון התכוונתי לקחת את המספר שנשאר ולא את המספר בa אופס

עריכה:

number = number%10;

b = number%10;

total = number+b;

אבל זה לא עזר

הרעיון הוא לקחת את המספר

ולחבר את הספרות שלו עם הלולאה

כלומר number = number%10 כדי לקחת את מספר היחידות

b = number%10 בגלל שזה אחרי הקודם זה לוקח את מספר העשרות

total = number+b מחבר בין השניים

וחוזר עם אותו מספר שנשאר מקודם

אבל זה עדיין לא מסיים את התוכנית

נערך על ידי EYT
קישור ישיר להודעה
שתף באתרים אחרים

The Donger
  • Tomer
  • 325
  • 1.2k הודעות
האמת לא שמתי לב לזה חחח תודה אני אבדוק אם זה מטפל בזה

בעיקרון התכוונתי לקחת את המספר שנשאר ולא את המספר בa אופס

עריכה:

number = number%10;

b = number%10;

total = number+b;

אבל זה לא עזר

הרעיון הוא לקחת את המספר

ולחבר את הספרות שלו עם הלולאה

כלומר number = number%10 כדי לקחת את מספר היחידות

b = number%10 בגלל שזה אחרי הקודם זה לוקח את מספר העשרות

total = number+b מחבר בין השניים

וחוזר עם אותו מספר שנשאר מקודם

אבל זה עדיין לא מסיים את התוכנית

לחבר את הספרות כך:789-7+8+9

או כך:789-700+80+9

קישור ישיר להודעה
שתף באתרים אחרים

יוצר/ת האשכול EYT
  • heisenberg
  • 215
  • 2.1k הודעות
לחבר את הספרות כך:789-7+8+9

או כך:789-700+80+9

9+8+7=24

ואז גם להוציא ממוצע אבל זה כבר תלוי במספר כי זה או ממוצע או רק לחבר אם המספר לא עונה על הפקודות

קישור ישיר להודעה
שתף באתרים אחרים

יוצר/ת האשכול EYT
  • heisenberg
  • 215
  • 2.1k הודעות
לחבר את הספרות כך:789-7+8+9

או כך:789-700+80+9

כדי שתבין מה הבעיה יצרתי GIF קטן

https://gyazo.com/f686b6730e2849da182af853ac77b1d0

כמו שתוכל לראות ניסיתי מספר פעמים אך זה לא רץ באף אחד

קישור ישיר להודעה
שתף באתרים אחרים

The Donger
  • Tomer
  • 325
  • 1.2k הודעות
כדי שתבין מה הבעיה יצרתי gif קטן

https://gyazo.com/f686b6730e2849da182af853ac77b1d0

כמו שתוכל לראות ניסיתי מספר פעמים אך זה לא רץ באף אחד

תראה אני בעיקרון כותב בc#

אבל הלולאה שלך דיי מוזרה..

אני היית מנסה דבר כזה

J1sUe5i.png
קישור ישיר להודעה
שתף באתרים אחרים

יוצר/ת האשכול EYT
  • heisenberg
  • 215
  • 2.1k הודעות
(נערך)
תראה אני בעיקרון כותב בc#

אבל הלולאה שלך דיי מוזרה..

אני היית מנסה דבר כזה

J1sUe5i.png

לא יודע לגבי זה כל כך

אבל הסתכלתי על זה שנייה והבנתי איפה הטעות שלי

הצלחתי לגרום לתוכנה לעבוד אבל עכשיו זה פשוט אומר avg 0.0 ככה שזה כאילו לא נכון

בעיקרון התיקון הוא:

a = number % 10; לוקח את האחדות

b = number / 10 % 10; לוקח את העשרות

total = a + b; מחבר בין השניים

count++; מעלה מונה בשביל הממוצע (לחילוק)

number = number / 10; מוריד מהמספר את האחדות

בזמן שאני כותב את זה אני מבין את הטעות השנייה

ברגע כזה שאני לוקח את העשרות בB ואז מוריד את האחדות בסיבוב הבא של הלולאה המספר של העשרות יכנס לA אבל בעצם כבר לקחתי אותו בB קודם

תיקון מהיר הוא לחלק ב100

אך עכשיו למספר 1234 הוא לא לוקח את כל המספרים ובכך הממוצע יוצא 1 למרות שהוא 2.5

וניסיתי לשנות את הלולאה ל!=0

עריכה

אחרי חשיבה רבה על הממוצע הגעתי למסקנה

והנה התוצאות:

              {                   while(number>0)                   {                       a = number%10;                       total += a;                       number = number/10;                       count++;              }                   double avg =(double) total/count;                   double dotavg = (double) total%count;                   double avg1 = avg + dotavg;                   System.out.println("the avg of the numbers is " + avg1);
נערך על ידי EYT
קישור ישיר להודעה
שתף באתרים אחרים

The Donger
  • Tomer
  • 325
  • 1.2k הודעות
לא יודע לגבי זה כל כך

אבל הסתכלתי על זה שנייה והבנתי איפה הטעות שלי

הצלחתי לגרום לתוכנה לעבוד אבל עכשיו זה פשוט אומר avg 0.0 ככה שזה כאילו לא נכון

בעיקרון התיקון הוא:

A = number % 10; לוקח את האחדות

b = number / 10 % 10; לוקח את העשרות

total = a + b; מחבר בין השניים

count++; מעלה מונה בשביל הממוצע (לחילוק)

number = number / 10; מוריד מהמספר את האחדות

בזמן שאני כותב את זה אני מבין את הטעות השנייה

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

תיקון מהיר הוא לחלק ב100

אך עכשיו למספר 1234 הוא לא לוקח את כל המספרים ובכך הממוצע יוצא 1 למרות שהוא 2.5

וניסיתי לשנות את הלולאה ל!=0

עריכה

אחרי חשיבה רבה על הממוצע הגעתי למסקנה

והנה התוצאות:

              {                    while(number>0)                    {                        a = number%10;                        total += a;                        number = number/10;                        count++;               }                    double avg =(double) total/count;                    double dotavg = (double) total%count;                    double avg1 = avg + dotavg;                    system.out.println("the avg of the numbers is " + avg1);               

בלבלת אותי xd

תכתוב לי את השאלה אני אפתור אותה ואשלח לך

קישור ישיר להודעה
שתף באתרים אחרים

יוצר/ת האשכול EYT
  • heisenberg
  • 215
  • 2.1k הודעות
בלבלת אותי xd

תכתוב לי את השאלה אני אפתור אותה ואשלח לך

טוב בעיקרון

זה הקוד של הלולאה שזה בעצם הבעיה:

              {                   while(number>0)                   {                       a = number%10;                       total += a;                       number = number/10;                       count++;              }                   double avg =(double) total/count;                   double dotavg = (double) total%count;                   double avg1 = avg + dotavg;                   System.out.println("the avg of the numbers is " + avg1);

הממוצע כאן יותר הגיוני כי הוא עכשיו 2.0 אבל עדיין לא מושלם כי זה אמור להיות 2.5 ככה שיש טעות בקוד

השורה הזאת:

double dotavg = (double) total%count;

הייתה ניסיון כושל להכניס את ה0.5 לתוצאה אבל זה לא עבד

קישור ישיר להודעה
שתף באתרים אחרים

The Donger
  • Tomer
  • 325
  • 1.2k הודעות
טוב בעיקרון

זה הקוד של הלולאה שזה בעצם הבעיה:

              {                   while(number>0)                   {                       a = number%10;                       total += a;                       number = number/10;                       count++;              }                   double avg =(double) total/count;                   double dotavg = (double) total%count;                   double avg1 = avg + dotavg;                   System.out.println("the avg of the numbers is " + avg1);

הממוצע כאן יותר הגיוני כי הוא עכשיו 2.0 אבל עדיין לא מושלם כי זה אמור להיות 2.5 ככה שיש טעות בקוד

השורה הזאת:

הייתה ניסיון כושל להכניס את ה0.5 לתוצאה אבל זה לא עבד

הבנתי איפה טעית.

תשים את הcount++

מעל החילוק של num ב 10

אתב בעצם מאבד ספרה כאשר אתה משאיר את זה כך.

קישור ישיר להודעה
שתף באתרים אחרים

התחבר או הרשם על מנת להגיב.

עליך להיות משתמש רשום על מנת להגיב

צור חשבון

צור חשבון חדש בקהילה בקלי קלות.

רישום חשבון חדש

התחבר

משתמש קיים? התחבר.

התחבר עכשיו

מנהלי הפורום

בפורום זה אין מנהלים

אולי יעניין אותך גם

×
×
  • צור חדש...