הצעה לפתרון מלא — אלקטרוניקה ומחשבים
בגרות · קיץ תשפ"א 2021 · שאלון 815381 · שאלות 1–8
✦ בנוי על ידי פהד גאנם ✦
💡על המסמך: הצעה לפתרון מלא לשאלון 815381 — אלקטרוניקה ומחשבים, קיץ תשפ"א 2021. בשאלון שמונה שאלות בשלושה פרקים, ועל הנבחן לענות על חמש שאלות — אחת לפחות מכל פרק. פרק ראשון (1–2) יסודות תורת החשמל; פרק שני (3–5) אלקטרוניקה תקבילית וספרתית; פרק שלישי (6–8) תכנות בשפת C#. בשאלון זה אין פרק Python נפרד. כאן פתורות כל השאלות, לנוחות הלימוד.
🔌 פרק ראשון — יסודות תורת החשמל
שאלה 1 — רשת נגדים עם מקור מתח יחיד
נתונים: R₁ = 2 Ω · R₂ = 2 Ω · R₃ = 4 Ω · R₄ = 4 Ω · R₅ = 6 Ω · I₂ = 2 A (דרך R₂)
💡מבנה המעגל: מהמקור E יוצא הזרם דרך R₁ אל הצומת העליון A. מ-A מתפצל המעגל לשני ענפים מקבילים המגיעים לצומת התחתון B: הענף האמצעי R₂, והענף הימני R₃ בטור עם R₄. מ-B חוזר הזרם דרך R₅ אל המקור. לכן R₂ מקביל לטור R₃+R₄, והצירוף כולו בטור עם R₁ ו-R₅.
סעיף א — הזרם דרך R₄
הזרם הנתון I₂ זורם דרך R₂, וממנו נחשב את המתח על הענף האמצעי. מתח זה שווה למתח על הענף המקביל R₃+R₄, ומתוכו הזרם בו:
I(R₄) = 0.5 A
סעיף ב — הזרם שמספק המקור E
זרם המקור הוא סכום הזרמים בשני הענפים המקבילים בין A ל-B:
I = 2.5 A
סעיף ג — ההתנגדות השקולה של המעגל
Req = 9.6 Ω
סעיף ד — מתח המקור E
E = 24 V
סעיף ה1 — ההספק על כל אחד מהנגדים
P₁=12.5W · P₂=8W · P₃=1W · P₄=1W · P₅=37.5W
סעיף ה2 — סכום ההספקים שווה להספק המקור
סכום ההספקים = 60 W = P(E) ✓
שאלה 2 — מעגל RC טורי בזרם חילופין עם מפסק מקצר
נתונים: Umax = 16.97 V · f = 10 kHz · המפסק S מקביל לקבל C
💡מבנה המעגל: המקור U מזין נגד R בטור עם קבל C. המפסק S מחובר במקביל לקבל: כשהוא סגור הוא מקצר את C ובמעגל נשאר רק R; כשהוא פתוח פועל מעגל RC טורי מלא.
סעיף א — המתח היעיל של המקור
Ueff = 12 V
סעיף ב — התנגדות הנגד R (המפסק סגור)
כשהמפסק S סגור הקבל מקוצר, ובמעגל פועל הנגד R בלבד עם הזרם Ieff = 0.5 A:
R = 24 Ω
סעיף ג — העכבה הכללית Z והיגב הקבל XC (המפסק פתוח)
כשהמפסק פתוח פועל המעגל הטורי המלא, והזרם יורד ל-Ieff = 480 mA. נחשב את העכבה, ומתוך Z² = R² + XC² את היגב הקבל:
Z = 25 Ω ; XC = 7 Ω
סעיף ד — קיבולו של הקבל C
C ≈ 2.27 µF
⚙️ פרק שני — אלקטרוניקה תקבילית וספרתית
שאלה 3 — מגבר טרנזיסטור במוצא משותף (CE) עם קו עומס
נתונים: VBE = 0.7V · hie = 4 kΩ · β = hfe = 100 · VCC = 12V · RL = 6 kΩ
💡קריאת קו העומס: בגרף המאפיינים קו העומס חותך את ציר הזרם ב-IC = 4 mA (כאשר VCE=0) ואת ציר המתח ב-VCE = 12V (כאשר IC=0). מכאן נגזרים RC ונקודת העבודה.
סעיף א — התנגדות הנגד RC
בנקודת החיתוך של קו העומס עם ציר הזרם מתקיים VCE=0, ולכן כל מתח האספקה נופל על RC:
RC = 3 kΩ
סעיף ב — הנגד RB עבור VCE = 9V
מקו העומס, עבור VCE=9V זרם הקולקטור הוא IC=(VCC−VCE)/RC=(12−9)/3000=1 mA (הנקודה שעל עקום IB=10 µA). מלולאת הבסיס:
RB = 1.13 MΩ
סעיף ג — דגם החילופין הזעיר של המעגל
בזרם חילופין הקבלים C₁ ו-C₂ מהווים קצר, ומקור המתח VCC מוארק. לכן: מתח המבוא Vi מגיע דרך C₁ אל הבסיס; המעבר בסיס-אמיטר מיוצג בהתנגדות hie = 4 kΩ בין הבסיס לאמיטר (המוארק); במוצא פועל מקור זרם תלוי β·ib בקולקטור; העומס בקולקטור הוא RC ∥ RL; והנגד RB מחובר בין הבסיס לאדמת החילופין. אין נגד אמיטר, ולכן האמיטר מוארק ישירות.
סעיף ד — הגבר המתח AV
AV = -50 (מהפך, |AV| = 50)
שאלה 4 — שני מגברי שרת: עוקב מתח ומגבר הפרש
נתונים: R₁ = 1kΩ · R₂ = 2kΩ · R₃ = 2kΩ · R₄ = 1kΩ · אספקה ±15V
💡מבנה המעגל: המגבר A₁ מחובר כעוקב מתח — כניסתו החיובית ל-V₁ וכניסתו השלילית מחוברת ישירות למוצאו, ולכן X = V₁. המגבר A₂ הוא מגבר הפרש: הכניסה השלילית שלו (צומת Y) מוזנת מ-X דרך R₁ עם נגד משוב R₂, והכניסה החיובית מוזנת מ-V₂ דרך מחלק המתח R₄–R₃.
סעיף א — תפקידו של המגבר A₁
מאחר שהמוצא של A₁ מוזן חזרה ישירות אל הכניסה השלילית, ההגבר שלו הוא 1, והוא משמש מגבר מפריד (עוקב מתח). תפקידו לבודד את מקור V₁ מעומס המעגל שאחריו — הוא מעביר את V₁ לצומת X ללא נפילת מתח וללא משיכת זרם ממקור V₁:
A₁ = עוקב מתח (מפריד), הגבר 1 ; VX = V₁
סעיף ב1 — המתח בצומת X ומתח המוצא Vo
נתון V₁ = 1V , V₂ = 6V. הכניסה החיובית של A₂ מקבלת ממחלק המתח R₄–R₃:
VX = 1 V ; Vo = 10 V
סעיף ב2 — הזרם דרך R₁ וכיוונו
בכניסות של A₂ אין הפרש מתח (קצר וירטואלי), ולכן VY = V+ = 4V. הזרם דרך R₁:
הסימן השלילי מציין שהזרם זורם מהצומת Y (4V) אל הצומת X (1V), בגודל 3mA.
I(R₁) = 3 mA (מ-Y ל-X)
שאלה 5 — מסנן מעביר-גבוהים (HP) בתגובה לאות דמוי-מדרגה
נתונים: C = 0.1 µF (בטור) · R = 10 kΩ (המוצא Vo על R) · אות מבוא רב-מפלסי
סעיף א — סוג המסנן
הקבל מחובר בטור בין המבוא למוצא, והמוצא נמדד על הנגד המוארק. במבנה זה תדרים נמוכים (רכיב ה-DC) נחסמים על-ידי הקבל ורק שינויים מהירים עוברים — זהו מסנן מעביר-גבוהים (HP), המתפקד כמעגל גזירה (CR).
מסנן מעביר-גבוהים (HP) — מעגל גזירה CR
סעיף ב — צורת אות המוצא Vo(t)
קבוע הזמן: τ = R·C = 10000 × 0.1×10-6 = 1 ms. במסנן HP המוצא "קופץ" בכל מדרגת מבוא בגובה שווה לקפיצת המבוא, ואז דועך מעריכית לעבר 0 עם קבוע הזמן τ. אות המבוא: 0V עד t=1ms, קפיצה ל-+10V בקטע 1–2ms, ואז ל-−8V מ-t=2ms והלאה.
בסרטוט: פולס חיובי חד המתחיל ב-+10V ב-t=1ms ודועך ל-+3.68V עד t=2ms; לאחריו קפיצה שלילית חדה ל-−14.32V ב-t=2ms הדועכת לעבר 0.
סעיף ג — מתח המוצא ב-t = 3 ms
t=3ms הוא 1ms (קבוע זמן אחד) לאחר הקפיצה השלילית שב-t=2ms:
Vo(3ms) ≈ -5.27 V
סעיף ד — הזמן t שבו Vo = -8V
מדובר בקטע הדעיכה שלאחר t=2ms (המתח עולה מ-−14.32V לעבר 0):
t ≈ 2.58 ms
💻 פרק שלישי — תכנות בשפת C# (שאלות 6–8)
שאלה 6 (C#) — המחלקה ArithmeticSeries (סדרה חשבונית)
המחלקה: a1 = איבר ראשון · d = הפרש הסדרה · An(n) מחזירה את האיבר ה-n : a1 + (n-1)·d
סעיף א — הפלט של קטע הקוד
seq1 נוצר עם a1=3 , d=2. הלולאה מדפיסה את שלושת האיברים הראשונים וסוכמת אותם, ואז נוצר seq2 עם a1 השווה לסכום ו-d זהה:
seq1 = (a1=3, d=2)
An(1)=3+0·2=3 · An(2)=3+1·2=5 · An(3)=3+2·2=7
sum3 = 3+5+7 = 15
seq2 = (a1=15, d=2) → An(2) = 15 + 1·2 = 17
3
5
7
sum3=15
17
סעיף ב — ערכי התכונות של seq1 ו-seq2 בסיום
הלולאה אינה משנה את תכונות seq1, ו-seq2 נוצר מ-sum3 ומ-d של seq1:
seq1: a1 = 3 , d = 2
seq2: a1 = 15 , d = 2
סעיף ג — קטע קוד: איברים 7 עד 100 של סדרה (a1=10, d=5)
ArithmeticSeries seq = new ArithmeticSeries(10, 5);
for (int i = 7; i <= 100; i++)
Console.WriteLine(seq.An(i));
סעיף ד — האם ניתן לשנות את d לאחר יצירת העצם?
💡התשובה: לא ניתן. התכונה d מוגדרת private, ובמחלקה קיימת רק פעולת קריאה GetD() — אין פעולת קביעה (setter) עבור d. בניגוד ל-a1, שעבורו קיימת הפעולה SetA1, אין דרך לשנות את ערך d מבחוץ. כדי לאפשר זאת יש להוסיף למחלקה פעולה:
public void SetD(int d) // תוספת נדרשת למחלקה
{
this.d = d;
}
שאלה 7 (C#) — ספירת סיביות דלוקות במספר
הקוד: קולט מספר שלם בין 0 ל-255 וסופר במעבר על 8 סיביות
סעיף א — טבלת מעקב ופלט עבור הקלט 25
בכל סיבוב מוסיפים ל-count את הסיבית הימנית ביותר (num & 1) ואז מזיזים את num סיבית ימינה (num >> 1). עבור 25 = 11001₂:
| i | num (start) | num & 1 | count |
| 0 | 25 | 1 | 1 |
| 1 | 12 | 0 | 1 |
| 2 | 6 | 0 | 1 |
| 3 | 3 | 1 | 2 |
| 4 | 1 | 1 | 3 |
| 5 | 0 | 0 | 3 |
| 6 | 0 | 0 | 3 |
| 7 | 0 | 0 | 3 |
result = 3
סעיף ב — מה מבצע קטע הקוד
הקוד סופר כמה סיביות דלוקות (בעלות ערך 1) יש בייצוג הבינארי של המספר הנקלט — כלומר מספר האחדות בבסיס 2. עבור 25 (11001₂) התוצאה 3.
סעיף ג — התאמת התוכנית לטווח 0 עד 1023
המספר 1023 מיוצג ב-10 סיביות (1023 = 1111111111₂), ולכן יש להגדיל את מספר הסיבובים מ-8 ל-10. משנים שורה אחת בלבד — תנאי הלולאה בשורה 4:
for (int i = 0; i < 10; i++) // שורה 4: 8 הוחלף ב-10
שאלה 8 (C#) — מכונה אוטומטית למכירת סוללות
נתונים: מחיר סוללה 2.5 ₪ · כל לקוח קונה 1–10 סוללות · המכירה נעצרת כשנותרות פחות מ-10 סוללות
💡אלגוריתם: קולטים את כמות הסוללות ההתחלתית. כל עוד יש במכונה לפחות 10 סוללות — קולטים מלקוח את הכמות המבוקשת, מציגים לו את המחיר לתשלום (כמות × 2.5), מפחיתים מהמלאי, וסופרים את הלקוח ואת התקבול. בסיום מציגים את מספר הלקוחות ואת סך התקבול. לפי ההערה — מניחים שהקלט תקין.
התוכנית הראשית
const double PRICE = 2.5; // מחיר סוללה בש"ח
Console.WriteLine("Enter number of batteries in the machine:");
int batteries = int.Parse(Console.ReadLine());
int customers = 0; // מונה לקוחות
double total = 0; // סך התקבול
while (batteries >= 10) // כל עוד נותרו לפחות 10 סוללות
{
Console.WriteLine("Enter quantity (1-10):");
int qty = int.Parse(Console.ReadLine());
double toPay = qty * PRICE;
Console.WriteLine("Please pay: " + toPay + " shekels");
batteries = batteries - qty; // עדכון המלאי
customers = customers + 1; // ספירת הלקוח
total = total + toPay; // צבירת התקבול
}
Console.WriteLine("Total customers: " + customers);
Console.WriteLine("Total sum: " + total + " shekels");
דוגמה: מלאי התחלתי 25 סוללות; לקוח א' קונה 10 (משלם 25 ₪, נותרו 15), לקוח ב' קונה 10 (משלם 25 ₪, נותרו 5). כעת 5 < 10 והלולאה נעצרת. הפלט: 2 לקוחות, סך תקבול 50 ₪.
Total customers: 2
Total sum: 50 shekels