Entwickler-Ecke

Programmiersprachen (Server) - php Funktion Summe der ersten n Zahlen


annemaria 1404 - Di 22.01.13 20:56
Titel: php Funktion Summe der ersten n Zahlen
ich bin es noch mal....

Wir sollen nun eine php Funktion programmieren, die die Summe der ersten n Zahlen errechnet.

Also der Nutzer gibt ne 5 ein und das Programm rechnet dann 1+2+3+4+5=15 und gibt das Ergebnis aus.

Lösungsansatz:


PHP-Quelltext
1:
2:
3:
<? php
function summe($x)
{for i=1 ; $i==$x ; $i++


ab hier weiß ich nicht mehr weiter....kann mir jemand dabei helfen?

Moderiert von user profile iconChristian S.: PHP-Tags hinzugefügt


Christian S. - Di 22.01.13 21:21

Also, die Schleife stimmt ja so schon mal nicht.

Zum einen muss es $i und nicht einfach i heißen, außerdem soll die Bedingung in der Schleife ja nicht aussagen, wann diese abgebrochen wird, sondern wann die Schleife weiterlaufen soll!


Narses - Di 22.01.13 23:37

Moin!

user profile iconannemaria 1404 hat folgendes geschrieben Zum zitierten Posting springen:
Wir sollen nun eine php Funktion programmieren, die die Summe der ersten n Zahlen errechnet.

Also der Nutzer gibt ne 5 ein und das Programm rechnet dann 1+2+3+4+5=15 und gibt das Ergebnis aus.
Dein Lehrer wird sich das sicher nicht so vorgestellt haben 8) (und das richtig witzige ist, dass sich der Lehrer des Erfinders das auch nicht so vorgestellt hat :lol:), aber da steht nix von einer Schleife, also geht es auch so: :D

PHP-Quelltext
1:
2:
3:
4:
5:
6:
7:
<?php
  function sum1ton($i) {
    return (1 +$i) *$i /2;
  }

  echo sum1ton(5); // -> 15
?>

cu
Narses


annemaria 1404 - Mi 23.01.13 11:57

Danke für den Lösungsansatz aber wie du schon geschrieben hast, soll ja die Berechnung nicht nur für 5 sondern für jede x beliebige Zahl durchgeführt werden können.

Somit benötige ich auf alle fälle eine Schleife. Wenn ich mich nicht irre eine Kopfgesteuerte bzw eine Zählschleife. Mein Problem besteht in der Formulierung der Schleife da seh ich noch nicht durch.

Folgende Lösung hab ich mir überlegt:

PHP-Quelltext
1:
2:
3:
4:
5:
6:
7:
<?php
function summe ()
{$summe=0
 for ($i=1$i<=$eingabe$i++)
  {$summe = $summe + $i}
 return $summe}
?>


Moderiert von user profile iconNarses: PHP-Tags hinzugefügt


Narses - Mi 23.01.13 12:12

Moin!

user profile iconannemaria 1404 hat folgendes geschrieben Zum zitierten Posting springen:
Danke für den Lösungsansatz aber wie du schon geschrieben hast, soll ja die Berechnung nicht nur für 5 sondern für jede x beliebige Zahl durchgeführt werden können.
Ähm, wenn ich fragen darf, was ist das für eine Lehranstalt, in der du dich da aufhältst? Und welcher Jahrgang? :gruebel:

user profile iconannemaria 1404 hat folgendes geschrieben Zum zitierten Posting springen:
Somit benötige ich auf alle fälle eine Schleife.
Da du es offensichtlich nicht bemerkt hast: das ist eine allgemeingültige Lösung für die Summe der Zahlen von 1 bis n, also eine völlig korrekte Lösung für die Aufgabe (wenn denn tatsächlich nicht das Wort "Schleife" auftaucht). :idea: Probier´s einfach mal mit anderen (End-)Zahlen aus. :zustimm:

cu
Narses


thepaine91 - Mi 23.01.13 12:23

Lösung: http://de.wikipedia.org/wiki/Gau%C3%9Fsche_Summenformel

user profile iconNarses war aber schon so nett dir das in Form von fertigem Quelltext zu beantworten.

Edit: Dein Lehrer wird sicher glücklich sein wenn du zusätzlich noch mögliche Fehleingaben abfängst.

PHP-Quelltext
1:
2:
3:
4:
//Werte wie
null
1,4 // Erzeugt in PHP keinen Fehler ist aber nicht Sinn der Funktion.
'a' // usw...


annemaria 1404 - Mi 23.01.13 12:42

Danke für den Hinweis thepaine91, aber damit will ich mich noch nicht wirklich beschäftigen.
Das geht dann doch etwas zu weit und über mein Wissen hinaus.


thepaine91 - Mi 23.01.13 12:55

Nun gut in dem Fall ist es vielleicht besser so.


PHP-Quelltext
1:
2:
3:
4:
5:
6:
7:
function summe(/*Hier fehlt noch etwas*/) {
  $summe = 0;
  for ($i=1$i<=$eingabe$i++) {
    $summe += $i;
  }
  return $summe;
}