הצעה לפתרון מלא — אלקטרוניקה ומחשבים
בגרות · קיץ תשפ"א 2021 · שאלון 815381 · שאלות 1–8
✦ בנוי על ידי פהד גאנם ✦
💡
על המסמך: הצעה לפתרון מלא לשאלון 815381 — אלקטרוניקה ומחשבים, קיץ תשפ"א 2021. בשאלון שמונה שאלות בשלושה פרקים, ועל הנבחן לענות על חמש שאלות — אחת לפחות מכל פרק. פרק ראשון (1–2) תורת החשמל; פרק שני (3–5) אלקטרוניקה תקבילית וספרתית; פרק שלישי (6–8) תכנות בשפת C#. במועד זה כל שאלות התכנות בשפת C# (אין פרק Python). כאן פתורות כל השאלות, לנוחות הלימוד.
🔌 פרק ראשון — תורת החשמל
שאלה 1 — נגד בודד במקביל לענף טורי
נתונים: E = 30V · R₁ = 6 kΩ · R₃ = 4.8 kΩ · U(R₂) = 12.6V · I(R₂) = 3 mA
💡
מבנה המעגל: המקור E מזין שני ענפים מקבילים — הנגד R₁ לבדו, ומולו ענף טורי של R₂–R₃–R₄. שני הענפים מחוברים ישירות אל הדקי המקור, ולכן המתח על כל אחד מהם הוא 30V. בענף הטורי הזרם משותף לשלושת הנגדים ושווה לזרם הנתון דרך R₂ — 3 mA.
סעיף א — המתח על R₃

בענף טורי הזרם זהה בכל הרכיבים, ולכן הזרם דרך R₃ שווה לזרם דרך R₂:

U(R₃) = I · R₃ = 0.003 × 4800
U(R₃) = 14.4 V
סעיף ב — המתח על R₄

מתח המקור מתחלק בין שלושת הנגדים הטוריים, וסכום המתחים עליהם שווה ל-30V:

U(R₄) = E - U(R₂) - U(R₃) = 30 - 12.6 - 14.4
U(R₄) = 3 V
סעיף ג — ההתנגדות השקולה RT

תחילה נמצא את ערכי R₂ ו-R₄ מחוק אוהם, ואת ההתנגדות הכוללת של הענף הטורי:

R₂ = U(R₂)I = 12.60.003 = 4.2 kΩ ; R₄ = 30.003 = 1 kΩ
Rענף = R₂ + R₃ + R₄ = 4.2 + 4.8 + 1 = 10 kΩ
RT = R₁ · RענףR₁ + Rענף = 6 × 106 + 10
RT = 3.75 kΩ
סעיף ד — ההספק המתפתח בנגד R₁

הנגד R₁ מחובר ישירות אל הדקי המקור, ולכן המתח עליו הוא 30V. ההספק שלו:

P(R₁) = R₁ = 30²6000 = 9006000
P(R₁) = 0.15 W = 150 mW
שאלה 2 — מעגל RC טורי בזרם חילופין
נתונים: R = 80 Ω · XC = 150 Ω · u(t) = 17√2·sin(8π·10³t) [V]
סעיף א — זמן המחזור של מתח המקור

מתוך ביטוי המתח נזהה את התדר הזוויתי ω = 8π·10³, וממנו את התדר וזמן המחזור:

f = ω = 8π·10³ = 4000 Hz = 4 kHz
T = 1f = 14000
T = 250 µs = 0.25 ms
סעיף ב — קיבול הקבל C

מהיגב הקבל הנתון נחלץ את הקיבול:

C = 12π f XC = 12π × 4000 × 150
C ≈ 265 nF (0.265 µF)
סעיף ג — עכבת המעגל Z

בחיבור טורי של נגד וקבל העכבה היא הסכום הווקטורי של ההתנגדות וההיגב:

Z = √R² + XC² = √80² + 150² = √28900
Z = 170 Ω
סעיף ד — המתח היעיל על הנגד R

משרעת המקור היא 17√2, ולכן מתחו היעיל הוא U = 17V. נחשב את הזרם היעיל ומתוכו את המתח על הנגד:

I = UZ = 17170 = 0.1 A = 100 mA
UR = I · R = 0.1 × 80 = 8 V

בדיקה: √(UR² + UC²) = √(8² + 15²) = 17V = U ✓ (כאשר UC = I·XC = 15V).

UR = 8 V
⚙️ פרק שני — אלקטרוניקה תקבילית וספרתית
שאלה 3 — מגבר טרנזיסטור במוצא משותף (CE)
נתונים: VBE=0.7V · hie=1kΩ · RL=2kΩ · נקודת עבודה מהגרף: VCE=6V · IC=2mA · Ib=40µA
💡
קריאת הגרף: נקודת העבודה מסומנת ב-VCE=6V , IC=2mA על העקום Ib=40µA. קו העבודה (DC) חותך את ציר ה-VCE ב-10V ואת ציר ה-IC ב-5mA. האמיטר מוארק ישירות (אין נגד אמיטר RE).
סעיף א — מקדם ההגברה β

מקדם ההגברה הוא היחס בין זרם הקולקטור לזרם הבסיס בנקודת העבודה:

β = ICIb = 2 mA40 µA
β = 50
סעיף ב — מתח האספקה VCC וההתנגדות RC

קו העבודה מקיים VCE = VCC − IC·RC. חיתוך הקו עם ציר ה-VCE (כאשר IC=0) נותן את VCC, וחיתוכו עם ציר ה-IC (כאשר VCE=0) נותן את RC:

VCC = 10 V (חיתוך ציר ה-VCE)
RC = VCCIC(sat) = 105 mA
VCC = 10 V ; RC = 2 kΩ
סעיף ג — ההתנגדות RB

מלולאת הבסיס: VCC = Ib·RB + VBE, ומכאן:

RB = VCC - VBEIb = 10 - 0.740 µA = 9.340×10-6
RB = 232.5 kΩ
סעיף ד — דגם החילופין והגבר המתח AV

בזרם חילופין כל הקבלים מהווים קצר: מתח המבוא מגיע לבסיס, המעבר בסיס-אמיטר מיוצג ב-hie=1kΩ, במוצא פועל מקור זרם תלוי β·ib, והעומס הוא RC ∥ RL (האמיטר מוארק). הגבר המתח:

RC ∥ RL = 2000 × 20002000 + 2000 = 1000 Ω
AV = VoVi = - β (RC ∥ RL)hie = - 50 × 10001000
AV = -50 (מהפך, |AV| = 50)
שאלה 4 — שלושה מגברי שרת: שני מגברים ומשווה
נתונים: V₁=1V · V₂=2V · A₁: R₁=1kΩ,R₂=1kΩ · A₂: R₃=1kΩ,R₄=2kΩ · A₃: R₅=1kΩ,R₆=2kΩ,R₇=2kΩ,R₈=4kΩ · אספקה ±12V
💡
מבנה המעגל: A₁ הוא מגבר לא-מהפך (V₁ בכניסה החיובית, R₁ אל האדמה ו-R₂ במשוב). A₂ הוא מגבר מהפך (V₂ דרך R₃ אל הכניסה השלילית, R₄ במשוב, הכניסה החיובית מוארקת). A₃ הוא מגבר עם משוב R₇: כניסתו השלילית היא צומת B (דרך R₅ מ-Vo₂), וכניסתו החיובית ניזונה ממחלק המתח R₆–R₈ המחובר ל-Vo₁.
סעיף א — מתחי המוצא Vo₁ ו-Vo₂

A₁ במבנה לא-מהפך, ו-A₂ במבנה מהפך:

Vo1 = V₁(1 + R₂R₁) = 1 × (1 + 11) = 2 V
Vo2 = - V₂ · R₄R₃ = - 2 × 21 = -4 V
Vo1 = +2 V ; Vo2 = -4 V
סעיף ב — הזרם דרך R₅ וכיוונו

הכניסה החיובית של A₃ נקבעת ממחלק המתח R₆–R₈ (אין זרם לכניסת המגבר). בשל המשוב השלילי, מתח הכניסה השלילית (צומת B) שווה למתח החיובית:

V+ = VB = Vo1 · R₈R₆ + R₈ = 2 × 42 + 4 = 1.333 V
I(R₅) = Vo2 - VBR₅ = -4 - 1.3331000 = -5.33 mA

הסימן השלילי מציין שכיוון הזרם הוא מצומת B אל צומת A (מ-B ל-A), בגודל 5.33mA.

I(R₅) ≈ 5.33 mA (בכיוון מ-B ל-A)
סעיף ג — מתח המוצא Vo

נכתוב את חוק הזרמים בצומת B (הכניסה השלילית), עם VB=1.333V:

Vo2 - VBR₅ + Vo - VBR₇ = 0
-4 - 1.3331 + Vo - 1.3332 = 0 → Vo - 1.333 = 10.667
Vo = +12 V (המוצא נצמד למתח האספקה החיובי)
סעיף ד — ניתוק הנגד R₇

ניתוק R₇ מבטל את המשוב, ו-A₃ הופך למשווה (Comparator). ללא R₇ אין זרם דרך R₅, ולכן VB = Vo2 = -4V, בעוד הכניסה החיובית נשארת 1.333V. מאחר ש-V+ = 1.333 > V = -4, המוצא נצמד למתח האספקה החיובי:

Vo = +12 V
שאלה 5 — מסנן RC מעביר-נמוכים עם מבוא פולס
נתונים: R = 4 kΩ · C = 2 µF · מבוא: פולס 5V בקטע 0–10 ms, ואחריו 0V
💡
מבנה המעגל: הנגד R בטור והקבל C אל האדמה — רשת מעבירת-נמוכים (משלב). מתח המוצא Vo נמדד על הקבל. בזמן הפולס הקבל נטען לכיוון 5V, ולאחר סיום הפולס (t=10ms) המבוא מתאפס והקבל נפרק לכיוון 0V.
סעיף א — סרטוט מתח המוצא Vo(t)

קבוע הזמן של הרשת:

τ = R · C = 4000 × 2×10-6 = 8 ms

בקטע 0 < t < 10ms Vo עולה מעריכית מ-0 לכיוון 5V לפי Vo=5(1−e−t/τ); ברגע t=10ms הוא מגיע לשיאו (≈3.57V). מ-t=10ms ואילך המבוא 0, והקבל נפרק מעריכית מ-3.57V לכיוון 0 לפי Vo=3.57·e−(t−10ms)/τ.

סעיף ב — הערך המרבי של Vo

הערך המרבי מתקבל בסוף הפולס, ב-t=10ms:

Vo(max) = 5(1 - e-10/8) = 5(1 - e-1.25) = 5 × 0.7135
Vo(max) ≈ 3.57 V
סעיף ג — מתח המוצא ב-t = 15 ms

ב-t=15ms הקבל כבר נפרק במשך 5ms מהערך 3.57V:

Vo(15ms) = 3.57 · e-(15-10)/8 = 3.57 · e-0.625 = 3.57 × 0.5353
Vo(15ms) ≈ 1.91 V
סעיף ד — הכפלת הנגד R

אם R גדל פי שניים, קבוע הזמן מוכפל ל-τ=16ms, והטעינה איטית יותר. לכן בתום אותו פולס (10ms) הקבל מספיק להיטען פחות:

Vo(max)' = 5(1 - e-10/16) = 5(1 - e-0.625) = 5 × 0.4647 ≈ 2.32 V

מאחר ש-2.32V < 3.57V, הערך המרבי של מתח המוצא יקטן.

הערך המרבי יקטן (מ-3.57V ל-≈2.32V)
💻 פרק שלישי — תכנות בשפת C# (שאלות 6–8)
שאלה 6 (C#) — ספירת שכיחויות במערך מונים
התוכנית: קולטת מספרים ומונה במערך arr[10] כמה פעמים נקלט כל ערך 0–9

המערך arr מאותחל לאפסים. כל עוד המספר הנקלט בטווח 0 ≤ num < 10, מתבצע arr[num]++ — ספירה של הופעת הערך num. הקליטה נעצרת כשנקלט מספר מחוץ לטווח. בסוף מודפסת כל תא ומספר ההופעות שלו.

סעיף א — הפלט עבור הקלט הנתון

הקלט (משמאל לימין): 2 3 4 2 3 4 8 8 2 3 4 0 10. נספור את ההופעות עד שנקלט 10 (מחוץ לטווח — עוצר):

0 → 1 2 → 3 3 → 3 4 → 3 8 → 2 (שאר הערכים 1,5,6,7,9 לא נקלטו — 0 הופעות) המספר 10 עוצר את הלולאה (10 < 10 שקר) ואינו נספר
0--1 1--0 2--3 3--3 4--3 5--0 6--0 7--0 8--2 9--0
סעיף ב — שינוי התנאי ל-num<8

כעת הלולאה נעצרת ברגע שנקלט מספר גדול-או-שווה ל-8. עם אותו קלט, כשנקלט המספר הראשון 8 (הופעה שביעית) הלולאה נעצרת מיד — ולכן נספרים רק ששת המספרים שלפניו: 2 3 4 2 3 4.

0--0 1--0 2--2 3--2 4--2 5--0 6--0 7--0 8--0 9--0

הסבר: הערכים 8, 8, 2, 3, 4, 0 שאחרי המספר 8 הראשון אינם נקלטים כלל, כי המספר 8 (הגדול מ-7) עוצר את הלולאה עוד לפני עדכון המערך.

סעיף ג — הוספת מונה לכמות המספרים שנקלטו

מוסיפים משתנה מונה count, מגדילים אותו בכל סיבוב של הלולאה, ומדפיסים אותו לאחר קליטת המספר האחרון:

int count = 0; // מונה חדש Console.WriteLine("Enter Number:"); num = int.Parse(Console.ReadLine()); while (num >= 0 && num < 10) { arr[num] = arr[num] + 1; count++; // ספירת מספר שנקלט Console.WriteLine("Enter Number:"); num = int.Parse(Console.ReadLine()); } Console.WriteLine("Total numbers: " + count);
שאלה 7 (C#) — המחלקה Time
המחלקה: Time עם התכונות Hour ו-Minute · הפעולה DoSometing מוסיפה דקות ומנרמלת לשעות ולדקות
סעיף א — הפלט של קטע הקוד
Time t1 = new Time(12, 59); // תקין → Hour=12, Minute=59 Console.WriteLine(t1.print()); // "12:59" t1.DoSometing(90); // t = 12·60 + 59 + 90 = 869 // Hour = 869/60 = 14 ; Minute = 869%60 = 29 Console.WriteLine(t1.print()); // "14:29"
12:59 14:29
סעיף ב — הוספת השורות עם Time(17,70)

הערך 70 אינו חוקי (70 ≥ 60), ולכן הבנאי מפעיל את ה-else ומאתחל את השעה ל-0:0. הוספת 90 דקות נותנת:

Time t2 = new Time(17, 70); // לא תקין → Hour=0, Minute=0 t2.DoSometing(90); // t = 0·60 + 0 + 90 = 90 // Hour = 90/60 = 1 ; Minute = 90%60 = 30 Console.WriteLine(t2.print()); // "1:30"
1:30
סעיף ג — שינוי הפעולה ל-− minute והרצת סעיף א

כעת DoSometing מחסירה דקות: t = Hour·60 + Minute − minute. נריץ שוב את קטע הקוד מסעיף א:

Time t1 = new Time(12, 59); // Hour=12, Minute=59 Console.WriteLine(t1.print()); // "12:59" t1.DoSometing(90); // t = 12·60 + 59 - 90 = 689 // Hour = 689/60 = 11 ; Minute = 689%60 = 29 Console.WriteLine(t1.print()); // "11:29"
12:59 11:29
שאלה 8 (C#) — אחוז תוצאות חיוביות בבדיקות קורונה
המשימה: קליטת מספר הבדיקות ומספר התוצאות החיוביות מכל יישוב, עד שנקלט מספר שלילי, והצגת אחוז התוצאות החיוביות מכלל הבדיקות בישראל ביום אחד

התוכנית צוברת את סך הבדיקות ואת סך התוצאות החיוביות. מספר היישובים אינו ידוע מראש — הקליטה נמשכת כל עוד הנתונים תקינים, ונעצרת כאשר נקלט מספר שלילי (בדוגמה: בדיקות 0 ותוצאות ‎−1). בסיום מחושב האחוז מתוך כלל הבדיקות.

התוכנית
int totalTests = 0; int totalPositive = 0; Console.Write("Tests: "); int tests = int.Parse(Console.ReadLine()); Console.Write("Positive: "); int positive = int.Parse(Console.ReadLine()); while (tests >= 0 && positive >= 0) { totalTests = totalTests + tests; totalPositive = totalPositive + positive; Console.Write("Tests: "); tests = int.Parse(Console.ReadLine()); Console.Write("Positive: "); positive = int.Parse(Console.ReadLine()); } if (totalTests > 0) { double percent = (double)totalPositive / totalTests * 100; Console.WriteLine("Positive percentage: " + percent + "%"); } else Console.WriteLine("No tests were performed.");
הרצה על הדוגמה שבשאלון

קלט: (100,10) , (500,15) , (300,15) , (100,10) , ולסיום (0,‎−1). סך הבדיקות 100+500+300+100 = 1000, סך התוצאות החיוביות 10+15+15+10 = 50:

אחוז = 501000 × 100 = 5%
Positive percentage: 5%
🏠