Python: Liste mithilfe von while-Schleife ausdrücken

Erste Frage Aufrufe: 492     Aktiv: 09.11.2022 um 18:50

0

Gegeben ist folgendes Strukturgramm:

  • Deklaration und Initialisierung: are als Array = [5, 11, 3, 1, 10]
  • Wiederhole von i = 1 solange i < Anzahl der Elemente des Arrays arr, Schrittweite 1 -> Zuweisung arr[i] = arr [i-1] + 1
  • Ausgabe: arr

Ich müsste das in eine Liste eintragen mit den Spalten Durchgang, i und arr. Statt das handschriftlich selbst zu rechnen, würde ich das gerne am PC machen lassen (als Python-Code natürlich), aber ich kriege es nicht hin. Wäre hilfreich, wenn es jemand als Python Code zeigen kann.

Diese Frage melden
gefragt

Punkte: 10

 

1

Hallo user037b03, ich könnte (nur) eine Lösung in C anbieten. Interessiert? Gruß jobe

  ─   jobe 08.11.2022 um 08:06

Wäre tatsächlich interessant zu sehen, nötig wäre es aber nicht. lg

  ─   user037b03 09.11.2022 um 00:38
Kommentar schreiben
2 Antworten
1

Hallo user037b03, hier in C. An der Ausgabeformatierung (printf) kann man noch "arbeiten". Ich habe mal nur die Standardausgabefunktion von C benutzt. Der sizeof() liefert die Anzahl Bytes. Da ich das Array als int definiert habe muss man, um die Anzahl Elemente zu bekommen, die Anzahl aller Bytes durch die Anzahl eines Elements teilen. Ich hätte also auch arr[2] nehmen können. Wenn das Array vom Typ char wäre bräuchte man die Rechenoperation nicht. In C kannst du ein Array "unvollständig" definieren. Der Compiler macht es dann so groß wie du es initialisierst. Das Programm läuft also auch noch korrekt wenn du noch 10 Werte dazu definierst. Es ist auch erlaubt die Schleifenvariable direkt in der FOR Schleife zu definieren. Ob das nun ein "guter" Stil ist, ist Ansichtssache. C lässt einem viel Freiheiten - manchmal auch zu viel. Gruß jobe

int arr[]={5,11,3,1,10};
int main(void)
{
      for (unsigned int i=1; i<sizeof(arr) / sizeof(arr[0]); i++)
      {
          arr[i] = arr[i-1]+1;
          printf("Durchgang: %d Wert: %d", i, arr[i]);
      }
}
Diese Antwort melden
geantwortet

Sonstiger Berufsstatus, Punkte: 505

 

Kommentar schreiben

1

Und jetzt noch als while Schleife - sorry, hatte ich überlesen, und noch mit einer kleinen Formatkorrektur Gruß jobe

int i = 1;
while (i < sizeof(arr) / sizeof(arr[0]))
{
    arr[i] = arr[i - 1] + 1;
    printf("Durchgang: %d Wert: %d\n\r", i, arr[i]);
    i++;
}
Diese Antwort melden
geantwortet

Sonstiger Berufsstatus, Punkte: 505

 

Kommentar schreiben