Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   c Builder Quersumme bilden (https://www.delphipraxis.net/21530-c-builder-quersumme-bilden.html)

PomBär 4. Mai 2004 12:37


c Builder Quersumme bilden
 
moin leute
ich möchte für ein programm die quersumme bilden leider weis ich net wie das geht. ich hab mich schon mal umgeschaut und

int array[10000];
for(int i=0;i < 10000; i++)
array[i] = quersum(i);

das gefunden.

sollte der code richtig sein kann ihn mir bitte jemand erklären? wenn ich es compiliere sagt er das die funktion quersum nicht existiert.
wenn i durch die funktion berechnet wurde wie kann man dann eine ausgabe von i erreichen?

danke für euer bemühen

:gruebel:

Skiron 4. Mai 2004 13:12

Re: c Builder Quersumme bilden
 
meinst du Quersumme oder summe?
um die Quersumme zu erhalten könnte folgendes Funktionieren (habs nicht durchgetestet):
Code:
int quersumme(int von)
{
  int res = 0;
  while (von)
  {
    res+=von%10;
    von=(int)von/10;
  }
  return res;
}

fred.reichbier 4. Mai 2004 13:18

Re: c Builder Quersumme bilden
 
Ich kapier den Code auch nicht,
aber in Delphi würde ich das so machen:
Delphi-Quellcode:
function QuerSumme (Zahl: Integer);
var p: String; r,i: Integer;
begin
p := Inttostr(Zahl);
r := 0;
for i := 1 to length(p) do
begin
r := r + Strtoint(Copy(p,i,1));
end;
result := r;
end;
Ich glaube in C++ geht das so:
Code:
int i,Zahl,Quersummenzahl;
Zahl=0;
for(i=1; i<length(QuerSummenZahl); i++)
  Zahl = Zahl + StrToInt(Copy(IntToStr(QuerSummenZahl),i,1));
QuerSummenZahl muss dann die Zahl zugewiesen kriegen,
aus der die QuerSumme errechnet werden soll.
Zahl ist dann die Quersumme.
Falls etwas nicht klappt: Versuche mal length groß zu schreiben oder
andere Befehle kein bzw. groß zu schreiben,
mfg
fred

Skiron 4. Mai 2004 13:44

Re: c Builder Quersumme bilden
 
soweit ich weiß, gibts IntToStr und StrToInt in C nicht!
zudem:
statt copy strcpy() und
statt length strlen()

Muetze1 4. Mai 2004 14:02

Re: c Builder Quersumme bilden
 
Moin!

Zitat:

Zitat von Skiron
soweit ich weiß, gibts IntToStr und StrToInt in C nicht!

Naja, atoi() und sprintf().

Ansonsten Ausnahme: Der C++Builder hat die SysUtils direkt von Delphi und somit auch StrToInt() und IntToStr(), da er Delphi Source lesen und übersetzen kann.

Ausserdem ist an dem Source so oder so noch was falsch, weil er bei length(Quersumme) eigentlich length(IntToStr(Quersumme)) hätte schreiben müssen...

MfG
Muetze1

alcaeus 4. Mai 2004 14:38

Re: c Builder Quersumme bilden
 
Zitat:

Zitat von Muetze1
Ansonsten Ausnahme: Der C++Builder hat die SysUtils direkt von Delphi und somit auch StrToInt() und IntToStr(), da er Delphi Source lesen und übersetzen kann.

Also ich würde das nicht machen, da einer der Hauptvorteile von C sein sollte, dass der Code portierbar ist. Deshalb sollte man immer atoi() und sprintf() verwenden.

Muetze1 4. Mai 2004 14:54

Re: c Builder Quersumme bilden
 
Moin!

Zitat:

Zitat von alcaeus
Zitat:

Zitat von Muetze1
Ansonsten Ausnahme: Der C++Builder hat die SysUtils direkt von Delphi und somit auch StrToInt() und IntToStr(), da er Delphi Source lesen und übersetzen kann.

Also ich würde das nicht machen, da einer der Hauptvorteile von C sein sollte, dass der Code portierbar ist. Deshalb sollte man immer atoi() und sprintf() verwenden.

Er benutzt nun schon den C++Builder. Und auch wenn, dann dürfte er u.a. auch nicht die VCL benutzen, sondern müsste z.B. MFC im BCB benutzen, um dann wenigstens zu MSVC kompatiblen Code zu schreiben - oder gleich alles mit qt...

Wenn man es hat, sollte man es nutzen, vor allem wenn man weiss, in wie weit das Projekt auch mal anders erstellt wird, etc.

MfG
Muetze1


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:16 Uhr.

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