1.מה ידפיס קטע הקוד שבהמשך? קודם ענו מבלי להריץ את הקוד ולאחר מכן בידקו את תשובתכם והסבירו בעזרת הערה מה עושה כל שורה.
\n",
"\n",
" for i in range(-2, 3):\n",
" b = i ** 2\n",
" if b != 0:\n",
" print(1 / b)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.25\n",
"1.0\n",
"1.0\n",
"0.25\n"
]
}
],
"source": [
"for i in range(-2, 3): #עבור כל משתנה בין -2 ל3(לא כולל את 3)\n",
" b = i ** 2 #בחזקת 2 iשווה ל b המשתנה\n",
" if b != 0: #אם המשתנה לא שווה לאפס\n",
" print(1 / b)#תתדפיס 1 חלקי המשתנה\n",
"#התוצאה: רבע, אחד, אחד, רבע "
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
" 2. מה ידפיס קטע הקוד שבהמשך? קודם ענו מבלי להריץ את הקוד ולאחר מכן בידקו את תשובתכם והסבירו למה.
\n",
"\n",
" def g(i):\n",
" s = 0\n",
" for k in range(-i, i + 1):\n",
" s = s + k\n",
" return s\n",
"\n",
" print(g(3))"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0\n"
]
}
],
"source": [
"def g(i):#פונקציה\n",
" s = 0 #הגדרת משתנה\n",
" for k in range(-i, i + 1):#בשביל משתנה קיי בין -המשתנה למשתנה הפונקציה פלוס אחד\n",
" s = s + k#המשתנה הופך לתוצאת החיבור של המשתנים\n",
" return s#תחזיר משתנה סופי\n",
"\n",
"print(g(3))\n",
"# -3, -5, -6, -6, -5, -3, 0\n",
"#התוצאה האחרונה הינה 0 ולכן זה ידפיס את אפס"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"3. נתון קטע הקוד שבהמשך:
\n",
"\n",
" for i in range(1, 100):\n",
" if (i % 3) % 2 == 0:\n",
" print(i)\n",
" \n",
" 4. מדידת טמפרטורה בניסוי מסוים הניבה את התוצאות הבאות \n",
"
$21,0,7.2,-8.9,-30$\n",
" הטמפרטורה נמדדה במעלות צלסיוס (C) הנוסחא למעבר מטמפרטורה במעלות צלסיוס לטמפטמפרטורה במעלות פרנהייט היא \n",
"
$F=\\frac{9}{5}\\cdot C+32 $\n",
" כאשר C זו הטמפרטורה במעלות צלסיוס ו-F הטמפרטורה במעלות פרנהייט. כתבו לולאת for המדפיסה טבלה, שעמודה אחת בה היא הטמפרטורה במעלות צלסיוס והשניה בפרנהייט. הקפידו על כותרת נכונה לעמודות.
"
]
},
{
"cell_type": "code",
"execution_count": 76,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"C: 21 F: 69.80000000000001\n",
"C: 0 F: 32.0\n",
"C: 7.2 F: 44.96\n",
"C: -8.9 F: 15.98\n",
"C: -30 F: -22.0\n"
]
}
],
"source": [
"C=[21,0,7.2,-8.9,-30]\n",
"for c in C:\n",
" F=9/5*c+32\n",
" print('C:', c, 'F:', F)"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
" 5. כתבו פונקציה המקבלת רשימה של מספרים ומחזירה את הממוצע שלהם.
"
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2.5\n"
]
}
],
"source": [
"def gg (a,b,c,d):\n",
" v=[a,b,c,d]\n",
" return sum(v)/len(v)\n",
"print(gg(1,2,3,4))\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
" 6.כתבו תוכנית המקבלת מהמשתמש רשימה המכילה ציוני מבחנים (רשימת ערכי a), ורשימה שנייה המכילה את משקלו של כל ציון (רשימת ערכי x שהם מספרים עשרונייפ בין 0 ל 1). על התוכנית לחשב ולהדפיס את הממוצע המשוקלל של הציונים. החישוב, בהתאם לנוסחה הבאה. ממוצע משוקלל שווה ל:\n",
"
$(a1x1+a2x2+a3x3) / (a1+a2+a3)$\n",
" שימו לב שסכום הסך כל המשקלים צריך להיות שווה ל - 1. אורך רשימת המשקלים צריך להיות זהה לארוך רימת "
]
},
{
"cell_type": "code",
"execution_count": 235,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"0.3221789883268482"
]
},
"execution_count": 235,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"def grade (a1,a2,a3,x1,x2,x3):\n",
" a=[a1,a2,a3]#grades\n",
" v1=[a1*x1]\n",
" v2=[a2*x2]\n",
" v3=[a3*x3]\n",
" v=v1+v2+v3\n",
" \n",
" if x1+x2+x3==1 and x1>0 and x2>0 and x3>0 :\n",
" return sum(v)/sum(a)\n",
"grade(90,100,67,0.4,0.2,0.4)\n",
" "
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"
7. מספרי פיבונאצ'י הם סידרת מספרים המגדרת באופן הבא: אם n=0 אזיfn=0 , אם n=1 אזי fn=1. עבור כל מספר טבעי n אחר מתקיים fn=fn-1+fn-2 . שבעת המספרים הראשונים (n=6) בסדרה הם: 0,1,1,2,3,5,8. כתבו פונקציה בשם fibonacci המקבלת כפרמטר מספר שלם n ומחזירה רשימה של n מספרי פיבונאצ'י הראשונים.
\n",
"\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 231,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0\n",
"1\n",
"1\n",
"2\n",
"3\n",
"5\n",
"8\n"
]
}
],
"source": [
"def fibonacci(n):\n",
" if n < 0 :\n",
" print(\"ERROR!!!\")\n",
" if n == 0:\n",
" return 0\n",
" elif n == 1:\n",
" return 1\n",
" else :\n",
" return fibonacci(n-1) + fibonacci(n-2)\n",
"\n",
"def fibonachi_print(n):\n",
" for x in range(0, n+1):\n",
" print(fibonacci(x))\n",
"\n",
"fibonachi_print(6)"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"
8. במדע חישובי נעשה שימוש נרחב במספרים כאילו אקראיים (pseudorandom). לכן, חשוב לכן לדעת ליצור מספרים כאלו. בהמשך מוצגת שיטה לקבלת מספרים כאילו אקראיים בתחום שבין אפס לאחת. מתחילים ממספר מסוים, נניח \n",
"
$1>u_0 >0$\n",
"
המספר הבא יינתן על ידי:\n",
"
$u_1=\\text{חלק עשרוני של החישוב הזה } (\\pi + u_0)^5$\n",
"\n",
"
לדוגמה כאשר \n",
"
$u_0=0.3$ \n",
"
נקבל \n",
"
$(\\pi+u_0)^5=482.8334276$\n",
"
כך ש- \n",
"
$u_1=0.8334276$\n",
"
קיבלנו א\n",
"
את המספר הבא ניתן לקבל על ידי הצבה של $u_1$ במקום $u_0$.\n",
"
כתבו פונקציה בשם get_random_list המקבלת שני פרמטרים מספריים. האחד מספר חיובי הקטן מ-1 (u0) ומספר שלם n. על הפונקציה להחזיר רשימה של n מספרים אקראיים. \n"
]
},
{
"cell_type": "code",
"execution_count": 250,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[3.782687896234273e+17,\n",
" 24794.91129600001,\n",
" -3.7826878962340256e+17,\n",
" 12397.455648000005,\n",
" 15255904129185.201]"
]
},
"execution_count": 250,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"def get_random_list(u,n):\n",
" if u>0 and u<1 and n%1==0:\n",
" u6=(n+u)**6\n",
" u4=(n+u6)**4\n",
" return [u4,u6,u6-u4, u6/2,u4/u6]\n",
"get_random_list(0.4,5)\n",
" "
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": false
},
"source": [
"
9.בזמן t=0 פרעוש קטן ניצב בראשית הצירים. בכל רגע הוא מבצע קפיצה בכיוון אקראי (בין 0 ל-$360^0$ ) ועובר מרחק אקראי (קטן מ-1) בכיוון הקפיצה. כתבו תוכנית המשרטטת את מסלול הפרעוש אחרי n קפיצות. רמז: אתם יכולים להשתמש בפונקציה הפסאודורנדומאלית שיצרתם בתרגיל הקודם "
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"[3.782687896234273e+17,\n",
" 24794.91129600001,\n",
" -3.7826878962340256e+17,\n",
" 12397.455648000005,\n",
" 15255904129185.201]"
]
},
"execution_count": 1,
"metadata": {
},
"output_type": "execute_result"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"def get_random_list(u,n):\n",
" if u>0 and u<1 and n%1==0:\n",
" u6=(n+u)**6\n",
" u4=(n+u6)**4\n",
" return [u4,u6,u6-u4, u6/2,u4/u6]\n",
"get_random_list(0.4,5)\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 0,
"metadata": {
"collapsed": false
},
"outputs": [
],
"source": [
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (Anaconda 2019)",
"env": {
"LD_LIBRARY_PATH": "/ext/anaconda-2019.03/lib",
"PROJ_LIB": "/ext/anaconda-2019.03/share/proj",
"PYTHONHOME": "/ext/anaconda-2019.03/lib/python3.7",
"PYTHONPATH": "/ext/anaconda-2019.03/lib/python3.7:/ext/anaconda-2019.03/lib/python3.7/site-packages"
},
"language": "python",
"metadata": {
"cocalc": {
"description": "Python/R distribution for data science",
"priority": 5,
"url": "https://www.anaconda.com/distribution/"
}
},
"name": "anaconda2019"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 0
}