שתי שאלות...

בנגלה

New member
שתי שאלות...

קודם כל רציתי לשאול על ההבדל בין C לפסקל. אני מבין ש-C יותר טובה אבל מה בדיוק השפה הזאת נותנת לי שאין בפסקל? (בטח שאלה קצת מטומטמת. אבל בכל זאת, פסקל וC מופיעות באותה בחינת בגרות ככה שבטוח יש בינהן דימיון מסויים) C זאת שפה שכדאי יהיה לי ללמוד בעתיד בלי קשר לביצפר או משהו? (כרגע אני לומד פסקל בכיתה י'. השבוע מתכונת ל3 יחידות ראשונות) דבר שני- אני יודע שחלק מבתי הספר ניגשים ל15 יחידות בגרות במחשבים. בטוח ש-5 יחידות זה שפת תכנות כלשהי, מישהו פה יודע מה מכילות שאר ה-10 יחידות?
 

scalla

New member
אז ככה, חלק מההבדל בין pascal לC

הוא שC מהירה יותר, שיש לC מאגר גדול יותר של תוכנות ושיש לה יותר מתכנתים. אין יותר מדי דברים ספציפים שהיא נותנת שpascal לא נותנת. אבל יתרון אחד של pascal (ואולי גם החיסרון שלה) זה התמיכה המובנת בstring. וכמעת שחכתי pascal בימיינו היא די שפה מתה.
 

vinney

Well-known member
אתה לא צודק

בPASCAL העבודה היא שונה בתכלית בכל מה שקשור לcasting - בניגוד ל C, היא הרבה יותר strong typed ודורשת explicit casting. בנושא הזה CPP יותר קרוב לפסקל מC. בנוסף, כל מה שקשור עם העבודה עם heap בפסקל טיפה פחות נוח, בC יש פונקציות בסיסיות שנותנות שירותים של הקצאה דינאמית, בפסקל זה קצת פחות טריויאלי. בפסקל טווחי הגדרה שונים - אפשר להגדיר פונקציות ופרוצדורות מקומיות (מקוננות), מה שבC אי אפשר לעשות. וכמובן, PASCAL היא OOP, בניגוד לC שלא תומכת במחלקות (שוב, פה CPP יותר קרובה לפסקל).
 

VoodooKid

New member
OO??

לפי מה שאני יודע Pasal היא לא OO אולי אתה מדבר על DELPHI ואולי אני טועה... אני לא בטוח למישהו יש תשובה??
 

vinney

Well-known member
טורבו פסקל היא OO ועוד איך

אומנם לא גמיש כמו CPP, אבל מושג האובייקטים מוכר היטב ב(טורבו) פסקל, וספריית turbo vision (שבעזרתה נכתב ה IDE הישן) משתמשת באובייקטים בהרחבה.
 

OriIdan

New member
החל מגרסה 5.5 של טורבו פסקל

נוספו הרחבות ספציפיות של בורלנד שהפכו אותו ל Object pascal זה לא אומר שפסקל היא OO. פסקל היא שפה שנבנתה על ידי פרופסור ניקלאוס ווירס (Nichlaus wirth) לצורך לימוד שפות תכנות. היא שפה לימודית טובה אבל די זנחו אותה היום מאחר והתעשיה דורשת C. ולמי שמבין את הבדיחה יש המבטאים את שמו של ממציא הפסקל כ worth ואז נאמר שזה call by value. מי שצריך הסבר שיחפש מילון אנגלי עברי מה זה worth ואחר כך ילך לספר C בסיסי ויבין מה זה call by value
 

scalla

New member
כך בחשבון שכמו ש pascal השתנתה גם

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

OriIdan

New member
לא יודע פסקל

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

scalla

New member
גם כשמתכנתים MFC זה כבר לא ממש ++C

כנ"ל גם על KDE. אבל באופן כולל זה pascal ומ שמבין pascal נטו יבין את זה בערך ומי שמבין turbo pascal יבין pascal בלי שום בעיה, וכמו שאמרתי שפה מישתנה והיום זה כבר סטנדרט וזה pascal.
 

scalla

New member
ראה לינק

http://community.borland.com/article/images/20803/TP_55_OOP_Guide.pdf
 

DadleFish

New member
שניכם טועים

שפה א' לא יותר מהירה משפה ב'. זה תלוי בקומפיילרים שלהן (בתנאי כמובן שלשתיהן יש את אותו קונספט - פסקל ו-C שתיהן מקומפלות ל-NATIVE). שנית, אין שום OO בפסקל. יש שפה שנקראת ObjectPascal שהיא כמו ++C לפסקל (אבל פחות מוצלחת לטעמי). בכל מקרה, אין ממש הבדל בין C לבין פסקל. ההמרה ביניהן טריוויאלית ביותר וזה מסתכם ברמה של העדפה אישית. כמובן שיש יתרון פופולריות ל-C אבל זה כבר עניין אחר.
 

vinney

Well-known member
המם... אתה נחרץ מדי לטעמי

לגמי מהירות זה נכון, למרות שהקימפול בפסקל באופן מסורתי הרבה יותר מהיר (לפחות עד המצאת הprecompiled headers). לגבי OO, אז כמו שסוכם בדיון, גרסת טורבו פסקל 5.5 והלאה (אני חושב שהם הגיעו עד 7 ואז עברו לדלפי) היא OO. מכיוון שלפסקל אין ממש סטנדרט (לפחות לא שאני יודע עליו), טורבו פסקל נחשב לסטנדרט בכל הקשור לתאימות. לגבי Object Pascal, שמעתי, אבל לא ראיתי. ++C לפסקל זה דלפי. לגבי לימוד, אתה צודק, אין ממש הבדל. פסקל יותר קלה ללימוד, לכן משתמשים בה בבתי ספר, זה הכל.
 
להשוות בין סי++ לדלפי זה קצת בעייתי

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

vinney

Well-known member
זה קצת יותר מסביבת עבודה

דלפי זה פסקל מאורגן מחדש עם תשתית מסודרת ל OO וכמה מילות מפתח נוספות משמעותיות. בגדול המשמעות של דלפי עבור פסקל היא כמו ++C (עם MFC) עבור C.
 

scalla

New member
אמרתי שזה חצי OO אבל נכון שאתה צודק

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

GLev

New member
הבדל נוסף...

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

בנגלה

New member
חח..הבנתי אולי 10% ממה שכולכם אמרתם

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

vinney

Well-known member
עקרונית אין סיבה ממש

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