קוד בג'אווה שהקומפיילר לא טוען.. - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

קוד בג'אווה שהקומפיילר לא טוען..


Albetron

Recommended Posts

כשאני מקמפל אז אין שגיאות. אבל כשאני מריץ זה מראה שהתוכנית נטענת אבל לא קורה כלום :\ למישהו יש מושג מה הבעיה?


import java.util.Scanner;
public class Petrol
{
public static void main (String [] args)
{
final double a=3.7;
final double MAX=100;
final double b=1.6;
double r ,q;
Scanner scan = new Scanner (System.in);
r = scan.nextDouble();
System.out.println ("xxxx " +
"xxxxxx. ");
q= MAX/ (r*b)*a;
System.out.println("xxxx "+q+ " xxx");
} // end of method main
} //end of class Petrol

קישור לתוכן
שתף באתרים אחרים

שכחת לבקש מהמשתמש להכניס נתונים, אתה צריך פקודת הצגה לפני קבלה..

עריכה:

הוספתי לך דוגמא

import java.util.*;
public class Patrol
{
static Scanner reader = new Scanner(System.in);
public static void main (String [] args)
{
double a=3.7, MAX=100, b=1.6, r ,q;
System.out.println("ENTER num...");
r = reader.nextDouble();
System.out.println ("xxxx " + "xxxxxx. ");
q= MAX/ (r*b)*a;
System.out.println("xxxx "+q+ " xxx");
} // end of method main
} //end of class Patrol

קישור לתוכן
שתף באתרים אחרים

תודה רבה! עבד :)

עוד שאלה, איפה צריך לשים את הפקודה הזאת? היא אמורה לעגל את המספר של התוצאה הסופית.


[FONT=serif]double [/FONT]
[FONT=serif]afterRounding [/FONT]
[FONT=serif]= Math.round ([/FONT]
[FONT=serif]beforeRounding [/FONT]
[FONT=serif]* MAX) / (MAX * 1.0);
[/FONT]

קישור לתוכן
שתף באתרים אחרים

תודה רבה..

יש עוד קוד שאני מנסה לעשות ובטח זה לא ממש הלך(אני רק מתחיל בג'אווה ואין לי רקע או ידע קודם בתכנות..:\)

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


import java.util.Scanner;
public class xxxx
{
public static void main (String [] args)
{
int a,b,c;
Scanner scan=new Scanner(System.in);
System.out.println("Hello, please enter your destination in two integers");
a = scan.nextInt();
b = scan.nextInt();


a=(a =< 1000 || a => 99);
b=(b =< 10000 || b => 100);


a=Math.pow(a,2);
b=Math.pow(b,2);
a+b=c;
c = scan.nextInt();
c=Math.sqrt(c);
System.out.println("xxxx");

} // end of method main
} //end of class xxx


קישור לתוכן
שתף באתרים אחרים

הביטוי a =< 1000 למשל מחזיר ערך בוליאני (אמת או שקר). מאחר ו-a הוא מטיפוס שלם (int) הקומפיילר צועק.

בנוסף, השמה למשתנה שמשמאל. c=a+b אומר למעבד לחשב את הערך של a ועוד b ואת הערך שיצא לשים במשתנה c.

שים לב שאח"כ אתה דורס את הערך שהיה ב-c ע"י קליטת ערך מהמשתמש.

קישור לתוכן
שתף באתרים אחרים

השווה צריך לבוא אחרי הגדול / קטן.

אבל בכלל לא ברור מה המשמעות של השורות האלה.

מיותר להשתמש בpow כדי להעלות מספר בריבוע (יותר קריא ויותר יעיל לעשות X*X).

וכן לא ברור למה אתה קורא לתוך C אם C אמור להיות A^2+B^2.

קישור לתוכן
שתף באתרים אחרים

אני רק חייב להעיר משהו לגבי הכותרת:

תפקידו של הקומפיילר היא רק לתרגם את הקוד לשפת מכונה (או לשפת ביניים במקרה של שפות כמו ג'אווה ו-#C) אם הקוד מתקמפל ללא שגיאות, הקומפיילר סיים את העבודה שלו. אם אתה חושב שהתכנית לא רצה, אז תאמר שהתכנית לא רצה.

קישור לתוכן
שתף באתרים אחרים

הביטוי a =< 1000 למשל מחזיר ערך בוליאני (אמת או שקר). מאחר ו-a הוא מטיפוס שלם (int) הקומפיילר צועק.

בנוסף, השמה למשתנה שמשמאל. c=a+b אומר למעבד לחשב את הערך של a ועוד b ואת הערך שיצא לשים במשתנה c.

שים לב שאח"כ אתה דורס את הערך שהיה ב-c ע"י קליטת ערך מהמשתמש.

איך אני מסדר שאוכל לעשות את ההשוואה?

קישור לתוכן
שתף באתרים אחרים

אני אהיה יותר ספציפי בעצם, כמו שאמרתי מקודם אני רוצה לחשב את מישפט פיתגורס. אבל רק אם משתמש מכניס שני מספרים, אחד הוא מספר עם 3 ספרות והשני עם 4..בגלל זה השתמשתי ב(a => 99 || a =< 1000)). אבל זה לא כל כך עובד כנראה..אתה יודע איך אפשר לסדר את זה בבקשה?

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...