נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: ללמוד תיכנות???

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
dror703
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 30 January 2008
משתמש: מנותק/ת
הודעות: 4
נשלח בתאריך: 21 February 2008 בשעה 21:04 | IP רשוּם
ציטוט dror703

הייי שלום לכולם !

אני רוצה לשאול זה פשוט כל כך מעניין אותי כל התיכנות וכל זה

אז איך אני יכול ללמוד את התיכנות ? עם איזה תוכנה עובדים? הכל מההתחלה ואם יש מדריך בעברית.

 אז תודה לכל המגיבים זה מאוד חשוב לי תודה.

חזרה לתחילת העמוד הצג את כרטיס החבר של dror703 חפש הודעות אחרות של dror703
 
11010010110
פורומיסט על
פורומיסט על
סמל אישי

הצטרף / הצטרפה: 23 April 2006
משתמש: מנותק/ת
הודעות: 2621
נשלח בתאריך: 21 February 2008 בשעה 22:00 | IP רשוּם
ציטוט 11010010110

אין כלל ואין תוכנה שאיתה עובדים

יש המון אפשרויות לתכנת

ניתן לתכנת בשפות רגילות שבהם כותבים תוכנות של windows

בשפות שעובדות ישר מול החומרה של המחשב

בשפות מדליקות ונדירות שהגישה שלהן לדברים שונה מכל מה
שאנחנו מכירים

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




אני ממליץ להתחיל לתכנת מאסמבלי - זה שפה שמומרת ישירות
למה שהמחשב עושה - ברמה של ה 1 0 ים שעוברים במעבד

http://download.savannah.gnu.org/releases/pgubook/ProgrammingGroundUp-1-0-lettersize.pdf

חזרה לתחילת העמוד הצג את כרטיס החבר של 11010010110 חפש הודעות אחרות של 11010010110
 
berzniz
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 27 January 2008
משתמש: מנותק/ת
הודעות: 22
נשלח בתאריך: 21 February 2008 בשעה 23:14 | IP רשוּם
ציטוט berzniz

אני ממליץ הפוך. להתחיל בשפה שהכי קל לתכנת בה - Java או C#.

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

המדריך כאן: לימוד Java



__________________
תכנות
לימוד Java
אקורדים
חזרה לתחילת העמוד הצג את כרטיס החבר של berzniz חפש הודעות אחרות של berzniz בקר בדף הבית של berzniz
 
dror703
משתמש מתחיל
משתמש מתחיל


הצטרף / הצטרפה: 30 January 2008
משתמש: מנותק/ת
הודעות: 4
נשלח בתאריך: 21 February 2008 בשעה 23:57 | IP רשוּם
ציטוט dror703

תודה לכולם
חזרה לתחילת העמוד הצג את כרטיס החבר של dror703 חפש הודעות אחרות של dror703
 
11010010110
פורומיסט על
פורומיסט על
סמל אישי

הצטרף / הצטרפה: 23 April 2006
משתמש: מנותק/ת
הודעות: 2621
נשלח בתאריך: 22 February 2008 בשעה 00:06 | IP רשוּם
ציטוט 11010010110

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


הצטרף / הצטרפה: 30 January 2008
משתמש: מנותק/ת
הודעות: 4
נשלח בתאריך: 22 February 2008 בשעה 00:20 | IP רשוּם
ציטוט dror703

אני לא מבין זה תוכנה אסמבלי?
חזרה לתחילת העמוד הצג את כרטיס החבר של dror703 חפש הודעות אחרות של dror703
 
11010010110
פורומיסט על
פורומיסט על
סמל אישי

הצטרף / הצטרפה: 23 April 2006
משתמש: מנותק/ת
הודעות: 2621
נשלח בתאריך: 22 February 2008 בשעה 03:50 | IP רשוּם
ציטוט 11010010110

לא

המחשב יכול להריץ תוכנות בינאריות. כלומר - תוכנות
שבנויות מ 1 0 ים כשלצירופים שלהם יש משמעות מסויימת

מה המשמעות ?

נדמיין מחשב (תשכח שניה את כל מה שאתה יודע אל מערכות
הפעלה וכדומה)

המחשב מהיר מאוד

לזיכרון מחובר מסך של 16x16 לדים שמראה כל הזמן מה יש
בזיכרון

במחשב הזה יש זיכרון שהוא רשת 16x16. בכל משבצת של הרשת
יכול להיות 0 או 1 יחיד

לכל שורה של הרשת יש מספר שורה. המספרים הולכים כך (בבסיס
10 ובבסיס 2)

0 0000
1 0001
.
.
14 1110
15 1111

כל שורה שומרת מספר בינארי של 16 ביטים. כמו
1101100011110011

ההוראות של המעבד שלנו הן גם שורות כאלה של 16 ביטים

הוא קורא את ההוראה כך

אם ההוראה מתחילה ב 1 נחלק אותה ל 4 חלקים והם

- 4 ביטים ראשונים - קוד הפעולה (הראשון מהם תמיד 1)
- 4 ביטים - תמיד 0
- 4 ביטים - כתובת א
- 4 ביטים - כתובת ב

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

קוד הפעולה הוא קוד שאומר מה המעבד עושה. למשל אצלנו

1000 - פעולה לוגית not
1001 - פעולה לוגית or
1010 - פעולה לוגית and
1100 - חיבור
1101 - חיסור
1111 - תוקע את המחשב

בכל המקרים של פעולת חישוב המשמעות היא

תיקח את מה ששמור בכתובת א
תיקח את מה ששמור בכתובת ב
תחשב מס' א פעולה מס' ב
תשמור את התוצאה בכתובת א (במקום מס' א)

אם זה פעולות לוגיות אז הפעולה נעשית ברמה של הביטים
בפעולת not המעבד מתעלם מכתובת ב - ניתן לכתוב שם מה
שרוצים

למשל
111111001 and 111110101 = 111110001
111111001 or 111110101 = 111111101
111111001 not 111110101 = 000000110
111111001 + 111110101 = 111101110
111111001 - 111110101 = 000000100

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

אם ההוראה מתחילה ב 0 אז המחשב מקבל אותה כך

4 ביטים ראשונים - קוד פעולה
4 ביטים אחריהם - כתובת א
8 ביטים אחריהם - כל מה שבא לנו

המחשב ייקח את מה שכתבנו ב 8 ביטים אחרונים וישמור אותם
בזיכרון בחצי הראשון (הימני) או השני (השמאלי) של הכתובת
הזאת ולא ייגע בחצי השני

אם ההוראה מתחילה ב 0000 זה החצי הראשון
אם ההוראה מתחילה ב 0100 זה החצי השני

למשל כדיי לשמור 1101001011000101 בכתובת 0101 ניתן את 2
ההוראות

0100010111010010
0000010111000101

עכשו המשחק יותר מסובך

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

בוא נכתוב תוכנית שמחשבת כמה זה 513 + 771 ושומרת את
התוצאה בשורה 15 בזיכרון

התוכנית תהיה

נכתוב 513 לכתובת 15
0100111100100000
0000111100000001

נכתוב 771 לכתובת 11
0100101100110000
0100101100000011

נחבר את הנתון מ 11 ו 15 ונשמור את התוצאה ב 15
1100000011111011

זה התוכנית שלנו :
0100111100100000
0000111100000001
0100101100110000
0100101100000011
1100000011111011

המחשב נדלק כשהתוכנית שמורה בכתובות 0 - 4 ובכל היתר יש
סתם מס' אקראיים (הם לא מפריעים לנו כי אנחנו כותבים את
מה שאנחנו רוצים במקומם בכתובות 11 ו 15 ובכתובות האחרות
לא אכפת לנו בכל מקרה)

אבל . . . . זה לא תמיד יעבוד

למה ?

נניח התוכנית הסתיימה. המחשב הולך לבצע את ההוראה הבאה
שלא כתבנו . . והיא אקראית . . ובמקרה יצאה שם הוראה
שתעשה משהוא בכתובת 15 ותהרוס לנו את התוצאה (ולא נספיק
לראות אותה במסך כי המחשב מהיר)

כדיי למנוע את זה נתקע את המחשב אחריי סיום התוכנית

התוכנית בסוף תהיה
0100111100100000
0000111100000001
0100101100110000
0100101100000011
1100000011111011
1111000000000000




מה שעשינו עכשו היה שפת מכונה

אסמבלי היא שפה שמומרת כמעט ישירות לשפת מכונה. היא נקראת
שפת סף. אנחנו כותבים שם במילים את ההוראות האלה והמחשב
פשוט מעביר אותן ל 0 ו 1 ים

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

כדיי להמיר תוכנית שכתבנו ל 1 0 ים יש תמיד 2 שלבים

שלב 1 - להמיר את התוכנית למשהוא קרוב ל 1 0 ים שנקרא
קובץ מטרה. מה שיש שם זה התוכנית הכמעט שלמה אבל חלקים
ממנה חסרים (דברים שלא כתבנו בתוכנית והמחשב אמור להשלים
אותם)

שלב 2 - להשלים את הדברים האלה




בעבודה באסמבלי השלבים הם

שלב 1 - בניית התוכנית (assemble) (מכאן שם השפה) - המחשב
פשוט ממיר בצורה דיי טפשית את ההוראות שכתבנו בשפה של
בניי אדם ל 1 0 ים - בדיוק כמו שכתבנו את התוכנית

שלב 2 - קישור החלקים של התוכנית שלנו (לעיתים אם קטעים
דל תוכניות אחרות) - מה שמשלים את התוכנית ונותן לה חיים




בעבודה בשפות אחרות התהליך יותר מסובך. התהליך המסובך
(שמכיל את 2 השלבים האלה והרבה מאוד אחרים) נחשב ל 'שלב
אחד גדול' ונקרא קימפול



את התוכנית עצמה אנחנו כותבים בקובץ טקסט פשוט

את השלבים האלה אנחנו מבצעים אל קובץ הטקסט. למשל כדיי
להמיר תוכנית שכתבנו ב code.txt באסמבלי לקובץ exe ב DOS
נעשה את השלבים

נכתוב את התוכנית
masm code.txt
link code.obj
ויש לנו exe

או בגרסאת הלינוקס

נכתוב את התוכנית
as code.txt
ld code.o
ויש לנו a.out (בלינוקס יש את זה במקום exe)

בתוכנית שכתבנו ב c למשל יש שלב אחד מבחינתנו

נכתוב את התוכנית
make code.txt
ויש לנו a.out




ההבדל העקרוני בין שפת סף (אסמבלי) ושפות אחרות (שפה
עילית כמו C D JAVA) הוא

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

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

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

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

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

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



חזרה לתחילת העמוד הצג את כרטיס החבר של 11010010110 חפש הודעות אחרות של 11010010110
 
inHaze
משתמש פעיל
משתמש פעיל
סמל אישי

הצטרף / הצטרפה: 23 November 2006
מדינה: Israel
משתמש: מנותק/ת
הודעות: 119
נשלח בתאריך: 23 February 2008 בשעה 10:52 | IP רשוּם
ציטוט inHaze

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

נושאים שיכולים לעזור: מבנה ה-CPU הזכרון הראשי וה-SYSTEMBUS, גישה להתקני קלט/פלט,יצוג בבסיס בינארי (2) והקסדצימאלי(16), לוגיקה בסיסית (OR,AND,NOT...)

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



__________________
הבלוג שלי
חזרה לתחילת העמוד הצג את כרטיס החבר של inHaze חפש הודעות אחרות של inHaze
 
אביאל
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 26 February 2008 בשעה 17:03 | IP רשוּם
ציטוט אביאל

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

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


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 29 February 2008 בשעה 18:47 | IP רשוּם
ציטוט אני לעזור

מבלי לבטל אף אחת מן ההצעות ולפי דעתי בלבד,
אני מציע לך ללמוד שפת עילית כגון C# , JAVA בסביבת
עבודה מפותחת מאשר ללמוד שפת סף כגון אסמבלי וזאת מכמה סיבות:

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

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

3. דיבוג - קשה מאד אבל מאד מאד לדבג תוכנית אסמבלי בשפה עילית ישנו בד"כ דיבגר
מעולה המקל על הבעיה.

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

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

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

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