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

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


The_Hobbit

Recommended Posts

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

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

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

ושהרצתי זה הדפיס לי את זה..

The Point is on the line

Parallel straight

Straight cut

- - - תגובה אוחדה: - - -

האם line1.Shipoa נראה לך כמו הפעלת שיטה?

כן רשמתי את זה ככה..

line1.Shipoa()

אז הפעלתי שיטה..

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

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

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

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

ושהרצתי זה הדפיס לי את זה..

The Point is on the line

Parallel straight

Straight cut

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

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

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

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

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

הוספתי else if כי היה חסר לי עוד else ויצא לי נכון בדקתי עם המרצה במכללה..

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

אני צריך לכתוב שיטה בשם draw שתצייר מלבן (חלול) בגובה 4 ורוחב 4.

****

* *

* *

****

נתון לי הקוד הזה בהתחלה .. .

[/FONT]public class Rectangle { 
private int width , height;
public Rectangle (int w, int h) {
width = w;
height = h;
}
}


[FONT=Arial]

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

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

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

תחשוב כמה רווחים צריך להדפיס בכל שורה.

שמע אני צריך שתסביר לי את השאלה יותר טוב מה אני צריך לעשות ..

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

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

אגב, הערה - כשאתה כותב קוד, תשתמש במונחים באנגלית ולא בהיבריש (עברית באותיות אנגליות).

תחשוב שאתה מקבל קוד שכתב איזה צרפתי והוא ישתמש בשיטה שנקראת pente ולא יהיה לך מושג מה זה אומר...

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

באמצעות לולאות ו-ifים.

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

אני יודע שזה בסיסי בשבילך אבל זה שיעורים ראשונים אצלי יקח זמן עד שזה יקלט בראש ..

 public void draw () {	
System.out.print("*");
System.out.println(" ");
}

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

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

אתה מסתבך כי כמו שזה נראה, יש לך נטייה של לכתוב קוד בלי לחשוב, ואיכשהו מתישהו בסוף ייצא משהו דומה למה שרצית.

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

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

משהו בסגנון:

לכל X מ1 עד N:

* צייר רווח

* צייר X כוכביות

* רד שורה

(זה לא האלגוריתם לתרגיל שלך, סתם דוגמה).

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

לדעתי אתה מסתבך כי אתה מקובע על מלבן בגודל 4X4 שנתנו לכם.

תחשוב על המקרה בו היית צריך לצייר מלבן בגודל NXN. איך היית מחלק את המשימה לתתי משימות?

כמה כוכביות צריך להדפיס בכל שורה? האם ישנם שורות מיוחדות?

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

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

public static void draw(int h,int w)    {
for(int i=0;i<h;i++)
{
for(int j=0;j<w;j++)
{
if(i==0 || i==h-1) // if the first or last row
{
System.out.print("*");
continue;
}
if(j==0 || j==w-1)// if the first or last
System.out.print("*");
else// if not print _
System.out.print(" ");

}
System.out.print("\n"); // go down a row
}
}

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

ארכיון

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


×
  • צור חדש...