הצעה לפתרון מלא — אלקטרוניקה ומחשבים
בגרות · קיץ תשפ"ג 2023 · שאלון 815381 · שאלות 1–11
✦ בנוי על ידי פהד גאנם ✦
💡
על המסמך: הצעה לפתרון מלא לשאלון 815381 — אלקטרוניקה ומחשבים, קיץ תשפ"ג 2023. בשאלון אחת-עשרה שאלות בשלושה פרקים, ועל הנבחן לענות על חמש שאלות — אחת לפחות מהפרק הראשון, שתיים מהפרק השני ושתיים מהפרק השלישי. פרק ראשון (1–2) תורת החשמל; פרק שני (3–5) אלקטרוניקה תקבילית וספרתית; פרק שלישי (6–11) תכנות — נבחני C# עונים על שתיים מ-6–8, ונבחני Python על שתיים מ-9–11. כאן פתורות כל השאלות, לנוחות הלימוד.
🔌 פרק ראשון — תורת החשמל
שאלה 1 — מעגל טורי-מקבילי עם מקור מתח
נתונים: E = 30V · R₁ = ‎20 Ω · R₂ = ‎10 Ω · R₃ = ‎8 Ω · R₄ = ‎24 Ω · I₁ = 0.6A (דרך R₁)
💡
מבנה המעגל: המקור E מזין בטור את הצירוף המקבילי R₁∥R₂, אחריו את הצירוף המקבילי R₃∥R₄, ואת הנגד R₅ בענף התחתון. הזרם הכללי מהמקור זהה בכל שלושת המקטעים הטוריים ומתחלק בכל צומת בין הנגדים המקבילים.
סעיף א — הזרם שמספק מקור המתח E

הזרם I₁ נתון דרך R₁. המתח על הצירוף המקבילי R₁∥R₂ שווה למתח על R₁, ומתוכו הזרם דרך R₂:

U(R₁∥R₂) = I₁ · R₁ = 0.6 × 20 = ‎12 V
I₂ = U(R₁∥R₂)R₂ = 1210 = ‎1.2 A
I(E) = I₁ + I₂ = 0.6 + 1.2
I(E) = ‎1.8 A
סעיף ב — הזרם דרך הנגד R₃

הזרם הכללי 1.8A זורם דרך הצירוף R₃∥R₄. נחשב את המתח על הצירוף, ומתוכו את הזרם דרך R₃:

R₃∥R₄ = 8 × 248 + 24 = ‎6 Ω
U(R₃∥R₄) = I(E) · (R₃∥R₄) = 1.8 × 6 = ‎10.8 V
I(R₃) = U(R₃∥R₄)R₃ = 10.88
I(R₃) = ‎1.35 A
סעיף ג — ההתנגדות השקולה של המעגל והנגד R₅

ההתנגדות השקולה מחושבת מחוק אום על כל המעגל. היא שווה לסכום שלושת המקטעים הטוריים, ומכאן מבודדים את R₅:

Rשק = EI(E) = 301.8 = ‎16.67 Ω
R₁∥R₂ = 20 × 1030 = ‎6.67 Ω ; R₃∥R₄ = ‎6 Ω
R₅ = Rשק - (R₁∥R₂) - (R₃∥R₄) = 16.67 - 6.67 - 6
Rשק ≈ ‎16.67 Ω ; R₅ = ‎4 Ω
סעיף ד — ההספק המתפתח בנגד R₄

המתח על R₄ שווה למתח על הצירוף R₃∥R₄ שחושב בסעיף ב (10.8V). ההספק:

P(R₄) = U(R₄)²R₄ = 10.8²24 = ‎4.86 W
P(R₄) = ‎4.86 W
🧪סימולציה בתוך הדף— שלושה מקטעים בטור
הזרם דרך R₁ קובע את הכול: הוא נותן את המתח על הצירוף הראשון ומשם את הזרם הכללי.▶ פתח את מעבדת המעגל המעורב
🧪 בגרסת האתר יש כאן סימולציה אינטראקטיבית — שלושה מקטעים בטור.
שאלה 2 — מעגל RC טורי בזרם חילופין
נתונים: V₁ = 24V (על R) · V₂ = 7V (על C) · I = 4mA · f = ‎2 kHz · הקריאות יעילות
💡
מבנה המעגל: הנגד R והקבל C מחוברים בטור אל מקור החילופין U. מד-הזרם A מודד את הזרם המשותף (4mA), מד-המתח V₁ מודד את המתח על R (24V) ו-V₂ את המתח על C (7V).
סעיף א — זמן המחזור והתדירות הזוויתית של מתח המקור
T = 1f = 12000 = ‎0.5 ms = ‎500 µs
ω = 2π f = 2π × 2000 = ‎12566 rad/s
T = ‎500 µs ; ω ≈ ‎12566 rad/s (4000π)
סעיף ב — התנגדות הנגד R

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

R = V₁I = 240.004
R = ‎6 kΩ
סעיף ג — קיבול הקבל C

תחילה נמצא את היגב הקבל XC מהמתח על הקבל, ומתוכו את הקיבול:

XC = V₂I = 70.004 = ‎1750 Ω
C = 12π f XC = 12π × 2000 × 1750
XC = ‎1.75 kΩ ; C ≈ ‎45.5 nF
סעיף ד — מתח המקור U (ערך יעיל)

בחיבור טורי RC המתח על הנגד והמתח על הקבל מוסטים ב-90°, ולכן מתח המקור הוא סכומם הווקטורי:

U = √V₁² + V₂² = √24² + 7² = √576 + 49 = √625
U = ‎25 V (יעיל)
🧪סימולציה בתוך הדף— מעגל RC משתי מדידות מתח
שני הוולטמטרים מספיקים: הזרם נותן את R ואת X_C, והם מרכיבים את מתח המקור פאזורית.▶ פתח את מעבדת RLC — לשונית טורי
🧪 בגרסת האתר יש כאן סימולציה אינטראקטיבית — מעגל RC משתי מדידות מתח.
⚙️ פרק שני — אלקטרוניקה תקבילית וספרתית
שאלה 3 — שני מגברי שרת אידאליים עם מפסקים
נתונים: V₁=0.5V · V₂=2V · R₁=2kΩ · R₂=6kΩ · R₃=2kΩ · R₄=4kΩ · הזנה ±15V
💡
מבנה המעגל: A₁ — הכניסה + מוארקת, V₁ מוזן דרך R₁ אל הכניסה −, והמשוב R₂ מחובר בטור עם S₁: כאשר S₁ פתוח אין ל-A₁ משוב והוא פועל כמשווה (רוויה). A₂ — הכניסה + מחוברת ל-V₂, מוצא A₁ מוזן דרך R₃ אל הכניסה −, ובין הכניסה − למוצא R₄ והמפסק S₂ מחוברים במקביל: R₄ נמצא תמיד במסלול המשוב, וסגירת S₂ מקצרת אותו והופכת את A₂ לעוקב מתח.
סעיף א — המתח Vo1 (שני המפסקים פתוחים)

כאשר S₁ פתוח אין נתיב משוב ל-A₁, והמגבר פועל בחוג פתוח. כניסת המגבר אינה מושכת זרם, לכן אין נפילת מתח על R₁ והכניסה − שווה ל-V₁ = 0.5V, בעוד הכניסה + מוארקת (0V). מאחר ש-V− > V+, המוצא נצמד לרוויה השלילית:

Vo1 = -‎15 V
סעיף ב — המתחים Vo1 , Vo2 (סוגרים את S₁ בלבד)

סגירת S₁ מחזירה ל-A₁ משוב דרך R₂, והוא פועל כמגבר הופך:

Vo1 = - R₂R₁ · V₁ = - 62 × 0.5 = -‎1.5 V

S₂ פתוח, אבל R₄ מחובר במקביל למפסק ולכן נשאר במסלול המשוב של A₂: המגבר פועל בתחום הליניארי. הכניסה − שלו נמצאת על מתח הכניסה +, כלומר V₂ = 2V. נכתוב חוק זרמים בכניסה − של A₂:

Vo1 - V₂R₃ + Vo2 - V₂R₄ = 0
-1.5 - 22 + Vo2 - 24 = 0 → Vo2 = 2 + 4 × 3.52 = 2 + 7
Vo1 = -‎1.5 V ; Vo2 = +‎9 V
סעיף ג — מתח המוצא Vo2 (סוגרים את שני המפסקים)

סגירת S₂ מקצרת את R₄: מוצא A₂ מחובר ישירות אל הכניסה − שלו, והמגבר פועל כעוקב מתח של הכניסה +. הזרם שמגיע דרך R₃ נבלע במוצא המגבר ואינו משנה את מתח המוצא:

Vo2 = V− = V+ = V₂
Vo2 = +‎2 V
סעיף ד — הזרם Io1

Io1 הוא הזרם במוצא A₁ (שני המפסקים סגורים, Vo1 = -1.5V). הוא סכום הזרם המגיע דרך R₂ מהכניסה − (0V) והזרם המגיע דרך R₃ מכניסת A₂ (2V):

I(R₂) = 0 - Vo1R₂ = 0 - (-1.5)6000 = ‎0.25 mA
I(R₃) = V₂ - Vo1R₃ = 2 - (-1.5)2000 = ‎1.75 mA
Io1 = I(R₂) + I(R₃) = 0.25 + 1.75
Io1 = ‎2 mA (נכנס אל מוצא A₁)
🧪סימולציה בתוך הדף— שני מפסקים במסלולי המשוב
S₁ פתוח מנתק את המשוב של A₁ והוא קופץ לרוויה; S₂ סגור מקצר את R₄ ו-A₂ הופך לעוקב מתח. סגרו אותם בזה אחר זה וראו את ההבדל.▶ פתח את מעבדת מגברי השרת
🧪 בגרסת האתר יש כאן סימולציה אינטראקטיבית — שני מפסקים במסלולי המשוב.
שאלה 4 — משווה עם נגד תלוי-טמפרטורה (RTC) ו-LED
נתונים: VCC=6V · R₁=20kΩ · R₂=30kΩ · R₃=500Ω · R₄=600Ω · VLED=1.5V
💡
מבנה המעגל: מחלק המתח R₁–R₂ קובע מתח ייחוס קבוע בנקודה A (כניסה −). מחלק המתח RTC–R₄ קובע את מתח נקודה B (כניסה +) התלוי בטמפרטורה. ה-RTC הוא נגד שהתנגדותו יורדת עם עליית הטמפרטורה (לפי איור ב'). ה-LED נדלק כאשר מוצא המשווה גבוה, כלומר כאשר VB > VA.
סעיף א1 — המתח בנקודה A
VA = VCC · R₂R₁ + R₂ = 6 × 3020 + 30 = 6 × 0.6
VA = ‎3.6 V
סעיף א2 — תחום ערכי המתחים בנקודה B שבהם ה-LED דולק

ה-LED דולק כאשר VB > VA = 3.6V. הערך המרבי של VB מתקבל כאשר RTC שואף לאפס (VB → VCC = 6V). לכן התחום הוא:

‎3.6 V < VB < ‎6 V
סעיף ב — הטמפרטורה שבה נורית ה-LED תידלק

מעלים את הטמפרטורה של ה-RTC — התנגדותו יורדת ומתח B עולה. נמצא את ערך ה-RTC שבו VB מגיע לסף 3.6V:

VB = VCC · R₄RTC + R₄ = 3.6 → 6 × 600RTC + 600 = 3.6
RTC + 600 = 36003.6 = 1000 → RTC = ‎400 Ω = ‎0.4 kΩ

מגרף האופיין (איור ב'): הערך RTC = 0.4kΩ מתקבל בטמפרטורה של כ-20°C. מכיוון שההתנגדות ממשיכה לרדת בטמפרטורות גבוהות יותר, ה-LED יידלק בכל טמפרטורה מעל 20°C.

ה-LED נדלק כאשר RTC < ‎0.4 kΩ ⇒ T > ‎20 °C
סעיף ג — זרם המוצא Io כאשר ה-LED דולק

כשה-LED דולק המוצא גבוה ונצמד למתח ההזנה (≈ VCC = 6V). הזרם זורם דרך ה-LED (נפילת מתח 1.5V) ואז דרך R₃:

Io = VCC - VLEDR₃ = 6 - 1.5500 = 4.5500
Io = ‎9 mA
🧪סימולציה בתוך הדף— משווה עם נגד תלוי-טמפרטורה
העקומה הכחולה היא מתח נקודה B; ברגע שהיא חוצה את קו הייחוס האדום הנורית נדלקת.▶ פתח את מעבדת מגברי השרת — משווה
🧪 בגרסת האתר יש כאן סימולציה אינטראקטיבית — משווה עם נגד תלוי-טמפרטורה.
שאלה 5 — מגבר טרנזיסטור בפולט משותף (הטיית מחלק מתח)
נתונים: VCC=15V · R₁=200kΩ · R₂=380kΩ · RC=1kΩ · RL=2kΩ · β=hfe=50 · hie=1kΩ · VBE=0.7V
💡
מבנה המעגל: הטיה במחלק מתח R₁–R₂ אל הבסיס. הפולט מוארק ישירות (ללא RE). C₁ מקשר את מקור האות Vs לבסיס, ו-C₃ מקשר את הקולט (נקודה A) אל העומס RL. היגבי הקבלים זניחים בזרם חילופין.
סעיף א — נקודת העבודה (IC , VCE)

ממירים את מחלק המתח למקור תבנין (Thevenin) בבסיס, ומחשבים את זרם הבסיס:

Vth = VCC · R₂R₁ + R₂ = 15 × 380580 = ‎9.83 V
Rth = R₁∥R₂ = 200 × 380580 = ‎131 kΩ
IB = Vth - VBERth = 9.83 - 0.7131000 = ‎69.7 µA
IC = β · IB = 50 × ‎69.7 µA = ‎3.48 mA
VCE = VCC - ICRC = 15 - 3.48m × 1000 = ‎11.52 V
IC ≈ ‎3.48 mA ; VCE ≈ ‎11.52 V
סעיף ב — מעגל התמורה לאות חילופין (AC)

בזרם חילופין כל הקבלים מהווים קצר ו-VCC הוא אדמת חילופין. לכן: מקור האות Vs מגיע דרך C₁ אל הבסיס; המעבר בסיס-פולט מיוצג ב-hie = 1kΩ במקביל ל-R₁∥R₂; במוצא פועל מקור זרם תלוי β·ib בקולט; העומס הוא RC ∥ RL; והפולט מוארק. מכיוון ש-Vs מקור אידאלי, מתח המבוא על הבסיס שווה ל-Vs.

VsR1∥R2131 kΩhie1 kΩBibβ·ibRC1 kΩRL2 kΩC (A)VoE
סעיף ג — הגבר המתח AVs
RC ∥ RL = 1000 × 20001000 + 2000 = ‎666.7 Ω
AVs = VoVs = - β (RC ∥ RL)hie = - 50 × 666.71000
AVs ≈ -33.3 (מהפך)
סעיף ד — VA(t) ו-Vo(t): ערכים מרביים ומזעריים

נתון Vs(t) = 0.1·sin(100πt) V — משרעת 0.1V ותדר f = 100π/2π = ‎50 Hz. משרעת האות במוצא:

Vo(amp) = |AVs| · Vs(amp) = 33.3 × 0.1 = ‎3.33 V

VA(t) — מתח הקולט (נקודה A) הוא הרכיב הישר VCE = 11.52V ועליו רוכב אות החילופין ההפוך במשרעת 3.33V:

VA(max) = 11.52 + 3.33 = ‎14.85 V ; VA(min) = 11.52 - 3.33 = ‎8.19 V

Vo(t) — מעבר לקבל C₃ נחסם הרכיב הישר, ונותר אות חילופין הפוך בלבד סביב 0V:

Vo(max) = +‎3.33 V ; Vo(min) = -‎3.33 V
0.1−0.1Vs [V]t [ms]01020304014.8511.528.19VA [V]t [ms]0102030403.33−3.33Vo [V]t [ms]010203040
VA: 8.19V ↔ 14.85V ; Vo: -3.33V ↔ +3.33V
🧪סימולציה בתוך הדף— מגבר CE בהטיית מחלק מתח
שנו את R₂ וראו את נקודת העבודה נעה על קו העומס — עד לקיטום האות בקצוות.▶ פתח את מעבדת מגבר CE
🧪 בגרסת האתר יש כאן סימולציה אינטראקטיבית — מגבר CE בהטיית מחלק מתח.
💻 פרק שלישי — תכנות בשפת C# (שאלות 6–8)
שאלה 6 (C#) — מערכת בחירות: תרומות לשני מועמדים
המשימה: קליטת זוגות (מספר מועמד 1/2, סכום תרומה) עד לתנאי עצירה, והצגת סיכומים
💡
תנאי העצירה: הקליטה נעצרת כאשר סך התרומות לכלל המועמדים מגיע ל-1,000,000 ש"ח, או לאחר שנקלטו 1,000 תורמים — המוקדם מביניהם. אין צורך לבדוק את תקינות הקלט.
סעיף א — התוכנית הקולטת והמסכמת
double sum1 = 0, sum2 = 0; // סכום התרומות לכל מועמד double max1 = 0, max2 = 0; // התרומה הבודדת הגבוהה ביותר double total = 0; // סך כל התרומות int donors = 0; // מספר התורמים while (total < 1000000 && donors < 1000) { int candidate = int.Parse(Console.ReadLine()); double amount = double.Parse(Console.ReadLine()); donors++; total += amount; if (candidate == 1) { sum1 += amount; if (amount > max1) max1 = amount; } else { sum2 += amount; if (amount > max2) max2 = amount; } } Console.WriteLine("Candidate 1 sum: " + sum1); Console.WriteLine("Candidate 2 sum: " + sum2); Console.WriteLine("Donors: " + donors); Console.WriteLine("Max Donation for Candidate 1: " + max1); Console.WriteLine("Max Donation for Candidate 2: " + max2);
בדיקה על נתוני הדוגמה

עבור התרומות (1, 200000) (2, 300000) (1, 100000) (1, 100000) (2, 200000) (1, 150000):

Candidate 1 sum: 550000 Candidate 2 sum: 500000 Donors: 6 Max Donation for Candidate 1: 200000 Max Donation for Candidate 2: 300000
🧪סימולציה בתוך הדף— C# — מערכת בחירות
שש התרומות של דוגמת השאלון. הקליטה נעצרת כשסך התרומות מגיע למיליון: הקטינו תרומה וראו שהלולאה ממשיכה לקלוט.▶ פתח את פרק יסודות C#
🧪 בגרסת האתר יש כאן סימולציה אינטראקטיבית — C# — מערכת בחירות.
שאלה 7 (C#) — המחלקה Average
המחלקה: ממוצע חשבוני עם התכונות sum (סכום, ממשי) ו-count (כמות, שלם)
סעיף א — הבנאי ופעולת האחזור GetCount

הבנאי אינו מקבל פרמטרים ומאתחל את שתי התכונות לאפס; פעולת האחזור מחזירה את ערך התכונה count:

public Average() // בנאי ללא פרמטרים { this.sum = 0; this.count = 0; } public int GetCount() // פעולת אחזור לתכונה count { return this.count; }
סעיף ב — הפלט של קטע הקוד

הקוד מוסיף את איברי המערך {90, 100, -40, -60, -90} ומחשב את הממוצע. סכום האיברים הוא 0 ומספרם 5, לכן הממוצע 0:

double[] arr = { 90, 100, -40, -60, -90 }; // סכום = 0 Average a = new Average(); for (int i = 0; i < arr.Length; i++) a.AddNum(arr[i]); // count מגיע ל-5 double x = a.CalcAverage(); // 0 / 5 = 0 Console.WriteLine("Average is:" + x);
Average is:0
סעיף ג — שינוי AddNum לספירת ציונים בלבד (0–100)

משנים את AddNum כך שרק מספרים בתחום 0 עד 100 (כולל) ייכנסו לחישוב הממוצע; ממספר שמחוץ לתחום מתעלמים:

public void AddNum(double num) { if (num >= 0 && num <= 100) // ציון חוקי בלבד { this.sum = this.sum + num; this.count++; } }
🧪סימולציה בתוך הדף— C# — המחלקה Average
בערכי השאלון סכום חמשת האיברים הוא אפס, ולכן הממוצע אפס. עברו לפעולה של סעיף ג וראו שנשארים רק 90 ו-100.▶ פתח את פרק יסודות C#
🧪 בגרסת האתר יש כאן סימולציה אינטראקטיבית — C# — המחלקה Average.
שאלה 8 (C#) — הפעולה Sod
הפעולה: Sod מקבלת שני מערכי שלמים ומחזירה ערך בוליאני
סעיף א — מעקב אחרי הפעולה והפלט

Main קוראת ל-Sod עם a1 = {10, 15, 15, 5, 5} ו-a2 = {10, 10, 10, 10, 10}. האורכים שווים, ולכן התנאי הראשון אינו מתקיים והביצוע עובר אל ה-else. בעמודות התנאים רשום true כאשר התנאי מתקיים ו-false כאשר אינו מתקיים; כל שורה מציגה את הערכים בסוף אותו שלב:

arr1.Length != arr2.Lengthii < arr1.Lengthxyss != 0b
false0true
0true10100true
1true15105true
2true151010true
3true5105true
4true5100true
5false0true
0falsetrue

כאשר i = 5 תנאי הלולאה אינו מתקיים והלולאה מסתיימת. בסיום s = 0, ולכן התנאי s != 0 אינו מתקיים ו-b נשאר true. הפלט של הפעולה הראשית:

True
💡
ב-C# ערך בוליאני מודפס באות ראשונה גדולה: True / False.
סעיף ב — מה מבצעת Sod עבור שני מערכים באותו גודל

המשתנה s צובר את הסכום Σ(arr1[i] - arr2[i]) = Σarr1 - Σarr2. הפעולה מחזירה true כאשר s שווה לאפס, כלומר:

Sod מחזירה true אם ורק אם סכום איברי המערך הראשון שווה לסכום איברי המערך השני (והמערכים באותו אורך)
סעיף ג — הפעולה CountEven

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

public static int CountEven(int[] arr) { int count = 0; for (int i = 0; i < arr.Length; i++) if (arr[i] % 2 == 0) count++; return count; } // עבור { 10, 15, 18, 2, 17 } ⇒ 3
🧪סימולציה בתוך הדף— C# — הפעולה Sod
ערכי השאלון: s עולה ל-10 וחוזר לאפס, ולכן מוחזר True. הפעולה משווה סכומים ולא איברים: שנו איבר אחד והסכומים כבר לא יהיו שווים.▶ פתח את פרק יסודות C#
🧪 בגרסת האתר יש כאן סימולציה אינטראקטיבית — C# — הפעולה Sod.
🐍 פרק שלישי — תכנות בשפת Python (שאלות 9–11)
שאלה 9 (Python) — מערכת בחירות: תרומות לשני מועמדים
מקבילה לשאלה 6: אותה לוגיקה בדיוק, בתחביר Python
סעיף א — התוכנית הקולטת והמסכמת
sum1 = 0.0; sum2 = 0.0 # סכום התרומות לכל מועמד max1 = 0.0; max2 = 0.0 # התרומה הבודדת הגבוהה ביותר total = 0.0 # סך כל התרומות donors = 0 # מספר התורמים while total < 1000000 and donors < 1000: candidate = int(input()) amount = float(input()) donors += 1 total += amount if candidate == 1: sum1 += amount if amount > max1: max1 = amount else: sum2 += amount if amount > max2: max2 = amount print("Candidate 1 sum:", sum1) print("Candidate 2 sum:", sum2) print("Donors:", donors) print("Max Donation for Candidate 1:", max1) print("Max Donation for Candidate 2:", max2)
🧪סימולציה בתוך הדף— Python — מערכת בחירות
אותה לולאת while עם צוברים כמו בשאלה 6. הסכומים ממשיים, ולכן הם מודפסים עם נקודה ואפס בסוף (550000.0).▶ פתח את פרק יסודות Python
🧪 בגרסת האתר יש כאן סימולציה אינטראקטיבית — Python — מערכת בחירות.
שאלה 10 (Python) — הפעולה sod
הפעולה: sod מקבלת שתי רשימות של מספרים שלמים ומחזירה ערך בוליאני (מקבילה לשאלה 8)
סעיף א — מעקב אחרי הפעולה sod והפלט של main_10

main_10 קוראת ל-sod עם a1 = [10, 15, 15, 5, 5] ו-a2 = [10, 10, 10, 10, 10]. האורכים שווים, ולכן התנאי הראשון אינו מתקיים והביצוע עובר אל ה-else. הלולאה עוברת על איברי arr1 (המשתנה x), והמונה i מצביע על האיבר המתאים ב-arr2 (המשתנה y). בעמודות התנאים רשום True כאשר התנאי מתקיים ו-False כאשר אינו מתקיים; בעמודת הלולאה True פירושו שנותר איבר נוסף ב-arr1. כל שורה מציגה את הערכים בסוף אותו שלב:

len(arr1) != len(arr2)for x in arr1xysis != 0b
False00True
True101001True
True151052True
True1510103True
True51054True
True51005True
False05True
05FalseTrue

בסיום s = 0, ולכן התנאי s != 0 אינו מתקיים ו-b נשאר True. הפלט של הפעולה main_10:

True
סעיף ב — מה מבצעת sod עבור שתי רשימות באותו גודל

המשתנה s צובר את הסכום Σ(arr1[i] - arr2[i]) = Σarr1 - Σarr2. הפעולה מחזירה True כאשר s שווה לאפס, כלומר:

sod בודקת אם סכום איברי הרשימה הראשונה שווה לסכום איברי הרשימה השנייה, ומחזירה True אם כן ו-False אם לא
סעיף ג — הפעולה countEven

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

def countEven(lst): count = 0 for x in lst: if x % 2 == 0: count = count + 1 return count # עבור [10, 15, 18, 2, 17] ⇒ 3
🧪סימולציה בתוך הדף— Python — הפעולה sod
ערכי השאלון: s עולה ל-10 וחוזר לאפס, ולכן מוחזר True. הפעולה משווה סכומים ולא איברים: שנו איבר אחד והסכומים כבר לא יהיו שווים.▶ פתח את פרק יסודות Python
🧪 בגרסת האתר יש כאן סימולציה אינטראקטיבית — Python — הפעולה sod.
שאלה 11 (Python) — המחלקה Average
המחלקה: Average מייצגת ממוצע חשבוני; התכונות: sum (ממשי) ו-count (שלם). מקבילה לשאלה 7
סעיף א — הפעולה הבונה ופעולת ההדפסה display
class Average: def __init__(self): # פעולה בונה: אינה מקבלת דבר ומאפסת את התכונות self.sum = 0.0 self.count = 0 def display(self): # מציגה כפלט את ערכי שתי התכונות print("sum =", self.sum) print("count =", self.count)
סעיף ב — הפלט של קטע הקוד

סכום איברי הרשימה [90, 100, -40, -60, -90] הוא 0 ומספרם 5, לכן הממוצע הוא 0 / 5 = 0.0. הפקודה print מדפיסה את שני הארגומנטים עם רווח ביניהם:

arr = [90,100,-40,-60,-90] # סכום = 0 a = Average() for item in arr: a.addNum(item) # count מגיע ל-5 x = a.calcAverage() # 0 / 5 = 0.0 print("Average is", x)
Average is 0.0
💡
בפייתון החילוק / מחזיר תמיד מספר ממשי, ולכן מודפס 0.0 ולא 0.
סעיף ג — שינוי addNum כך שייכנסו לחישוב רק ציונים בין 0 ל-100 (כולל)
def addNum(self, num): if num >= 0 and num <= 100: # ציון חוקי בלבד self.sum = self.sum + num self.count = self.count + 1
🧪סימולציה בתוך הדף— Python — המחלקה Average
בערכי השאלון סכום חמשת האיברים הוא אפס, ולכן מודפס Average is 0.0. עברו לפעולה של סעיף ג וראו שנשארים רק 90 ו-100.▶ פתח את פרק יסודות Python
🧪 בגרסת האתר יש כאן סימולציה אינטראקטיבית — Python — המחלקה Average.
🏠 ♿