Didaktika programovania 1

Textové reťazce

Marián Skrip

Predpoklady

  • premenné
  • cyklus s riadiacou premennou
  • cyklus s podmienkou
  • výpis do konzoly
  • koncept číselných sústav (desiatkova, štestnástková)

Cieľ

Cieľom tématického celku je, aby žiaci pochopili koncept textových reťazcov vo vybranom programovacom jazyku (ale aj všeobecne) a aby vedeli použiť formátovanie textu pri výpisoch.

Nové pojmy a poznatky

  • formátovanie textu
  • pozícia znaku (index)
  • podreťazec
  • metóda na reťazci

Motivácia

      Meno                   Priezvisko             Body
--------------------------------------------------------------------------------
      Jožko                  Mrkvička               52
      Anička                 Dušička                83
      Andrej                 Najlepší               99.5
      Peter                  Lajdák                 -15
      Petra                  Priemerná              50
"Jožko,Mrkvička,52\nAnička,Dušička,83\nAndrej,Najlepší,99.5\nPeter,Lajdák,-15\nPetra,Priemerná,50"

Elementárny príklad 1

Vytvor program, ktorý si od teba vypýta tvoje meno a vypíše do konzoly "Ahoj <tvoje meno>. Ako sa máš?".

meno = input("Ako sa voláš?\n")
print("Ahoj " + meno + ". Ako sa máš?")
print("Ahoj {}. Ako sa máš?".format(meno))
print(f"Ahoj {meno}. Ako sa máš?")

>3.6

Elementárny príklad 2

Vytvor program, ktorý si od teba vypýta dve čísla "a" a "b" a vypíše ich súčet ako "a + b = c"

a = int(input("Prvé číslo?\n"))
b = int(input("Druhé číslo?\n"))
print(str(a) + " + " + str(b) + " = " + str(a+b))
print("{} + {} = {}".format(a, b, a+b))
print(f"{a} + {b} = {a+b}")

>3.6

Elementárny príklad 2.1

Vytvor program, ktorý si od teba vypýta dve čísla "a" a "b" a vypíše ich súčet ako "a + b = c" ale v šestnástkovej sústave.

a = int(input("Prvé číslo?\n"))
b = int(input("Druhé číslo?\n"))
c = a + b

def do_sestnastkovej(x):
    vysledok = ""
    cifry = "0123456789abcdef"
    while x > 0:
        temp = x % 16
        vysledok = cifry[temp] + vysledok
        x //= 16

    return vysledok
        

print(do_sestnastkovej(a) + " + " + do_sestnastkovej(b) + " = " + do_sestnastkovej(a+b))
print("{:x} + {:x} = {:x}".format(a, b, a+b))
print(f"{a:x} + {b:x} = {a+b:x}")

>3.6

print(hex(a)[2:] + " + " + hex(b)[2:] + " = " + hex(a+b)[2:])

(Ne)elementárny príklad 3

Vytvor program, ktorý z textového reťazca vypíše znaky, ktoré nasledujú po veľkých písmenách.

vstup = """
toto je textOVý reťazec vYbraný tak aby niekToré písmená boli veľké a niektOré zasa malé
táto úloha môže ale nemusí byť triviáLna pRe žiakov.
"""

for i in range(len(vstup)):
    if vstup[i].isupper():
        print(vstup[i+1], end="")
print()

(Ne)elementárny príklad 4

Vytvor program, si opýta text a vypíše či sa daný podreťazec nachádza v inom reťazci aj bez medzier.

hladany_podretazec = input("Aký podreťazec hľadaš?\n")


vstup = """
toto je textOVý reťazec vYbraný tak aby niekToré písmená sú veľké a niektOré zasa boli malé
táto úloha môže ale nemusí byť triviáLna pRe žiakov.
"""

upraveny_vstup = vstup.replace(' ', '').lower()


print("Podreťazec '{}' sa v texte {}nachádza".format(
    hladany_podretazec, '' if hladany_podretazec in upraveny_vstup else 'ne'
))
print(f"Podreťazec '{hladany_podretazec}' sa v texte {'' if hladany_podretazec in upraveny_vstup else 'ne'}nachádza")

>3.6

Hodnotenie

Len ústné hodnotenie. Resp. čo zvládli, čo nezvládli, čo si majú ešte radšej pozrieť.

Ďakujem za pozornosť

Didaktika programovania 1

By Marián Skrip

Didaktika programovania 1

  • 22