לגלישה באתר בגירסה המותאמת לסלולאר
| הוספת הודעה
הגדרות תצוגה

הגדרות עץ הודעות

מאפייני צפייה

הצג טקסט בתצוגה
הצג תגובות באופן
עדכן
1883018,830 עוקבים אודות עסקים

פורום שפות תכנות

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

הנהלת הפורום:

אודות הפורום שפות תכנות

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

צרף
תמונה וידיאו קובץ
קבצים המצורפים להודעה

לצפיה ב-'תכנות C קליטת נתונים מקובץ '
תכנות C קליטת נתונים מקובץ
07/01/2020 | 22:41
6
16
איך אוכל לקלוט שם(גודל מקסימלי 20) שני ערכים מספריים ואחר כך מצב(Yאו N) מקובץ שנראה כך:"Big Little Lies,355,7,Y
Riverdale,401,1,N
The X-Files,402,3,Y
Dark,444,2,Y"

איך אוכל לדלג על הפסיק בכל פעם?
*הגרשיים לא נמצאים בקובץ
לצפיה ב-'לא תכנת אבל..'
לא תכנת אבל..
08/01/2020 | 15:28
5
13
הגדר מבנה נתונים (record) אשר זהה למבנה הנתונים שלך ואזי קרא כל שורת נתונים מתוך הקובץ לתוך התכנית שלך.
השתמש בנתונים כפי שהוגדרו במבנה הנתונים (שדות).
 
אגב, מבנה נתונים כזה נקרא CSV ותוכל למצוא עליו לא מעט הסברים.
 
comma-separated values (CSV) file stores tabular data (numbers and text) in plain text.
 
לצפיה ב-'הבהרה'
הבהרה
08/01/2020 | 16:18
4
16
הבעיה שלי היא מה אני צריך לכתוב ב fscanf כדי לקלוט תבים נכונים, זה הייה מה שעשיתי ותמיד קיבלתי EOF כערך מוחזק של ה fscanf
\\
char sname[22], sid;
int snum, sstatus;
while (fscanf(f1, "% 21[^, ], %d, %d, %c\n", sname, &snum, &sstatus, &sid) != EOF)
printf("%-20s | %3d | %3d | %c\n\n", sname, snum, sstatus, sid);
 
למראת ש שני הקבצים נפתחו בלי להחזיר ערך NULL
לצפיה ב-'זה לא מה שהתכוונתי...'
זה לא מה שהתכוונתי...
08/01/2020 | 16:35
3
11
אתה לא מגדיר מבנה נתונים - מבנה רשומה.
 
ההבנה שלי היא שמבנה הקובץ שלך הוא = טבלא שמוורכבת מרשומות בעלות מבנה זהה, כאשר כל שדה ברשומה מופרד מרעהו בפסיק, והרשמות מפורדות בתוויות של "שורה חדשה" ואולי גם "TAB".
אם זה המבנה, אזי ההסבר שלי יתאים לך.
 
תוכל לבדוק את מבנה הקובץ בעזרת EDITOR פשוט.
לצפיה ב-'מבנה שורה בקובץ'
מבנה שורה בקובץ
08/01/2020 | 17:04
2
15
אני יודע את המבנה של הקובץ שלי,, המבנה הוא שם עד 20 תוו פסיק מספר עד 3 ספרות פסיק מספר עד 2 ספרות פסיק אחת האותיות Y/N וירידת שורה אבל אני לא יודע מה לכתוב ב fscanf כדי לקלוט נתונים אלה
 
דוגמה לשורה:
Money Heist,8,4,Y
לצפיה ב-'אנחנו לא צועדים לפי אותה תזמורת (תרגום מאנגלית)...'
אנחנו לא צועדים לפי אותה תזמורת (תרגום מאנגלית)...
08/01/2020 | 19:10
1
14
אולי לא למדת את הנושאים שעליהם אני מדבר.
אני יכול להנחות אותך צעד , צעד על פי התזמורת שלך (כולל תיקון שגיאות) אבל זו לא תהיה מטרת התרגיל (לדעתי) ובוודאי לא הדרך שאני תומך בה.
דוגמית:
אני יורד מהנושא.
יש בפורום אנשים מנוסים וטובים ממני.
בהצלחה.
לצפיה ב-'שפת פיתוח Tyl'
שפת פיתוח Tyl
08/01/2020 | 12:05
20
שלום,
 
במחצית השניה של 2019 פיתחתי שפת פיתוח תוכנה השם: Tyl
שפת Tyl שואבת השראה משפות כמו: Java, C#, Python
וכן יש לשפה גם גישה משלה לסקריפטינג ועיצוב תוכנה.
Tyl גם מיוחדת בכך שהיא שפה סימבולית, דבר התורם לנקיות הקוד.
 
ניתן להתרשם מהשפה בקישורים:
 
אשמח לתגובות והצעות
לצפיה ב-'את כל התווים שלא עונים לדרישה בregx '
את כל התווים שלא עונים לדרישה בregx
01/01/2020 | 08:54
1
20
שלום
יש לי טקסט ואני רוצה להפעיל עליו regx רשימה של תווים ומספרים שמותר להזין - אני רוצה לקבל את התוים שלא עומדים בדרישה או את התו הראשון לפחות
אני מפתחת ב type script 
לצפיה ב-'אפשר לשים את כל מה שאחרי התווים שמתאימים בקבוצה'
אפשר לשים את כל מה שאחרי התווים שמתאימים בקבוצה
05/01/2020 | 15:22
11
אז במקום לבדוק רק אם ה-regex מתאים, תבדוק גם שהקבוצה ריקה.
 
משהו כזה אני חושב:
 let regex = /^[a-z][a-z0-9]*(.*)$/
let groups = input.match(regex)

let badPart = groups[1];
 
לצפיה ב-'מתקשה לפתור תרגיל בשפת C אם מישהו יוכל לעזור'
מתקשה לפתור תרגיל בשפת C אם מישהו יוכל לעזור
13/12/2019 | 11:38
3
119
אני צריך לכתוב פונקציה רקורסיבית שמקבלת ניקוד של שני שחקנים, והפונקציה תדפיס את כל האפשרויות כדי להגיע לתוצאה בין שני השחקנים כך ש בכל מהלך השחקן מקבל או נקודה אחת או שתי נקודות,
 
עוד הסבר ל"משחק":
במשחק כדורגל שכונתי בשם "סטנגה" כאשר מבקיעים גול מקבלים נקודה אחת, וכאשר פוגעים בקורה מקבלים שתי נקודות. עליכם לכתוב תכנית רקורסיבית כאשר בהינתן תוצאת המשחק יוצגו כל מהלכי ההבקעה של המשחק האפשריים.
 
*אסור להשתמש בלולאות.
 
**מצורף כמה מקרים של תוצאות-->
לצפיה ב-'בפונקציה רקורסיבית כדאי להתחיל מהמקרה הפשוט ביותר.'
בפונקציה רקורסיבית כדאי להתחיל מהמקרה הפשוט ביותר.
19/12/2019 | 13:35
2
40
לדוגמא תתחיל בלכתוב פונקציה שעושה את זה עבור 0:0
אחרי זה תכתוב פונקציה שיודעת לעשות את זה עבור 1:0 ו-0:1
פונקציה שיודעת לעשות את זה עבור 1:1
פונקציה עבור 2:0 ו-0:2
 
בשלב הזה אתה כבר אמור לראות איזשהו דפוס ולהצליח לקרוא לפונקציה אחת מתוך השניה.
 
 
לצפיה ב-'להתחיל ממקרה פשוט'
להתחיל ממקרה פשוט
20/12/2019 | 11:54
1
34
לא הצלחתי גם בזאת   
לצפיה ב-'במה בדיוק אתה לא מצליח?'
במה בדיוק אתה לא מצליח?
27/12/2019 | 14:52
21
אתה לא יודע איך ליצור פונקציה? איך לקרוא לה?
מה חסר לך?
לצפיה ב-'אירוע בנושא פיתוח על גבי Cognitive'
אירוע בנושא פיתוח על גבי Cognitive
02/12/2019 | 23:02
16
אירוע בנושא פיתוח על גבי Cognitive שיסקור את שירותי AI וממשקי ה- API הקוגניטיביים ב- AZURE וכאלה שיסייעו בבניית אפליקציות חכמות
רישום לאירוע
https://www.eventbrite.co.uk/e/cognitive-and-datab...
לצפיה ב-'יותר מאשמח לקבל הסבר מה זה תכנות web?'
יותר מאשמח לקבל הסבר מה זה תכנות web?
25/11/2019 | 17:59
1
35
בעבר (עד היום) קישרתי תכנות web עם כל מה שקשור לעבודה עם דפדפנים...
אבל היום אני מרגיש ממש ממש מבולבל..
הבנתי שיש אפליצקיות שרת (שלפי מה שהבנתי, ייתכן וטעיתי, שאינן קשורות בהכרח לעבודה מול דפדפן) שמשתמשות בכל מיני טכנולוגיות של .net וגם תכנות שכזה נחשב תכנות web.
ממש ממש אודה למי שיוכל לעשות לי קצת סדר בבלאגן... אני אחרי תואר בהנדסת תוכנה ומתבייש להגיד שאני עדיין לא מבין ומבולבל מאוד..
אני לא מתעצל לקרוא חומר.. אבל פשוט כל מה שאני קורא מסורבל.. ולא הייתי רוצה עכשיו לקרוא ספר ארוך רק כדי להבין מה זה בכלל..
אשמח מאוד לקצת סדר בבלאגן
לצפיה ב-'אתה לא צריך להתבייש. תואר לא נועד להקנות לך ידע ספציפי לגבי'
אתה לא צריך להתבייש. תואר לא נועד להקנות לך ידע ספציפי לגבי
26/11/2019 | 12:44
30
תחומי תכנות, התפקיד שלו זה להנחיל ידע כללי בהנדסת תוכנה.
 
תחום הפיתוח בכלל, ותת תחום של פיתוח Web הם מאוד רחבים וגדולים, ואין שום בושה בכך שמצטרף חדש לא יכיר אותם.
 
"פיתוח Web" הוא מונח שמכסה כל דבר שעובד דרך האינטרנט.
זה ממש ממש בגדול.
 
בפועל, התחום מתחלק לשניים:
פיתוח צד שרת, ופיתוח צד לקוח.
 
פיתוח צד לקוח זה החלק שיורד לדפדפן שלך, ובנוי בד"כ מדברים כמו HTML, JavaScript ו-CSS.
 
צד שרת, זה הצד שרץ על השרת, והוא מייצר את מה שיורד לדפדפן, מנהל בסיס נתונים, ואולי עושה עוד כל מיני דברים.
 
כאן יש מגוון רחב של טכנולוגיות, כאשר NET. היא דווקא בדעיכה.
הפופולריות היום הן PHP, node.JS (כן, אפשר לפתח ב-JavaScript גם בצד שרת), Python, ועוד כמה דברים כמו Ruby on Rails ואפילו Go Lang של גוגל.
 
כמובן, צריך גם להכיר עבודה עם DB, כמו שימוש ב-SQL, ושיש DB שהם דווקא No SQL.
 
יש גם אנשים שעושים הכל מהכל והם נקראים "Full stack".
 
כשאתה פותח אתר מודרני, אפילו אתר מסכן כמו הפרום הזה, יש מאחוריו הרבה מאוד קוד.
 
חלק מהקוד רץ בתוך דפדפן על מחשב שלך, וחלק רץ על השרת של תפוז.
כל חלק כזה לבדו לא יעשה כלום, צריך את השילוב, וזה למעשה פיתוח WEB - בניית מערכת \ אפליקציה, שעובדת דרך האינטרנט.
 
מקווה שזה מבהיר לך את הבסיס.
אם יש עוד שאלות אתה מוזמן.
 
יש גם פורום מספר 156 פה בתפוז שהוא פורום "פיתוח רשת ובניית אתרים".
שם תוכל לפגוש אנשים שעובדים בתחום ויוכלו לתת לך יותר מידע.
לצפיה ב-'help'
help
10/11/2019 | 19:46
4
29
למביני סי שארפ כאן
נתבקשתי לבנות תרשים זרימה לתוכנית שקולטת 2 מספרים תלת ספרתיים ומבקשת לבדוק האם הם בנויים מאותן הספרות
ז"א למשל 256 ו- 526 - מורכבים מאותן ספרות אך 219 ו-314 לא

איך פותרים שאלה כזו?
תודה מראש לעוזרים
לצפיה ב-'תרשים זרימה לא מחייב ידע בשפה'
תרשים זרימה לא מחייב ידע בשפה
12/11/2019 | 15:09
3
18
תרשים זרימה רק אומר אלו פעולות צריך לבצע, לא איך אמור להיראות הקוד בפועל שמבצע אותן.
 
כדי להכין כזה, את צריכה קודם כל לשבת ולחשוב איך היית פותרת את התרגיל ידנית, עם דף ועט.
 
למשל:
1. קלוט מספר ראשון
2. קלוט מספר שני
3. פרק מספר ראשון לספרות מהן מורכב ואחסן את הספרות
4. פרק מספר שני לספרות מהן מורכב ואחסן את הספרות
5. תשווה את הספרות שאחסנת בצעד 4 לאלה שאחסנת בצעד 5.
 
אגב, האם המספרים 552 ו-225 מורכבים מאותן ספרות או לא?
כלומר, האם הכמות עליה חוזרת כל ספרה משנה?
 
האם התבקשת לבדוק את תקינות הקלט בתרגיל?
לצפיה ב-'האם לא כדאי למיין את הספרות שאוחסנו לפני ביצוע ההשוואה?'
האם לא כדאי למיין את הספרות שאוחסנו לפני ביצוע ההשוואה?
18/11/2019 | 10:22
2
11
לצפיה ב-'אפשר. תלוי איך מאחסנים את הספרות.'
אפשר. תלוי איך מאחסנים את הספרות.
18/11/2019 | 12:11
1
23
שפות גבוהות וחדישות כמו #C לרוב מכילות מבני נתונים כמו HashMap או Dictionary כחלק מהספרייה הסטנדרטית של השפה.
 
אם מותר להשתמש במבנה כזה בתרגיל, זה יחסוך את הצורך בכתיבת קוד מיון.
 
אפשרות נוספת היא שימוש במערך טיפש ופשוט, כאשר האינדקס של המערך הוא הספרה, ותוכן התא מציין את כמות הפעמים שהספרה מופיע במספר.
 
זה יכול להיות קצת בזבזני כי מגדירים מערך של 10 תאים עבור 3 ספרות, אבל זה מקל על ההשוואה וחוסך צורך בקוד מיון.
לצפיה ב-''
18/11/2019 | 18:17
6
לצפיה ב-'קורס JAVA אונליין חינמי למתחילים (ללא ידע בתחום). יש המלצה?'
קורס JAVA אונליין חינמי למתחילים (ללא ידע בתחום). יש המלצה?
21/10/2019 | 17:17
7
19
לצפיה ב-'התחלה של הסוף - למה אתה שולח מישהו למקום הנורא הזה?'
התחלה של הסוף - למה אתה שולח מישהו למקום הנורא הזה?
10/11/2019 | 08:58
15
לצפיה ב-'The Best'
The Best
31/10/2019 | 23:37
41
לצפיה ב-'האינטרנט מפוצץ בחומר'
האינטרנט מפוצץ בחומר
10/11/2019 | 09:04
3
35
תיכנס ל pluralsight - הוא עולה כסף אבל נותן 10 ימים חינם. תנסה.
תשיג מישהו עם חשבון אימייל של ac.il ואז תוכל אולי לנצל אותו בשביל חשבון קבוע ב pluralsight
 
תנסה את אותו הטריק גם ב lynda, udemy, code academy
 
לצפיה ב-'EDX חינמי ויש עוד אתרים חינמיים.'
EDX חינמי ויש עוד אתרים חינמיים.
18/11/2019 | 10:24
2
16
לצפיה ב-'אולי הוא סבבה. לא אומר לא לנסות. אני אומר מהניסיון שלי'
אולי הוא סבבה. לא אומר לא לנסות. אני אומר מהניסיון שלי
22/11/2019 | 17:51
1
17
והוא בעיקר עם האתרים שאמרתי
לצפיה ב-''
22/11/2019 | 21:44
3
לצפיה ב-'שאלה לגבי טיפוסים ג'נריים בשפת ג'אווה'
שאלה לגבי טיפוסים ג'נריים בשפת ג'אווה
18/10/2019 | 14:25
11
32
 Public List<String> funcA()
{
  return new ArrayList<Object>();
}
אמנם אני יודע שהשאלה שלי היא בנושא "יחסית" מתקדם בג'אווה אבל אשמח לקבל תשובה עבורה (סיעפתי קצת את השאלה בתקווה שזה בסדר).
אנסה להסביר את השאלה כמה שיותר טוב ולפרט אותה בכמה דוגמאות.
1.קראתי שכאשר מכריזים ובונים אובייקט ג'נרי אז במידה ולא ציינתי את סוג האובייקט בצורה מפורשת בתוך סוגריים משולשות, למעשה מוצב שם טיפוס על "Object". מצד שני רשום שמקרה כזה פוגע ב- Safe Type". נתבונן בדוגמא הבאה:
 Public List<String> funcA()
{
  return new ArrayList<Object>();
}
הפונקציה שלמעלה לא מתקמפלת. לעומת זאת הפונקציה הבאה כן מתקמפלת:
 Public List<String> funcA()
{
  return new ArrayList();
}
האם אין פה סתירה? הרי נאמר שבמקרה ולא מוכרז שום טיפוס אז "מוצב" שם טיפוס Object
ואז המצב בפונקציה השנייה צריך להיות זהה למצב שבפונקציה הראשונה ולא להתקמפל. האם אני טועה?
 
2.בנוסף, "הצצתי" במימוש של ג'אווה למחלקה HashMap
ראיתי שם את המימוש הבא:
 Node<K,V> newNode(int hash, K key, V value, Node<K,V> next) {
       return new Node<>(hash, key, value, next);}
מה זה אומר סוגריים משולשות ריקות? איך זה מסתדר עם העובדה שהפונקציה מכריזה שהיא מחזירה <Node<K,V?
על זה בכלל לא מצאתי שום התייחסות.
 
3.עוד משהו אחד שקשור לטיפוסים כללים שאשמח לקבל עבורו התייחסות הוא קטע קוד נוסף מהמחלקה HashMap:
 
 public final boolean contains(Object o) {
           if (!(o instanceof Map.Entry))
               return false;
           Map.Entry<?,?> e = (Map.Entry<?,?>) o;
           Object key = e.getKey();
           Node<K,V> candidate = getNode(hash(key), key);
           return candidate != null && candidate.equals(e);
       }

אמנם העתקתי את כל הפונקציה, אבל אני אני רוצה לדעת רק את משמעות הסוגרים המשולשות עם סימני השאלה.
בדרך כלל אחרי סימן שאלה צריך להופיע super או extend
אשמח להבין את המשמעות פה.
 
מתנצל מראש על ההעמסה. מציין שכשאני מנסה לשאול את השאלה ב- SO הם ישר כותבים duplicate, למרות שהם מנתבים לקישור שממש ממש לא עונה על הדקויות של השאלה שלי. אני מנסה להסביר להם את זה, אבל ברגע שהם מסמנים את זה כ- duplicate אפשר לדבר עם המנורה :)
תודה וחג שמח
לצפיה ב-'כדאי למקד את השאלה. נראה שאתה מערבב כמה נושאים ביחד'
כדאי למקד את השאלה. נראה שאתה מערבב כמה נושאים ביחד
19/10/2019 | 09:33
1
21
קשה לדעת ככה על מה לענות
לצפיה ב-'הכל סביב טיפוסים כללים והמונח erasure'
הכל סביב טיפוסים כללים והמונח erasure
19/10/2019 | 15:07
20
לא רואה פה עירבוב...
אם מישהו יקרא יגיד מה בדיוק לא ברור אז אשמח לערוך
תודה
לצפיה ב-'כמה תשובות:'
כמה תשובות:
20/10/2019 | 13:00
4
22
נתחיל מהסוף:
סימן שאלה הוא wildcard - שאומר "אתה יכול לשים כאן כל טיפוס שתרצה".
 
יש תיעוד לזה גם באתר של Oracle עצמם, וגם תשובה די ברורה ב-SO.
 
הסיבה שאתה לא צריך לכתוב אחרי זה extends, היא כדי לחסוך לך הקלדה.
Java יוצא מנקודת הנחה שאם לא כתבת, אז אתה מתכוון "כל דבר שיורש מ-Object".
 
לגבי שאלה מספר 1:
לא יודע איפה קראת שברירת מחדל היא Object, אבל זה לא נכון.
כשאתה מנסה לייצר אובייקט אוסף (colection) גינרי ולא מציין את הטיפוס שעליו להכיל, Java מנסה לנחש את הטיפוס לפי הקוד שמסביב.
 
במקרה שלך, היות ו-new נמצא ב-return, הקומפיילר יבדוק איזה טיפוס return מצפה לקבל (כיצד מוכרזת המתודה), ולפי זה ימלא את הפרמטר.
 
הדרך הנכונה לכתוב את זה תהיה:
 return new ArrayList<>();
הסיבה שמותר לך לרשום סוגריים משולשים ריקות, היא שכבר כתבת מה אמור להיות בסוגריים בכותרת הפונקציה.
 
זה עובד גם כשמגדירים משתנים או שדות של אובייקט:
 ArrayList<String> var = new ArrayList<>();
אין סיבה לכתוב String פעמים באותה שורה. הקומפיילר מספיק חכם להבין מה אתה רוצה.
 
שים לב שאם תשמיט את הסוגריים לגמרי, תקבל אזהרה מהקומפיילר:
 warning: [unchecked] unchecked conversion
   return new ArrayList();
         ^
 required: List<String>
 found:    ArrayList
הסינטקס הזה לא בדיוק תקני, אבל הוא עדיין יעבוד.
אם אתה רוצה לדעת מתי הוא יפול, תצטרך לחפור בקרביים של מימוש VM.
 
ולבסוף לגבי שאלה 2, ראה התחלה של תשובה 1
לצפיה ב-'לגבי מה שאמרתי שג'אווה מחזירה רשימה של Object'
לגבי מה שאמרתי שג'אווה מחזירה רשימה של Object
23/10/2019 | 21:58
3
14
רשום שזה מצב של Raw Type
שנוצר כדי לתמוך במימוש שהיה בעבר, בו לא היו קיימים מחלקות ג'נריים.
לפי מה שאני מבין בהיעדר סוגריים משולשות, אז המצב שקול למצב שלתוך T מוצב טיפוס Object, ואז אנחנו מקבלים List<Object>
אשמח אם תתקן אותי שוב כי אני אפילו לא יכול לתאר לך כמה חומר קראתי ויצאתי רק יותר מבולבל (שלא להגיד מתוסכל)
לצפיה ב-'בכנות,אני לא עד כדי כך בקי ב-iternals של Java'
בכנות,אני לא עד כדי כך בקי ב-iternals של Java
24/10/2019 | 01:11
2
12
אז עשיתי כמה בדיקות קטנות, ונראה שהלכה למעשה, כל ה-Jenerics קיימים רק ב-compile time.
 
כלומר, לא משנה מה תכתוב בסוגריים משולשים, אחרי שתקמפל, יהיה לך בכל מקרה אוסף של reference לאובייקטים שלא אכפת לו כלל מהטיפוס שלהם.
 
הדבר היחיד שהצבה בסוגריים עושה, זה לבדוק בזמן קומפילציה שאתה לא מנסה להפעיל על הרפרנס מתודה שלא קיימת, או להציב אותו במשתנה מטיפוס ספציפי שלא מתאים למה שהגדרת.
 
סה"כ זה הגיוני כשמכירים את Java - מתחת למכסה המנוע, יש לה רק רפרנסים (לכל מה שלא טיפוס פרימיטיב), ולא ממש אכפת לה אם מנסים בכוח להפעיל מתודה לא רלוונטית על רפרנס.
היא תזרוק חריגה וזהו.
 
בקיצור - הכיתוב המקוצר, ללא סוגריים, כנראה אכן קיים לצורך תאימות לאחור כמו שקראת, ולכן, לפחות בגרסאות אחרונות של Java הוא גם מסרב להתקמפל בלי פרמטר ספציפי לקומפיילר.
-Xlint:unchecked
 
אבל הוא למעשה עושה את אותו הדבר כמו סוגריים משולשים ריקים (שמכונים גם "יהלום").
לצפיה ב-'אחלה תודה.. אבל אולי תוכל בכל זאת לעזור לי מהמסקנות'
אחלה תודה.. אבל אולי תוכל בכל זאת לעזור לי מהמסקנות
24/10/2019 | 19:19
1
9
האלה, להסיק מה בעצם קרה בסעיף מספר 1, שקוד מסויים כן התקמפל והשני לא?
אני פשוט לא מוצא הסברים..
עדיין על זה כל ערב :)
לצפיה ב-'נראה לי די פשוט:'
נראה לי די פשוט:
25/10/2019 | 14:10
10
הקומפיילר בודק מה אתה מנסה לעשות:
כשאתה אומר לו במפורש להחזיר ArrayList שמחזיק Object מפונקציה שמצפה ל-ArrayList שמחזיק String הוא רואה שאתה עושה טעות, ומסרב לשתף איתך פעולה.
 
לכן הקוד לא מתקמפל.
 
כשאתה אומר לו להחזיר ArrayList בלי לציין מה הוא מחזיק, הקומפיילר עדיין בוכה שזה מסוכן, אבל משתף איתך פעולה מתוף נקודת הנחה שתזכור מה התכוונת לדחוף לשם.
לצפיה ב-'למרות שאני לא כותב בג'אווה באופן מקצועי היום... אנסה לענות'
למרות שאני לא כותב בג'אווה באופן מקצועי היום... אנסה לענות
21/10/2019 | 20:35
3
26
 Public List<String> funcA()
{
  return new ArrayList<Object>();
}
 
הקטע קוד הראשון שציינת לא מתקמפל מסיבה ברורה, מאחר והרשימה בפנים היא ArrayList of object הרי שיכלת להכניס לשם כל דבר, לא רק string. על כן casting של הדבר הזה ל List of String מסוכן ועל כן אסור.
 
לגבי המימוש של newNode ב HashMap יש הסבר פשוט וקליל בתיעוד של java עצמה - המבנה נקרא The diamond (יהלום) וקיים בג'אווה מאז ג'אווה 7. מה שהוא אומר זה כזה דבר: אם הקומיילר בזמן קומפילציה מצליח להבין מה הטיפוס צריך להיות שם - הוא יסתדר גם בלעדייך. 
 
 The Diamond
In Java SE 7 and later, you can replace the type arguments required to invoke the constructor of a generic class with an empty set of type arguments (<>) as long as the compiler can determine, or infer, the type arguments from the context. This pair of angle brackets, <>, is informally called the diamond. For example, you can create an instance of Box<Integer> with the following statement:

Box<Integer> integerBox = new Box<>();
For more information on diamond notation and type inference, see Type Inference.
 
בקשר לסימני שאלה, כמו שכבר ענו לך, מדובר ב wild card. המטרה של המנגנון הזה ב generics של java הוא להגיד שלמימוש לגמרי לא אכפת מהטיפוס במקרה הזה וניתן להתייחס אליו בתור object.
 
המונח erasure שהעלת הוא מונח מעניין שמדבר ספציפית על צורת המימוש של generics בג'אווה. ספציפית גם את זה אפשר לקרוא בתיעוד. בקצרה, יש כמה דרכים לממש generics.
כאשר מדובר בשיטה שבה מימוש generics בג'אווה מדובר בעצם ב compile time generics, במצב הזה כבר בזמן הקומפילציה הקומפיילר מעיף לעזאזל את כל ה <T> ומחליף אותם ב cast על ה boundaries, העדר boudaries הוא מחליף את זה ב cast ל object. כך יוצא, בעצם, שבזמן ריצה, אין מידע על הטיפוסים ה"גנריים" שיש לך ביד, כלומר
ArrayList<String>
ArrayList<Integer>
מבחינת ה runtime הם זהים, כלומר שתיהם ArrayList בעצם, וההבדל היחיד הוא שה compiler בזמן הקומפילציה הוסיף cast ל String או ל Integer בכל המקומות הנחוצים על מנת שהקוד יעבוד.
שיטת המימוש הזאת מביאה איתה הרבה מגבלות (לדוגמא אי אפשר לייצר ArryList of int אלא רק של Integer) ומקומות מעניינים.
תנסה לממש לבד DI Container, זה דרך מעניינת ללמוד על java generics.
 
כאנקדוטה קטנה על אותו הנושא: ב #C החליטו לממש runtime generics (לא השם של השיטה - לא מצאתי שם אז הנפצתי), בגדול מה שזה אומר שנוצרים classes מיוחדים עבור כל טיפוס וטיפוס, כלומר
List<string>
List<int>
הם בעצם 2 טיפוסים שונים לגמרי כמו שניתן לראות בדוגמא
 public class C {
   public void M() {
   DemoClass<string> s = new DemoClass<string>();
   DemoClass<int> i = new DemoClass<int>();
   }
}
בקוד הIL (ככה נקראת השפת ביניים של #C - ה bytecode של java)
 DemoClass`1<int32>
DemoClass`1<string>
 
לצפיה ב-'התייחסות לתגובה'
התייחסות לתגובה
23/10/2019 | 22:17
2
15
קודם כל תודה :)
מצטער של- BravoMan לא מסרתי תודה בתגובה הקודמת. מגיע לו ומקווה שהוא יראה את זה פה :)
שנית, אשמח לקבל התייחסות נוספת לכמה מהדברים שעלו לי בראש בזכות תגובתך:
1. אני מבין את הבעיה שאתה מתאר. אבל למה הפונקציה השנייה שציינתי כן התקמפלה? מה בעצם מוכרז שם כשרושמים:
 return new ArrayList()
ללא סוגריים... ניסיתי  לשאול גם את BravoMan בתגובה שלי, האם לא מדובר בהחזרה של raw type ששקול להחזרה של רשימה של טיפוסים מסוג Object?
2. במקרה של הדוגמא שהראתי, "ההסקה" ב-:
 Node<K,V> newNode(int hash, K key, V value, Node<K,V> next) {
       return new Node<>(hash, key, value, next);}
 
מתבצעת מ- 
 Node<K,V>
 
?
 
3. בדוגמא הנחמדה שהראית, מה רצית להראות (האם אני מבין נכון): א.שבסי שארפ אפשר להכניס בתור Type Argument גם טיפוסים פרימיטייבים? ב. שעבור כל הצבה של Type Argumnet השפה ממש יוצרת class משלו?
 
לצפיה ב-'שוב - אני לא כותב בג'אווה ביום-יום שלי'
שוב - אני לא כותב בג'אווה ביום-יום שלי
31/10/2019 | 22:38
1
13
הייתי לוקח את התשובות שלי בערבון מוגבל.
1. אני מניח שבגלל שבג'אווה אין בזמן ריצה את הטיפוס הזה 
ArrayList<T>
אלא מדובר ב ArrayList שפשוט עושים בכל מקום פעולות cast כדי להמיר/לוודא את האלמנט שאתה מעביר, אזי כשאתה עושה פשוט ArrayList אז אתה מקבל התנהגות דיפולטיבית של ArrayList דהיינו
ArrayList<Object>
 
2. כן, זה סתם סוכר סינטקטי ככל נראה הקומפיילר עושה lowering לדבר הזה כי הוא יכול להסיק בלעדייך מה הטיפוסים, הרי אתה עושה השמה לתוך משתנה שהטיפוס שלו מוגדר
 
3. כן אנקדוטקה קטנה על איך שפות ש"מאוד דומות" (אני לא מאמין לקשקוש הדימיון) מתחת לפני השטח מאוד שונות. בעצם ב #C וב java בחרו גישות שונות לחלוטין למימוש של generics (וכנראה של עוד לא מעט דברים). דומה דומה אך מאוד שונה.
אבל אם לדייק - כן, בגלל הצורה השונה מאוד שבה מימשו את מנגנון ה generics בשפת #C (בתחלס זה בכל שפות CLR) אתה בעצם יכול להשתמש בקלות בטיפוסים פרימיטיביים בתור הפרמטר הגנרי שלך, מבלי לעשות boxing.
כן, בעצם עבור כל generic class מיוצר מימוש ייחודי, שלפעמים כולל אופטימיזציות שונות לחלוטין בהתבסס ב type constraints שאתה מגדיר, ככה הקומפיילר יכול למחוק קטעים שלמים של קוד שלא רלוונטיים בשום צורה עבור הטיפוס הקונקרטי איתו השתמשת.
נושא מעניין, מבלבל ועמוק. :)
לצפיה ב-'תודה רבה.. כל כך מבלבל שיש סיכוי ששבר אותי לחלוטין'
תודה רבה.. כל כך מבלבל שיש סיכוי ששבר אותי לחלוטין
03/11/2019 | 13:49
9
תודה על העזרה!
לצפיה ב-'snmp'
snmp
02/10/2019 | 12:30
30
אני צריך ספריית SNMPV3++ בC++ גרסה ישנה 3.2.20
לא מצליח למצוא בשום מקום.
מישהו יכול לעזור?
תודה רבה
לצפיה ב-'פיייתון - שימוש בפונקצייה למספר עשרוני'
פיייתון - שימוש בפונקצייה למספר עשרוני
05/09/2019 | 23:18
7
71
צרו רשימה במרווחים קבועים שאינם דווקא שלמים. 
איך משתמשים בfloat  כדי לרשום בעשרונ י?
r = range(0,-4,-1)
i = 0
while i < len(r):
    print (r[i])
    i = i + 1
לצפיה ב-'פיייתון - שימוש בפןנקצייה למספר עשרוני'
פיייתון - שימוש בפןנקצייה למספר עשרוני
05/09/2019 | 23:29
6
45
בבקשה
תודה רבה
לצפיה ב-'ואם אנחנו לא רוצים?'
ואם אנחנו לא רוצים?
06/09/2019 | 22:33
5
38
מה זה הדיבור הזה "תצרו"? מה אנחנו בצבא ואתה מפקד שלנו? מחלק לנו פקודות?
 
טוב, עכשיו ברצינות:
 
השאלה שלך לא מובנת. נראה שניסית לזרוק כאן חתיכה מאיזה תרגיל כדי שנפתור לך אותו, אבל גם אם היינו פותרים פה תרגילים (ולא, אנחנו לא עושים שיעורי בית בפורום), עדיין לא נתת מספיק מידע כדי שנוכל לעזור לך.
 
אם תסביר יותר טוב מה אתה רוצה ומה לא מובן, אולי נוכל לעזור.
לצפיה ב-',למה יורדים פה על תלמידים?'
,למה יורדים פה על תלמידים?
07/09/2019 | 15:22
4
40
טיפה סבלנות וסובלנות תביא אותנו רחוק.
 
תודה על ההקשבה.
(אפשר לעבור ל"נוח")
לצפיה ב-'לא יורדים על תלמידים, יורדים על רמאים!'
לא יורדים על תלמידים, יורדים על רמאים!
07/09/2019 | 16:43
3
39
אין שום בעיה לעזור לתלמיד להבין משהו שהוא לא מבין, אבל לא נהוג לתת לאנשים תשובות לשיעורי בית שהם אמורים לפתור בעצמם.
 
אגב, אם אתה כזה חכם, למה שלא תעזור לשואל במקום להטיף לנו מוסר?
תפתור את הבעיה שלו - היא הרי לא קשה, נכון?
לצפיה ב-'טוב הבנתי לאן נושבת הרוח.'
טוב הבנתי לאן נושבת הרוח.
08/09/2019 | 21:24
2
39
1.גם אנחנו היינו תלמידים פעם, הלא-כן?
2. כדאי תמיד לקרוא את הלוגו של האתר (ראש האתר)
3. חשבתי שהאתר הזה הוא כמו אתר SO וטעיתי.
 
בהצלחה בהמשך הדרך.
לצפיה ב-'יש לך מושג כמה מהר שאלה שלו היית נמחקת מ-SO?'
יש לך מושג כמה מהר שאלה שלו היית נמחקת מ-SO?
13/09/2019 | 11:28
1
31
אני מנחש שלא, אחרת לא היית כותב את מה שכתבת.
 
ואכן, כולנו היינו תלמידים פעם.
אני אישית פתרתי את שיעורי הבית שלי בעצמי, לא בגלל שאז עוד לא היו פורומים לחפש אנשים שיפתרו במקומי, אלא בעיקר כי לימדו אותי לא לרמות.
לצפיה ב-'העומס העצום שקיים בנתינת מענה מפורט לכל אחת מהשאלות פה'
העומס העצום שקיים בנתינת מענה מפורט לכל אחת מהשאלות פה
19/09/2019 | 16:42
31
אינו מאפשר לענות לתלמידים בצורה שתענה על צרכיהם.
לצפיה ב-'עברית בפייתון'
עברית בפייתון
08/08/2019 | 18:48
1
33
שלום לכם,
זוכר שיש Lib עבור כתיבה מימין לשמאל.... עברית.
לא זוכר את שמה.
מישהו מכיר?
עובד עם פייטון 3 ב- PyCharm
לצפיה ב-'מה הכוונה "כתיבה מימין לשמאל"?'
מה הכוונה "כתיבה מימין לשמאל"?
09/08/2019 | 11:57
32
פייתון כשפה לא מתעסק עם כיווני כתיבה, הוא שומר מחרוזות utf-8 ולא אכפת לו אם יש שם עברית.
 
תצוגת המחרוזת תלויה בממשק אליו אתה מוציא את המחרוזת.
 
האם אתה עובד מול ממשק טקסטואלי? כמו CMD של חלונות או Shell כלשהו תחת לינוקס?
האם אתה משתמש בערכת GUI כמו GTK?
 
בעבר היית קיימת ספרייה, שאיני זוכר את שמה המדויק, שהיית מבצעת את פעולת ה-BiDi (כתיבה דו כיוונית - עברית - אנגלית - ספרות) ומשנה מחרוזות כך שממשק שאינו תומך עברית היה מציג עברית נכון.
 
היות וכבר שנים אין ממשקים כאלה, אני לא בטוח אם הספרייה עדיין מתוחזקת, ואם יש לה bindings עבור Python 3.
חיפוש מהיר מוצא את זה:
 
די בטוח שזה לא מה שזכרתי, ולא יודע אם יעבוד לך, אבל אתה יכול לנסות...
 
בהצלחה!
לצפיה ב-'מתקשה לפתור תרגיל בשפת C אם למישהו יש ריעין'
מתקשה לפתור תרגיל בשפת C אם למישהו יש ריעין
05/07/2019 | 22:02
10
130
צריך לכתוב פונקציה שתקלוט שתי מטריצות בגודל MXN ולהציב לכל איבר במטריצה B את ממוצע האיבר המקביל לו במטריצה A וכל האיברים שמסביב
הבעיה שלי באיברים במסגרת החיצונית כאשר חלק מהאיברים שמקיפים את האיבר המקביל נמצאים מחוץ למטריצה (מערך דו ממדי)

לצפיה ב-'ומה בדיוק הבעיה שלך? מה ניסית?'
ומה בדיוק הבעיה שלך? מה ניסית?
06/07/2019 | 00:21
8
40
בגדול, יש שתי דרכים לפתור את זה: שימוש ב-if, ושימוש במטריצה גדולה יותר.
לצפיה ב-'מטריצה גדולה יותר לא נותנת פתרון פשוט לחישוב ממוצע.'
מטריצה גדולה יותר לא נותנת פתרון פשוט לחישוב ממוצע.
07/07/2019 | 01:23
7
37
אגב, למה לקלוט שתי מטריצות?
לצפיה ב-'אכן, שכחתי שספציפית עבור ממוצע'
אכן, שכחתי שספציפית עבור ממוצע
07/07/2019 | 01:34
6
35
שוליים זה עדיין בעיה, אבל למען האמת עניתי בלי יותר מידי מחשבה בעיקר כדי לראות אם השואל יוסיף פרטים ויכנס לדיון רציני, או סתם מצפה לפתרון תרגיל מוכן שהוא יוכל להגיש.
 
אני מניח שכשהשואל אומר "לקלוט", הוא למעשה מתכוון "לקבל בתור פרמטר".
תרגיל בית די טיפוסי סה"כ.
לצפיה ב-'תודה לעונים, מוסיף עוד פרטים'
תודה לעונים, מוסיף עוד פרטים
10/07/2019 | 18:29
5
33
קודם תודה לכם שהתייחסתם, ועניתם
הפונקציה מקבלת 2 מטריצות באותו גודל, אחת מכילה מספרים והשנייה ריקה,
הפעולה שצריך לבצע פשוטה , פשוט לחשוב ממוצע של איבר במטריצה A במערכת נניח (0,1) וכל האיברים שמקיפים איתו ולהציב את התוצאה (הממוצע) לתוך נאיבר המקביל (0,1) במטריצה B (המטריצה הריקה).
חישוב הממוצע הוא די פשוט אומנם הבעיה היא באיברים ההיקפים של המטריצה שכן חלק מהאיברים שמקיפים אותם נמצאים מחוץ למטריצה ומכילים זבל
לדוגמא, האיבר (0,1) מקיפים אותו (0,2)(1,0)(1,1) והשאר נמצאים מחוץ לתחום המטריצה
איך מתגברים על הבעיה, תנו לי רעיון (לא מבקש פיתרון מלא)
תודה
לצפיה ב-'אין דבר כזה "איברים מחוץ למטריצה".'
אין דבר כזה "איברים מחוץ למטריצה".
11/07/2019 | 12:49
31
מה שקורה, זה ששפת C מאפשרת לך לגשת לזיכרון שהאינו שלך, אם רק תבקש יפה.
 
כאמור, כדי להימנע מגישה לזיכרון כזה, עליך לבצע בדיקות על מיקום האיבר שאתה עובד איתו, כדי לקבוע אם יש לו שכנים מכל הצדדים, או רק חלק.
 
תשתמש במשפט if של שפת C כדי לעשות את הבדיקות.
לצפיה ב-'אז אין פיתרון?'
אז אין פיתרון?
11/07/2019 | 14:04
3
30
זו שאלה שקבלנו במבחן סוף סמסטר
אז איך יכול להיות שיתנו לנו שאלה שאין לה פיתרון
לצפיה ב-'למה החלטתה שאין פתרון?'
למה החלטתה שאין פתרון?
11/07/2019 | 15:44
31
מה הבעיה לבדוק שלא קיימים שכנים לחלק מהתאים במטריצה ולחשב רק על בסיס של השכנים הקיימים?
 
אם זו שאלה ממבחן סוף סמסטר, וודאי כבר למדתם איך עובדים משפתי תנאי.
לצפיה ב-'פתרון (סתם כי משעמם לי)'
פתרון (סתם כי משעמם לי)
12/07/2019 | 00:35
1
53
 void average(int A[M][N], double B[M][N]) {
for (int i=0;i<M;i++) {
for (int j=0;j<N;j++) {
double sum=0;
int count=0;
for (int p=i>0?i-1:0;p<=i+1 && p<M;p++) {
for (int q=j>0?j-1:0;q<=j+1 && q<N;q++) {
sum+=A[p][q];
count++;
}
}
B[i][j]=sum/count;
}
}
}
 
לצפיה ב-''
12/07/2019 | 22:19
34
האמת אחרי שהפעלתי את הראש גיליתי שהפיתרון יחסית פשוט, והייתי צריך לחשוב פשוט ולא לסבך את עצמי עם פתרונות מסובכים.....
פתרתי את זה עם 8 משפטי תנאי 
אבל כל הכבוד , לא ציפיתי לפיתרון קצר קולע וסופר מקצועי כמו שלך ...
מוריד בפניך את הכובע 
 
 //חישוב ממוצע איבר ועוד האיברים המקיפים אותו במטריצה הראשונה והצבת התוצאה
//באיבר המקביל לו במטריצה השנייה

#include <stdio.h>
#define M 4
#define N 4

void matavg(int mat1[][N], float mat2[][N]);

void main()
{
int mat1[M][N]={{1,5,2,4},{2,3,2,1},{4,4,2,4},{1,1,3,4}};
float mat2[M][N];
int i,j;

for(i=0; i<M; i++)
   {
   for(j=0; j<N; j++)
       printf("%-5d",mat1[i][j]);
   puts("\n");
   }


matavg(mat1,mat2);


}

void matavg(int mat1[][N], float mat2[][N])
{
  int i,j,count;
  float avg;

  for(i=0; i<M; i++)
   for(j=0; j<N; j++)
       {
           count=1;
           avg=mat1[i][j];
               if(i-1>=0 && j-1>=0)
               {
                avg+=mat1[i-1][j-1];
                count++;
               }
               if(i-1>=0)
               {
                avg+=mat1[i-1][j];
                count++;
               }
               if(j+1<N && i-1>=0)
               {
                avg+=mat1[i-1][j+1];
                count++;
               }
               if(j+1<N)
               {
                avg+=mat1[i][j+1];
                count++;
               }
               if(j+1<N && i+1<M)
               {
                avg+=mat1[i+1][j+1];
                count++;
               }
               if(i+1<M)
               {
                avg+=mat1[i+1][j];
                count++;
               }
               if(i+1<M && j-1>=0)
               {
                avg+=mat1[i+1][j-1];
                count++;
               }
               if(j-1>=0)
               {
                avg+=mat1[i][j-1];
                count++;
               }
           avg/=count;
           mat2[i][j]=avg;
       }

  for(i=0; i<M; i++)
   {
   for(j=0; j<N; j++)
       printf("%-7.2f",mat2[i][j]);
   puts("\n");
   }
}
 
לצפיה ב-'אל תכתוב מתחת ל0.'
אל תכתוב מתחת ל0.
22/09/2019 | 12:32
23
כל איבר גבולי הוא בגבולות הרשימה. בדיקה פשוטה של גזרת המערך מספקת.
לצפיה ב-'קשיים שקשורים לגאווה בפרט (עניין של API) וקושי עם Eclipse'
קשיים שקשורים לגאווה בפרט (עניין של API) וקושי עם Eclipse
23/06/2019 | 00:48
5
58
שלום חברים,
אחרי שנלחמתי קצת עם הדברים והגעתי לתובנות שאינן מספיקות אשמח לקבל קצת עזרה שתכווון אותי כי מסתבר שלא תמיד כל המידע שאני (בדגש על עצמי :) ) מחפש קיים ברשת ולפעמים כבר מרוב ניסוי ותהייה בקוד אני קצת מתייאש 
אז ככה:
 
1. מתקשה בשימוש של פונקציית ()getResource של מחלקת Class - כשאני נמצא בתוך קוד של מחלקה ורוצה לקבל בעזרת getResource תמונה מסויימת נניח בשם bug.png. במידה והתמונה נמצאת בדיוק באותה תיקייה שבה ה-  class הנ"ל נמצא אז פשוט צריך לרשום getClass().getResouece("bug.png")
אבל (ופה הקושי) כאשר התמונה נמצאת במקום שונה לגמרי בפרוייקט, ממה שהצלחתי להבין ברשת, צריך לרשום בארגומנט של הפונקציה משהו כמו (ה- / מציין "רטליביות"):
"/someFolder/anotherFolder/bug.png"
כאשר someFolder נמצאת תחת תיקיית אב של כל הפרויקט שנקראת projectName.
אבל מה שמוזר פה, זה שבפועל הקלאס הנוכחי נמצא בכתובת יחסית שונה לגמרי מהכתובת בארגומנט. נניח הוא נמצא תחת ההירכיה הבאה:
"projectName/src/utilPackage/ourClass"
בכזה מצב כתובת יחסית לא אמורה להיראות ככה? :
"../src/utilPackage/ourClass"
זה נראה שבצורה שזה פועל אין בכלל צורך להשתמש ב: getClass שלא ברור מה התרומה שלו פה, אם הכתובת היא לא יחסית אליו.
 
2. שאלה ברמה של היררכיה של תוכנית - כשאני עובד בעורך, במקרה שלי אקליפס, אני קצת מתקשה למצוא את ההבדל בין new folder לבין new package כאשר אני לוחץ על הכפתור הימני בעכבר כשאני תחת תיקיית src.
ההבדל היחיד  שנראה לעין, הוא כאשר אני עומד על package קיים ואז לחיצה על העכבר ובוחר new folder נוצר לי מעין sub package. לעומת זאת אם אני עומד על package ואז לחיצה על העכבר ובחירת new package אז כברירת מחדל מוצע לי לשים את ה- package תחת תיקיית src ואם אני משנה ורוצה לשים אותה תחת ה- package שעמדתי עליו אני מקבל מעין אזהרה: "source folder is not on the java build class path". אשמח לקבל כל הבהרה שתעשה לי קצת סדר בבלאגן שהתאמצתי לתאר
 
3. האם כשאני מייצא (ל- archive) את הפרוייקט,בין אם כ- jar או כ- zip, אז כל החבילות מתוארות פשוט כתיקיות במבנה ההירכי של מערכת ההפעלה?
 
4. קושי די מביך לייבא פרוייקט. כל פעם כשאני מנסה לייבא פרויקט ששמור בתור זיפ אז אני מקבל כל מיני דברים שאני לא רוצה: I. כאשר מנסה לייבא אותו בצורה הבאה: import-> archive file ובחירת קובץ הזיפ אז אני קודם מתבקש לייצר תיקייה. הבעיה שכשאני מייצר תיקייה ומייבא בצורה הזאת, אז נוצרת לי תיקייה בתוך התיקייה שפתחתי. ואני יוצא עם מצב של תיקייה מיותרת.
II. כשאני מייבא את הזיפ כ- File System מקבל גם כפילות לא ברורה (ראו תמונת מצורפת).  הזיפ שייבאתי נראה ככה:
תיקיית אב בשם SGI, ומתחתיה התיקיות הבאות:src,lib,images,doc,bin,acctest,fit.jar,.project,classpath
השאלה שלי היא איך אני מייבא את הפרויקט שייראה אחד לאחד כמו זה שייצאתי אותו? ייתכן והבעיה היא בייצוא ואשמח להבין איפה טעיתי ולצרף כל חומר או תמונה שתוכל לעזור להבין אם משהו לא ברור
 
תודה רבה וסליחה מראש, אבל אחרי שטחנתי את המוח בניסיון לפתור את השאלות כל הסופ"ש, כל עזרה תתקבל בברכה ואולי גם תוציא קצת מהתסכול שעובר עליי.
 
לצפיה ב-'הערה: ייתכן והתבלבלתי ו '/' מציין "מוחלט" ולא "יחסי"'
הערה: ייתכן והתבלבלתי ו '/' מציין "מוחלט" ולא "יחסי"
23/06/2019 | 01:11
16
בכל מקרה זה לא עוזר לי להבין לצערי..
בנוסף במידה ומציינים כתובת מוחלטת, אז למה בכלל יש צורך בשיטה getClass, אם גם ככה רושמים כתובת מלאה?
 
תודה שוב פעם
לצפיה ב-'כמה תשובות:'
כמה תשובות:
26/06/2019 | 11:32
3
28
די קשה לענות לשאלות שלך בלי להבין מה אתה עושה, אבל הנה כמה הסברים באופן כללי:
 
1. השימוש ב-"/" בתחילת שם הקובץ מציין נתיב מוחלט.
זה מוסבר במפורש בתיעוד של Java:
Before delegation, an absolute resource name is constructed from the given resource name using this algorithm:
 
   If the name begins with a '/' ('\u002f'), then the absolute name of the resource is the portion of the name following the '/'.
   Otherwise, the absolute name is of the following form:
 
       modified_package_name/name
 
   Where the modified_package_name is the package name of this object with '/' substituted for '.' ('\u002e').
 
הסיבה שאתה צריך להשתמש ב-getClass היא שפונקציה getResorce אינה סטטית.
אתה צריך אובייקט ולא מחלקה בשביל להפעיל אותה.
 
2. שפת Java רגישה לשמות ומיקומים של קבצי הקוד שלה.
בניגוד לשפות רבות אחרות, כדי שמחלקה מסוימת תעבוד, היא צריכה לשבת בקובץ עם שם מאוד ספציפי, שיושב שהיררכיית ספריות מאוד ספציפית.
 
Java משתמש בהיררכיית ספריות כדי לייצג "חבילות" (packages).
 
האקליפס בנוי לעבוד עם Java, אבל לא רק.
אז לפעמים הוא נותן לך אופציות שבמקרה כמעת זהות: אופציה New Package שהיא ספציפי ל-Java, ואופציה כללית יותר שיכולה לשמש גם שפות אחרות, או יצירה של תשתית לקבצים שאינם Java ונקראת New Folder.
 
ברמה הטנכית אין באמת הבדל.
אם אני זוכר נכון, האופציה New Package תדאג להמיר נקודות בשם החבילה לתתי תיקיות נפרדות, כך שתוכל ליצור ישר מבנה תיקיות כמו com/test/myapp משם חבילה com.test.myapp.
 
אבל שוב - זו רק נוחות.
בפועל, "מתחת למכסה" עבור Java חבילה ותיקייה זה אותו הדבר.
 
3. בלי לדעת איך עשית export אי אפשר להנחות אותך לגב import.
 
הדרך הכי פשוטה מהכירותי עם eclipse היא פשוט לא להשתמש ב-import ו-export אלא לשים את תיקיית הפרויקט ב-zip ידנית, ואז לפתוח אותה במחשב היעד.
 
בהצלחה!
לצפיה ב-'לצערי לא כל כך הבנתי חלק ניכר מהדברים'
לצערי לא כל כך הבנתי חלק ניכר מהדברים
01/07/2019 | 22:09
2
14
קודם כל תודה :) מצטער אם אני לא מספיק מבין עניין
לגבי סעיף 1: מה שהעתקת לי אכן לקוח מהאתר של sun, אבל לא הבנתי את זה לא כשקראתי אז ולא כעת.. אתה אומר ש- getResoruce אינה סטטית ולכן יש לבצע getClass, אבל מה זה בעצם עושה? יכלתי לרשום במקום this.getClass().getResource(), לרשום את: someObject.getClass().getResource() ולקבל בסופו של דבר את אותו ה- url שרציתי? רציתי להבין בדיוק את הכוונה לנתיב מוחלט או נתיב יחסי, כי כפי שהראתי בדוגמא זה לא באמת נתיב יחסי (או שמה שאני חושב נתיב יחסי זה לא באמת נתיב יחסי). נתיב יחסי זה אומר למיטב ידיעתי (אשמח לקבל תיקון), נתיב ביחס לאיפה שיושב הקובץ class שהפעיל את המתודה getResource, בפועל אני לא שם בסוגריים משהו בסגנון של 
 "../../pictures/png"
 בנוסף, אם אני לא משתמש בנתיב יחסי אלא בנתיב מוחלט, למה צריך בכלל לכתוב this.getClass().getResource(). ? למה אי אפשר ישר לתת לבנאי (נניח במקרה שלי לבנאי של imageIcon) את שם הנתיב המלא של הקובץ? הרי זה המשמעות של נתיב מוחלט (תקן אותי בבקשה אם אני טועה)? במקרה כזה אין צורך לקבל את המיקום של ה-class בכלל, כי הכתובת מוחלטת ואינה יחסית למיקום ה- class?
 
3. פשוט להיכנס ל- workspace וליצור zip? ואז במחשב היעד לפתוח את הזיפ לתוך workspace כלשהו?
אין צורך בהגדרות מסויימות שנשמרות ב- workspace בעת בניית הפרוייט? או שאין כאלה הגדרות?
 
לצפיה ב-'אנסה להבהיר:'
אנסה להבהיר:
02/07/2019 | 08:33
1
22
Java היא שפה שמנסה לבודד אותך ממערכת הפעלה.
 
כשאתה עובד עם פונקציה getResource במקום פונקציות רגילות של פתיחת קבצים, אתה לא מסתכל על מערכת הקבצים של המחשב שלך.
 
אתה מסתכל על "הפרויקט" שלך, כפי ש-Java מכיר אותו.
"שורש" התחלת מערכת הקבצים הזו, היא היכן שהפרויקט כולו הותקן.
אם הפרויקט שמור בתוך קובץ JAR, הרי שמערכת הקבצים שלך היא בכלל תוכן של אותו קובץ JAR.
 
כאשר אתה נותן ל-getResource פרמטר שמתחיל ב-/ היא חושבת שזה נתיב מלא לקובץ מאותו "שורש" מערכת קבצים, ולא מתחשבת בכלל במיקום ה-Class ממנו קראת לפונקציה.
 
אם אתה לא מתחיל את שם הקובץ ב-/ היא מתחשבת במיקום ה-class ומוסיפה אותו לשם ששלחת.
 
אאל"ט בניגוד לפונקציות קבצים רגילות, getResource לא יודעת להתמודד עם קיצורי דרך כגון "..\.."
 
לגבי אופן הקריאה ל-getResource:
זו פונקציה לא סטטית של מחלקה Class.
 
אם כבר יש לך אובייקט מטיפוס Class, אתה יכול לקרוא לה ישירות.
 
אם יש לך אובייקט מטיפוס אחר כלשהו, אתה צריך להוציא אובייקט מטיפוס Class שמתאר אותו ע"י קריאה לפונקציה getClass על האובייקט הזה, ואז תוכל להפעיל את getResource.
 
מה זה עושה?
התפקיד של אובייקטים מטיפוס Class הוא להחזיק ולספק לך מידע על מחלקות שונות ב-Java, כולל אלה שיצרת בעצמך.
כתבת בקוד:
public class MyApp {
}
 
MyApp app = new MyApp();
app.getClass();
 
מה שתקבל חזרה בשורה התחתונה זה אובייקט מטיפוס Class שמחזיק מידע על המחלקה MyApp שלך.
 
חלק מהמידע ש-Class מחזיק הוא שם המחלקה, ואיפה בתוך הפרויקט היא חיה.
כלומר, מאיפה בדיוק ה-VM של Java טען אותה, כשכתבת new.
 
וזה בדיוק המידע ש-getResource צריכה כדי להגיע לקובץ שאתה מבקש ממנה.
זו הסיבה שהיא בנויה איך שהיא בנויה, ואתה צריך לקרוא לה בצורה שאתה צריך לקרוא לה.
 
אתה לא יכול לכתוב this.getResource על המחלקה שלך, כי אין למחלקה שלך פונקציה כזו.
ואתה לא יכול לקרוא ל-Class.getResource כי המחלקה Class עצמה לא יודעת איפה הקבצים בפרויקט שלך חיים.
עד ש-VM של Java לא טוען משהו, המידע הזה לא קיים.
 
 
מקווה שעכשיו זה מובן.
אחרת, יכול להיות שאני לא מבין מה בדיוק אתה שואל...
 
לגבי ייצוא \ ייבוא, הפרוצדורה שתיארת היא מה שהתכוונתי.
מזמן לא עבדתי עם אקליפס, אז אני לא זוכר אם הוא מזהה אוטומטית מה יש ב-Workspace או שצריך עוד משהו. אולי open.
 
מציע שתנסה פשוט להעתיק.
 
בהצלחה!
לצפיה ב-'תודה רבה על התשובה המושקעת. מתנצל שהגבתי רק היום'
תודה רבה על התשובה המושקעת. מתנצל שהגבתי רק היום
18/10/2019 | 13:42
4
האמת שראיתי את התגובה רק היום מכל מיני סיבות מצערות שמעדיף לא לפרט  אותן לא יכלתי לעסוק בתכנות בחודשים האחרונים. תודה רבה רבה ושוב מתנצל על התגובה הכל כך מאוחרת. עזרת לי מאוד (גם כעת השאלה היתה רלוונטית)
לצפיה ב-'תעזרו לי בבקשה בכתיבת פונקציה'
תעזרו לי בבקשה בכתיבת פונקציה
19/06/2019 | 20:43
5
60
.יש לקלוט מהמשתמש מספר שלם חיובי ולייצר מספר חדש המכיל רק את הספרות שבמיקומים הזוגיים. מיקומה של הספרה הימנית ביותר הוא 0. דוגמא: עבור המספר 12345 יש לייצר את המספר 135.
 
נראה לי שאני לא בכיוון... מישהו יכול בבקשה לעזור?
לצפיה ב-'ומה בדיוק ניסית שנראה לך שאת לא בכיוון?'
ומה בדיוק ניסית שנראה לך שאת לא בכיוון?
19/06/2019 | 21:02
4
41
במה את מתקשה בדיוק?
 
אם את מחפשת פתרון מוכן לשיעורי בית, הגעת למקום הלא נכון!
לצפיה ב-'תשובה'
תשובה
19/06/2019 | 21:05
3
43
אני בלימוד עצמי - אין לי ממש שיעורי בית...
 
זה מה שאני עשיתי וזה מחזיר לי רק ספרה אחת:
 
int zugi (int n)
{ int result;
 
while (n>0)
  {
      result=(n%10);
      if (i%2==0)
      {
     return result;
     i++;
      }
}
לצפיה ב-'זה לא אמור להחזיר לך כלום'
זה לא אמור להחזיר לך כלום
19/06/2019 | 21:29
2
37
היות ולא הגדרת את i בשום מקום.
 
היית אמורה לקבל שגיאת קומפילציה.
 
אם נניח ש-i קיים ובטעות לא העתקת אותו לפורום, את צריכה להבין שברגע שקוראים לאופרטור return הפונקציה מיד מסיימת את פעולתה.
 
זו המשמעות של return - סיימתי, תחזור לפונקציה קודמת.
 
לכן, הקוד שלך, ברגע שיגיע לספרה זוגית ראשונה, יסיים את פעולתו.
 
מה שאני מציע שתעשי, זה קודם כל תרשמי פסודו קוד.
כלומר, תחשבי מה הפעולות שאת צריכה לעשות, ואז תרשמי אותן שורה שורה בעברית.
 
תציגי כאן, נראה אם זה נכון, ואז נעזור לך לתרגם את זה לקוד אמתי.
 
בהצלחה!
לצפיה ב-'אוקיי'
אוקיי
21/06/2019 | 11:04
1
26
אז זה התהליך שאני רוצה לעשות:
- הפונקציה מביאה לי מספר n בעל ספרות מסוים
for (int i=0; 0<n; i++)
- int result=n%10;
-if (i%2==0)
printf ("%d",i)
 
הבעיה שלי היא לחבר את כל הספרות האלו ביחד...
 
לצפיה ב-'את שוב מנסה לרשום קוד במקום פסודו קוד.'
את שוב מנסה לרשום קוד במקום פסודו קוד.
21/06/2019 | 11:34
35
בואי נסתכל ביחד מה צריך לעשות:
 
1. צריך לבודד את הספרה "הנוכחית" של המספר.
את זה את מנסה לעשות ע"י n % 10 אבל הבעיה היא שאת דורסת את התוצאה הקודמת במקום להוסיף אליה.
 
2. בעיה נוספת היא שאת מבצעת את הדריסה בכל מקרה, בין אם הספרה הנוכחית זוגית, ובין אם לא.
 
3. את לא משנה את המספר שאת עובדת עליו (n). את תמיד לוקחת את הספרה הכי ימנית שלו, אבל זו גם תמיד תהיה אותה ספרה.
 
יצרת לולאה אין סופית שלעולם לא תסתיים.
 
אז, איך אמור להיראות פסודו קוד?
1. האם הספרה הנוכחית זוגית?
 1.1 - כן - הוסף את הספרה הנוכחית למספר נצבר
1.2 - לא? על תעשה כלום
2. הורד את הספרה הנוכחית מהמספר שבודקים.
 
בתרגיל הזה יש קושי אחד קטן - את מנסה לשמור על סדר הספרות לאחר ההורדה, וזה אומר שבכל פעם שאת רוצה להוסיף ספרה זוגית למספר החדש את צריכה להוסיף אותה במקום שונה, במקום בהתחלה.
 
כדי לפתור זאת, את צריכה לדעת באיזה מקום במספר החדש את נמצאת, ולהכפיל את הספרה החדשה ב-10 מספיק פעמים כדי להגיע למקום הזה.
לצפיה ב-'יצירת אובייקטים ממחלקות יורשות ב C++'
יצירת אובייקטים ממחלקות יורשות ב C++
16/06/2019 | 12:09
17
28
שלום,
יש לי מחלקת בסיס אבסטרקטית ולה מספר מחלקות נגזרות ולחלק מהן נגזרת שלישית.
שתי שאלות:
1. איך יוצרים אוביקט מהמחלקה הנכונה לפי קלט מהמשתמש למשל.
כלומר למשל אומרים לי שיש אוביקט חדש מסוג A צריך ליצור אוביקט ממחלקה A.
2. במחלקת הבסיס יש משתנה ששומר את סוג האוביקט (שהוא הסוג הסופי כלומר למלקת ביניים לא יוצרים אוביקטים) ויש בנאי שהארגומנטים שלו כוללים משתנה זה. לכל מחלקה יש בנאי. כאשר במחלקות היורשות מעבירים את הארגומנטים לבנאי של המחלקה שמעליה. למחלקות הביניים אין סוג ולכן לא ניתן להעביר סוג למחלקת הבסיס. איך ניתן לפתור זאת? אני מבין שחייבים להעביר ארגומנטים למחלקה שמעל או שיש דרך אחרת?

קצת ארוך אבל מקווה שהבנתם.
תודה מראש.
 
לצפיה ב-'ובכן'
ובכן
17/06/2019 | 02:09
1
18
1. אתה יוצר באופן דינמי. למשל, אם ע"פ הקלט צריך ליצור A, אתה עושה new A. (כמובן, צריך לשים את זה במצביע למחלקת הבסיס).
2. לא הבנתי את השאלה. איך אתה שומר מחלקה במשתנה? מה הכוונה "למחלקת ביניים אין סוג"? נראה לי שהכי פשוט יהיה אם תיתן דוגמת קוד (עם הערות במקומות שבהם אתה לא בטוח מה צריך לעשות).
לצפיה ב-'יצירת אובייקטים ממחלקות יורשות ב C++'
יצירת אובייקטים ממחלקות יורשות ב C++
17/06/2019 | 11:42
16
קודם כל תודה.
לגבי 1: כן זה ברור אבל נניח ויש 10 מחלקות יורשות ברמה שנייה או שלישית מהן יוצרים אוביקטים על פי קלט. איך בוחרים איזו מחלקה? האם רק בעזרת IF או שיש דרך אחרת?
2. אכתוב קוד עוד מעט.
 
תודה
לצפיה ב-'אתה מכניס אותנו באמצע מה שעשית שהבסיס שכתבת הוא כבר לא נכון.'
אתה מכניס אותנו באמצע מה שעשית שהבסיס שכתבת הוא כבר לא נכון.
17/06/2019 | 11:51
10
24
מחלקת בסיס לא מודעת למה שקורה מתחתיה. זאת לא האחריות שלה.
לפעמים היא מכינה תשתית לשימוש המחלקות היורשות.
לא צריך להיות לך משתנה במחלקת הבסיס שאומר לך מי היורש.
 
אולי אם תתאר יותר את הבעיה שאתה מנסה לפתור נוכל להציע פתרון נכון יותר
לצפיה ב-'דוגמא לבעיה'
דוגמא לבעיה
17/06/2019 | 12:25
9
17
נניח התוכנית מטפלת בצורות הנדסיות.
מחלקת הבסיס היא Shape ויש לה כמה משתנים חלקם להורשה כמו שם ספציפי לכל אוביקט (למשל: משולש מספר 1), תאריך יצירה וכד. וכן משתנים שלא יורשים למשל סוג.
יש רמה שנייה של מחלקות שיורשות ממחלקת הבסיס חלקן מהוות בסיס למחלקות שיורשות מהן (למשל משולשים) וחלקן מחלקות מהן ייווצרו אוביקטים (למשל מעגל).
ויש רמה שלישית של מחלקות מהן נוצרים אובייקטים (למשל משולש ישר זווית)
שתי הששאלות הן:
1. איך יוצרים אוביקט מתאים לפי קלט (למשל עיגול או משולש ישר זווית)..
2. בבנאי של מחלקת הבסיס Shape יש משתנה type. במחלקה יורשת שאינה משמשת ליצירת אוביקטים כמו משולשים אין type אבל בבנאי שלה צריך להפנות לבנאי של מחלקת הבסיס שכולל type.

מקווה שזה יותר ברור.
תודה
 
לצפיה ב-'תוריד את ה-type. לא צריך אותו'
תוריד את ה-type. לא צריך אותו
17/06/2019 | 15:13
8
10
לצפיה ב-'איך יודעים מאיזה סוג האוביקט?'
איך יודעים מאיזה סוג האוביקט?
17/06/2019 | 15:41
7
11
אני שומר פוינטרים בוקטור.
איך יודעים מאיזה class האוביקט בלי type?
לצפיה ב-'אם אתה צריך לדעת במפורש, אתה כנראה עושה משהו שגוי.'
אם אתה צריך לדעת במפורש, אתה כנראה עושה משהו שגוי.
17/06/2019 | 16:09
2
17
אם אתה בכל זאת רוצה לעשות את זה, אפשרות ברורה היא שהבנאי של משולש ייתן את הפרמטר המתאים (כנראה ערך של enum) לבנאי של צורה.
(וכמובן, יש RTTI, אבל נראה לי שזה יסבך אותך)
לצפיה ב-'נמחק'
נמחק
17/06/2019 | 16:10
8
לצפיה ב-'זו בדיוק הבעיה'
זו בדיוק הבעיה
17/06/2019 | 16:45
17
אני משתמש ב ENUM ל types אבל יש ENUM רק לצורות הסופיות(למשל משולש ישר זווית) ולא לצורות ביניים (משולש כללי) ולכן לא יכול להפעיל את הבנאי של צורה ממחלקת הביניים.
השאלה היא מה הפתרון?
האם  חייבים להפעיל בנאי של צורה ממחלקת ביניים?
אולי לתת ערך ברירת מחדל ל type בבנאי של צורה.
אולי להוסיף ערך ב ENUM.
מחלקת הביניים היא אבסטרקטית (עם Virtual=0).
לצפיה ב-'למה אתה צריך לדעת?'
למה אתה צריך לדעת?
18/06/2019 | 09:14
3
18
אם יש לך קוד ששואל את זה, רוב הסיכויים שהבעיה שם ואת זה צריך לתקן.
 
בכל מקרה משתנה type לא צריך
לצפיה ב-'דוגמא מורכבת - הספארי'
דוגמא מורכבת - הספארי
18/06/2019 | 13:51
2
13
אני יודע שלא כך עובדים היום אלא ב Database אבל רק לצורך הדוגמא ניקח את הספארי. 
בספארי יש הרבה חיות אז כנראה תהיה מחלקת בסיס בשם Animal.
יש הרבה משפחות חיות קופים, פילים, ג'ירפות, נמרים וכו'.
לחלק מהמשפחות יש גם גזעים כמו לקופים: קוף אדם, גבון ועוד לחלק אין נניח ג'ירפות יש רק גזע אחד שהוא גם המשפחה. כלומר יהיו מחלקות שהן משפחות ויש להן רמה שלישית ויהיו מחלקות מהן יוצרים אוביקטים.
זו דוגמא פשוטה ביותר כי יש בפועל יש היררכיה הרבה יותר מורכבת.
לכל אוביקט רוצים גם לדעת מהו הסוג שלו (בפועל יש דרישה שבמחלקת הבסיס יהיה משתנה בשם type והוא גם נמצא בבנאי).
כעת לבעיות:
1. איך יוצרים אוביקט מהמחלקה הנכונה כאשר נוספת חיה חדשה נניח גירפה או גבון. (האם מיישמים FDP או שיש דרך אחרת?)
2. אם מיישמים FDP איך בוחרים מחלקה האם ב IF או SWITCH או שבכלל יש דרך טובה יותר?
3. בכל מחלקה יש בנאי. כאשר יוצרים אוביקט יש לנו type ואותו ניתן להעביר לבנאי של מחלקת הבסיס. במחלקות הביניים אין type אז איך מפעילים את הבנאי של הבסיס בלי type?
4. נניח יש חיה חדשה שלא כתבנו עבורה מחלקה. האם ניתן ליצור מחלקה ב Runtime או צריך לשנות את התוכנית?
 
תודה 
לצפיה ב-'למיטב הבנתי הבעיה שלך היא שאתה מתייחס למשפחה כחלק מההירכיה'
למיטב הבנתי הבעיה שלך היא שאתה מתייחס למשפחה כחלק מההירכיה
18/06/2019 | 14:35
19
אני חושב שמשפחה היא היררכיה נפרדת.
כלומר יש interface או base class בשם Family, ממנו יורשים משפחות שונות.
 
בהיררכיה של החיות, במחלקת הבסיס, יכולה להיות תכונה מסוג Family שהיא המשפחה של החיה ואת התכונה מאכלס למשל ה-constructor של החיה
לצפיה ב-'מאיפה הדרישה מגיעה?'
מאיפה הדרישה מגיעה?
19/06/2019 | 01:12
3
לצפיה ב-'הסתדרת חבר?'
הסתדרת חבר?
18/06/2019 | 09:37
3
14
הסתדרת חבר?
לצפיה ב-'חלקית'
חלקית
18/06/2019 | 11:37
2
13
1. לגבי יצירת האוביקטים הבנתי שמשתמשים במחלקה שמממשת את Factory design pattern. רק עוד לא סגור על המימוש עצמו. בעיקר מפריע לי השימוש בהרבה IF או switch כאשר שם המחלקה ידוע (מתקבל מהמשתמש או מה GUI) והפקודה ליצירת האובייקט זהה חוץ משם המחלקה.
2. עדיין אין לי פתרון לגבי ה Constructor של מחלקות ביניים. במחלקת הבסיס יש משתנה type (זו דרישה וכנראה שיש לזה שימוש למשל אם רוצים את כל העיגולים שיש) כאשר רק למחלקות שמהן יוצרים אוביקטים יש למעשה type ולמחלקות הביניים שהן אבסטרקטיות אין סוג אבל כדי להפעיל את הבנאי של מחלקת הבסיס צריך גם type.
 
תודה
לצפיה ב-'אוי וואי...'
אוי וואי...
19/06/2019 | 21:16
1
24
אני חושב שיש בעיה בדרישות, או שלא הבנת את הדרישות, או שזה תרגיל קצת מכוער.
 
כך או כך, להלן כמה תשובות:
 
1. תשתמש ב-case לשם כך הוא נועד.
אין שום דרך אחרת, שכן לא רק שם המחלקה אצלך משתנה, אלא גם כמות וסוג פרמטרים לבנאי שלה.
 
2. קיבלת הוראה לקבל פרמטר type בבנאי של מחלקה "סופית".
היררכית מחלקות לא רלוונטית לעניין הזה.
תדאג שבמחלקת בסיס יהיה איבר type שהוא protected, כלומר, זמין רק ליורשים (לא משנה מאיזו דרגה, דרגות ירושה בד"כ לא רלוונטיות לכלום).
תן ערך לאיבר הזה בבנאי של מחלקה סופית. זה הכל.
לצפיה ב-'יצירת אוביקטים'
יצירת אוביקטים
20/06/2019 | 11:49
19
תודה רבה על התשובה המפורטת.
מחיפוש הבנתי שעדיף להשתמש ב method factory במחלקת הבסיס.
הבנתי שיש גם אפשרות להשתמש ב map אבדוק זאת.
מעניין שלא נתנו אפשרות למשהו כמו template ב runtime כי מדובר בפקודה זהה שכל מה ששונה הוא שם ה class.
לצפיה ב-' פונקציה המקבלת שני מספרים ומעלה אחד בחזקת השני'
פונקציה המקבלת שני מספרים ומעלה אחד בחזקת השני
01/06/2019 | 12:18
5
43
הי כולם,

קיבלתי את המשימה הבאה בשפת C:

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

int power(int a, int b)
{
int result = 1, i;
for (i = 0; i < b;="" ++i)="" result="" *="">
return result;
}

אבל הוא לא כולל חזקה שלילית, איך אני יכולה בכל זאת להוסיף חזקה שלילית לפונקציה?

תודה!

לצפיה ב-'די פשוט:'
די פשוט:
01/06/2019 | 13:21
3
39
מספר בחזקה שלילית, שווה לאחד חלקי אותו מספר באותה חזקה חיובית.
 
למשל:
Xˉ² = 1/X²
 
כמובן, כדי להחזיר חזקות כאלה תצטרך פונקציה שמחזירה double במקום int, אבל בגדול החישוב הוא אותו חישוב.
תבדוק אם החזקה שקיבלת היא שלילית או חיובית, ואם היא שלילית תזכור להחזיר אחד חלקי התוצאה.
(כמובן, תהפוך את החזקה לחיובית בשביל הלולאה)
לצפיה ב-'השאלה שלי היא '
השאלה שלי היא
02/06/2019 | 19:00
2
25
איך אני מכניסה את זה לפונקציה? זה חייב להיות עם if?
לצפיה ב-'אתה צריך לבדוק אם החזקה שקיבלת היא שלילית או חיובית'
אתה צריך לבדוק אם החזקה שקיבלת היא שלילית או חיובית
02/06/2019 | 21:45
19
אז בוודאי תזדקק לתנאי - if.
לצפיה ב-'אפשר לעשות הכל בלי if'
אפשר לעשות הכל בלי if
03/06/2019 | 13:07
21
אבל בשביל מה?
(וזה כנראה יהיה מסובך יותר)
לצפיה ב-'קישור מעניין...'
קישור מעניין...
10/06/2019 | 09:52
22
 
אני חסיד גדול של שפת HASKELL ולכן:
 f _ 0=1
f x y=x*f x (y-1)

-- Following  APL version:
f x y = product $ take y $ repeat x

--With comment and whitespace removed, 27 chars:
f x y=product$replicate y x
 
לצפיה ב-'שאלה לגבי ניהול יחידות ריצה (סטאטי/דינאמי) - '
שאלה לגבי ניהול יחידות ריצה (סטאטי/דינאמי) -
31/05/2019 | 18:21
3
41
שלום לכולם. אשמח לעזרה. 
אני יודע כי התשובה לשאלה הזו היא כן, אך לא יודע מהי הסיבה..
האם הסיבה היא שבגלל שהתלויות אינן ידועות לא ניתן בכלל לבצע ניהול דינאמי ? או שיש סיבה אחרת ?
 
תודה.
לצפיה ב-'אין לי מושג מה התשובה הנכונה כי אני מתקשה להבין'
אין לי מושג מה התשובה הנכונה כי אני מתקשה להבין
31/05/2019 | 20:20
2
22
את השאלה ללא קונטקסט.
 
מאיזה קורס \ ספר לימוד \ נושא זה לקוח?
למה הכוונה ב-"יחידות ריצה"? פונקציה? מודול מקומפל? בינארי מלא?
 
האם מדובר בסביבת בדיקות?
לצפיה ב-'מדובר בתכנות מקבילי ומבוזר '
מדובר בתכנות מקבילי ומבוזר
31/05/2019 | 20:30
1
23
אני נדרש לנמק מדוע התשובה נכונה..
לגבי יחידות ריצה, הכוונה למעבדים.
לצפיה ב-'לא מכיר את הנושא מספיק כדי לעזור לך'
לא מכיר את הנושא מספיק כדי לעזור לך
31/05/2019 | 22:21
16
אבל אני יודע בוודאות שיש מעבדים שמבצעים ניהול דינאמי, כך שניתן לעשות זאת.
לצפיה ב-'שאלה על סדר פעולות ב-mysql'
שאלה על סדר פעולות ב-mysql
31/05/2019 | 19:34
1
16
שלום לכולם.
ע"פ מה שהבנתי (ממה שקראתי באינטרנט) - סדר הפעולות בשאילתא הוא כך שפעולת ה-SELECT מגיעה לפני פעולת ה-ORDER BY.
 
ראיתי באינטרנט איזשהוא פתרון שבו מבוצע select על עמודה X, וסידור ע"פ עמודה Y, לדוגמא:
 SELECT sName
FROM Students
order by sGrade;
הרצתי את השאילתא ב-mysql workbench שהורדתי כדי לוודא מה התוצאה שמוחזרת והתוצאה שחזרה הייתה נכונה. 
לא כ"כ הצלחתי להבין מדוע השאילתא מחזירה תוצאה נכונה (שמות סטודנטים מסודר ע"פ ציונים) אם ה-SELECT מבוצע לפני ה-ORDER BY (כלומר קודם מתבצעת כביכול בחירה רק של עמודת sName מהטבלה הגדולה, ורק לאחר מכן מתבצע סידור כלשהוא ע"פ עמודה שכביכול כבר "לא קיימת" אחרי ה-SELECT)
 
תודה מראש וסוף שבוע נעים!
לצפיה ב-'בשאילתה הזו יש רק פעולה אחת: SELECT'
בשאילתה הזו יש רק פעולה אחת: SELECT
31/05/2019 | 20:15
15
שאר הסעיפים, הם פרמטרים לאותה פעולה ומשפיעים על תהליך השליפה עצמו.
 
אין פה post processing של תוצאות השאילתה.
לצפיה ב-'איך למחוק שדה מאוביאקט במידה שהוא ריק'
איך למחוק שדה מאוביאקט במידה שהוא ריק
20/05/2019 | 17:54
22
שלום חבירים,
 
אני צריך למחוק שדה במידה שהוא ריק או null.
 
נגיד שאוביאקט שלי מורכב ככה
  Test t = new Test();
t.name;
t.lastName;
t.test;
כאשר אני מקבל אותו בrequest, אני צריך לעבור על כל שדה ושדה ולבדוק איזה שדה הוא ריק או null.
 
אם מצאתי אחד כזה, יש למחוק אותו מהאוביאקט Test, למה? כי את הrequest הזה אני צריך לעביר אותו למערכת אחרת ללא שדות null.
 
לדוגמה אם מצאתי ששדה name isEmtyOrNull יש למחוק אותו.
 
אז מה בדרך הנכונה לעשות זאות.
אולי יש attributs או דרך קוד....
 
כל זה שפת c#
תודה

חם בפורומים של תפוז

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

מקרא סימנים

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