Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Delphi / Kylix / Turbo Pascal » Quersumme bei TP

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
22.09.2004, 21:40 Uhr
CaesarCortezz
minderer Student


Als erstes sorry weil ich vorher nicht nachgeschaut hab obs schon da is aber es muss einigermaßen schnell gehn

Ich möchte mit TP (vielmehr muss) ein Prog für die Quersumme schreiben.
Mein Ansatz ist natürlich die Array-Sache aber soweit ich weiß funzen die bei ints nicht...

Wäre cool wenn mir jemand einen Tip geben könnte...

Caesar
--
Thus spake the master programmer:

``When the program is being tested, it is too late to make design changes.''
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
22.09.2004, 22:07 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


ich weiss zwar nicht wie es in turbopascal geht weil ich die syntax nicht kenne aber kannst du sicherlich leicht adaptieren

ist einfach nur dividieren und modulo rechnen

rekursiv

C++:
int quersumme(int z){return z?quersumme(z/10)+z%10:0;}



iterativ

C++:
int quersumme(int z){int rv;for(rv=0;z;z/=10)rv+=z%10;return rv;}


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
22.09.2004, 22:09 Uhr
typecast
aka loddab
(Operator)


Jo, einen Ansatz kannst du bekommen: Teile die Zahl durch 10 und merk dir den Rest (Stichwort modulo Operator). Die neue Zahl (also die durch 10 geteilte) teilst du wiederum durch 10 und zaehlst den Rest der wieder entsteht zu dem gemerkten dazu.

So berechnest du die Quersumme. Hier ein Beispiel:


Code:
113 / 10 = 11  /  10 = 1 / 10 =  0
        Rest 3      Rest 1      Rest 1

Quersumme = 3 + 1 + 1 = 5



So, viel Spass beim Coden
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)

Dieser Post wurde am 22.09.2004 um 22:10 Uhr von typecast editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
22.09.2004, 22:21 Uhr
CaesarCortezz
minderer Student


Ich danke euch.
Hatte zwar gehofft es gibt ne einfachere lösung aber nu ja (hätte nie gedacht das info solch interessante sachen aufgeben kann *gG*)
Vielleich hat unsere lehrerin ja doch ahnung
--
Thus spake the master programmer:

``When the program is being tested, it is too late to make design changes.''
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
23.09.2004, 11:13 Uhr
CaesarCortezz
minderer Student


Falls es jemanden interessiert hier ist der fertige Programmcode


TP:

program quersumme;
uses crt;
var zw, zw2, zahl, quer:longint;
BEGIN
     clrscr;
     writeln('Wilkommen im Quersummenprogramm');
     writeln('Bitte geben Sie eine Zahl ein.');
     readln(zahl);
     zw:=zahl;
     zw2:=zahl;
     quer:=0;
     while zw2<>0 do
           BEGIN
           zw:=zw2 mod 10;
           zw2:=zw2 div 10;
           quer := quer + zw;
     END;
     writeln('Die Quersumme ist ', quer);
     readln;
END.



Cya *gG*
--
Thus spake the master programmer:

``When the program is being tested, it is too late to make design changes.''
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
23.09.2004, 21:16 Uhr
CaesarCortezz
minderer Student


Hier noch eine kürzere variante


TP:

program quersumme;
uses crt;
var eingabe : string;
    ergebnis, i, ziffer, fehlercode : integer;
begin
  clrscr;
  write('Zahl: ');
  readln(eingabe);
  for i := 0 to length(eingabe) do
  begin
    val(eingabe[i],ziffer,fehlercode);
    ergebnis := ergebnis+ziffer;
  end;
  write('Quersumme: ',ergebnis);
  readln;
end.


--
Thus spake the master programmer:

``When the program is being tested, it is too late to make design changes.''
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
23.09.2004, 22:10 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


wenn du es in eine funktion auslagerst und rekursiv aufrufst wird es noch kürzer
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
24.09.2004, 15:15 Uhr
CaesarCortezz
minderer Student


so doll interssiere ich mich dann doch nicht für tp
das erste programm hab ich geschrieben und hab dann im i-net das zweite entdeckt und dachte ich poste es mal... (eben falls es jemanden interessiert )
Cya
--
Thus spake the master programmer:

``When the program is being tested, it is too late to make design changes.''
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Delphi / Kylix / Turbo Pascal ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: