על המסמך: הצעה לפתרון מלא לשאלון 815381 — אלקטרוניקה ומחשבים, קיץ תשפ"ה 2025. בשאלון אחת-עשרה שאלות בשלושה פרקים, ועל הנבחן לענות על חמש שאלות. פרק ראשון (1–2) תורת החשמל; פרק שני (3–5) אלקטרוניקה תקבילית וספרתית; פרק שלישי תכנות — נבחני C# עונים על שתיים מהשאלות 6–8, ונבחני Python על שתיים מהשאלות 9–11. שאלות 9–11 הן מקבילות מדויקות של 6–8 (אותה בעיה, תחביר אחר). כאן פתורות כל השאלות, לנוחות הלימוד.
קריאת המעגל: ההדק החיובי של שלושת המקורות פונה כלפי מעלה. R₁ מחבר את הפלוס של E₁ אל הצומת העליון A; R₂ (בטור עם E₂) יורד מ-A אל הפס התחתון; R₃ (בטור עם E₃) יורד מהצומת הימני אל הפס התחתון. נסמן את הפס התחתון כאדמה (0V). הענף הימני (R₃) פעיל רק כאשר המפסק S סגור ומחבר את הצומת הימני אל A.
סעיף א — הזרם דרך R₁ (המפסק פתוח)
כשהמפסק פתוח הענף הימני מנותק. נותרת לולאה אחת: E₁ · R₁ · A · R₂ · E₂. נכתוב את חוק הזרמים בצומת A, כאשר R₁ מחובר אל פוטנציאל 45V ו-R₂ אל פוטנציאל 30V:
45 - VA100 + 30 - VA200 = 0
2(45 - VA) + (30 - VA) = 0 → 3 VA = 120 → VA = 40 V
I(R₁) = 45 - VAR₁ = 45 - 40100 = 0.05 A
I(R₁) = 0.05 A = 50 mA
סעיף ב — המתח על R₂ (המפסק פתוח)
בלולאה טורית אחת הזרם משותף, ולכן הזרם דרך R₂ שווה לזרם דרך R₁. המתח על R₂:
U(R₂) = I · R₂ = 0.05 × 200 = 10 V (בדיקה: VA - E₂ = 40 - 30 = 10 V)
U(R₂) = 10 V
סעיף ג — הזרם דרך R₃ (המפסק סגור)
סגירת המפסק מחברת את הענף הימני, כך שהצומת הימני מתלכד עם A. כעת יש שלושה ענפים בצומת A — אל 45V דרך R₁, אל 30V דרך R₂, ואל 10V דרך R₃:
45 - VA100 + 30 - VA200 + 10 - VA400 = 0
4(45-VA) + 2(30-VA) + (10-VA) = 0 → 7 VA = 250 → VA = 35.71 V
I(R₃) = VA - E₃R₃ = 35.71 - 10400 = 0.0643 A
I(R₃) ≈ 0.0643 A ≈ 64.3 mA
סעיף ד — המתח על R₂ (המפסק סגור)
עם VA = 35.71V, המתח על R₂ הוא הפרש הפוטנציאלים בין A למקור E₂:
U(R₂) = |VA - E₂| = |35.71 - 30| = 5.71 V
U(R₂) ≈ 5.71 V
🧪סימולציה בתוך הדף— שלושה מקורות ומפסק
סגרו את S: הענף השלישי נכנס, מתח הצומת יורד מ-40 ל-35.71 וולט והמתח על R₂ מתחצה כמעט.▶ פתח את מעבדת מתחי הצמתים
🧪 בגרסת האתר יש כאן סימולציה אינטראקטיבית — שלושה מקורות ומפסק.
שאלה 2 — מעגל RL טורי בזרם חילופין
נתונים: R = 480 Ω · XL = 140 Ω · u(t) = 25√2·sin(2000t) V
💡
מהמקור u(t) = 25√2·sin(2000t) עולה: מתח מרבי Umax = 25√2 ≈ 35.36V, מתח יעיל U = 25V, ותדירות זוויתית ω = 2000 rad/s.
סעיף א — ההשראות L
מהקשר בין ההיגב ההשראי לתדירות הזוויתית:
XL = ω·L → L = XLω = 1402000 = 0.07 H
L = 0.07 H = 70 mH
סעיף ב — עכבת המעגל והפרש הפאזה
בחיבור טורי העכבה היא הסכום הווקטורי של הנגד וההיגב ההשראי:
Z = √R² + XL² = √480² + 140² = √250000 = 500 Ω
φ = tan⁻¹(XLR) = tan⁻¹(140480) = 16.26°
Z = 500 Ω ; φ ≈ 16.26° (הזרם מפגר אחרי המתח — מעגל השראי)
סעיף ג — המתח על הנגד ועל הסליל
תחילה הזרם היעיל, ומתוכו המתח על כל רכיב (הערכים יעילים):
I = UZ = 25500 = 0.05 A
UR = I·R = 0.05 × 480 = 24 V ; UL = I·XL = 0.05 × 140 = 7 V
בדיקה: √(UR² + UL²) = √(24² + 7²) = 25V = U ✓
UR = 24 V ; UL = 7 V
סעיף ד — הגדלת התדירות פי 3
הגדלת התדירות פי 3 מגדילה את ההיגב ההשראי פי 3 (XL = ω·L), ואילו הנגד אינו משתנה. לכן העכבה גדלה והזרם קטן:
זרם הבסיס מלולאת הבסיס (הזנה מ-VP = 9.3V, אמיטר מוארק):
IB = VP - VBERB = 9.3 - 0.7215000 = 40 µA
IC = β·IB = 50 × 40 µA = 2 mA
VCE = VP - IC·RC = 9.3 - 0.002 × 2400 = 4.5 V
IC = 2 mA ; VCE = 4.5 V
סעיף ג — המתח המרבי והמזערי בנקודות X ו-Y
בכל נקודה מצטבר מתח הנקודה (מ.י.) על אות החילופין. בנקודה X (הבסיס) המתח הישר הוא VBE = 0.7V ומשרעת האות 0.1V. בנקודה Y (הקולקטור) המתח הישר הוא VCE = 4.5V ומשרעת אות המוצא 3V:
X: Vmax = 0.7 + 0.1 = 0.8 V ; Vmin = 0.7 - 0.1 = 0.6 V
Y: Vmax = 4.5 + 3 = 7.5 V ; Vmin = 4.5 - 3 = 1.5 V
X: 0.6 V … 0.8 V ; Y: 1.5 V … 7.5 V
סעיף ד — קו העבודה של הטרנזיסטור
קו העבודה הישר (DC) חותך את ציר VCE ב-VP = 9.3V ואת ציר IC ב-VP/RC = 9.3/2400 = 3.875 mA. נקודת העבודה Q עליו היא (VCE=4.5V , IC=2mA). קו העבודה בחילופין עובר דרך Q בשיפוע −1/(RC∥RL) = −1/600, ולאורכו נעה נקודת ההפעלה בין VCE = 1.5V ל-VCE = 7.5V (הערכים המרבי והמזערי שחושבו בנקודה Y).
מבנה המעגל: הענף הטורי (S בטור עם R₂) מחובר במקביל ל-R₁, ואחריהם הקבל C אל האדמה; מתח המוצא Vo נמדד על הקבל. כאשר המפסק פתוח נתיב הטעינה הוא R₁ בלבד; כאשר המפסק סגור נתיב הטעינה הוא R₁ ∥ R₂. המתח הסופי שאליו שואף הקבל הוא 20V בשני המצבים.
סעיף א — קבוע הזמן τ (המפסק פתוח)
כשהמפסק פתוח מתנגדות הטעינה היא R₁:
τ = R₁·C = 50000 × 500×10-6 = 25 s
τ = 25 s
סעיף ב — הזמן שבו המוצא מגיע ל-5V
הקבל נטען לפי Vo(t) = 20(1 − e−t/τ). נפתור עבור Vo = 5V:
5 = 20(1 - e-t/25) → e-t/25 = 0.75
t = -25·ln(0.75) = 25 × 0.2877 = 7.19 s
t ≈ 7.19 s
סעיף ג — מתח המוצא 2 שניות אחרי סגירת המפסק
ברגע הסגירה מתח הקבל הוא 5V (תנאי התחלה). כעת מתנגדות הטעינה יורדת ל-R₁ ∥ R₂ וקבוע הזמן קצֵר יותר; המתח ממשיך לשאוף ל-20V:
העקומה עולה מעריכית מ-0V לכיוון 20V. עד הסגירה השיפוע מתון (τ=25s) והמתח מגיע ל-5V בזמן t≈7.19s. ברגע זה נסגר המפסק, קבוע הזמן קטֵן ל-5.77s, והעקומה נעשית תלולה יותר בדרכה אל 20V — 2 שניות לאחר הסגירה (t≈9.19s) המתח כבר 9.4V, וממשיך לשאוף ל-20V.
מקטע איטי עד (7.19s , 5V) → מקטע תלול אל 20V ; (9.19s , 9.4V)
🧪סימולציה בתוך הדף— טעינת RC בשני קבועי זמן
הקו הכחול הוא המפסק פתוח והירוק אחרי סגירתו — אותה מדרגה, פי ארבעה מהר יותר.▶ פתח את מעבדת הקבלים
🧪 בגרסת האתר יש כאן סימולציה אינטראקטיבית — טעינת RC בשני קבועי זמן.
💻 פרק שלישי — תכנות בשפת C# (שאלות 6–8)
שאלה 6 (C#) — השוואת מערכים איבר-איבר
הפעולה: DoSomething מקבלת שני מערכי שלמים ומדפיסה "H" כשהאיברים המקבילים שווים, "L" אחרת
סעיף א — הפלט של קטע הקוד
לכל קריאה משווים את arr1 מול המערך השני, איבר מול איבר, ומדפיסים H לשוויון ו-L לאי-שוויון:
arr1 = {4,5,2,3}
DoSomething(arr1, {4,5,1,2}) → 4=4 H · 5=5 H · 2≠1 L · 3≠2 L ⇒ HHLL
DoSomething(arr1, {3,5,2,4}) → 4≠3 L · 5=5 H · 2=2 H · 3≠4 L ⇒ LHHL
DoSomething(arr1, {5,4,2,3}) → 4≠5 L · 5≠4 L · 2=2 H · 3=3 H ⇒ LLHH
DoSomething(arr1, {4,2,5,3}) → 4=4 H · 5≠2 L · 2≠5 L · 3=3 H ⇒ HLLH
HHLL
LHHL
LLHH
HLLH
סעיף ב — קריאה שתדפיס "HHHH"
כדי לקבל HHHH צריך ששני המערכים יהיו זהים בכל איבריהם. הדרך הפשוטה — לקרוא עם אותו מערך פעמיים, או עם מערך זהה לו:
🧪 בגרסת האתר יש כאן סימולציה אינטראקטיבית — C# — השוואת מערכים איבר-איבר.
שאלה 7 (C#) — המחלקה Rectangle
המחלקה: מלבן עם אורך (length) ורוחב (width), ברירת מחדל 2×2
⚠️
אי-התאמה בדפוס: הפעולה מוגדרת בדפוס בשם AddDimensions, אך בקטע הראשי היא נקראת בשם AddToDimensions (וכך גם בגרסת Python בשאלה 10). מדובר בבירור באותה פעולה — הפותרים יתייחסו אליה כאל פעולה יחידה שמוסיפה לאורך ולרוחב.
סעיף א — הפלט של קטע הקוד
הבנאי new Rectangle(-1,1): מכיוון ש-length שלילי התנאי length>=0 && width>=0 אינו מתקיים, ולכן נשמרות ברירות המחדל 2×2. הפעולה AddToDimensions מוסיפה רק אם התוצאה בשני הממדים חיובית. נעקוב אחרי הלולאה (widthToAdd=0 תמיד, לכן width נשאר 2):
הפעולה מחזירה true אם המלבן ריבוע, כלומר האורך שווה לרוחב:
public bool IsSquare()
{
return this.length == this.width;
}
סעיף ג — בדיקת שני מלבנים
יוצרים שני מלבנים (25×17 ו-25×25) ומזמנים על כל אחד את IsSquare:
Rectangle rect1 = new Rectangle(25, 17);
Rectangle rect2 = new Rectangle(25, 25);
Console.WriteLine("Rectangle 1 is square: " + rect1.IsSquare()); // 25≠17 → False
Console.WriteLine("Rectangle 2 is square: " + rect2.IsSquare()); // 25=25 → True
Rectangle 1 is square: False
Rectangle 2 is square: True
💡
ב-C# ערך בוליאני מודפס באות ראשונה גדולה: True / False.
🧪סימולציה בתוך הדף—C# — המחלקה Rectangle
הטבלה היא בדיוק חמש שורות הפלט; שנו את המידות ההתחלתיות וראו את המסלול משתנה.▶ פתח את פרק יסודות C#
🧪 בגרסת האתר יש כאן סימולציה אינטראקטיבית — C# — המחלקה Rectangle.
שאלה 8 (C#) — סקר שביעות רצון וחישוב בונוס לשליחים
נתונים: שני שליחים (1 ו-2) · לכל סקר: מספר שליח, דירוג שביעות רצון (1–5), סכום טיפ · בונוס = 20% מהטיפים של השליח המדורג גבוה
סעיף — התוכנית המלאה
מנהלים לכל שליח שלושה צוברים: סכום הטיפים, סכום הדירוגים ומספר הסקרים. הקליטה נמשכת כל עוד מספר השליח הוא 1 או 2, ונעצרת כשנקלט מספר לא חוקי. בסיום מדפיסים את סך הטיפים, את השליח בעל הדירוג הממוצע הגבוה, ואת הבונוס (20% מטיפי אותו שליח):
int[] tips = new int[3]; // tips[1], tips[2]
int[] ratingSum = new int[3]; // סכום הדירוגים לכל שליח
int[] count = new int[3]; // מספר הסקרים לכל שליח
int worker = int.Parse(Console.ReadLine());
while (worker == 1 || worker == 2)
{
int rating = int.Parse(Console.ReadLine()); // דירוג 1..5
int tip = int.Parse(Console.ReadLine()); // סכום הטיפ
tips[worker] += tip;
ratingSum[worker] += rating;
count[worker]++;
worker = int.Parse(Console.ReadLine()); // מספר שליח לסקר הבא
}
// 1) סך כל הטיפים של שני השליחים יחד
int totalTips = tips[1] + tips[2];
Console.WriteLine("Total tips: " + totalTips);
// 2) השליח בעל הדירוג הממוצע הגבוה ביותר
double avg1 = (double)ratingSum[1] / count[1];
double avg2 = (double)ratingSum[2] / count[2];
int best = (avg1 >= avg2) ? 1 : 2;
Console.WriteLine("Best worker: " + best);
// 3) הבונוס: 20% מהטיפים של השליח המצטיין
double bonus = 0.2 * tips[best];
Console.WriteLine("Bonus: " + bonus);