הצעה לפתרון מלא — אלקטרוניקה ומחשבים
בגרות · קיץ תשפ"ה 2025 · שאלון 815381 · שאלות 1–11
✦ בנוי על ידי פהד גאנם ✦
💡על המסמך: הצעה לפתרון מלא לשאלון 815381 — אלקטרוניקה ומחשבים, קיץ תשפ"ה 2025. בשאלון אחת-עשרה שאלות בשלושה פרקים, ועל הנבחן לענות על חמש שאלות. פרק ראשון (1–2) תורת החשמל; פרק שני (3–5) אלקטרוניקה תקבילית וספרתית; פרק שלישי תכנות — נבחני C# עונים על שתיים מהשאלות 6–8, ונבחני Python על שתיים מהשאלות 9–11. שאלות 9–11 הן מקבילות מדויקות של 6–8 (אותה בעיה, תחביר אחר). כאן פתורות כל השאלות, לנוחות הלימוד.
🔌 פרק ראשון — תורת החשמל
שאלה 1 — מעגל עם שלושה מקורות ומפסק
נתונים: R₁ = 100 Ω · R₂ = 200 Ω · R₃ = 400 Ω · E₁ = 45V · E₂ = 30V · E₃ = 10V
💡קריאת המעגל: ההדק החיובי של שלושת המקורות פונה כלפי מעלה. R₁ מחבר את הפלוס של E₁ אל הצומת העליון A; R₂ (בטור עם E₂) יורד מ-A אל הפס התחתון; R₃ (בטור עם E₃) יורד מהצומת הימני אל הפס התחתון. נסמן את הפס התחתון כאדמה (0V). הענף הימני (R₃) פעיל רק כאשר המפסק S סגור ומחבר את הצומת הימני אל A.
סעיף א — הזרם דרך R₁ (המפסק פתוח)
כשהמפסק פתוח הענף הימני מנותק. נותרת לולאה אחת: E₁ · R₁ · A · R₂ · E₂. נכתוב את חוק הזרמים בצומת A, כאשר R₁ מחובר אל פוטנציאל 45V ו-R₂ אל פוטנציאל 30V:
I(R₁) = 0.05 A = 50 mA
סעיף ב — המתח על R₂ (המפסק פתוח)
בלולאה טורית אחת הזרם משותף, ולכן הזרם דרך R₂ שווה לזרם דרך R₁. המתח על R₂:
U(R₂) = 10 V
סעיף ג — הזרם דרך R₃ (המפסק סגור)
סגירת המפסק מחברת את הענף הימני, כך שהצומת הימני מתלכד עם A. כעת יש שלושה ענפים בצומת A — אל 45V דרך R₁, אל 30V דרך R₂, ואל 10V דרך R₃:
I(R₃) ≈ 0.0643 A ≈ 64.3 mA
סעיף ד — המתח על R₂ (המפסק סגור)
עם VA = 35.71V, המתח על R₂ הוא הפרש הפוטנציאלים בין A למקור E₂:
U(R₂) ≈ 5.71 V
שאלה 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
מהקשר בין ההיגב ההשראי לתדירות הזוויתית:
L = 0.07 H = 70 mH
סעיף ב — עכבת המעגל והפרש הפאזה
בחיבור טורי העכבה היא הסכום הווקטורי של הנגד וההיגב ההשראי:
Z = 500 Ω ; φ ≈ 16.26° (הזרם מפגר אחרי המתח — מעגל השראי)
סעיף ג — המתח על הנגד ועל הסליל
תחילה הזרם היעיל, ומתוכו המתח על כל רכיב (הערכים יעילים):
בדיקה: √(UR² + UL²) = √(24² + 7²) = 25V = U ✓
UR = 24 V ; UL = 7 V
סעיף ד — הגדלת התדירות פי 3
הגדלת התדירות פי 3 מגדילה את ההיגב ההשראי פי 3 (XL = ω·L), ואילו הנגד אינו משתנה. לכן העכבה גדלה והזרם קטן:
הזרם יקטן — מ-50 mA ל-I' ≈ 39.2 mA
⚙️ פרק שני — אלקטרוניקה תקבילית וספרתית
שאלה 3 — מגבר טרנזיסטור במוצא משותף (CE) עם דיודה
נתונים: VD=0.7V · VBE=0.7V · β=hfe=50 · hie=1kΩ · VCC=10V · RB=215kΩ · RL=800Ω
אותות: vi(t) = 0.1·sin(1000πt) [V] · vo(t) = −3·sin(1000πt) [V]
💡מבנה המעגל: הדיודה D שבין VCC לצומת ההזנה מפילה 0.7V, ולכן הפוטנציאל בראש RB ו-RC הוא VP = VCC − VD = 10 − 0.7 = 9.3V. האמיטר מוארק ישירות. C₁ מצמד את המבוא לבסיס (נקודה X), ו-C₂ מצמד את הקולקטור (נקודה Y) אל העומס RL.
סעיף א1 — הגבר המתח AV
הגבר המתח מתקבל ישירות מיחס אותות המוצא והמבוא הנתונים:
AV = -30 (מהפך, |AV| = 30)
סעיף א2 — ערך הנגד RC
בדגם החילופין AV = −β·(RC ∥ RL) / hie. נחלץ את העומס הדינמי ואז את RC:
RC = 2.4 kΩ
סעיף ב — נקודת העבודה (IC , VCE)
זרם הבסיס מלולאת הבסיס (הזנה מ-VP = 9.3V, אמיטר מוארק):
IC = 2 mA ; VCE = 4.5 V
סעיף ג — המתח המרבי והמזערי בנקודות X ו-Y
בכל נקודה מצטבר מתח הנקודה (מ.י.) על אות החילופין. בנקודה X (הבסיס) המתח הישר הוא VBE = 0.7V ומשרעת האות 0.1V. בנקודה Y (הקולקטור) המתח הישר הוא VCE = 4.5V ומשרעת אות המוצא 3V:
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).
קו עבודה: (9.3V , 0) ↔ (0 , 3.875mA) ; Q(4.5V , 2mA) ; תנודה ב-Y: 1.5V…7.5V
שאלה 4 — שני מגברי שרת ונגד תלוי-טמפרטורה (RTC)
נתונים: R₁=5kΩ · R₂=5kΩ · R₃=10kΩ · R₄=10kΩ · R₅=10kΩ · R₆=15kΩ · R₇=5kΩ · מקורות ייחוס 6V
💡מבנה המעגל: נקודה X היא מחלק מתח: 6V — RTC — X — R₁ — אדמה, ולכן VX = 6·R₁/(R₁+RTC). מגבר A₁ מחובר כמגבר לא-מהפך (הכניסה + ל-X, ו-R₂ מהכניסה − לאדמה עם משוב R₃), ולכן Vo1 = VX(1 + R₃/R₂) = 3·VX. מגבר A₂ הוא מגבר הפרש: כניסתו + מוזנת ממחלק R₆–R₇ (6·5/20 = 1.5V), וכניסתו − מ-Vo1 דרך R₄ עם משוב R₅. מכאן Vo = 1.5(1+R₅/R₄) − Vo1(R₅/R₄) = 3 − Vo1.
סעיף א — המתחים ב-X, ב-Vo1 וב-Vo בטמפרטורה 0°C
מהגרף, ב-0°C ערך הנגד הוא RTC = 25 kΩ. נחשב את שלושת המתחים:
VX = 1 V ; Vo1 = 3 V ; Vo = 0 V
סעיף ב — מתח המוצא בטמפרטורה 80°C
מהגרף, ב-80°C ערך הנגד הוא RTC = 5 kΩ:
Vo = -6 V
סעיף ג — הטמפרטורה שבה Vo = −4.2V
נמצא את VX הדרוש, ומתוכו את ערך ה-RTC, ולבסוף נקרא מהגרף את הטמפרטורה:
מהגרף, ערך RTC = 7.5 kΩ מתקבל בטמפרטורה של כ-58°C (בין 50°C ל-60°C).
RTC = 7.5 kΩ → טמפרטורה ≈ 58 °C
שאלה 5 — מעגל טעינת RC עם מפסק ומדרגת מתח
נתונים: R₁ = 50 kΩ · R₂ = 15 kΩ · C = 500 µF · מדרגת מבוא Vi = 20V
💡מבנה המעגל: הענף הטורי (S בטור עם R₂) מחובר במקביל ל-R₁, ואחריהם הקבל C אל האדמה; מתח המוצא Vo נמדד על הקבל. כאשר המפסק פתוח נתיב הטעינה הוא R₁ בלבד; כאשר המפסק סגור נתיב הטעינה הוא R₁ ∥ R₂. המתח הסופי שאליו שואף הקבל הוא 20V בשני המצבים.
סעיף א — קבוע הזמן τ (המפסק פתוח)
כשהמפסק פתוח מתנגדות הטעינה היא R₁:
τ = 25 s
סעיף ב — הזמן שבו המוצא מגיע ל-5V
הקבל נטען לפי Vo(t) = 20(1 − e−t/τ). נפתור עבור Vo = 5V:
t ≈ 7.19 s
סעיף ג — מתח המוצא 2 שניות אחרי סגירת המפסק
ברגע הסגירה מתח הקבל הוא 5V (תנאי התחלה). כעת מתנגדות הטעינה יורדת ל-R₁ ∥ R₂ וקבוע הזמן קצֵר יותר; המתח ממשיך לשאוף ל-20V:
Vo (2s אחרי הסגירה) ≈ 9.4 V
סעיף ד — סרטוט Vo(t)
העקומה עולה מעריכית מ-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)
💻 פרק שלישי — תכנות בשפת 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 צריך ששני המערכים יהיו זהים בכל איבריהם. הדרך הפשוטה — לקרוא עם אותו מערך פעמיים, או עם מערך זהה לו:
DoSomething(arr1, arr1); // ⇒ HHHH
// לחלופין:
int[] arr6 = { 4, 5, 2, 3 };
DoSomething(arr1, arr6); // ⇒ HHHH
סעיף ג — הפעולה IsTheSame
הפעולה מחזירה true רק אם כל האיברים המקבילים שווים; ברגע שנמצא הבדל היא מחזירה false:
public static bool IsTheSame(int[] arr1, int[] arr2)
{
for (int i = 0; i < arr1.Length; i++)
{
if (arr1[i] != arr2[i])
return false;
}
return true;
}
עבור הדוגמה: b1 = IsTheSame(arr1, arr2) מחזיר true (מערכים זהים), ו-b2 = IsTheSame(arr1, arr3) מחזיר false (שוני באיבר השלישי: 3 מול 4).
שאלה 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):
rect = Rectangle(-1,1) → נדחה, נשמר 2×2 → L=2 W=2 D1=4
i=-1: 2+(-1)=1>0 → length=1 → L=1 W=2 D1=2
i= 0: 1+0 =1>0 → length=1 → L=1 W=2 D1=2
i= 1: 1+1 =2>0 → length=2 → L=2 W=2 D1=4
i= 2: 2+2 =4>0 → length=4 → L=4 W=2 D1=8
L=2 W=2 D1=4
L=1 W=2 D1=2
L=1 W=2 D1=2
L=2 W=2 D1=4
L=4 W=2 D1=8
סעיף ב — הפעולה IsSquare
הפעולה מחזירה 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.
שאלה 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);
להמחשה, עבור הקלט: שליח 1 (דירוג 5, טיפ 10) · שליח 2 (דירוג 3, טיפ 30) · שליח 1 (דירוג 4, טיפ 20) · ואז 0 לעצירה — מתקבל:
Total tips: 60
Best worker: 1
Bonus: 6
🐍 פרק שלישי — תכנות בשפת Python (שאלות 9–11)
שאלה 9 (Python) — השוואת מערכים איבר-איבר
מקבילה לשאלה 6: אותה בעיה בדיוק, בתחביר Python
סעיף א — הפלט של קטע הקוד
הלוגיקה זהה לגרסת C# — השוואה איבר מול איבר עם הדפסת H/L. הפלט זהה:
HHLL
LHHL
LLHH
HLLH
סעיף ב — קריאה שתדפיס "HHHH"
DoSomething(lst1, lst1) # ⇒ HHHH
סעיף ג — הפעולה IsTheSame
def IsTheSame(lst1, lst2):
for i in range(len(lst1)):
if lst1[i] != lst2[i]:
return False
return True
בדיוק כמו ב-C#: b1 = True (מערכים זהים), b2 = False (שוני באיבר השלישי).
שאלה 10 (Python) — המחלקה Rectangle
מקבילה לשאלה 7: אותה מחלקה בתחביר Python
סעיף א — הפלט של קטע הקוד
אותה מגמת מעקב כמו ב-C# — הבנאי דוחה את (-1,1) ושומר 2×2, והלולאה מעדכנת רק את האורך. הפלט זהה:
L=2 W=2 D1=4
L=1 W=2 D1=2
L=1 W=2 D1=2
L=2 W=2 D1=4
L=4 W=2 D1=8
סעיף ב — הפעולה is_square
def is_square(self):
return self.length == self.width
סעיף ג — בדיקת שני מלבנים
rect1 = Rectangle(25, 17)
rect2 = Rectangle(25, 25)
print("Rectangle 1 is square:", rect1.is_square()) # 25 != 17 → False
print("Rectangle 2 is square:", rect2.is_square()) # 25 == 25 → True
Rectangle 1 is square: False
Rectangle 2 is square: True
💡גם ב-Python בוליאני מודפס באות גדולה: True / False.
שאלה 11 (Python) — סקר שביעות רצון וחישוב בונוס לשליחים
מקבילה לשאלה 8: אותה אפליקציה בתחביר Python
סעיף — התוכנית המלאה
אותה לוגיקה: צוברים לכל שליח טיפים, דירוגים וספירה; קולטים עד שנקלט מספר שליח לא חוקי; ולבסוף מדפיסים סך טיפים, שליח מצטיין, ובונוס של 20% מטיפיו:
tips = [0, 0, 0] # tips[1], tips[2]
rating_sum = [0, 0, 0]
count = [0, 0, 0]
worker = int(input())
while worker == 1 or worker == 2:
rating = int(input()) # דירוג 1..5
tip = int(input()) # סכום הטיפ
tips[worker] += tip
rating_sum[worker] += rating
count[worker] += 1
worker = int(input()) # מספר שליח לסקר הבא
# 1) סך כל הטיפים
total_tips = tips[1] + tips[2]
print("Total tips:", total_tips)
# 2) השליח בעל הדירוג הממוצע הגבוה ביותר
avg1 = rating_sum[1] / count[1]
avg2 = rating_sum[2] / count[2]
best = 1 if avg1 >= avg2 else 2
print("Best worker:", best)
# 3) בונוס = 20% מהטיפים של השליח המצטיין
bonus = 0.2 * tips[best]
print("Bonus:", bonus)
עבור אותו קלט לדוגמה כמו בשאלה 8 מתקבל: Total tips: 60 · Best worker: 1 · Bonus: 6.0. הלוגיקה זהה לגרסת C#.