הצעה לפתרון מלא — אלקטרוניקה ומחשבים
בגרות · קיץ תשפ"א 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
🧪סימולציה בתוך הדף מעגל RC טורי
מן ההיגב והתדר נגזר הקיבול; הדיאגרמה מראה את המתחים מתחברים פאזורית ל-17 וולט. פתח את מעבדת RLC — לשונית טורי
🧪 בגרסת האתר יש כאן סימולציה אינטראקטיבית — מעגל RC טורי.
⚙️ פרק שני — אלקטרוניקה תקבילית וספרתית
שאלה 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)
🧪סימולציה בתוך הדף מגבר CE מנקודת עבודה שבגרף
שלוש קריאות מן הגרף — V_CE, I_C ו-I_B — נותנות את β, את V_CC ואת R_B. פתח את מעבדת מגבר CE
🧪 בגרסת האתר יש כאן סימולציה אינטראקטיבית — מגבר CE מנקודת עבודה שבגרף.
שאלה 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
🧪סימולציה בתוך הדף שני מגברים ומשווה
החישוב נותן מוצא של מעל 12 וולט, ולכן המגבר נצמד למתח האספקה. פתח את מעבדת מגברי השרת
🧪 בגרסת האתר יש כאן סימולציה אינטראקטיבית — שני מגברים ומשווה.
שאלה 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)
🧪סימולציה בתוך הדף מסנן מעביר-נמוכים עם פולס
הפולס נגמר לפני שהקבל הספיק להיטען במלואו; הכפילו את R וראו את המרבי יורד. פתח את פרק רשתות RC
🧪 בגרסת האתר יש כאן סימולציה אינטראקטיבית — מסנן מעביר-נמוכים עם פולס.
💻 פרק שלישי — תכנות בשפת 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);
🧪סימולציה בתוך הדף C# — ספירת שכיחויות
כל קלט מגדיל מונה אחד בלבד; ההיסטוגרמה היא בדיוק הפלט של התוכנית. פתח את פרק יסודות C#
🧪 בגרסת האתר יש כאן סימולציה אינטראקטיבית — C# — ספירת שכיחויות.
שאלה 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
🧪סימולציה בתוך הדף C# — המחלקה Time
הוסיפו דקות וראו את הנרמול: 12:59 ועוד 90 דקות הן 14:29. פתח את פרק יסודות C#
🧪 בגרסת האתר יש כאן סימולציה אינטראקטיבית — C# — המחלקה Time.
שאלה 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%
🧪סימולציה בתוך הדף C# — אחוז תוצאות חיוביות
האחוז מחושב על כלל הבדיקות ולא כממוצע של האחוזים — שנו יישוב אחד וראו. פתח את פרק יסודות C#
🧪 בגרסת האתר יש כאן סימולציה אינטראקטיבית — C# — אחוז תוצאות חיוביות.
🏠