Wie kann man eine For-Schleife programmieren, welches die ersten 100 Quadratzahlen aufsummiert?

5 Antworten

Hallo Eucartoonfan!

Ich habe keine Ahnung von C Sharp. Habe das mit Visual Basic programmiert. Vielleicht kannst Du die Struktur ja übernehmen?

Sub Makro1()

Dim a

For i = 1 To 100

   a = a + i ^ 2

Next i

ActiveCell.Formula = a

End Sub

Gruß Friedemann

Du nimmst eine Variable für die Summe, iterierst (mit einer Schleife) über alle Werte von 1 bis 100 und addierst in der Schleife eben die Quadratsumme immer auf die Summe drauf?

als Pseudocode, da ich die C# Syntax nicht kenne und nicht weiß, ob es (wie z.B. in python) auch kürzer geht - da ist das als Einzeiler möglich

sum = 0
for i from 1 to 100:
  sum += (i * i)

PeterKremsner  04.12.2020, 10:51

Einzeiler sind aus gründen der Lesbarkeit eh nicht all zu sauber, aber ja es würde zB mit Linq als Einzeiler gehn wobei die von dir geschrieben Variante schneller ist als die Linq Variante

1
xxxcyberxxx  04.12.2020, 10:54
@PeterKremsner
Einzeiler sind aus gründen der Lesbarkeit eh nicht all zu sauber

kann man sich drüber streiten. Ja, die Version oben ist gut zu lesen und je nach Komlexität sind Einzeiler schlechter zu lesen, aber mMn ist auch folgender Python-Einzeiler gut zu verstehen

result = sum(i*i for i in range(101))
1
PeterKremsner  04.12.2020, 10:58
@xxxcyberxxx

Ja der natürlich schon noch aber ich hab da in Python schon Dinge gesehen die jenseits von Gut und Böse waren.

Der Python Einzeiler kommt übrigens Nahe dem C# Linq Einzeiler wobei man aber sagen muss das Linq im Vergleich zum Mehrzeiler um einiges Langsamer ist.

1

Ich kenne nur c, nicht c# (verbessert grad, war Fehler drinnen)

main()
{
  int i;
  double a;
  double b;
  a=0;
  for(i=1;i<=100;i++)
  {
    b=(double)i;
    a+=b*b;
  }
  printf("%lf\n",a);
}


PeterKremsner  04.12.2020, 10:55

Warum machst du das mit double? Quadratzahlen von ganzen Zahlen sind wieder ganze Zahlen da brauchst du keine Gleitkommazahlen.

0

Hier die Logik - Es in Code umzuwandeln musst du selbst schaffen:

Summe = 0;
Für jede Zahl von 1 bis 100:
 summe = summe + zahl*zahl; 
Woher ich das weiß:Studium / Ausbildung – Bachelor in Informatik 👨🏻‍🎓

Syntax der geschriebenen Antworten in C# ist

int sum=0;
for(int i=1; i < 100; i++)
{
  sum += (i*i);
}

MrAmazing2  04.12.2020, 10:59

mach ihm doch nich die hausaufgaben :o

1
PeterKremsner  04.12.2020, 11:02
@MrAmazing2

Naja der Code stand ja schon da. Im Endeffekt kann er ja direkt den C Code kopieren und einfach nur das printf ersetzen.

1