lehrkraefte:sbt:informatik:glf22:python:little-programming-tasks

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lehrkraefte:sbt:informatik:glf22:python:little-programming-tasks [2022/12/09 08:54]
Karlheinz Schubert [Vokabeltrainer]
lehrkraefte:sbt:informatik:glf22:python:little-programming-tasks [2022/12/09 22:45] (current)
Karlheinz Schubert
Line 24: Line 24:
 <hidden Hinweis3> <hidden Hinweis3>
 <code python> <code python>
-c_unicode ord("c"+abc ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 
-C_unicode = ord("C"+       'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
-print("Unicode von 'c' ="c_unicode) +
-print("Unicode von 'C="C_unicode)+
  
-character_65 chr(65+shift int(input("Offset: ")
-character_100 chr(220) + 
-print("Unicode 65 steht für", character_65+while True: 
-print("Unicode 100 steht für", character_100) +    quelltext input("Quelltext: ") 
-# ausserhalb des englischen Alphabeths+    if len(quelltext) == 0: 
-Ue_unicode ord("Ü"+        break 
-print("Unicode von 'Ü' =", Ue_unicode+    code = "" 
-character_220 chr(220+    for buchstabe in quelltext
-print("Unicode 220 steht für", character_220)+        index abc.index(buchstabe
 +        indexCode = index + shift 
 +        # if indexCode > len(abc) - 1: 
 +        #     indexCode -len(abc
 +        indexCode indexCode % len(abc
 +        code += abc[indexCode] 
 +    print(code)
 </code> </code>
 </hidden> </hidden>
- 
- 
 ---- ----
 <hidden Expertenaufgabe> <hidden Expertenaufgabe>
Line 59: Line 61:
   * Ergänze das Programm so, dass du nach dem Dateinamen gefragt wirst und beliebig viele Dateien nacheinander verschlüsseln kannst.   * Ergänze das Programm so, dass du nach dem Dateinamen gefragt wirst und beliebig viele Dateien nacheinander verschlüsseln kannst.
 </hidden> </hidden>
 +<hidden Hinweis3>
 +  * Möglichkeit zur Verschlüsselung von beliebigen UniCode Zeichen
 +<code python>
 +c_unicode = ord("c")
 +C_unicode = ord("C")
 +print("Unicode von 'c' =", c_unicode)
 +print("Unicode von 'C' =", C_unicode)
  
 +character_65 = chr(65) 
 +character_100 = chr(220) 
 +print("Unicode 65 steht für", character_65) 
 +print("Unicode 100 steht für", character_100) 
 +# ausserhalb des englischen Alphabeths: 
 +Ue_unicode = ord("Ü"
 +print("Unicode von 'Ü' =", Ue_unicode) 
 +character_220 = chr(220) 
 +print("Unicode 220 steht für", character_220) 
 +</code> 
 +</hidden>
 </WRAP> </WRAP>
  
Line 67: Line 86:
 <WRAP center round todo> <WRAP center round todo>
 Wenn du nach einigen Prüfungen Noten hast und einen bestimmten Durchschnitt erreichen möchtest, dann kannst du die ganz leicht ausrechnen (lassen), welche Note du als nächstes schreiben musst. Wenn du nach einigen Prüfungen Noten hast und einen bestimmten Durchschnitt erreichen möchtest, dann kannst du die ganz leicht ausrechnen (lassen), welche Note du als nächstes schreiben musst.
-   +  Schreibe ein Programm, dass deine bisherigen Noten in einem Feld enthält, dich nach dem gewünschten Durchschnitt fragt und dann die Mindesnote ausgibt, die du im nächsten Test erreichen solltest.  
-* (a) Schreibe ein Programm, dass deine bisherigen Noten in einem Feld enthält, dich nach dem gewünschten Durchschnitt fragt und dann die Mindesnote ausgibt. +  - Verbessere das Programm so, dass du zusätzlich eingeben kannst, wieviele Tests noch anstehen, also wie viele Noten du noch bekommen kannst.
  
-(bVerbessere das Programm so, dass du zusätzlich eingeben kannst, wieviele Tests noch anstehen, also wie viele Noten du noch bekommen kannst.+<hidden Hinweis1> 
 +<code python> 
 +while True: 
 +    Eingabe = input('Gewünschter Schnitt: ') 
 +    if len(Eingabe) == 0: 
 +        break 
 +    # Umwandlung der Texteingabe in eine Dezimalzahl: 
 +    WunschNote = float(Eingabe) 
 +</code> 
 +</hidden>
  
 +<hidden Hinweis2>
 +<code python>
 +Noten = [4.5, 5, 3.75, 5.5]
 +Durchschnitt_ungerundet = sum(Noten)/len(Noten)
 +Durchschnitt = round(sum(Noten)/len(Noten), 2)
 +</code>
 +</hidden>
 </WRAP> </WRAP>
  
Line 81: Line 116:
     Vokabeln = [     Vokabeln = [
        "lesen","read",         "lesen","read", 
-       "Apfel","Alple",+       "Apfel","apple",
        "geben","give"        "geben","give"
     ]     ]
Line 97: Line 132:
 <hidden Hinweis2> <hidden Hinweis2>
 <code python> <code python>
-Antwort = input(f'Übersetzte "{Vokabel}": ')+Antwort = input(f'Übersetze "{Vokabel}": ')
 </code> </code>
 </hidden> </hidden>
 +----
 <hidden Expertenaufgabe1> <hidden Expertenaufgabe1>
   * Baue das Programm so um, dass du die Übersetzungsrichtung wählen kannst.   * Baue das Programm so um, dass du die Übersetzungsrichtung wählen kannst.
Line 108: Line 144:
 <hidden Expertenaufgabe2> <hidden Expertenaufgabe2>
   * Erweitere das Programm so, dass du es für mehr als zwei Sprachen verwenden kannst.    * Erweitere das Programm so, dass du es für mehr als zwei Sprachen verwenden kannst. 
 +</hidden>
 +<hidden Lösung>
 +<code python>
 +"""
 +Vokabeltrainer
 +"""
 +from random import randint
 +
 +Vokabeln = [
 +    'lesen', 'read',
 +    'Apfel', 'apple',
 +    'geben', 'give',
 +    'lächeln', 'smile',
 +    'rennen', 'run'
 +]
 +Richtige = []
 +Zaehler_richtig = 0
 +Zaehler_falsch = 0
 +while True:
 +    Mode = input('de - Deutsch -> Englisch\ned - Englisch -> Deutsch: ')
 +    if Mode == 'ed' or Mode == 'de':
 +        break
 +    print('Unbekannter Mode, versuche es noch einmal!')
 +
 +while True:
 +    index = randint(0, len(Vokabeln)//2 - 1)
 +    #print(f'{index} of {len(Vokabeln)//2 - 1}')
 +    if index in Richtige:
 +        if len(Richtige)==len(Vokabeln)//2:
 +            break
 +        continue
 +    deutsch = Vokabeln[2*index]
 +    englisch = Vokabeln[2*index+1]
 +    if Mode == 'de':
 +        Frage = deutsch
 +        Antwort = englisch
 +    else:
 +        Frage = englisch
 +        Antwort = deutsch
 +    Test = input(f'Übersetze "{Frage}" ▶ ')
 +    if len(Test) == 0:
 +        break
 +    if Antwort == Test:
 +        print('richtig')
 +        Zaehler_richtig += 1
 +        Richtige.append(index)
 +    else:
 +        print('falsch')
 +        Zaehler_falsch += 1
 +
 +print(f'Du hattest {Zaehler_richtig} richtige und {Zaehler_falsch} falsche {"Antwort" if Zaehler_falsch==1 else "Antworten"}.')
 +print('fertig')
 +
 +</code>
 </hidden> </hidden>
 </WRAP> </WRAP>
  • lehrkraefte/sbt/informatik/glf22/python/little-programming-tasks.1670572448.txt.gz
  • Last modified: 2022/12/09 08:54
  • by Karlheinz Schubert