3. tēma: 3.1 Zarošanās un operatori

Tavs šīs stundas izaicinājums: Identificēt salīdzināšanas operatorus, izstrādāt koda zarošanās loģiku un pārbaudīt programmas lēmumu pieņemšanas plūsmu dažādās situācijās.

2.4.14. Izmanto algoritmu vadības struktūras (sazarojumi, cikli).

Teorija: Datora lēmumu pieņemšana

Lai programma darītu dažādas lietas atkarībā no situācijas, tiek izmantota Branching (Zarošanās). Dators pieņem lēmumus, pārbaudot, vai apgalvojums ir True (Patiess) vai False (Aplams).

Salīdzināšanas operatori

# Salīdzināšanas piemērs
print(5 == 5)   # Izvada: True
print(10 < 2)   # Izvada: False
print("Jānis" == "jānis") # Izvada: False (Reģistrjutīgs!)

if, elif un else struktūra

Lēmumu pieņemšanas ķēde darbojas no augšas uz leju. Tiklīdz atrodas pirmais True nosacījums, tas tiek izpildīts, bet pārējie tiek ignorēti.

# Zarošanās piemērs
punkti = 85
if punkti >= 90:
    print("Izcili!")
elif punkti >= 70:
    print("Labi!")
else:
    print("Jāmācās vēl.")

1. uzdevums: Vienkāršā izvēle (if/else)

Izmanto lietotāja ievadi un pamatnosacījumu, lai programma atbildētu ar vienu no diviem variantiem.

Izpildes soļi:

  1. VS Code izveido failu parbaude.py.
  2. Izveido mainīgo izvele un piešķir tam vērtību no: input("Izvēlies (akmens/skeres/papirs): ").
  3. Uzraksti nosacījumu: if izvele == "akmens": (neaizmirsti kolu : rindas beigās).
  4. Nākamajā rindā ar Indentation (Atkāpi - viens Tab vai 4 atstarpes) izvadi tekstu: "Akmens ir stabila izvēle!".
  5. Nākamajā rindā bez atkāpes raksti else: un zem tā ar atkāpi izvadi: "Tu izvēlējies kaut ko citu.".

2. uzdevums: Tiesnesis V1 (if/elif/else)

Paplašini zarošanās ķēdi, lai apstrādātu vairākus konkrētus iznākumus un vienu kļūdas stāvokli.

Izpildes soļi:

  1. Izveido failu tiesnesis_v1.py.
  2. Definē datora "izvēli" cietkodēti (Hardcoded): dators = "akmens".
  3. Pieprasi lietotāja ievadi mainīgajam cilveks.
  4. Izveido zarošanās ķēdi:
    • Ja cilveks ir vienāds ar dators, izvadi "Neizšķirts!".
    • Citādi ja (elif) cilveks ir vienāds ar "skeres", izvadi "Zaudējums! Akmens salauž šķēres.".
    • Citādi ja cilveks ir vienāds ar "papirs", izvadi "Uzvara! Papīrs ietin akmeni.".
  5. Pievieno else bloku, kas izvada brīdinājumu par nepareizi ievadītu vārdu.

3. uzdevums: Skaitļu duelis

Apvieno datu konvertāciju, salīdzināšanas operatorus lielumu noteikšanai un formatētu izvadi.

Izpildes soļi:

  1. Izveido failu skaitlu_duelis.py.
  2. Iegūsti divus skaitļus no lietotāja, konvertējot tos uz Integer (int).
  3. Izmanto if, lai pārbaudītu, vai pirmais skaitlis ir lielāks par (>) otro. Ja ir, izvadi starpību, izmantojot f-string (piem., Pirmais ir lielāks par {sk1 - sk2}).
  4. Izmanto elif, lai pārbaudītu, vai otrais ir lielāks par pirmo, un attiecīgi izvadi rezultātu.
  5. Izmanto else, lai apstrādātu situāciju, kad abi skaitļi ir pilnīgi vienādi.
  6. Iesūtīt uzdevuma github saiti e-klasē.

Papildus uzdevums: Piekļuves kontrole (Nested if)

Izmanto ligzdotu zarošanos (Nested if - viens nosacījums iekš cita), lai izveidotu divpakāpju pārbaudi.

Izpildes soļi:

  1. Izveido failu baze.py.
  2. Prasi lietotājam ievadīt savu vecumu (int).
  3. Ja vecums ir 18 vai vairāk, prasi ievadīt slepeno paroli (parole var būt definēta kodā, piem., "12345").
  4. Ja parole ir pareiza, izvadi "Piekļuve dota". Ja nepareiza - "Nepareiza parole".
  5. Ja jau sākotnējais vecums ir mazāks par 18, uzreiz izvadi "Piekļuve liegta vecuma ierobežojuma dēļ" (neveicot paroles pieprasīšanu).

Biežākās kļūdas (un kā tās labot):

Koda piemērs: Zarošanās plūsma

# Lietotāja ievade
vecums = int(input("Cik Tev gadu? "))

# Zarošanās pārbaude
if vecums >= 18:
    print("Tu esi pilngadīgs.") 
elif vecums > 0:
    print("Tu vēl esi nepilngadīgs.")
else:
    print("Kļūda: Vecums nevar būt negatīvs vai nulle!")
Cik Tev gadu? 15
Tu vēl esi nepilngadīgs.
⬅ Iepriekšējā stunda Nākamā stunda ➡