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