Microsoft Small Basic

**Microsoft Small Basic** היא שפת תכנות מבוססת אובייקטים מבית מיקרוסופט. השפה הותאמה במיוחד לילדים ולמתחילים בתחום תכנות המחשבים.

סביבת הפיתוח המתאימה לשפת התכנות היא Small Basic, הניתנת להורדה באתר הרשמי של שפת התכנות. פורמט הקובץ המתאים הוא "SB.*".

## מבנה השפה (Syntax)
לשפה יש תחביר (Syntax) בעל חוקיות קבועה: בהתחלה, אובייקט, נקודה, מאפיין ומשתנה. כללים אילו מתבטאים בתבנית הזו: לשפה יש, מלבד האובייקטים, גם:
#  שגרות המוגדרות באמצעות המילה השמורה "Sub",
# לולאות For ו-While,
# משפטי תנאי (If, Else ו-ElseIf).

כל משפט שאינו אובייקט **או** משתנה צריך להיגמר ב-End ושם הפעולה. כך שלולאת For תיגמר ב-Endfor, ושגרה תיגמר ב-EndSub.

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

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

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

דוגמה למבנה הקוד:
```
אובייקט.מאפיין(משתנה)
```


## חלק מהפקודות של השפה
### אובייקטים
* TextWindow- מאפשר לשים טקסט בחלון.
* Clock- משתמש עם שעון המערכת.
* Turtle- אובייקט זה מאפשר לצייר סמלים בחלון בעזרת צב.

* GraphicsWindow- זהו חלון גרפי בו המתכנת יכול לצייר צורות על החלון.

* flickr- משתמש בשירות התמונות flickr.

### מילים שמורות
* **If:** בעברית: אם. מילה שמורה המשמשת לפתיחת משפט תנאי.
* **And:** אופרטור המשמש בתוך משפטי תנאי ולולאות while. משמש להוספת אפשרויות נוספות למשפט תנאי.
* **Or:** אופרטור הדומה ל-and אך משמש להגדרת תנאי שאינו חייב להתבצע יחד עם התנאי השני.
* **Then:** הפקודה "אז" משמשת לסימון התחלת פסקת הפעולות שיתבצעו אחרי משפט תנאי.
* **EndIf:** סוגרת את פסקת התנאים הפתוחה.
* **Else:** יצירת הסתעפות בתנאי. בניגוד ל-ElseIf, פסקת else אינה תלוית הגדרה של המתכנת, אלא מגדירה מה יבוצע אם התוצאה תהיה הפוכה מאחת האפשרויות.
* **ElseIf:** יצירת הסתעפות מותאמת. ראו גם אופרטור or.
* **For:** פתיחת לולאת  For.
* **EndFor:** סגירת לולאת For.
* **While:** פתיחת לולאת while.
* **EndWhile:** סגירת לולאת while.
* **Sub:** הגדרת שגרה חדשה.

### מאפיינים
* **GraphicsWindow**
** DrawRectangle: ציור מלבן על החלון.
** DrawEllipse: ציור אובל (אליפסה) על החלון.
** Height: מחזיר/משנה את גובהו של החלון.
** Width: מחזיר/משנה את רוחבו של החלון.
** Left: מגדיר את קואורדינטת ה-x של החלון ביחס למסך.
** Top: מגדיר את קואורדינטת ה-y של החלון ביחס למסך.
** Show: מראה את החלון כדי לאפשר אינטראקציה עמו.
** Hide: מסתיר את החלון כדי למנוע אינטראקציה עמו.
* **TextWindow**
** WriteLine: כתיבת שורה לחלון הטקסט (Console). בניגוד ל-Write, תו שורה חדשה (line-feed) יתווסף לפלט.
** Write: כתיבת טקסט לחלון הטקסט.
** Read: קבלת קלט מהמשתמש.
** Show: מציג את חלון הטקסט כדי לאפשר אינטראקציה איתו.

## דוגמאות קוד
הדגמת מנגנון קלט-פלט של השפה:
```basic
TextWindow.WriteLine("Enter your name: ") ' מבקש מהמשתמש להקליד את שמו
name = TextWindow.Read() ' יוצר משתנה וממלא אותו בקלט - משמע, השם
TextWindow.WriteLine("Hello, " + name)
```

שליפה מתוך מערך בהתאם לקלט:
```basic
book["never ending story"]["title"] = "Never Ending Story"
book["never ending story"]["author"] = "Michael Ende"
book["lord of the rings"]["title"] = "Lord of the Rings I - The Fellowship of the Ring"
book["lord of the rings"]["author"] = "J. R. R. Tolkien"

TextWindow.Writeline("Enter book: ") ' מבקש קלט
search = TextWindow.Read()
author = book[search]["author"]
title = book[search]["title"]

TextWindow.WriteLine(author + " " + title)
```


## קישורים חיצוניים

* 
* Microsoft Small Basic – האתר הרשמי של השפה 
* לומדים וחושבים תכנות – אתר ללימוד השפה 
* Category:Microsoft Small Basic Tasks implemented in Microsoft Small Basic on rosettacode.org

קטגוריה:שפות תכנות
קטגוריה:תכנות