Brauche bitte dringend Hilfe

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Mary
User
Beiträge: 2
Registriert: Freitag 23. Dezember 2022, 17:16

Aufgabe 1:
Basierend auf xy_array (hier: eine zuvor erstellte Definition)
finden Sie alle x-Werte deren zugehörige y-Werte >= 3 sind.

Aufgabe 2:
Es ist eine Liste gegeben: neue_liste=[0,1,2,3] und man soll mit Hilfe einer While-Schleife oder einer For-Schleife die Liste erweitern, sodass der nächste Eintrag jeweils die Summe aus dem letzten Eintrag (letzte Element der Liste) und dem vorvorletzten Eintrag darstellt.
Die Liste soll dann beendet werden, wenn der folgende Eintrag größer als 1000 ist. Als Tipp ist gegeben, dass der letzte Eintrag 872 sein sollte.
Benutzeravatar
snafu
User
Beiträge: 6872
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Und deine konkrete Frage lautet...?
Benutzeravatar
__blackjack__
User
Beiträge: 14067
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Ad Aufgabe 1: Für eine zuvor erstellte Definition von `xy_array`:

Code: Alles auswählen

result = xy_array["x"][xy_array["y"] >= 3]
Ad Aufgabe 2: Mal als Ansatz in CBM BASIC V2 auf einem VIC-20:

Code: Alles auswählen

10 DIM N(20)
20 FOR I=0 TO 3:N(I)=I:NEXT
30 N=N(I-1)+N(I-3)
40 IF N>1000 THEN 60
50 N(I)=N:I=I+1:GOTO 30
60 REM PRINT I
70 FOR J=0 TO I-1:PRINT N(J),:NEXT
Testlauf:

Code: Alles auswählen

RUN
 0          1
 2          3
 4          6
 9          13
 19         28
 41         60
 88         129
 189        277
 406        595
 872
READY.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Mary
User
Beiträge: 2
Registriert: Freitag 23. Dezember 2022, 17:16

Großartig, vielen Dank und schöne Weihnachtstage 🎄
Benutzeravatar
snafu
User
Beiträge: 6872
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Wenn eh schon Komplettlösungen gepostet werden:

Code: Alles auswählen

items = [0,1,2,3]
while (next_item := items[-1] + items[-3]) <= 1000:
    items.append(next_item)
print(items)
Benutzeravatar
DeaD_EyE
User
Beiträge: 1242
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Das ist nicht unbedingt besser, aber anders.

Code: Alles auswählen

from collections import deque
from operator import itemgetter


def kein_name(items):
    getter = itemgetter(-1, -3)
    window = deque(items)

    yield from window

    while (total := sum(getter(window))) <= 1000:
        window.append(total)
        window.popleft()
        yield total

Sachen zum Nachschlagen:
- https://docs.python.org/3/library/opera ... itemgetter
- https://docs.python.org/3/library/colle ... ions.deque
- https://docs.python.org/3/howto/functio ... generators

Frohe Weihnachten
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Antworten