![]() |
Re: bel. lange Integerzahlen in dynamischen Listen???
Andere Frage: Weißt Du überhaupt, was genau Du machen musst? Aufgabenstellung?
Ich hab das Gefühl, dass Du weißt, dass Du Zahlen aus Listen addieren sollst, aber hier gibt es ein breites Spektrum an Lösungen. |
Re: bel. lange Integerzahlen in dynamischen Listen???
Warum bist du sicher, dass du das so nicht sollst?
Zitat:
|
Re: bel. lange Integerzahlen in dynamischen Listen???
Zitat:
|
Re: bel. lange Integerzahlen in dynamischen Listen???
tja falsch!
|
Re: bel. lange Integerzahlen in dynamischen Listen???
Hi Xeni.
Das Problem ist, dass alle anderen Möglichkeiten, beliebig große Zahlen darzustellen und mit ihnen zu rechnen, nicht gerade einfach sind. Man könnte sich zwar eine eigene Klasse schreiben die das ermöglicht, aber das ist denke ich mal nicht so einfach und sowas wird euer Lehrer von euch in der Schule bestimmt nicht verlangen. Ich glaube das größte Problem ist, dass hier niemand genau weiß, was du überhaupt machen sollst.. Gruß Neutral General |
Re: bel. lange Integerzahlen in dynamischen Listen???
Beantwortet meine Frage aber noch nicht ;)
[edit] Genau das meine ich, Michael [/edit] |
Re: bel. lange Integerzahlen in dynamischen Listen???
ne ich glaube nicht, dass ich weis was ich machen soll, aber so was ähnliches:
Type Personentyp = Record Name, Vorname : String[20]; Strasse : String[40]; PLZ : String[8]; Ort : String[40]; End; Zeigertyp = ^elementtyp; elementtyp = Record Inhalt : Personentyp; next : Zeigertyp; End; Var neu, vor, lauf,pos, anfang : Zeigertyp; Person : Personentyp; Procedure init; Begin { Initialisierung einer leeren Liste } anfang := nil; End Procedure einfuegen; Begin { Schaffen eines freien Elementes } new(neu); { Eintragen des Inhaltes in freies Element } neu^.inhalt:=person; neu^.next:=nil; { Suchen der Einfügestelle } vor:=anfang; lauf:=anfang; while (lauf <> nil ) and (lauf^.inhalt.name <= Person.name) Do Begin vor:= lauf; lauf:=lauf^.next; End; { Einfügen in die Struktur } if vor = lauf Then Begin anfang:=neu; neu^.next:=lauf End else Begin vor^.next:=neu; neu^.next:=lauf; End; End; nur muss ich das jetzt mit den zahlen machen und nicht mit namen oder vornamen! |
Re: bel. lange Integerzahlen in dynamischen Listen???
Wenn du uns nicht sagen willst/kannst, was genau du machen must, können wir dir nicht helfen. Es gibt dutzende Möglichkeiten, zwei Zahlen über eine StringList zu addieren, wobei das mit beliebig großen wie gesagt schwierig wird.
Außerdem habe ich dir eben schon gesagt, wonach du suchen musst. Wenn du das rein Programmiertechniche dann verstanden hast, kannst du an die Logik gehen, vorher solltest du dir aber mal z.B. die Funktionsweise von Stringlisten anschauen. Wenn du bei unseren Lösungsvorschlägen immer nur sagst "das ist falsch", dann hilft das uns genau so wenig weiter wie dir. Mfg |
Re: bel. lange Integerzahlen in dynamischen Listen???
So wie das aussieht, handelt es sich um eine verkettete Liste. Dazu sollte sich über die Forensuche einiges finden lassen.
|
Re: bel. lange Integerzahlen in dynamischen Listen???
Ich geb dir jetzt mal einen heissen Tipp: Wie würdest du 2 Zahlen auf dem Papier addieren ???
Richtig, Ziffer für Ziffer addieren und immer schön den Übertrag mitnehmen. Also du hast 2 Strings:
Delphi-Quellcode:
Was muss man als 1. tun ? Na die kürzere Zahl links mit '0' auffüllen, bis beiden Strings gleich lang sind.
a := '64637201';
b := '768574'; Übertrag auf 0 setzen. Dann eine for-Schleife (length(a) downto 1) laufen lassen, je eine Ziffer aus a und b rausholen in Integer wandeln, addieren (+alter Übertrag), neuer Übertrag ermitteln (mod-Funktion und div-Funktion), Ergebnis als Ziffer in den Zielstring "c" kopieren. So und dann schön eine Funktion machen:
Delphi-Quellcode:
Dann noch über das Vorzeichen nachdenken, damit du auch neg. Zahlen addieren kannst.
function SAddieren(a,b:string):string;
Also mit dieser Anleitung sollte es kein Problem mehr sein, die Hausaufgabe zu lösen. Als Liste für die vielen Zahlen nimmst du einfach eine Stringliste oder gleich direkt das Property Lines eines TMemo. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz