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

תהיות בנוגע לשפות תכנות ותכנות


Googleness

Recommended Posts

מצאתי לאחרונה את המחברות שהיו לי בזמנו בכיתה י' לפני כמה שנים טובות כשהייתי במגמת הנדסת תוכנה ובין היתר מצאתי ספר שקנתי בזמנו ללימוד עצמי של C++ שנקרא: ערכת לימוד C++ / מאת ג'סי ליבברטי - הוצאת פוקוס מחשבים. ספר ממש ישן מגיע אפילו עם דיסקט אבל הוא די טוב ממה שעלעלתי בו זה מין בניית פרוייקט בC++ בשביל ללמוד את העקרונות.

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

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

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

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

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

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

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

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

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

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

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

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

מצאתי לאחרונה את המחברות שהיו לי בזמנו בכיתה י' לפני כמה שנים טובות כשהייתי במגמת הנדסת תוכנה ובין היתר מצאתי ספר שקנתי בזמנו ללימוד עצמי של C++ שנקרא: ערכת לימוד C++ / מאת ג'סי ליבברטי - הוצאת פוקוס מחשבים. ספר ממש ישן מגיע אפילו עם דיסקט אבל הוא די טוב ממה שעלעלתי בו זה מין בניית פרוייקט בC++ בשביל ללמוד את העקרונות.

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

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

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

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

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

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

1. אם לא חשוב לך לדעת לעשות את זה בעצמך עם דף ועפרון, אתה יכול לעשות את ההמרות בפשוטות באמצעות שימוש במחשבון של .

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

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

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

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

ארכיון

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

×
  • צור חדש...