Delphi-PRAXiS
Seite 4 von 17   « Erste     234 5614     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Programm Hilfe (https://www.delphipraxis.net/163840-programm-hilfe.html)

boxer123 19. Okt 2011 20:25

AW: Programm Hilfe
 
ehrlich gesagt nein

TiGü 19. Okt 2011 22:08

AW: Programm Hilfe
 
Dann klassischer Fall von Pech gehabt...nun aber egal, da ja es heute (angeblich) Noten dafür gab.
Die Aufgabe hattest du gewiss nicht erst seit gestern auf, nicht wahr?
Gewiss habt ihr vom Lehrer auch eine IDE gekriegt, irgend ein alten Scheiß wie Delphi 5 bis 7, oder?
Damit hätte man ja mal ein bisschen üben, nachvollziehen und verstehen können.

Boah, wie mich deine Einstellung ankotzt...

himitsu 19. Okt 2011 22:24

AW: Programm Hilfe
 
Zum Code in Beitrag #29:
Mit einer halbwegs ordentlichen Codeformatierung wären alleine schon die total falschen Begin-End-Verschachtelungen aufgefallen.

Zitat:

Zitat von DeddyH (Beitrag 1131096)
Zitat:

Zitat von boxer123 (Beitrag 1131086)
wie heißt der befehl der eine 4stellige zahl zerhackt

Es gibt nach meiner Kenntnis keinen. Du kannst das aber schnell selbst durch Division erledigen.

[edit] OK, ich will mal nicht so sein:
Delphi-Quellcode:
type
  TZiffern = array[1..4] of Byte;

function Zerlege(Wert: integer): TZiffern;
begin
  Result[1] := Wert mod 10000 div 1000;
  Result[2] := Wert mod 1000 div 100;
  Result[3] := Wert mod 100 div 10;
  Result[4] := Wert mod 10;
end;
Bevor jetzt aber Fragen kommen, schau in die Hilfe zu MOD und DIV und vollziehe den Code nach. [/edit]

Wobei es andersrum einfacher/übersichtlicher gewesen wäre.
Delphi-Quellcode:
function Zerlege(Wert: integer): TZiffern;
begin
  Result[1] := Wert div 1000 mod 10;
  Result[2] := Wert div 100 mod 10;
  Result[3] := Wert div 10 mod 10;
  Result[4] := Wert {div 1} mod 10;
end;
DIV um sich die Dezimalstelle rauszusuchen und das MOD um die eine Stelle rauszufiltern.

Für die Umkehrung kann man das MOD weglassen, muß nur noch das DIV invertieren und alles zusammenaddieren.

Zitat:

Gewiss habt ihr vom Lehrer auch eine IDE gekriegt, irgend ein alten Scheiß wie Delphi 5 bis 7, oder?
Damit hätte man ja mal ein bisschen üben, nachvollziehen und verstehen können.
Sich die neuste Trial (Testversion) vom Delphi zu laden oder Lazarus und selbst das alte Turbo Pascal gibt es kostenlos von Emba zum Download ... zum Üben gäbe es genug Möglichkeiten.


Und nein, das war jetzt keine Antwort für boxer123 ... aber vielleicht gibt es ja doch noch ein paar Lernwillige, denen ein paar Tipps helfen könnten.

DeddyH 20. Okt 2011 07:07

AW: Programm Hilfe
 
Zitat:

Zitat von himitsu (Beitrag 1131391)
Wobei es andersrum einfacher/übersichtlicher gewesen wäre.

Das ist eine subjektive Einschätzung, oder? Ob ich nun erst überzählige Stellen abschneide und dann "verschiebe" oder andersherum, es liegt im Auge des Betrachters, wie er es besser findet. Aber das spielt ja auch jetzt keine Rolle mehr.

Furtbichler 20. Okt 2011 07:20

AW: Programm Hilfe
 
Der Threadtitel "Programm Hilfe" deutet darauf hin, das hier ein Programm namens "Hilfe"... existiert oder wie auch immer. Mehr unter www.deppenleerzeichen.de

himitsu 20. Okt 2011 08:42

AW: Programm Hilfe
 
Zitat:

Zitat von DeddyH (Beitrag 1131403)
Zitat:

Zitat von himitsu (Beitrag 1131391)
Wobei es andersrum einfacher/übersichtlicher gewesen wäre.

Das ist eine subjektive Einschätzung, oder? Ob ich nun erst überzählige Stellen abschneide und dann "verschiebe" oder andersherum, es liegt im Auge des Betrachters, wie er es besser findet. Aber das spielt ja auch jetzt keine Rolle mehr.

OK, mehr subjektiv, aber mehmen wir mal die 12 Dezimalstelle ... welcher Zeile wäre richtig?
Delphi-Quellcode:
Result[1] := Wert mod 100000000000 div 1000000000;

Result[1] := Wert mod 100000000000 div 100000000000;

Result[1] := Wert mod 1000000000000 div 100000000000;

Result[1] := Wert mod 1000000000000 div 1000000000000;
1: liefert zwei Dezimalstellen
2: liefert keine Dezimalstelle (immer 0)
3: liefert eine Dezimalstelle
4: wie 2

+ mehr (doppelt soviele) Zahlen zu Prüfen und diese müssen auch noch untereinander verglichen werden
= mehr als doppeltet so große Fehlerrate

Dagegen dann dieses?
Delphi-Quellcode:
Result[1] := Wert div 100000000000 mod 10;

Result[1] := Wert div Power(10, 12) mod 10;

Und Jupp, für boxer123 ist eh alles zu spät/umsonst, aber es soll ja auch andere Schüler geben, welche etwas mehr Eigeninitiative zeigen.

PS: Vielleicht erbarmt sich noch ein Mod für eine schönere Überschrift?
Der Ersteller wird und kann sie nun eh nicht mehr selber ändern.

DeddyH 20. Okt 2011 09:11

AW: Programm Hilfe
 
Was soll es bringen, durch 120 zu teilen? :stupid:

himitsu 20. Okt 2011 09:17

AW: Programm Hilfe
 
War ich wohl doch noch nicht ganz wach :oops:
SHL kam mit unpassend vor, also dachte ich "ein * passt schon" :lol: (hoffentlich ist das Power jetzt richtig ... schade daß es keinen Expotentialoperator gibt)

gammatester 20. Okt 2011 09:41

AW: Programm Hilfe
 
Spätestens bei diesen Größenordungen ist angebracht, zu der einer allgemein-gültigen Lösung mit einer Schleife zu wechseln:
Delphi-Quellcode:
for i:=n downto 1 do begin
  result[i] := wert mod 10;
  wert := wert div 10;
end;
Ist auch übersichtlicher und verständlicher.

PS: div und power passen doch wohl nicht ganz zusammen.

DeddyH 20. Okt 2011 09:44

AW: Programm Hilfe
 
Naja, ich hatte bewusst auf Schleifen verzichtet, um den TE nicht noch mehr zu verwirren. Da es ja nur um 4-stellige Zahlen ging, kann man das IMO verschmerzen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:23 Uhr.
Seite 4 von 17   « Erste     234 5614     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz