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

הכנה לקראת שנה א' במדעי המחשב


ggg123

Recommended Posts

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

תודה גיל אתה עוזר לי מאוד לכל אורך השרשור.

דבר נוסף שרציתי לשאול- האם אתה ממליץ להשתמש בסביבת עבודה לתכנות סטייל

Eclipse שתאפשר לי תכנות יותר מהיר, נוח יעיל ומאורגן, או ממש לכתוב באמצעות Notepad רגיל ולקמפל באמצעות cmd?

אני שואל איך נהוג מבחינה אקדמית לעבוד, במיוחד בהתחלה.

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

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

בכל מקרה כדאי להכיר את הפקודות השונות לקומפילציה, במיוחד כששימוש בקבצי makefile יהיו שימושיים (בטח ב-C\++C)

אחלה.

גרסת ה Standard מספיקה ל java? ראיתי פשוט שיש עוד הרבה חבילות נוספות באתר.

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

ואם אלגברה לינארית אז ההרצאות של צילג ז"ל האגדי

התחלתי לצפות בחדו"א ואני רוצה לשלב גם את אלגברה.

מה הכוונה באלגברה לינארית באתר הסרטונים של הטכניון?

יש כמה הרצאות אלגברה של פרופ' דוד צילג: אלגברה 1מ, אלגברה מודרנית ח, אלגברה א.

מה מתאים בשבילי?

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

אלגברה א' זה האלגברה של מדמ"ח בטכניון. אלגברה 1מ' אותו דבר ברמה נמוכה יותר (וקצת יותר חומר).

אלגברה מודרנית זה בכלל קורס אחר.

ואם כבר הזכרת Notepad, לווינדוס יש לך תחליפים כמו: http://www.notepad-plus-plus.org/ (ההמלצה היא בכלל לא להשתמש ב-Notepad הרגיל בשביל דברים טכניים).

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

אלגברה א' זה האלגברה של מדמ"ח בטכניון. אלגברה 1מ' אותו דבר ברמה נמוכה יותר (וקצת יותר חומר).

אלגברה מודרנית זה בכלל קורס אחר.

ואם כבר הזכרת Notepad, לווינדוס יש לך תחליפים כמו: http://www.notepad-plus-plus.org/ (ההמלצה היא בכלל לא להשתמש ב-Notepad הרגיל בשביל דברים טכניים).

תודה.

לגבי ההמלצה לסביבת עבודה- כבר הורדתי את Eclipse והיא סבבה לגמרי. תודה בכל מקרה על ההצעה.

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

ראיתי כמה דקות מההרצאה של צילג... אין יותר מרצים כאלה

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

את צילג עדיין לא ראיתי.

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

היי, שוב אני.

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

מצאתי דף משימות באתר של האוניברסיטה ונתקעתי כבר בתרגיל השני.

זאת השאלה:

כתבו תוכנית אשר מקבלת מהמשתמש שני מספרים שלמים

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

הנמצאים בטווח המספרים (כולל הקצוות). אם לא קיימים מספרים ראשוניים בטווח הנ"ל,

על התוכנית להדפיס 0.

ניתן להניח כי המשתמש יכניס מספרים שלמים וגדולים ממש מ*0. להזכירכם, אין להדפיס

דברים מיותרים למסך (כגון: "please enter an integer").

דוגמאות:

אם המשתמש הכניס את המספרים 2 ו* 11, הפלט יהיה 5.6 (מכיוון ש*7 ,5 ,3 ,2 ו*11 הם

הראשוניים שנמצאים בתחום [2,11], והממוצע החשבוני שלהם הוא 28 / 5 = 5.6)

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

הדרך שניסיתי לפתור אותה- הרצתי לולאה שרצה בין שני המספרים שהמשתמש הזין (משתנה i)

בתוך הלולאה יש עוד לולאה שמריצה מספרים (משתנה n) מ 2 ועד המספר קצה התחום (לא כולל). לאחר מכן ביצעתי i%n שחוזר על עצמו עד ש n מגיע לערך y-1. אם השארית תמיד שונה מ 0 זה אומר שהמספר i לא פריק ולכן הוא ראשוני ומתווסף לערכים -סכום המספרים הראשוניים ומספר המספרים הראשוניים. אם השארית מספיק בפעם אחת שווה ל 0, זה אומר ש i פריק , משמע לא ראשוני ואז לא קורה כלום.

בסוף חישבתי את הממוצע.

הפלט שאני מקבל תמיד יוצא לא נכון. למשל הכנסתי קלט 2 ו 11 וקיבלתי פלט 6.5 (צריך לצאת 5.6).

הנה הקוד המלא:




import java.util.Scanner;
public class Ex2 {




public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int x = s.nextInt();
int y = s.nextInt();
s.close();
int s_prime = 0;
int n_prime = 0;
int first_prime = 2;
boolean prime;

for (int i=x; i<=y; i++){
if (i==first_prime){
s_prime = s_prime+i;
n_prime++;
}
else if (i<=1){
continue;
}
else {

for (int n=2; n<y; n++){
if (i%n!=0){
prime = true;
}
else
{
prime = false;
break;
}
}
if (prime=true){
s_prime = s_prime+i;
n_prime++;
}
}
}

if (n_prime>0){
double average = s_prime / (double)n_prime;
System.out.println(average);
}
else
System.out.println("0");
}


}


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

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

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

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

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

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

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

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

עדיף שתעביר את ההודעה שלך לפורום תכנות.

בכל מקרה, deddy צודק. מה שאתה צריך לעשות הוא למלא טבלת מעקב. תכין עמודה לכל משתנה שיש לך בקוד (כולל i) ובכל שלב של הלולאה, תעדכן כל שורה בערך החדש של המשתנים השונים.

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

חוץ מזה אתה משתמש פעם ב- x=x+1 ופעם ב ++x. תהיה קונסיסטנטי (++x עדיף)

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

תודה לשניכם על הטיפ.

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

בכל אופן אשמח לקבל את האתר.

גיל- מחר אבצע את המלצתך. דרך אגב, לא השתמשתי ב x=x+1 , אלא ב x=x+i. בכל מקום שהייתי צריך לקדם ב 1 השתמשתי ב ++

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

טעות שלי, אתה צודק.

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

רצוי גם להשתמש בשמות משמעותיים למשתנים. קשה להבין מה זה s_prime ומה n_prime

עוד דבר:

else if (i<=1){
continue;
}
else

היה עדיף שאת הבלוק הגדול היית מכניס ב-else הראשון (אם i גדול מ-1) ואז אין לך שום else continue.

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

ארכיון

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


×
  • צור חדש...