Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
gf_informatik:suchen_und_sortieren [2026-05-02 06:20] – [Aufgabe A4: Maximal sächsehalb Jahr lang] hofgf_informatik:suchen_und_sortieren [2026-05-04 17:32] (aktuell) hof
Zeile 69: Zeile 69:
 Zum Beispiel finden wir für den Index `1` Anela in `names[1]` und ihre Nummer 0790000001 in `numbers[1]`. Zum Beispiel finden wir für den Index `1` Anela in `names[1]` und ihre Nummer 0790000001 in `numbers[1]`.
  
-<bottom-editor autorun>+<bottom-exercise showsolution id="a2" timeout="180"> 
 +<template data-type="starter">
 names = ['Aja', 'Anela', 'Arwen', 'Isra', names = ['Aja', 'Anela', 'Arwen', 'Isra',
          'Juno', 'Kaida', 'Loelia', 'Luna',          'Juno', 'Kaida', 'Loelia', 'Luna',
Zeile 78: Zeile 79:
            '0790000008', '0790000009', '0790000010', '0790000011',            '0790000008', '0790000009', '0790000010', '0790000011',
            '0790000012', '0790000013', '0790000014', '0790000015']            '0790000012', '0790000013', '0790000014', '0790000015']
 +</template>
 +<template data-type="test">
 +assert linear_search(names, 'Lyanna') == 9
 +assert linear_search([1, 2, 3], 3) == 2
 +</template>
 +<template data-type="solution">
 +names = ['Aja', 'Anela', 'Arwen', 'Isra',
 +         'Juno', 'Kaida', 'Loelia', 'Luna',
 +         'Lumiel', 'Lyanna', 'Meyra', 'Miriel',
 +         'Narcissa', 'Nisha', 'Runa', 'Yuna']
 +numbers = ['0790000000', '0790000001', '0790000002', '0790000003',
 +           '0790000004', '0790000005', '0790000006', '0790000007',
 +           '0790000008', '0790000009', '0790000010', '0790000011',
 +           '0790000012', '0790000013', '0790000014', '0790000015']
 +
 +def linear_search(l, v):
 +    for i in range(len(l)):
 +        if l[i] == v:
 +            return i
 +    return None
 +
 +index = linear_search(names, 'Lyanna')
 +print(numbers[index])
 +</template>
 </bottom-editor> </bottom-editor>
  
Zeile 92: Zeile 117:
   - Ausserhalb der Funktion: Lese nun aus der **anderen** Liste das Element mit dem eben ermittelten Index aus.   - Ausserhalb der Funktion: Lese nun aus der **anderen** Liste das Element mit dem eben ermittelten Index aus.
 ++++ ++++
- 
- 
-<nodisp 1> 
-++++Lösung| 
-<bottom-editor> 
-def linear_search(l, v): 
-    for i in range(len(l)): 
-        if l[i] == v: 
-            return i 
-    return None 
- 
-index = linear_search(names, 'Lyanna') 
-print(numbers[index]) 
-</bottom-editor> 
-++++ 
-</nodisp> 
  
 === Aufgabe A3: Zäh Millione Kombinatione === === Aufgabe A3: Zäh Millione Kombinatione ===
 +<bottom-exercise id="a3" timeout="180" zip="https://bottom.ch/ksr/1m/null79.py.zip">
 +<div slot="prompt">
 Für das kleine Telefonbuch oben ist es nicht so wichtig, wie schnell der Such-Algorithmus ist. Was aber, wenn wir wirklich alle 10 Millionen Kombinationen durchprobieren? Für das kleine Telefonbuch oben ist es nicht so wichtig, wie schnell der Such-Algorithmus ist. Was aber, wenn wir wirklich alle 10 Millionen Kombinationen durchprobieren?
  
-Für diese Aufgabe benötigst du zusätzlich eine weitere Python-Datei, `null79.py`, die wir in unserem selbstgeschriebenen Code importieren. Dazu verwenden wir ähnlich wie zu Turtle-Zeiten das Schlüsselwort `import`. +<p>Für diese Aufgabe benötigst du zusätzlich eine weitere Python-Datei, <code>null79.py</code>, die wir in unserem selbstgeschriebenen Code importieren. Dazu verwenden wir ähnlich wie zu Turtle-Zeiten das Schlüsselwort <code>import</code>.
- +
-Verwende deine `linear_search()` Funktion, um die richtige Telefonnummer von Lyanna herauszufinden. Wie lange dauert die Suche?+
  
-<bottom-editor timeout="180" zip="https://sca.ksr.ch/lib/exe/fetch.php?media=gf_informatik:programmieren_i:null79.py.zip" session="10m">+<p>Verwende deine <code>linear_search()</code> Funktion, um die richtige Telefonnummer von Lyanna herauszufindenWie lange dauert die Suche? 
 +</div> 
 +<template data-type="starter">
 from null79 import names, numbers from null79 import names, numbers
  
Zeile 123: Zeile 134:
 tel = numbers[index] tel = numbers[index]
 print(f'Die Telefonnummer von {name} ist {tel}') print(f'Die Telefonnummer von {name} ist {tel}')
-</bottom-editor> +</template
- +<template data-type="solution">
-Oben ist die Datei `null79.py` bereits im gleichen Ordner hinterlegt - wenn du den Code in TigerJython oder VisualStudioCode ausführst, muss die Datei ebenfalls dort abgespeichert werden. +
- +
-== Mit WebTigerPython == +
-Am einfachsten geht das mit [[https://wtp.ethz.ch/#?code=NobwRAdghgtgpmAXGANgezQBwHSYJ5gA0YAJlAC5RJgCMADAEyE00AszLzdAnIQMxMW7FgHYOdcVxod2ArgFYuvFoM5COANn6C6Y-ovoAOLse6LueusaOEzm23poHdHRXPpdLz61dvnLPqYGNFoWrp7hrBKsNGAAvoTg0PDUMFAAlhC4BMRklNQAZgBOaDAABBAArigoItxl6TCYaEXkFbBwAM6EFZUwAEZwRZ0AOhBlY5kkcAAeZQC8ZawMZWUAxGUAKgDyACLbiGUAypUAxgAWcGXT4wCSENNzAG5o4wAyeFAQ0ACEY8lXRYAzrAKazAC6Y3IcBQECKC16AyGILBM0hEEwRUy5AAFAUAOS7dJXTYwuAFV5VGDweEvcYgAFxBqdNogaGwopxfEASniiUgHWoVRqdWyRFIFCoyDWPwA9JVOkVZf1MrL8ORzq8xhsALQAKh1ZVOaBImQA5odKuQCoYyvqdZMmi02uRGnAeiysRAzT00hqxmNTigoJ1OsdMFBhnAAAqaiBwABCGAA1jjuYgxqtViMwDmcwBBMqdCNRsoodIssoaihlIpwciVIoQMMaq51p7IuAkBo3V3kPBlCnwqBlM3pDvjVE9THk9IzLtlADu6X94yzWZHM4Kc-wedzubXq2mBTKAH1T5kV-ecZ0YQVp3XtzN5jndNwc-nM-us7eUAVsKeKBwN6GoIvQdAQZBX7fkWd4AVuc4IghMwBoe1zkmegHAdev4FJ-aHrnWDZNrBf4AUBIHnKh67HphZr1iucAwDhd49Ok-Ewas6Qnv2mBwDi7HMhUaBtNiGYEZxRQZLeZT3I8ACiRQlEUOI5vcTxQOW3aoocOZlAA1EW5Aqex3LQd-3ENGUAA8ZR0OJnEWQZiwUTed5mRJXEnnQNmLOkNllsBbl_hxjlZkRjbjLh8GPohhlDn6OKubh3J2mUNBpekPSvnphmegJEC4n65zYOgZr0ElQUpdyNUGRMkAfuZhHSVccmzIpymqWAbVzGgVplGgJ5Sd6cC6WAdX5aZqFBiGYZHCWt5vBWuKhdm-4FkWC3umUmmYOcUCDK6pyaSgA6dM6C7lpW1ZtNM0JFDAl4sukx01AOEVNmGUBNasAKDi0ZRwFAFyjuOwENA8sw9LMpxwJgbRDjtsGnERZTJnAeCyhpKCVFcEbpEUu7rQeNEYeel7kCxf49BRZoah6cAo_Wp7o3gDNM5T2O4z00zBng8x0Kt37RaevNQAOixi3gP2rCLtOgS5wF01Rnmkf-p63hzLMYwimtEdr0uqyLevM1zgLI_rZsy2rAEvIuMJhos-JQHA6R9fi1si8azavF85CO2UwAg4jIOZEZXpmtgIanOk6SAWg9tFMdMmWSDEAiRDNunnbDvoo5IskH1_RAQH-L9CQBRmigMAYsM5Ae0bcGnhSNQJ8iusXSQwXqznKBhnlTeF5UxddB55m0eeFFU3hDmSfWkVZ_LKvruPZPxjMlO7fth3dzTIbkEL67BpWLn76VbcqR5jmWcf5DADqNDgpnIu950s9hbW88kV7rzndAhWjFVjfIKt9Uq2QYO_MKH0opN1ftbG--974MCfmHH-Pt_7-0gY5aBWc4GqxwSLFu6BE6AJXmhCe9F4xSWhKeAEu8GiHyzHuHMux6xDEehAZaL0ToDkoUMCgVxWztHgDtUSkM5j-WKKUKslwdoaXSMGEeO0UB7QOvWMogwhxXBNpzTSuMibMIgPAk8_l5iLGNozfWrMsFz2IjAsiGtLGmz0XAYxVlbIWK1tY6264WSRjaIsOgPiszAW7OYpuOiDbBNWFvNRATw7mijp0GOcdKiYD4knEMcBgD2U9Ik6OsdTxpIycnOA2BUTdwApEs2OTwTcjzh_MsCJXKxMOlfTiDtRrRKMv43WESnGU1ZnVGg3TQnNKqu5bprT1HmOMvk5JhTilDFKcAPJ3okkpKKek5ZWTyniMqY4rWNS6B1P0jQRADSP7-R1OEhxkShmGRGUY1WGx5rljaKsygrREChJQYVNATS4AAEdKiaR1J0dIAAvBc2IhjYzDINJGS8BongOn1MR91sayhQNbFA4yIA4mmQfa2YSyjFWwLDBROIcRjMNH41oqVZRlnaTBVECJsQCTKLKJlJAWXfj-osIloJxGXKcn5MoABSa41FOKLnOAoq43YAB86UbEwSJX0hx69N4qO3vWHEAI-WOTxYrAlRKjWcVJeSylKAcTdiZSgC1rLxHssKpy7l1wnX8o6M5ZRqjDrCseKK6-7LJXSvwV_cYAIZVHjJqeeifYmLTzYow1Yrp4DYE6EBOGBypZessrxfigkKzCQxWq78UkKytXER1FoXV1KaXSNpcRY0JrGQEjVNx_lbL2W6f5fSpru75pMQsW56t7kY3LYRSNWdqkuOtgQpufDqFwFoR0DtqEqSDGGAieakZbyxleImFMXU3yNW-B0AOe6oxLRZDicCkEII9D4GYPghhlg9HxB8L40AeTxHBEAA|diesem WebtigerPython-Link]] - die Datei ist hier bereits hinterlegt. +
- +
-++++ Mit TigerPython / VisualStudioCode :| +
-Lade die Datei [[https://kantonsschuleromanshorn.sharepoint.com/:u:/s/FSInformatik/EQpO02ZUBldHmbYjEgKka_YBeaBaTHf1IUd-lrtYrdZJkA?download=1|null79.py]] herunter und speichere sie im selben Ordner wie dein Code. +
- +
-Du kannst das Telefonbuch wie folgt importieren und den Namen für eine Telefonnummer herausfinden. Der Code muss im gleichen Ordner wie `null79.py` abgespeichert werden! +
- +
-<code python> +
-from null79 import names, numbers +
- +
-index = 42  # TODO: Suche den Index von Lyanna! +
-name = names[index] +
-tel = numbers[index] +
-print(f'Die Telefonnummer von {name} ist {tel}'+
-</code> +
-++++ +
-== Aufgabe == +
- +
- +
-<nodisp 1> +
-++++Lösung mit Code| +
-<bottom-editor timeout="180" zip="https://sca.ksr.ch/lib/exe/fetch.php?media=gf_informatik:programmieren_i:null79.py.zip" session="10m">+
 from null79 import names, numbers from null79 import names, numbers
  
Zeile 168: Zeile 154:
     print("Wie isch das nume passiert, hei si gseit.")     print("Wie isch das nume passiert, hei si gseit.")
     print("Hueresiech, hei si gseit, ey")     print("Hueresiech, hei si gseit, ey")
-</bottom-editor>+</template> 
 +</bottom-exercise> 
 + 
 +Oben ist die Datei `null79.py` bereits im gleichen Ordner hinterlegt - wenn du den Code in TigerJython oder VisualStudioCode ausführst, muss die Datei ebenfalls dort abgespeichert werden. 
 + 
 +++++ Mit TigerPython / VisualStudioCode :| 
 +Mit [[https://wtp.ethz.ch/#?code=NobwRAdghgtgpmAXGANgezQBwHSYJ5gA0YAJlAC5RJgCMADAEyE00AszLzdAnIQMxMW7FgHYOdcVxod2ArgFYuvFoM5COANn6C6Y-ovoAOLse6LueusaOEzm23poHdHRXPpdLz61dvnLPqYGNFoWrp7hrBKsNGAAvoTg0PDUMFAAlhC4BMRklNQAZgBOaDAABBAArigoItxl6TCYaEXkFbBwAM6EFZUwAEZwRZ0AOhBlY5kkcAAeZQC8ZawMZWUAxGUAKgDyACLbiGUAypUAxgAWcGXT4wCSENNzAG5o4wAyeFAQ0ACEY8lXRYAzrAKazAC6Y3IcBQECKC16AyGILBM0hEEwRUy5AAFAUAOS7dJXTYwuAFV5VGDweEvcYgAFxBqdNogaGwopxfEASniiUgHWoVRqdWyRFIFCoyDWPwA9JVOkVZf1MrL8ORzq8xhsALQAKh1ZVOaBImQA5odKuQCoYyvqdZMmi02uRGnAeiysRAzT00hqxmNTigoJ1OsdMFBhnAAAqaiBwABCGAA1jjuYgxqtViMwDmcwBBMqdCNRsoodIssoaihlIpwciVIoQMMaq51p7IuAkBo3V3kPBlCnwqBlM3pDvjVE9THk9IzLtlADu6X94yzWZHM4Kc-wedzubXq2mBTKAH1T5kV-ecZ0YQVp3XtzN5jndNwc-nM-us7eUAVsKeKBwN6GoIvQdAQZBX7fkWd4AVuc4IghMwBoe1zkmegHAdev4FJ-aHrnWDZNrBf4AUBIHnKh67HphZr1iucAwDhd49Ok-Ewas6Qnv2mBwDi7HMhUaBtNiGYEZxRQZLeZT3I8ACiRQlEUOI5vcTxQOW3aoocOZlAA1EW5Aqex3LQd-3ENGUAA8ZR0OJnEWQZiwUTed5mRJXEnnQNmLOkNllsBbl_hxjlZkRjbjLh8GPohhlDn6OKubh3J2mUNBpekPSvnphmegJEC4n65zYOgZr0ElQUpdyNUGRMkAfuZhHSVccmzIpymqWAbVzGgVplGgJ5Sd6cC6WAdX5aZqFBiGYZHCWt5vBWuKhdm-4FkWC3umUmmYOcUCDK6pyaSgA6dM6C7lpW1ZtNM0JFDAl4sukx01AOEVNmGUBNasAKDi0ZRwFAFyjuOwENA8sw9LMpxwJgbRDjtsGnERZTJnAeCyhpKCVFcEbpEUu7rQeNEYeel7kCxf49BRZoah6cAo_Wp7o3gDNM5T2O4z00zBng8x0Kt37RaevNQAOixi3gP2rCLtOgS5wF01Rnmkf-p63hzLMYwimtEdr0uqyLevM1zgLI_rZsy2rAEvIuMJhos-JQHA6R9fi1si8azavF85CO2UwAg4jIOZEZXpmtgIanOk6SAWg9tFMdMmWSDEAiRDNunnbDvoo5IskH1_RAQH-L9CQBRmigMAYsM5Ae0bcGnhSNQJ8iusXSQwXqznKBhnlTeF5UxddB55m0eeFFU3hDmSfWkVZ_LKvruPZPxjMlO7fth3dzTIbkEL67BpWLn76VbcqR5jmWcf5DADqNDgpnIu950s9hbW88kV7rzndAhWjFVjfIKt9Uq2QYO_MKH0opN1ftbG--974MCfmHH-Pt_7-0gY5aBWc4GqxwSLFu6BE6AJXmhCe9F4xSWhKeAEu8GiHyzHuHMux6xDEehAZaL0ToDkoUMCgVxWztHgDtUSkM5j-WKKUKslwdoaXSMGEeO0UB7QOvWMogwhxXBNpzTSuMibMIgPAk8_l5iLGNozfWrMsFz2IjAsiGtLGmz0XAYxVlbIWK1tY6264WSRjaIsOgPiszAW7OYpuOiDbBNWFvNRATw7mijp0GOcdKiYD4knEMcBgD2U9Ik6OsdTxpIycnOA2BUTdwApEs2OTwTcjzh_MsCJXKxMOlfTiDtRrRKMv43WESnGU1ZnVGg3TQnNKqu5bprT1HmOMvk5JhTilDFKcAPJ3okkpKKek5ZWTyniMqY4rWNS6B1P0jQRADSP7-R1OEhxkShmGRGUY1WGx5rljaKsygrREChJQYVNATS4AAEdKiaR1J0dIAAvBc2IhjYzDINJGS8BongOn1MR91sayhQNbFA4yIA4mmQfa2YSyjFWwLDBROIcRjMNH41oqVZRlnaTBVECJsQCTKLKJlJAWXfj-osIloJxGXKcn5MoABSa41FOKLnOAoq43YAB86UbEwSJX0hx69N4qO3vWHEAI-WOTxYrAlRKjWcVJeSylKAcTdiZSgC1rLxHssKpy7l1wnX8o6M5ZRqjDrCseKK6-7LJXSvwV_cYAIZVHjJqeeifYmLTzYow1Yrp4DYE6EBOGBypZessrxfigkKzCQxWq78UkKytXER1FoXV1KaXSNpcRY0JrGQEjVNx_lbL2W6f5fSpru75pMQsW56t7kY3LYRSNWdqkuOtgQpufDqFwFoR0DtqEqSDGGAieakZbyxleImFMXU3yNW-B0AOe6oxLRZDicCkEII9D4GYPghhlg9HxB8L40AeTxHBEAA|diesem WebtigerPython-Link]] ist die Datei bereits hinterlegt.
  
 +Für VisualStudioCode:
 +
 +Lade die Datei [[https://kantonsschuleromanshorn.sharepoint.com/:u:/s/FSInformatik/EQpO02ZUBldHmbYjEgKka_YBeaBaTHf1IUd-lrtYrdZJkA?download=1|null79.py]] herunter und speichere sie im selben Ordner wie dein Code.
 ++++ ++++
-</nodisp> 
  
 === Aufgabe A4: Maximal sächsehalb Jahr lang === === Aufgabe A4: Maximal sächsehalb Jahr lang ===
Zeile 178: Zeile 172:
 Um in Python die Zeit zu stoppen, kannst du das `time` Modul verwenden. Wie lange dauert die Suche für die `Lyanna`? Wie lange für `Annina` oder `Zoraya`? Weshalb der Unterschied? Um in Python die Zeit zu stoppen, kannst du das `time` Modul verwenden. Wie lange dauert die Suche für die `Lyanna`? Wie lange für `Annina` oder `Zoraya`? Weshalb der Unterschied?
  
-<bottom-editor id="stopwatch" timeout="180" zip="https://sca.ksr.ch/lib/exe/fetch.php?media=gf_informatik:programmieren_i:null79.py.zip" session="10m">+<bottom-exercise id="stopwatch" timeout="180" zip="https://bottom.ch/ksr/1m/null79.py.zip" session="10m"> 
 +<template data-type="starter">
 import time import time
 # Startzeitpunkt bestimmen # Startzeitpunkt bestimmen
Zeile 189: Zeile 184:
 # Ausgabe - das ':.1f' bewirkt die Darstellung mit einer Nachkommastelle # Ausgabe - das ':.1f' bewirkt die Darstellung mit einer Nachkommastelle
 print(f'Vergangene Zeit: {elapsed:.1f}s') print(f'Vergangene Zeit: {elapsed:.1f}s')
-</bottom-editor> +</template
- +<template data-type="solution">
-<nodisp 1> +
-++++Lösung| +
-<bottom-editor timeout="180" zip="https://sca.ksr.ch/lib/exe/fetch.php?media=gf_informatik:programmieren_i:null79.py.zip" session="10m">+
 from null79 import names, numbers from null79 import names, numbers
 import time import time
Zeile 212: Zeile 204:
 stopwatch('Lyanna') stopwatch('Lyanna')
 stopwatch('Zoraya') stopwatch('Zoraya')
-</bottom-editor> +</template
-++++ +</bottom-exercise> 
-</nodisp>+
  
 === Aufgabe A5: Umgekehrte Suche === === Aufgabe A5: Umgekehrte Suche ===
Zeile 225: Zeile 217:
 <nodisp 1> <nodisp 1>
 ++++Code| ++++Code|
-<bottom-editor zip="https://sca.ksr.ch/lib/exe/fetch.php?media=gf_informatik:programmieren_i:null79.py.zip" session="10m">+<bottom-editor timeout="180" zip="https://bottom.ch/ksr/1m/null79.py.zip" session="10m">
 idx = linear_search(numbers, '0791234567') idx = linear_search(numbers, '0791234567')
 print(names[idx]) print(names[idx])
  • gf_informatik/suchen_und_sortieren.1777702842.txt.gz
  • Zuletzt geändert: 2026-05-02 06:20
  • von hof