היום, ילדים, נלמד לתכנת!

RichardSmith

New member
היום, ילדים, נלמד לתכנת! ../images/Emo13.gif

import java.awt.*; public class human extends javax.swing.JApplet{ public void paint (Graphics h) { //Body h.drawLine(50,50,50,100); //Legs h.drawLine(70,130,50,100); h.drawLine(30,130,50,100); //Hands h.drawLine(50,60,70,75); h.drawLine(50,60,30,75); //Head h.drawOval(40, 30, 20, 20); //My name h.drawString("Adam Lev Ari", 15, 150); //My Department & year h.drawString("Math, 2nd year", 10, 160); // My favorite book - which is rather taugh... h.drawString("Schrodinger's Cat", 5, 170); //http://www.amazon.com/Schrodingers-Cat-Trilogy-Universe-Pigeons/dp/0440500702/ref=pd_sim_b_1/002-3891103-3151249 // //My favorite movie - which is too rather taugh... h.drawString("Space Balls", 15, 180); //http://www.imdb.com/title/tt0094012/ - A nice one. } }​
זאת applet בג'אווה, תוכנה קצרה ומיותרת כחלק משיעורי הבית שלי בקורס תכנות. ועכשיו להסבר: שורה הקוראת לפקודות נוספות מ"ספריות" אחרות.
import java.awt.*;​
תחילת המחלקה - CLASS, כל קובץ בג'אווה הוא מחלקה משל עצמו.
public class human extends javax.swing.JApplet{​
בשורה הזו אנחנו מכריזים על תחילת התוכנית עצמה. התוכנית מהווה חלק מהמחלקה.
public void paint (Graphics h) {​
// - הערה.
//Body​
זאת הפקודה לביצוע דברים. h זה המשתנה שהכרזנו עליו בתחילת התוכנית, מודגש. לאחר הנקודה מציינים את הפקודה עצמה, למשל ציור קו.
h.drawLine(50,50,50,100); //Legs h.drawLine(70,130,50,100); h.drawLine(30,130,50,100); //Hands h.drawLine(50,60,70,75); h.drawLine(50,60,30,75); //Head h.drawOval(40, 30, 20, 20); //My name h.drawString("Adam Lev Ari", 15, 150); //My Department & year h.drawString("Math, 2nd year", 10, 160); // My favorite book - which is rather taugh... h.drawString("Schrodinger's Cat", 5, 170); //http://www.amazon.com/Schrodingers-Cat-Trilogy-Universe-Pigeons/dp/0440500702/ref=pd_sim_b_1/002-3891103-3151249 // //My favorite movie - which is too rather taugh... h.drawString("Space Balls", 15, 180); //http://www.imdb.com/title/tt0094012/ - A nice one. } }​
ולבסוף, תראו את התמונה המצורפת.
 

mantrix

New member
אבל השאלה המתבקשת היא

האם אתה יודע לעשות את זה גם באסמבלי x86?
 

RichardSmith

New member
והתשובה המתבקשת היא...

לא. אבל אנחנו יודעים שאתה רוצה להראות לנו איך.
 

mantrix

New member
בדומה למילותיו של פרמה ../images/Emo11.gif

יש לי דוגמה נפלאה, אך הודעה זו צרה מלהכיל אותה
 

mantrix

New member
תחשוב על זה ברצינות

רק המימוש של drawLine בצורה הכי פשוט זה כמה עשרות שורות...
 

RichardSmith

New member
אבל לפחות...

copy paste לאחר שאתה מממש אותה. מבחינתי אתה יכול גם למשש. סתם...
 

mantrix

New member
מימשתי כבר כמובן ../images/Emo22.gif

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

mantrix

New member
בדיוק, כאלה שבהן אתה יודע מה קורה

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

sagima

New member
מצטער לאכזב אותך

אבל זה לא משנה איזה דור השפה, אתה עדין יודע (אם אתה רוצה/צריך) מה המחשב ומערכת ההפעלה שלך באמת עושים.
 

mantrix

New member
תלוי עד כמה אתה באמת רוצה

אבל כאשר אתה מתחיל ללמוד תכנות משפות בהן אתה *חייב*, זה סיפור אחר
 

sagima

New member
לא מסכים

זה תלוי באם אתה רוצה להיות מתכנת טוב או לא, מתכנת טוב, ידע מה קורה "under the hood" גם הוא למד לתכנת בשפה עילית מהדור ה170438.
 

mantrix

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

וחבל אם אך ורק הסקרנים ביותר יישארו בסוף עם אותו ידע בסיסי חיוני
 

sagima

New member
אם אתה אוהב

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

mantrix

New member
עדיף ללמוד לפני

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

RichardSmith

New member
זה קצת מעצבן...

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

mantrix

New member
אני עובד בבית על טהרת הלינוקס

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

RichardSmith

New member
כן...

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