מתקשה שיעורים ב- JAVA - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

מתקשה שיעורים ב- JAVA


The_Hobbit

Recommended Posts

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

אלו השאלות:

1.1 הגדר בנאי ללא פרמטרים שמאפשר ליצור מעגלים שמרכזם בראשית הצירים והרדיוס שלהם 1.

1.2הגדר בנאי עם שני פרמטרים שמאפשר ליצור מעגלים במרכז כלשהו עם רדיוס 1.

1.3 כתוב שיטה שתחזיר את היקף המעגל

1.4 כתוב שיטה שמקלדת נקודה (שתי קואורדינטות) ומחזירה אמת אם הנקודה נמצאת בתוך המעגל ושקר אחרת.

1.5כתוב שיטה שמקבלת נקודה (שתי קואורדינטות) ומזיזה את המעגל לנקודה זו.

1.6כתוב שיטה שתציג את מצב המעגל (מרכז ורדיוס)

1.7 צור בשיטה הראשית (נוסף על מה שכתוב כבר) מעגל חדש שמרכזו בראשית הצירים ורדיוסו 1.

1.7.1הזז את המעגל הזה לנקודה (5,2)

1.7.2 הצג את מצב המעגל שהיקפו גדול יותר (המעגל c1 או המעגל החדש שיצרת).

והתחלתי להסתבך.. זה מה שעשיתי ב- ECLIPSE

//עוד לא למדנו THIS

public class Circle {  private double x,y,r;






public Circle(double x,int y,int r) {
x=x;
y=y;
r=radius;
}
public double getArea(){
return 3.14*radius*radius;
}
public Circle () {
radius=1;
y=0;
x=0;
}
public Circle (double x1,double y1) {
radius=1;
x1=x;
y1=y;
}

public double scope (int x,int y,int radius){
scope=2*3.14*radius;
return scope;

}




public boolean inCircle (double x1,double y1,double x,double y) {
if ((x-x1)*(x-x1)+(y-y1)*(y-y1)<radius*radius);
return true;
}
else
{
return false;


}




public void Move (int x1,int y1){
x=x1;
y=y1;
}
public void ShowCircle () {
x=x1;
y=y1;
radius=
}



}[COLOR=#333333]

[RIGHT][COLOR=#333333][/COLOR][/RIGHT]

[/COLOR]

<a  href=%7Boption%7Dhttp://up402.siz.co.il/up2/mdygzzgxqqnd.png' alt='mdygzzgxqqnd.png'>

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

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

מתחיל תואר ראשון בגיל 15. כל הכבוד. :)

הערה כללית, בנוסף למה ששניצל אמר:

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

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

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

מתחיל תואר ראשון בגיל 15. כל הכבוד. :)

הערה כללית, בנוסף למה ששניצל אמר:

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

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

השפה היא JAVA התרגיל בית הראשון תוך שתי דקות סיימתי זה רק שאלה ראשונה ויש לי עוד שתיים להגיש למחר ואני מסתבך ממש..

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

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

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

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

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

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

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

ערכתי זה עושה לי בעיה שאני מגיע לשאלה 1.4 שאני בודק אם הנקודה במעגל אז עשיתי טוב אבל אחרי זה יש שגיאה תוכל להגיד לי למה?

public class Circle {  private double x,y; 
private double radius;
private double p;
public Circle(double a,double b,double r) {
x=a;
y=b;
radius=r;
}
public double getArea(){
return 3.14*radius*radius;
}


public Circle () {
x=0;
y=0;
radius=1;
}
public Circle (double a,double b) {
x=a;
y=b;
radius=1;

}
public double p () {
p=2*3.14*radius;
return p;
}
public boolean insideTheCircle (double a,double b){
if ((x-a)*(x-a)*(y-b)*(y-b)<radius*radius);
return true;
}
else {
return false;

}
}

ששמתי את העכבר על השגיאה הוא אומר שהוא ציפה ל- } אבל יש הכל אני לא מבין מה הבעיה..

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

כי הסינטקס של התנאי שלך (if-else) לא נכון. תקרא בספר או ברשת איך כותבים נכון. :)

חוץ מזה, יש לך שגיאה בלוגיקה (כנראה טעות הקלדה) - אתה מכפיל את המרחקים בכל ציר במקום לחבר אותם.

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

כי הסינטקס של התנאי שלך (if-else) לא נכון. תקרא בספר או ברשת איך כותבים נכון. :)

חוץ מזה, יש לך שגיאה בלוגיקה (כנראה טעות הקלדה) - אתה מכפיל את המרחקים בכל ציר במקום לחבר אותם.

אוקיי תודה אני אתקן, בשאלה הזאת..

1.7 צור בשיטה הראשית (נוסף על מה שכתוב כבר) מעגל חדש שמרכזו בראשית הצירים ורדיוסו 1.

הגדרתי בנאי כבר בשאלה 1.1 עכשיו ליצור מעגל אחר שונה ? זה לא נראה אותו הדבר זה לא אמור להיות ככה...

public SecondeCircle (){   
x=0;
y=0;
radius=1;
}

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

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

אז כעיקרון זה אמור להיות ככה נכון ?

Circle c2=new Circle();

אבל רשום לי שצריך שזה יהיה בראשית הצירים והרדיוס יהיה 1 איך אני אמור לרשום את זה שם (במחלקה PROGRAM)

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

אכן מה שכתבת.

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

יש לי עוד שאלה 2 שהסתבכתי טיפה..

2.1 הגדר מחלקה שתייצג . לכל אובייקט רוצים לשמור את מספר הרכב,מהירות נוכחית וגם מהירות מקסימלית. זה יידע להאיץ,להאט,ולהציג את מצבו (מספר,ומהירות נוכחית). כמובן בעת יצירת הרכב הוא מאותחל למהירות 0, מספר של הרכב ומהירותו המקסימלית. האצת הרכב משמעותה הגברת המהירות ב- X קמ"ש (פרמטר), והאטה משמעותה הנמכת המהירות ב- X קמ"ש (פרמטר). צריך לדאוג שהמהירות לא תעלה על המהירות המקסימלית ואם כן היא תעוגל למהירות המקסימלית. כמו כן צריך לדאוג שהמהירות לא תרד מתחת לאפס ואם כן היא תעוגל ל-0. נתון שהמהירות המקסימלית המותרת לכל הרכבים היא 100. בכל רגע נתון צריכה להיות אפשרות לברר את מהירותו הנוכחית של הרכב (כלומר הרכז יחזיר את מהירותו הנוכחית).

המחלקה תאפשר האצה/האטה של הרכב בלי לציין את הפרמטר X. במקרה כזה המהירות תעלה/תרד ב-1 קמ"ש (שים לב יש כאן העמסת שיטות)

2.2על סמך המחלקה שהגדרת בסעיף 2.1 בצע את הפעולות הבאות בשיטה הראשית:

2.2.1 צור בשם car1 שמספרו 12345

2.2.2 צור רכב בשם car2 שמספרו 12346

2.2.3 הגבר את המהירות של car1 ב- 5 קמ"ש

2.2.4 הגבר את המהירות של car2 ב- 1קמ"ש

2.2.5 הצג את מצב הרכב car1

2.2.6 הגבר את המהירות של car2 כך שהיא תגיע ל- 30 קמ"ש

זה מה שעשיתי עד עכשיו ..



public class Car {
private int num;
private int speed;
private int maxspeed;

public void speedUp () {
speed=speed+1;
}
public void slow () {
speed=speed-1;

}
public void stop () {
speed=0;
}
public void show () {
System.out.println("num=");
System.out.println("Current Speed="+speed);
}




}

ובמחלקה PROGRAM ככה עשיתי:




public class Program {


public static void main(String[] args) {
Car car1 = new Car (12345);
Car car2= new Car (12346);


}


}


אבל במחלקה program זה רושם לי ששני העצמים שיצרתי יש שגיאה the constructor Car (int) is undifiend

מה לא נכון?

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

השגיאה שאתה מקבל נגרמת בגלל שאין לך בנאי שמקבל משתנה מטיפוס int.

כאשר אתה רושם:

[LEFT];(Car car1 = new car (12345[/LEFT]


אז אתה בעצם מנסה לקרוא לבנאי של המחלקה Car שמקבלת פרמטר מסוג int, ולמעשה אין לך בנאי של המחלקה Car בכלל ולכן הקומפיילר ישתמש בבנאי הדיפולטי (default) - בנאי זה לא מקבל אף פרמטרים.

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

השגיאה שאתה מקבל נגרמת בגלל שאין לך בנאי שמקבל משתנה מטיפוס int.

כאשר אתה רושם:

[LEFT];(Car car1 = new car (12345[/LEFT]


אז אתה בעצם מנסה לקרוא לבנאי של המחלקה Car שמקבלת פרמטר מסוג int, ולמעשה אין לך בנאי של המחלקה Car בכלל ולכן הקומפיילר ישתמש בבנאי הדיפולטי (default) - בנאי זה לא מקבל אף פרמטרים.

אז לבנות שני בנאים במחלקה car ואז לא תהיה לי את הבעיה ב- program ?

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

ארכיון

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


×
  • צור חדש...