Entwickler-Ecke

Sonstiges (Delphi) - Addition von Zahlen


Ilay - Di 20.04.10 21:36
Titel: Addition von Zahlen
Hallo meine Freunde :D

Ich bin ein absoluter Anfänger, was das Programmieren mit Delphie angeht, mich interessiert dieser Bereich der Informatik jedoch sehr.

Ich habe zwei Aufgaben die mir keine Ruhe lassen und ich einfach keinen Ansatz bzw überhaupt ein ganzes Programm zustande krieg.

Würde sich jmd von euch die Mühe machen mir so viele Ansätze wie möglich zu geben, oder sogar einen gesamten Programmausdruck hier zu antworten, wäre ich ihm sehr sehr dankbar! :roll:


1. Es soll die Summe aller ungeraden Zahlen von 1 bis zu einem einzugebenden Höchstwert n berechnet und ausgegeben werden!

Bsp: n=10 dann soll 1+3+5+7+9 addiert werden und z=25 ausgegeben werden.


2. Wieviel gerade zahlen (der erste Summand ist 2) sind zu addieren, damit eine einzugebende Summe s erreicht oder überschritten wird?

- hier hab ich garkeine Idee bzw Ansätze! :(



Ich bin auf eure Hilfe angewiesen und hoffe ihr könnt mir weiterhelfen!

Gruß Ilay

Moderiert von user profile iconNarses: Titel geändert: Ausrufezeichen entfernt.


Jann1k - Di 20.04.10 21:59

zu 1)

Ansatz1:

Du initialisierst einen Wert auf 1, dann nimmst du eine while Schleife, die überprüft, ob dein Wert größer als der Höchstwert ist, ist dies nicht der fall, addierst du den Wert zu deiner Summe hinzu und erhöhst den Wert auf 1.

zu 2)

Du machst dasselbe in grün (also Wert bei 2 initialisieren) und zählst nebenbei eine Variable in der while Schleife hoch.


Ilay - Di 20.04.10 22:10

und wie sieht das als Befehl in Delphi aus?


Jann1k - Di 20.04.10 22:20

Zitat:

und wie sieht das als Befehl in Delphi aus?



Das findet sich hier(Die Kapitel über Variablen und Kontrollstrukturen):


http://www.christian-stelzmann.de/artikel/crashkurs.htm


Hidden - Di 20.04.10 23:01

Hey :)

Das Tänzchen können wir uns wahrscheinlich sparen, oder zumindest etwas verkürzen 8): Fertigen Code wird dir wahrscheinlich niemand einfach nur hinschreiben.

Eine While-Schleife führt den im Block(begin {..} end;) stehenden Code so lange aus, bis ihre Bedingung nicht mehr erfüllt ist. Als erstes musst du also überlegen, was diese Bedingung ist.

Dann:
1)Was muss ich vor der Schleife machen(Startwert für Variablen wählen)?
2)In der Schleife:
3)Fertig.

Für die 2. Aufgabe musst du die Abbruchbedingung überarbeiten.

Die Sprache heißt übrigens Delphi(ohne e..), und hat mit Informatik so viel zu tun wie Ausbildung mit Studium. :)

lg,


jfheins - Di 20.04.10 23:18

Crossposts [http://www.delphipraxis.net/topic176770_addition+von+zahlen.html] bitte angeben ;)


nagel - Mi 21.04.10 10:30

user profile iconHidden hat folgendes geschrieben Zum zitierten Posting springen:
Hey :)

Das Tänzchen können wir uns wahrscheinlich sparen,

Schade. :D


Ilay - Mi 21.04.10 13:44

ja wie gesagt ich bin absoluter anfänger in diesem Bereich und habe gehofft, dass mir jmd 1 Beispiel für jeweils eine rechnung posten könnte? :?


elundril - Mi 21.04.10 13:53

zu beispiel 1 folgendes (beispiel 2 geht ja mehr oder weniger analog):


Quelltext
1:
2:
3:
4:
5:
6:
i = 1;
x = 1;
solange n > i ist dann
 erhöhe i um 1;
 zähle zu x 2 dazu;
gib x aus.


so, näher an Quellcode geh ich nicht ran. Ich hab keine Lust Hausaufgaben für andere zu machen. Immerhin hast du dir das Fach ja selbst ausgesucht.

lg elundril


Delete - Mi 21.04.10 14:17

Hier gibt es übrigens die Lösung inklusive Code: http://www.delphipraxis.net/post1148189.html#1148189


elundril - Mi 21.04.10 14:32

Geile Lösung, muss man neidlos zugeben (naja, eig. bin ich neidisch^^) aber ob es zielführend ist fertige (und noch dazu derart komplexe) lösungen zu posten ist fraglich.

lg elundril


Hidden - Mi 21.04.10 14:32

:rofl: Na, wenn er besonders mal das Zweite abgibt, prost Mahlzeit xD


Ilay - Mi 21.04.10 15:31

Auch hier bedanke ich mich nochmal ;)


Wer weitere, möglicherweise leichtere lösungvorschläge geben kann bitte trotzdem posten.

Meiner Meinung nach gibt es eine einfachere Lösung ungerade Zahlen zu ermitteln.
1. Möglichkeit: 2n -1
2. Möglichkeit: ungerade Zahl (Bsp 1) + 2 (somit kommt man ebenfalls immer auf ungerade)


Wie würde das in einem Quelltext aussehen?


JoelH - Mi 21.04.10 16:31

user profile iconIlay hat folgendes geschrieben Zum zitierten Posting springen:

Wer weitere, möglicherweise leichtere lösungvorschläge geben kann bitte trotzdem posten.


man kanns zB. rekursiv lösen.

user profile iconIlay hat folgendes geschrieben Zum zitierten Posting springen:

Wie würde das in einem Quelltext aussehen?


Zwölfzeilig bei mir, zweimal if verwendet, einmal mod.


Aber mal im Ernst, wenn dir wirklich was am Programmieren liegt, wie oben geschrieben, dann lerns halt. Hab ich auch gemacht, jetzt war die Umsetzung eine Fingerübung von 2 Minuten.


Ilay - Mi 21.04.10 16:58

JoelH

Sicher bin ich interessiert und durch di gegebenden tipps bin ich auch um einiges vorran gekomm, was mir fehlt ist halt dieses Umsetzen durch die verschiedensten Anwendungen und was es alles gibt.

Wie würde der Quelltext dann bei dir aussehen JoelH??


martin300 - Mi 21.04.10 17:05

Hallo,
du brauchst doch nur in der Delphi Hilfe nachsehen zb.
http://www.delphibasics.co.uk/RTL.asp?Name=Odd


JoelH - Do 22.04.10 08:21

user profile iconIlay hat folgendes geschrieben Zum zitierten Posting springen:
JoelH

Sicher bin ich interessiert und durch di gegebenden tipps bin ich auch um einiges vorran gekomm, was mir fehlt ist halt dieses Umsetzen durch die verschiedensten Anwendungen und was es alles gibt.

Wie würde der Quelltext dann bei dir aussehen JoelH??


Du bekommst den Code am Tag nach dem Hausaufgabenabgabedatum.


Ilay - Do 22.04.10 11:46

die Abgabe war heute :(

einige meiner Mitschüler mussten ihr Programm vorstellen, ich musste nicht.
Mich interessiert trotzdem wie der Code nun aussehen würde, damit ich auch ein lauffähiges Programm habe und somit bei weiteren Programm im weiteren Schuljahr "mitreden" kann ;)


Wie würde der Code nun bei dir aussehen Joel`?

LG


Hidden - Do 22.04.10 12:06

Sicher :roll:

Wir erwarten ja gar nicht, dass du es ohne Beispiel verstehst. Aber Das läuft ziemlich schnell auf ein generelles Verständnis von Schleifen heraus. Und das ist so elementar wie + oder *: Das kannst du entweder verschleppen oder nicht, aber nachholen musst du es am Ende in jedem Fall.

Schau' dir einfach ncoh einmal meine Step-by-Step-Anleitung von oben an. Vielleicht kann es dir helfen, dich schrittweise heranzutasten:

lg,

PS: Wenn Deutsch nicht deine Muttersprache ist, warum klingen dann deine Aufgabenstellungen so typisch? :P (nicht weiter diskutieren, schau' dir einfach Schleifen noch einmal an.)


JoelH - Mo 26.04.10 09:25

user profile iconIlay hat folgendes geschrieben Zum zitierten Posting springen:

Wie würde der Code nun bei dir aussehen Joel`?

LG


bin ich noch schuldig


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
function TForm1.rekurs(n:Integer):Integer;
begin
  if n > 0 then
  begin
    if (n mod 2) = 0 then
      result := rekurs(n-1)
    else
      result := n + rekurs(n-1);
  end
  else
    result := 0;
end;


Ilay - Mo 26.04.10 14:46

die wahrscheinlich verständlichste lösung von allen...danke Joel ;)


martin300 - Mo 26.04.10 15:55

Hallo,
am besten für dich wäre es die Vorschläge durchzulesen und dann klein beginnen. Zb. so wie schon beschrieben, eine Schleife wobei nur die ungeraden Zahlen bis 10 ausgegeben werden.