על המסמך: הצעה לפתרון מלא לשאלון 815381 — אלקטרוניקה ומחשבים, קיץ תשפ"א 2021. בשאלון שמונה שאלות בשלושה פרקים, ועל הנבחן לענות על חמש שאלות — אחת לפחות מכל פרק. פרק ראשון (1–2) יסודות תורת החשמל; פרק שני (3–5) אלקטרוניקה תקבילית וספרתית; פרק שלישי (6–8) תכנות בשפת C#. בשאלון זה אין פרק Python נפרד. כאן פתורות כל השאלות, לנוחות הלימוד.
מבנה המעגל: מהמקור E יוצא הזרם דרך R₁ אל הצומת העליון A. מ-A מתפצל המעגל לשני ענפים מקבילים המגיעים לצומת התחתון B: הענף האמצעי R₂, והענף הימני R₃ בטור עם R₄. מ-B חוזר הזרם דרך R₅ אל המקור. לכן R₂ מקביל לטור R₃+R₄, והצירוף כולו בטור עם R₁ ו-R₅.
סעיף א — הזרם דרך R₄
הזרם הנתון I₂ זורם דרך R₂, וממנו נחשב את המתח על הענף האמצעי. מתח זה שווה למתח על הענף המקביל R₃+R₄, ומתוכו הזרם בו:
UAB = I₂ · R₂ = 2 × 2 = 4 V
I(R₄) = I(R₃) = UABR₃ + R₄ = 44 + 4 = 0.5 A
I(R₄) = 0.5 A
סעיף ב — הזרם שמספק המקור E
זרם המקור הוא סכום הזרמים בשני הענפים המקבילים בין A ל-B:
קריאת קו העומס: בגרף המאפיינים קו העומס חותך את ציר הזרם ב-IC = 4 mA (כאשר VCE=0) ואת ציר המתח ב-VCE = 12V (כאשר IC=0). מכאן נגזרים RC ונקודת העבודה.
סעיף א — התנגדות הנגד RC
בנקודת החיתוך של קו העומס עם ציר הזרם מתקיים VCE=0, ולכן כל מתח האספקה נופל על RC:
RC = VCCIC(sat) = 124 × 10-3 = 3 kΩ
RC = 3 kΩ
סעיף ב — הנגד RB עבור VCE = 9V
מקו העומס, עבור VCE=9V זרם הקולקטור הוא IC=(VCC−VCE)/RC=(12−9)/3000=1 mA (הנקודה שעל עקום IB=10 µA). מלולאת הבסיס:
IB = ICβ = 1 mA100 = 10 µA
RB = VCC - VBEIB = 12 - 0.710 × 10-6 = 1.13 MΩ
RB = 1.13 MΩ
סעיף ג — דגם החילופין הזעיר של המעגל
בזרם חילופין הקבלים C₁ ו-C₂ מהווים קצר, ומקור המתח VCC מוארק. לכן: מתח המבוא Vi מגיע דרך C₁ אל הבסיס; המעבר בסיס-אמיטר מיוצג בהתנגדות hie = 4 kΩ בין הבסיס לאמיטר (המוארק); במוצא פועל מקור זרם תלוי β·ib בקולקטור; העומס בקולקטור הוא RC ∥ RL; והנגד RB מחובר בין הבסיס לאדמת החילופין. אין נגד אמיטר, ולכן האמיטר מוארק ישירות.
סעיף ד — הגבר המתח AV
RC ∥ RL = 3000 × 60003000 + 6000 = 2000 Ω
AV = VoVi = - β (RC ∥ RL)hie = - 100 × 20004000
AV = -50 (מהפך, |AV| = 50)
🧪סימולציה בתוך הדף— מגבר CE מקו העומס
קו העומס נקרא מן הגרף: החיתוך עם ציר הזרם נותן את R_C, ונקודת העבודה את R_B.▶ פתח את מעבדת מגבר CE
🧪 בגרסת האתר יש כאן סימולציה אינטראקטיבית — מגבר CE מקו העומס.
מבנה המעגל: המגבר A₁ מחובר כעוקב מתח — כניסתו החיובית ל-V₁ וכניסתו השלילית מחוברת ישירות למוצאו, ולכן X = V₁. המגבר A₂ הוא מגבר הפרש: הכניסה השלילית שלו (צומת Y) מוזנת מ-X דרך R₁ עם נגד משוב R₂, והכניסה החיובית מוזנת מ-V₂ דרך מחלק המתח R₄–R₃.
סעיף א — תפקידו של המגבר A₁
מאחר שהמוצא של A₁ מוזן חזרה ישירות אל הכניסה השלילית, ההגבר שלו הוא 1, והוא משמש מגבר מפריד (עוקב מתח). תפקידו לבודד את מקור V₁ מעומס המעגל שאחריו — הוא מעביר את V₁ לצומת X ללא נפילת מתח וללא משיכת זרם ממקור V₁:
VX = V₁ = 1 V
A₁ = עוקב מתח (מפריד), הגבר 1 ; VX = V₁
סעיף ב1 — המתח בצומת X ומתח המוצא Vo
נתון V₁ = 1V , V₂ = 6V. הכניסה החיובית של A₂ מקבלת ממחלק המתח R₄–R₃:
VX = V₁ = 1 V
V+ = V₂ · R₃R₃ + R₄ = 6 × 22 + 1 = 4 V
Vo = V+(1 + R₂R₁) - VX·R₂R₁ = 4 × 3 - 1 × 2 = 10 V
VX = 1 V ; Vo = 10 V
סעיף ב2 — הזרם דרך R₁ וכיוונו
בכניסות של A₂ אין הפרש מתח (קצר וירטואלי), ולכן VY = V+ = 4V. הזרם דרך R₁:
I(R₁) = VX - VYR₁ = 1 - 41000 = -3 mA
הסימן השלילי מציין שהזרם זורם מהצומת Y (4V) אל הצומת X (1V), בגודל 3mA.
🧪 בגרסת האתר יש כאן סימולציה אינטראקטיבית — עוקב מתח ומגבר הפרש.
שאלה 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 והלאה.
t = 1 ms : ΔVin = +10V → Voקופץ ל-+10V, דועך: Vo(t) = 10·e-(t-1ms)/τ
Vo(2ms-) = 10·e-1 = 3.68 V
t = 2 ms : ΔVin = -8 -10 = -18V → Voקופץ ל- 3.68 - 18 = -14.32 V
ואז דועך לעבר 0 : Vo(t) = -14.32·e-(t-2ms)/τ
בסרטוט: פולס חיובי חד המתחיל ב-+10V ב-t=1ms ודועך ל-+3.68V עד t=2ms; לאחריו קפיצה שלילית חדה ל-−14.32V ב-t=2ms הדועכת לעבר 0.
סעיף ג — מתח המוצא ב-t = 3 ms
t=3ms הוא 1ms (קבוע זמן אחד) לאחר הקפיצה השלילית שב-t=2ms:
הלולאה אינה משנה את תכונות 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 מבחוץ. כדי לאפשר זאת יש להוסיף למחלקה פעולה:
🧪 בגרסת האתר יש כאן סימולציה אינטראקטיבית — C# — המחלקה ArithmeticSeries.
שאלה 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
🧪סימולציה בתוך הדף—C# — ספירת סיביות דלוקות
גררו את המספר וראו את שמונה הסיביות; המונה סופר את הריבועים הירוקים.▶ פתח את פרק יסודות C#
🧪 בגרסת האתר יש כאן סימולציה אינטראקטיבית — C# — ספירת סיביות דלוקות.
שאלה 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
🧪סימולציה בתוך הדף—C# — מכונה למכירת סוללות
המכירה נעצרת כשנותרות פחות מעשר סוללות — נסו מלאי אחר וראו כמה לקוחות מספיקים.▶ פתח את פרק יסודות C#
🧪 בגרסת האתר יש כאן סימולציה אינטראקטיבית — C# — מכונה למכירת סוללות.