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
Narses: 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?
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:
- Was mache ich mit der aktuellen Zahl?
- Wie komme ich von der aktuellen Zahl auf die nächste?
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,
nagel - Mi 21.04.10 10:30
Hidden hat folgendes geschrieben : |
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
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
Ilay hat folgendes geschrieben : |
Wer weitere, möglicherweise leichtere lösungvorschläge geben kann bitte trotzdem posten.
|
man kanns zB. rekursiv lösen.
Ilay hat folgendes geschrieben : |
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??
JoelH - Do 22.04.10 08:21
Ilay hat folgendes geschrieben : |
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:
- Eine Schleife, die Alle Zahlen von m bis n Addiert
- Eine Schleife, die alle geraden/ungeraden Zahlen einmal per ShowMessage(IntToStr(..)); ausgibt
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
Ilay hat folgendes geschrieben : |
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.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!