Loading AI tools
שפת תכנות מוויקיפדיה, האנציקלופדיה החופשית
סנאפ! (באנגלית: !Snap) היא שפת תכנות חופשית שמיועדת להוראת עקרונות התכנות לתלמידים שאינם מיועדים בהכרח להיות מתכנתים מקצועיים. !Snap (בהשראת תכנת Scratch) מבוססת על כך שלפקודות יש צורה גרפית של בלוקים שנגררים באמצעות העכבר ונתפסים זה לזה (מכאן שמה של השפה). התלמיד מתכנת תוכניות הנדרשות בלימודיו, אנימציות אינטראקטיביות, או משחקים ותוך כדי כך נחשף לעקרונות מתמטיים ומחשוביים. למרות שממבט ראשון ל-!Snap יש חזות דומה ל-Scratch, ל-!Snap יש תוספות חשובות שמאפשרות להשתמש בה בקורסים אקדמיים של מדעי המחשב. התוספות, בעיקר בהשפעה של שפת התכנות Scheme, שייכות לפרדיגמה של תכנות פונקציונלי עם רקע מתמטי תאורטי מהתחום של תחשיב למדא.
פרדיגמות | מונחית־עצמים, מונחית־אירועים, תכנות פונקציונלי |
---|---|
תאריך השקה | 2011 |
מתכנן | Brian Harvey ו-Jens Mönig |
מפתח | Jens Mönig |
טיפוסיות | דינמית |
הושפעה על ידי | Scratch, Scheme |
רישיון | AGPL |
סיומת | ypr, ysp, xml |
snap | |
המאפיינים הבאים מייחדים את !Snap בהשוואה ל-Scratch.
מובאות פה שתי דוגמאות שנבחרו כדי להדגים חלק מהתכונות המיוחדות של שפת התכנות !Snap. בתמונות מתוארים שני בלוקים שנוצרו על ידי משתמש. בלוק אחד מאפשר לחשב את ערכו של פולינום עבור ערך נתון בהינתן רשימת המקדמים של הפולינום. בלוק זה הוא דוגמה לכך שרשימה יכולה להוות קלט. הבלוק השני נועד לחשב קרוב סכום רימן של האינטגרל המסוים. בבלוק זה פונקציה משמשת כאחד הקלטים.
לאחר הצבת הקלטים לתוך הבלוקים וקליק על הבלוקים נקבל את התוצאה באליפסה לבנה על יד כל בלוק. רשימת המקדמים שניתנה כקלט היא 1,1-,1- והערך שבו יש לחשב את הפולינום הוא 2. בבלוק חישוב האינטגרל, הפונקציה שניתנה כקלט היא y=1/x, גבולות האינטגרל הם 1 ו-e וסכומי רימן מחושבים עם 100 מרווחים.
הבלוקים מוגדרים בעורך הבלוקים של !Snap. ההגדרה של הבלוק שמחשב פולינום היא הגדרה רקורסיבית מאחר שבהגדרת הבלוק משתמשים בבלוק עצמו.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.