Snap!‎

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה לניווט קפיצה לחיפוש
(Snap! (BYOB
Snap!.svg
פרדיגמות מונחית־עצמים, מונחית־אירועים, תכנות פונקציונלי
שנה 2011
מתכנן Brian Harvey ו- Jens Mönig
מפתח Jens Mönig
גרסה אחרונה 4.0.2 (6 באוגוסט 2015)
טיפוסיות דינמית
הושפעה על ידי Scratch ,Scheme
רישיון AGPL
סיומת ypr, ysp עריכת הנתון בוויקינתונים
snap.berkeley.edu
לעריכה בוויקינתונים שמשמש מקור לחלק מהמידע בתבנית OOjs UI icon info big.svg

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

מאפיינים[עריכת קוד מקור | עריכה]

המאפיינים הבאים מייחדים את !Snap בהשוואה ל-Scratch.

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

דוגמאות[עריכת קוד מקור | עריכה]

Polynom evaluation block
Integral block

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


Polynom evaluation with inputs
Integral block with inputs

לאחר הצבת הקלטים לתוך הבלוקים וקליק על הבלוקים נקבל את התוצאה באליפסה לבנה על יד כל בלוק. רשימת המקדמים שניתנה כקלט היא 1,1-,1- והערך שבו יש לחשב את הפולינום הוא 2. בבלוק חישוב האינטגרל, הפונקציה שניתנה כקלט היא y=1/x, גבולות האינטגרל הם 1 ו-e וסכומי רימן מחושבים עם 100 מרווחים.




Polynom block definition

הבלוקים מוגדרים בעורך הבלוקים של !Snap. ההגדרה של הבלוק שמחשב פולינום היא הגדרה רקורסיבית מאחר שבהגדרת הבלוק משתמשים בבלוק עצמו.

ראו גם[עריכת קוד מקור | עריכה]

קישורים חיצוניים[עריכת קוד מקור | עריכה]

הערות שוליים[עריכת קוד מקור | עריכה]