lehrkraefte:blc:informatik:glf20:programmieren:listen2kw

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:blc:informatik:glf20:programmieren:listen2kw [2020/11/03 11:35]
Ivo Blöchliger [Geldautomat]
lehrkraefte:blc:informatik:glf20:programmieren:listen2kw [2020/11/19 08:47] (current)
Ivo Blöchliger
Line 12: Line 12:
  
 anzahl = len(namen) anzahl = len(namen)
-print("name hat %d Elemente" % anzahl)+print("namen hat %d Elemente" % anzahl)
 </code> </code>
 </WRAP> </WRAP>
Line 29: Line 29:
 namen = ["Null", "Eins", "Zwei"] namen = ["Null", "Eins", "Zwei"]
 for i in range(len(namen)): for i in range(len(namen)):
-  print("name[%d] = %s" % (i,name[i]))+  print("namen[%d] = %s" % (i,namen[i]))
 </code> </code>
  
Line 121: Line 121:
 Erweitern Sie den Code nun so, dass auch Münzen ausbezahlt werden. Erweitern Sie den Code nun so, dass auch Münzen ausbezahlt werden.
 </WRAP> </WRAP>
 +
 +===== Array-Rätsel (Zusatzaufgabe) =====
 +Geben ist folgendes Array:
 +<code python array.py>
 +a = [58, 64, 2, 79, 92, 46, 80, 54, 50, 86, 72, 50, 84, 37, 76, 84, 14, 60, 99, 65, 66, 47, 28, 48, 38, 51, 17, 51, 6, 73, 20, 5, 83, 15, 43, 76, 93, 53, 65, 15, 91, 64, 86, 1, 63, 82, 96, 96, 35, 62, 37, 55, 51, 39, 96, 5, 24, 31, 23, 45, 75, 100, 81, 57, 67, 1, 55, 21, 80, 77, 89, 13, 75, 7, 49, 28, 31, 30, 41, 1, 57, 58, 75, 42, 14, 47, 64, 59, 9, 95, 59, 68, 74, 60, 99, 93, 39, 38, 65, 24]
 +</code>
 +Gesucht sind folgende Dinge (wenn es mehrere Lösungen geben sollte, ist immer nur die erste auszugeben)
 +  * Position und Wert des kleinsten und grössten Elements
 +  * Position und Länge der längsten Sequenz strikt aufsteigender Zahlen
 +  * Position und Länge der längsten Sequenz ungerader Zahlen
 +<code>
 +Minimum 1 bei Index 43
 +Maximum 100 bei Index 61
 +Aufsteigende Sequenz mit Länge 4, Start bei 33, Sequenz [15, 43, 76, 93]
 +Ungerade Sequenz mit Länge 6, Start bei 62, Sequenz [81, 57, 67, 1, 55, 21]
 +</code>
 +
 +<hidden Lösungsvorschläge>
 +<code python arraysuche.py>
 +a = [58, 64, 2, 79, 92, 46, 80, 54, 50, 86, 72, 50, 84, 37, 76, 84, 14, 60, 99, 65, 66, 47, 28, 48, 38, 51, 17, 51, 6, 73, 20, 5, 83, 15, 43, 76, 93, 53, 65, 15, 91, 64, 86, 1, 63, 82, 96, 96, 35, 62, 37, 55, 51, 39, 96, 5, 24, 31, 23, 45, 75, 100, 81, 57, 67, 1, 55, 21, 80, 77, 89, 13, 75, 7, 49, 28, 31, 30, 41, 1, 57, 58, 75, 42, 14, 47, 64, 59, 9, 95, 59, 68, 74, 60, 99, 93, 39, 38, 65, 24]
 +
 +minimum = a[0]  # Kleinster Wert
 +minpos=0        # Index vom kleinstem Wert
 +maximum = a[0]  # Grösster Wert
 +maxpos=0        # Index vom grössten Wert
 +
 +maxlen = 1      # Maximale Länge aufsteigender Sequenz
 +inclen = 1      # Aktuelle Länge der Sequenz
 +incpos = 0      # Startposition der längsten Sequenz
 +
 +oddlen = 0      # Aktuelle Länge ungerader Sequenz
 +oddpos = 0      # Startposition der längsten Sequenz
 +maxodd = 0      # Maximale Länge der Sequenz, die bis jetzt gefunden wurde.
 +
 +for i in range(len(a)):
 +    if a[i]<minimum:  # kleineres Element?
 +        minimum=a[i]
 +        minpos = i
 +    if a[i]>maximum:  # grösseres Element?
 +        maximum=a[i]
 +        maxpos = i
 +    if i>0 and a[i]>a[i-1]:  # Aufsteigend?
 +        inclen+=1
 +        if (inclen>maxlen):  # Besser als bereits gefunden?
 +            maxlen=inclen
 +            incpos = i-maxlen+1
 +    else:
 +        inclen=1       # Nicht aufsteigend, Beginn neuer Sequenz
 +    
 +    if a[i]%2==1:      # Ungerade?
 +        oddlen+=1
 +        if oddlen>maxodd:
 +            maxodd=oddlen
 +            oddpos = i-maxodd+1
 +    else:              # Gerade
 +        oddlen=0
 +        
 +print("Minimum %d bei Index %d" % (minimum, minpos))
 +print("Maximum %d bei Index %d" % (maximum, maxpos))
 +print("Aufsteigende Sequenz mit Länge %d, Start bei %d, Sequenz %s" % (maxlen, incpos, str(a[incpos:(incpos+maxlen)])))
 +print("Ungerade Sequenz mit Länge %d, Start bei %d, Sequenz %s" % (maxodd, oddpos, str(a[oddpos:(oddpos+maxodd)])))
 +
 +</code>
 +</hidden>
 +
  
  • lehrkraefte/blc/informatik/glf20/programmieren/listen2kw.1604399701.txt.gz
  • Last modified: 2020/11/03 11:35
  • by Ivo Blöchliger