הצעה לפתרון מלא — אלקטרוניקה ומחשבים
בגרות · קיץ תשפ"ד 2024 · שאלון 815381 · שאלות 1–11
✦ בנוי על ידי פהד גאנם ✦
💡
על המסמך: הצעה לפתרון מלא לשאלון 815381 — אלקטרוניקה ומחשבים, קיץ תשפ"ד 2024. בשאלון אחת-עשרה שאלות בשלושה פרקים, ועל הנבחן לענות על חמש שאלות — אחת לפחות מכל פרק. פרק ראשון (1–2) תורת החשמל; פרק שני (3–5) אלקטרוניקה תקבילית וספרתית; פרק שלישי (6–11) תכנות — נבחני C# עונים על שתיים מ-6–8, ונבחני Python על שתיים מ-9–11. שאלות 6 ו-9, 7 ו-10, 8 ו-11 מקבילות בדיוק. כאן פתורות כל השאלות, לנוחות הלימוד.
🔌 פרק ראשון — תורת החשמל
שאלה 1 — מעגל עם מפסק, שני ענפים מקבילים ומקור יחיד
נתונים: E = 18V · R₂ = 2 Ω · R₃ = 1 Ω · R₄ = 7 Ω · R₁ לא נתון (מחושב בסעיף ג)
💡
מבנה המעגל: המקור E מזין דרך הנגד R₄ (7 Ω) הטורי. בין הצומת השמאלי לצומת הימני קיימים שני ענפים מקבילים: ענף עליון ובו R₁ בטור עם המפסק S, וענף אמצעי ובו R₂ ו-R₃ בטור (2 + 1 = 3 Ω). כשהמפסק פתוח ענף R₁ מנותק, וזורם זרם רק דרך R₂+R₃.
סעיף א — הזרם הכללי IT (המפסק פתוח)

כשהמפסק פתוח ענף R₁ מנותק, והמעגל הופך לטורי פשוט: R₂, R₃ ו-R₄ בטור עם המקור.

Rט = R₂ + R₃ + R₄ = 2 + 1 + 7 = 10 Ω
IT = ERט = 1810
IT = 1.8 A
סעיף ב — ההספק הכללי (המפסק פתוח)
P = E · IT = 18 × 1.8
P = 32.4 W
סעיף ג — ערך הנגד R₁ (המפסק סגור, P = 36W)

בסגירת המפסק ענף R₁ מקביל לענף R₂+R₃ (3 Ω). מן ההספק הנתון נמצא את הזרם הכללי, ומתוכו את ההתנגדות הכוללת ואת R₁:

IT = PE = 3618 = 2 A → Rט = EIT = 182 = 9 Ω
R₁ ∥ (R₂+R₃) = Rט - R₄ = 9 - 7 = 2 Ω
R₁ × 3R₁ + 3 = 2 → 3R₁ = 2R₁ + 6 → R₁ = 6 Ω
R₁ = 6 Ω
סעיף ד — ההספק הכללי לאחר ניתוק R₃ (המפסק סגור)

ניתוק R₃ פותח את הענף האמצעי (R₂ ו-R₃ בטור), ולכן נותר רק ענף R₁ בין שני הצמתים, בטור עם R₄:

Rט = R₁ + R₄ = 6 + 7 = 13 Ω
IT = 1813 = 1.385 A → P = E · IT = 18 × 1.385
P ≈ 24.9 W (= 324/13 W)
שאלה 2 — שני מקורות, מד-זרם ומפסק
נתונים: E₁ = 24V · E₂ = 8V · R₁ = 200 Ω · R₃ = 350 Ω · קריאת מד-הזרם (S פתוח) = 20 mA
💡
מבנה המעגל: בין הצמתים A (עליון) ל-B (תחתון) שלושה ענפים: ענף שמאלי — מד-הזרם, R₁ והמקור E₁ (הדק הפלוס כלפי מעלה); ענף אמצעי — המפסק S בטור עם R₃; ענף ימני — R₂ והמקור E₂ (הדק הפלוס כלפי מעלה). מד-הזרם מודד את הזרם בענף השמאלי (של E₁).
סעיף א — ערך הנגד R₂ (המפסק פתוח)

כשהמפסק פתוח הענף האמצעי מנותק, ונותרת לולאה טורית אחת: E₁, R₁, R₂ ו-E₂. שני המקורות פונים באותו כיוון (פלוס למעלה), ולכן הם פועלים זה כנגד זה והמתח המניע הוא הפרש המקורות:

E₁ - E₂ = I (R₁ + R₂) → 24 - 8 = 0.02 × (200 + R₂)
200 + R₂ = 160.02 = 800 → R₂ = 600 Ω
R₂ = 600 Ω
סעיף ב — המתח בין A ל-B (המפסק פתוח)

נסמן VB = 0. בענף הימני הזרם 20mA זורם מ-A דרך R₂ אל הדק הפלוס של E₂ (8V):

VA = E₂ + I · R₂ = 8 + 0.02 × 600 = 8 + 12 = 20 V
בדיקה בענף השמאלי: VA = E₁ - I · R₁ = 24 - 0.02 × 200 = 20 V ✓
UAB = 20 V
סעיף ג — קריאת מד-הזרם (המפסק סגור, R₃ = 350 Ω)

בסגירת המפסק מתווסף הענף האמצעי R₃ בין A ל-B. נכתוב את חוק הזרמים בצומת A (VB = 0), כאשר צמתי המקורות קבועים על ‎+24V ו-‎+8V:

VA - 24200 + VA - 8600 + VA350 = 0
21(VA-24) + 7(VA-8) + 12VA = 0 → 40 VA = 560 → VA = 14 V
I(מד-הזרם) = |VA - 24R₁| = |14 - 24200| = 0.05 A
קריאת מד-הזרם = 50 mA
סעיף ד — המתח בין A ל-B (המפסק סגור)

מתח הצומת A חושב זה עתה בסעיף ג:

UAB = 14 V
⚙️ פרק שני — אלקטרוניקה תקבילית וספרתית
שאלה 3 — טרנזיסטור כמתג המפעיל נורית LED
נתונים: β = 100 · VCE(sat) = 0.2V · VBE = 0.7V · VLED = 1.5V · VCC = +5V · R = 0.2 kΩ
💡
מבנה המעגל: מ-‎+5V בטור: נורית ה-LED, הנגד R (200 Ω) ומעבר קולקטור-פולט של הטרנזיסטור T (הפולט מוארק). מתח המבוא Vi מגיע לבסיס דרך RB. מתח המוצא Vo נלקח מהקולקטור. המעגל הוא מהפך: כש-T ברוויה המוצא נמוך וה-LED דולק.
סעיף א — הזרם דרך נורית ה-LED (T ברוויה)

ברוויה VCE = VCE(sat) = 0.2V. הזרם דרך ה-LED שווה לזרם הקולקטור, ונקבע ממשוואת הלולאה מ-‎+5V אל האדמה:

VCC = VLED + I·R + VCE(sat)
ILED = VCC - VLED - VCE(sat)R = 5 - 1.5 - 0.2200 = 3.3200
ILED = IC = 16.5 mA
סעיף ב — ההתנגדות המרבית של RB לשמירה על רוויה (Vi = 5V)

כדי שהטרנזיסטור יישאר ברוויה נדרש זרם בסיס מזערי IB(min) = IC. ככל ש-RB גדול יותר, זרם הבסיס קטן — לכן RB(max) מתקבל בשוויון:

IB(min) = ICβ = 16.5 mA100 = 0.165 mA
RB(max) = Vi - VBEIB(min) = 5 - 0.70.165 mA = 4.30.165×10-3
RB(max) ≈ 26.06 kΩ
סעיף ג — צורת מתח המוצא Vo(t)

מתח המבוא הוא דופק: Vi = 5V בקטע 0 < t < 15 msec, ו-0V מחוץ לו. המעגל מהפך:

Vi = 5V (0 < t < 15ms) → T ברוויה → Vo = VCE(sat) = 0.2V (LED דולק)
Vi = 0V (מחוץ לדופק) → T בניתוק → Vo ≈ VCC = 5V (LED כבוי)

בסרטוט: Vo הוא דופק הפוך ל-Vi — רמה גבוהה של 5V לפני t=0 ואחרי t=15ms, וצניחה לרמה נמוכה של 0.2V לאורך הדופק 0–15ms.

Vo = 0.2V בקטע 0–15ms ; 5V מחוצה לו (דופק מהופך)
שאלה 4 — מגבר שרת כמפחית הפרש עם שתי נוריות LED
נתונים: V₁ = 2V · V₂ = 4.5V · R₁ = 1kΩ · R₂ = 2kΩ · R₃ = 1kΩ · R₄ = 2kΩ · R₅ = 0.2kΩ · R₆ = 0.1kΩ · VLED₁ = VLED₂ = 2V
💡
מבנה המעגל: מגבר שרת יחיד במבנה מגבר הפרש — V₁ דרך R₁ לכניסה השלילית, R₂ נגד המשוב; V₂ דרך R₃ לכניסה החיובית, R₄ מהכניסה החיובית לאדמה. במוצא שני ענפי LED מנוגדים בכיוונם: R₅+LED₁ (קתודה לצד המוצא) ו-R₆+LED₂ (אנודה לצד המוצא). לכן במתח מוצא חיובי דולקת LED₂ בלבד, ובמתח שלילי דולקת LED₁ בלבד.
סעיף א — ביטוי למתח המוצא Vo

מתח הכניסה החיובית נקבע ממחלק המתח R₃–R₄, ומתח המוצא לפי נוסחת מגבר ההפרש:

V+ = V₂ · R₄R₃ + R₄ = V₂ · 23
Vo = (1 + R₂R₁) V+ - R₂R₁ V₁ = 3 · 23 V₂ - 2 V₁ = 2(V₂ - V₁)
Vo = 2(V₂ - V₁) = 2(4.5 - 2) = 5 V
סעיף ב — איזו נורית דולקת והזרם דרכה

מכיוון ש-Vo = ‎+5V (חיובי), הזרם זורם מהמוצא דרך R₆ אל LED₂ (אנודה לצד המוצא) ואל האדמה — LED₂ דולקת. LED₁ מקוטבת הפוך ולכן כבויה:

ILED₂ = Vo - VLED₂R₆ = 5 - 2100 = 0.03 A
LED₂ דולקת · ILED₂ = 30 mA ; LED₁ כבויה
סעיף ג — קיצור הנגד R₄

ג1 — מצב ההולכה: בקיצור R₄ הכניסה החיובית מוארקת (V+ = 0), ולכן Vo = ‎−(R₂/R₁)·V₁ = ‎−2×2 = ‎−4V. במתח מוצא שלילי LED₁ דולקת ו-LED₂ כבויה.

ג2 — הזרם דרך כל נורית: הזרם זורם מהאדמה דרך LED₁ ו-R₅ אל המוצא השלילי:

0 - VLED₁ - I·R₅ = Vo → -2 - I·200 = -4
ILED₁ = |Vo| - VLED₁R₅ = 4 - 2200 = 0.01 A
Vo = -4V · ILED₁ = 10 mA · ILED₂ = 0
שאלה 5 — מסנן LP, מגבר יחידה ונורית LED
נתונים: R₁ = 12kΩ · C = 500µF · אספקה ‎+10V · VC(t=0) = 0V · VLED = 1.8V · ILED(min) = 8mA · ה-LED דולקת כאשר Vo > 5V
💡
מבנה המעגל: R₁ ו-C יוצרים רשת מעבירת-נמוכים (LP). מתח הקבל VC מוזן לכניסה החיובית של מגבר השרת המחובר כמגבר יחידה (עוקב מתח) — המוצא מוחזר לכניסה השלילית, ולכן Vo = VC. העוקב מבודד את רשת ה-RC מעומס ה-LED שבמוצא.
⚠️
יחידות הזמן: בסרטוט Vi מופיע ציון "msec", אך קבוע הזמן של המעגל הוא τ = R₁C = 6s, וסעיף א מתייחס במפורש לזמנים t = 8s ו-t = 20s. לכן ציר הזמן הוא בשניות (הציון "msec" הוא ככל הנראה שיבוש דפוס), והדופק הוא Vi = 10V בקטע 0 < t < 8s ו-0V לאחריו.
סעיף א — מתח המוצא Vo בזמנים t = 8s ו-t = 20s

קבוע הזמן, טעינת הקבל בקטע 0–8s (לעבר 10V), ואז פריקה מ-t=8s (לעבר 0V), כאשר Vo = VC:

τ = R₁ · C = 12000 × 500×10-6 = 6 s
Vo(8) = 10(1 - e-8/6) = 10(1 - 0.264) = 7.36 V
Vo(20) = Vo(8) · e-(20-8)/6 = 7.36 · e-2 = 7.36 × 0.135 = 1.0 V
Vo(8s) ≈ 7.36 V ; Vo(20s) ≈ 1.0 V
סעיף ב — סרטוט Vi(t) ו-Vo(t) בקטע 0 < t < 20s

Vi: דופק מלבני — 10V בקטע 0–8s, 0V בקטע 8–20s. Vo: עולה מעריכית מ-0 ומגיע ל-7.36V ב-t=8s (סימון על הגרף), ואז פורק מעריכית ויורד ל-‎≈1.0V ב-t=20s. שני הערכים 7.36V ו-1.0V מסומנים על הסרטוט (מסעיף א).

סעיף ג — פרק הזמן שבו נורית ה-LED דולקת

ה-LED דולקת כאשר Vo > 5V. נמצא את זמן החצייה בעלייה (טעינה) ובירידה (פריקה):

עלייה: 10(1 - e-t/6) = 5 → t = 6·ln2 = 4.16 s
ירידה: 7.36 · e-(t-8)/6 = 5 → t = 8 + 6·ln(7.36/5) = 10.32 s
ה-LED דולקת מ-t ≈ 4.16s עד t ≈ 10.32s · משך ≈ 6.16 s
סעיף ד — ערך הנגד R₂ לפעולה תקינה

ה-LED מוגדרת "דולקת" כאשר Vo > 5V, ולכן בסף זה (Vo = 5V) הזרם צריך להשתוות לזרם המזערי ILED(min) = 8mA. מכאן ערך R₂:

R₂ = Vo - VLEDILED(min) = 5 - 1.80.008 = 3.20.008
R₂ = 400 Ω
💻 פרק שלישי — תכנות בשפת C# (שאלות 6–8)
שאלה 6 (C#) — הפעולה DoSomething
הפעולה: DoSomething מקבלת מערך שלמים ומחזירה ערך בוליאני

התנאי arr[i] % 10 != i בודק לכל איבר אם ספרת האחדות שלו (השארית בחלוקה ב-10) שונה מהאינדקס i. הפעולה מחזירה true רק אם בכל איבר ספרת האחדות שווה לאינדקס; ברגע שנמצא איבר שאינו מקיים זאת — מוחזר false.

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

נעבור על {20,41,2,93,14,894,16,987,888,9} ונשווה ספרת אחדות מול האינדקס:

iarr[i]arr[i] % 10== i ?המשך / החזרה
0200ממשיך
1411ממשיך
222ממשיך
3933ממשיך
4144ממשיך
58944return false
False
סעיף ב — דוגמאות למערכים

1) מערך שעבורו מוחזר true (בכל איבר ספרת אחדות = אינדקס):

int[] arr = { 0, 1, 2, 3 }; // DoSomething ⇒ true

2) מערך שעבורו מוחזר false (איבר כלשהו אינו מקיים את התנאי):

int[] arr = { 1, 1, 1 }; // DoSomething ⇒ false (באינדקס 0: 1 ≠ 0)
סעיף ג — תיאור מטרת הפעולה במשפט אחד

הפעולה מחזירה true אם ורק אם בכל איבר במערך ספרת האחדות שווה למקומו (האינדקס) — כלומר arr[i] % 10 == i מתקיים לכל i.

סעיף ד — הפעולה IsInArray
public static bool IsInArray(int[] arr, int num) { for (int i = 0; i < arr.Length; i++) if (arr[i] == num) return true; return false; }

עבור {2,3,5,6,2,4,2}: IsInArray(array, 2) מחזיר true, ו-IsInArray(array, 7) מחזיר false.

True False
שאלה 7 (C#) — הזמנת חולצות וסווצ'רים
נתונים: חולצה = 30 ₪ · סווצ'ר = 50 ₪ · קלט 1=חולצה, 2=סווצ'ר · עצירה במספר לא חוקי

התוכנית קולטת בלולאה את בחירות התלמידים, סופרת חולצות וסווצ'רים בנפרד, ומסכמת את המחיר הכולל. הקליטה נעצרת כשמתקבל מספר שאינו 1 ואינו 2.

התוכנית המלאה
int shirts = 0, sweatshirts = 0; int choice = int.Parse(Console.ReadLine()); while (choice == 1 || choice == 2) { if (choice == 1) shirts++; // חולצה else sweatshirts++; // סווצ'ר choice = int.Parse(Console.ReadLine()); } int total = shirts * 30 + sweatshirts * 50; Console.WriteLine("Shirts: " + shirts); Console.WriteLine("Sweatshirts: " + sweatshirts); Console.WriteLine("Total: " + total);
💡
דוגמה: עבור הקלט 1, 2, 1, 1, 2, 0 (0 = מספר לא חוקי שעוצר) — 3 חולצות, 2 סווצ'רים, וסך הכול 3×30 + 2×50 = 190 ₪.
שאלה 8 (C#) — המחלקה ListClass
המחלקה: מייצגת סדרה חשבונית משלם start עד end בקפיצות step

הפעולה DoSomething(number) בודקת אם (number - start) % step == 0, כלומר אם המספר הנתון שייך לסדרה החשבונית המתחילה ב-start עם הפרש קבוע step.

סעיף א1 — הפלט של קטע הקוד

עבור ListClass(10, 21, 4) — הסדרה היא 10, 14, 18. נבדוק כל קריאה לפי (number - 10) % 4:

number(number - 10) % 4פלט
111False
140True
162False
180True
213False
False True False True False
סעיף א2 — תיאור מטרת הפעולה במשפט אחד

הפעולה מחזירה true אם המספר הנתון שייך לסדרה החשבונית המתחילה ב-start ובעלת הפרש קבוע step (כלומר ניתן להגיע אליו מ-start בצעדים שלמים של step), אחרת false.

סעיף ב — הפעולה printRange
public void printRange() { for (int i = start; i <= end; i += step) Console.Write(i + " "); Console.WriteLine(); }

עבור ListClass(5, 12, 2):

5 7 9 11
סעיף ג — הפעולה getNumberByIndex
public int getNumberByIndex(int index) { return start + index * step; }

עבור ListClass(5, 12, 2) ו-getNumberByIndex(1): 5 + 1×2 = 7.

7
🐍 פרק שלישי — תכנות בשפת Python (שאלות 9–11)
שאלה 9 (Python) — הפעולה DoSomething
מקבילה לשאלה 6: אותה לוגיקה בדיוק, בתחביר Python

התנאי item % 10 != i זהה בפעולתו לגרסת C#: לכל איבר נבדק אם ספרת האחדות שווה לאינדקס. הפלט זהה.

סעיף א — הפלט (טבלת מעקב) עבור הרשימה הנתונה

עבור testList = [20,41,2,93,14,894,16,987,888,9]:

iitemitem % 10== i ?המשך / החזרה
0–420…140…4ממשיך
58944return False
False
סעיף ב — דוגמאות לרשימות
lst = [0, 1, 2, 3] # DoSomething ⇒ True lst = [1, 1, 1] # DoSomething ⇒ False (באינדקס 0: 1 ≠ 0)
סעיף ג — תיאור מטרת הפעולה במשפט אחד

הפעולה מחזירה True אם ורק אם בכל איבר ברשימה ספרת האחדות שווה למקומו (האינדקס), אחרת False.

סעיף ד — הפעולה IsInArray
def IsInArray(lst, num): for item in lst: if item == num: return True return False

עבור [2,3,5,6,2,4,2]: IsInArray(lst, 2)True, ו-IsInArray(lst, 7)False.

True False
שאלה 10 (Python) — הזמנת חולצות וסווצ'רים
מקבילה לשאלה 7: אותה תוכנית בתחביר Python
התוכנית המלאה
shirts = 0 sweatshirts = 0 choice = int(input()) while choice == 1 or choice == 2: if choice == 1: shirts += 1 # חולצה else: sweatshirts += 1 # סווצ'ר choice = int(input()) total = shirts * 30 + sweatshirts * 50 print("Shirts:", shirts) print("Sweatshirts:", sweatshirts) print("Total:", total)
💡
דוגמה: עבור הקלט 1, 2, 1, 1, 2, 0 — 3 חולצות, 2 סווצ'רים, וסך הכול 190 ₪.
שאלה 11 (Python) — המחלקה ListClass
מקבילה לשאלה 8: אותה מחלקה בתחביר Python
סעיף א1 — הפלט של קטע הקוד

עבור ListClass(10, 21, 4) — הסדרה 10, 14, 18. כל קריאה מחזירה (number - 10) % 4 == 0:

False True False True False
סעיף א2 — תיאור מטרת הפעולה במשפט אחד

הפעולה מחזירה True אם המספר הנתון שייך לסדרה החשבונית המתחילה ב-start ובעלת הפרש קבוע step, אחרת False.

סעיף ב — הפעולה printRange
def printRange(self): for i in range(self.start, self.end + 1, self.step): print(i, end=" ") print()

עבור ListClass(5, 12, 2):

5 7 9 11
סעיף ג — הפעולה getNumberByIndex
def getNumberByIndex(self, index): return self.start + index * self.step

עבור ListClass(5, 12, 2) ו-getNumberByIndex(1): 5 + 1×2 = 7.

7
🏠