שאלה

שאלה

יש לי VISUAL STUDIO 6 אני יודע VB כבר כמה שנים והחלטתי להתחיל ללמוד C++ האם אני קודם צריך ללמוד C ? ועל איזה ספר אתם ממליצים (בעיברית) ללמוד C++ תודה מראש
 

gmorphus

New member
שוב עניין הספרים...

לדעתי אתה לא צריך ללמוד C קודם. אתה יכול ישר להתחיל בC++. אני אהבתי את Thinking in C++ של Bruce Eckel. הוא מאוד מעמיק ופילוסופי, ואחרי שתקרא את כולו (אני לא עשיתי את זה עדיין) תדע C++ וגם תכנות מונחה עצמים ברמה די גבוהה. בהצלחה.
 

zagzagzag

New member
מתחשק לך להסביר

למה מתחילים צריכים ללמוד על printf,scanf,malloc? (סתם דוגמה)
 

erezsh

New member
אני מוכן

את scanf לא צריך בלי קשר לשפה. זה נחוץ בדיוק כמו cin (כלומר לא) את malloc, כדי להבין טיפה יותר מה קורה בעצם (לקלוט את ההבדל בין זיכרון דינמי לסטטי). להכיר איך עובד המחשב עליו אתה מתכנת זה אף פעם לא מזיק. כי printf זו הפקודה הכי מגניבה שקיימת בספריות הסטנדרטיות של C או C++. ורק כדי להבהיר את הנקודה - cout זה בלאי. וחוץמזה, R341 h4XX0rz u53 C!
 

zagzagzag

New member
יכול להיות שאתה צודק

אבל שוב, מדובר כאן במתחיל שלמד רק VB (לא, אני לא מזלזל
). באוניברסיטה הפתוחה למשל, מתחילים מלימוד ++C או פסקל בקורסי המבוא, ורק בקורס מתקדם מלמדים C (לאחר שהסטודנטים למדו כמה קורסים של low level).
 

זהיר

New member
ממש |הדגש../images/Emo31.gifבדגש|!

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

eyalbd

New member
מה קל יותר למתחיל?

התוכנית באה ב++C או השקולה לה לחלוטין ב-C?
#include <iostream> #include <string> int main() { using namespace std; cout << "Please type your name: "; string name; getline(cin, name); cout << "Hello " << name << "! Welcome to the wonderful world of programming" << endl; }​
 

אלדד28

New member
השיטה הכי טובה היא

ללמוד C עם תוספים של ++C, כמו שאתה השתמשת בהם. הבעיה היא שספרות ++C לעולם אינה מתחילה מהבסיס - רוב הספרות הזו מתחילה ישר ממחלקות. יש עדיפות ברורה, לדעתי, להתחיל את הבסיס בצורתו הפרוצדורלית, ואז להתקדם לשפה הרצינית יותר. ולזהיר - אין שום דבר ב-C שצריך לשכוח כשעוברים ל-++C, מלבד פרדיגמות הנרכשות אחרי שנות נסיון רבות עם C. זה הדבר היחיד - והוא אינו קיים ממילא אצל מתחילים. לא יזיק לדעת מה זה scanf ומה זה malloc, ולו כדי להבין קצת יותר טוב איך עובד new ולמה עדיף לעבוד עם stream.
 

זהיר

New member
כבר הראיתי את זה בפורום הזה

מומלץ לקרוא בעיון ולבדוק שאתה מבין בדיוק מה אומרים שם. מה שלא תבין - יש כאן כמה אנשים שיוכלו להסביר. תכנתו בזהירות
 

אלדד28

New member
וכל פעם שתביא את יחיאל, אגיב ואומר:

הבחור קטנוני ברמות קשות. 1. void main לא יהרוג אף תוכניתן. תאמין לי. גם אם התוכנית תהיה לא פורטבילית רק בגלל void main, מדובר בדקה אחת (ונסחפתי) של תיקון. נכון, זה לא סטנדרטי. SO FUCKING WHAT? המקרה הזה הוא כל כך קטנוני, ויחיאל נתקע עליו שוב ושוב בכזו פנאטיות מטופשת שלא ברור לי איך יש אנשים שלוקחים אותו ברצינות. 3. לא יודע אם יחיאל שמע עליהן, אבל OpenGL ו-DirectX משתמשות ב-float. חזיז ורעם!!!
4. לגבי סוגריים (שאינם אופרטור), טוב עשה גרבר שציין אותן ברשימה. נכון. הן לא אופרטור. אז מה? רצוי וטוב שהן מופיעות בטבלת האופרטורים. זה מבהיר לכל קורא שסוגריים "יסדרו" לו את הקדימות איך שיבקש. יכולתי להמשיך, אבל נמאס לי להיום מיחיאל
בקיצור, קטנוניות. מה שחשוב זה האם הספר בהיר, ברור, ומעביר את החומר היטב. אני לא יכול להעיד על גרבר כי לא קראתי אותו, אבל זה מה שחשוב, גם אם הספר אינו תואם סטנדרט במאה אחוז.
 

זהיר

New member
יש ביקורת על שגיאות תכנות ו design

ואתה נדבק להערות (הנכונות) על void main() ועל float - אז מי קטנוני? להכניס סוגרים שהם לא אופרטור כאופרטור זה פשוט חוסר הבנת השפה - שעובר בירושה לקוראים. לא שמעתי על שום תלמיד בכיתה ב' שהתבלבל כשאמרו לו ש + ו x הם פעולות והסוגרים הם לא פעולה ולא שמעתי על שום מתכנת C שהתבלבל כשאמרו לו ש = (או ==) זו פעולה, בניגוד למה שהוא למד בביצפר - וגם בניגוד לפסקל או פורטרן. אז אולי תקרא (שוב?) את כל מה שכתוב שם על 20 הערות לקוד של שני עמודים ועל פונקציה (מסעי הפרש) עם שכפול קוד שמבטאת בסך-הכל programming in competence ועל שגיאת design של הורשת ריבוע ממלבן - ואולי אז יהיה קל יותר להבין את (חוסר) איכות התוכנה (לא רק בארץ, אלא גם בעולם, כי לא חסרים ספרים גרועים כאלה גם בשפות אחרות). תכנתו בזהירות
 

אלדד28

New member
חוסר איכות התוכנה אינה נובעת

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

אלדד28

New member
הסטנדרט קובע

שיש רק שתי צורות נכונות לכתיבת הפונקציה main -
int main() OR int main(int argc, char *argv[])​
זו הבעיה ב-void main. יש קומפיילרים (כמו זה שבא עם VC) שמצפים ממך ל-void main או int main. יש קומפיילרים אחרים שלא יתייחסו ל-void main כאל *ה*פונקציה שתיקרא בתחילת התוכנית, ולכן זו טעות.
 
למעלה