Autor Beitrag
DelphiDome
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Sa 12.06.10 14:30 
Hallo,
ich habe ein Programm geschrieben, welches die EAN prüft und dann sagt "Richtig" oder "Falsch".
Zur Berechnung wird erstens die Prüfsummenberechnungsmethode 1. Zahl mal 1, 2. Zahl mal 3, 3. Zahl mal 1...
verwendet. Dann werden zweitens diese Ergebnisse zusammengerechnet. Wenn die letzte Ziffer mit der Zahl übereinstimmt,
die benötigt wird, um das nächste Vielfache von 10 zu bekommen, ist die EAN korrekt. Ich weiß jedoch nicht, wie man
die Aufgabe bei zweitens löst. Kann mir jemand helfen?
Danke im Voraus, DelphiDome


Moderiert von user profile iconNarses: Topic aus Algorithmen, Optimierung und Assembler verschoben am So 13.06.2010 um 23:22
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Sa 12.06.10 14:34 
Wie sieht dein Code bisher aus, um erstens zu lösen?

_________________
PROGRAMMER: A device for converting coffee into software.
DelphiDome Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Sa 12.06.10 14:52 
Ich habe folgende Variablen vereinbart:

ausblenden Delphi-Quelltext
1:
2:
3:
  var  Eanstelle: Array[1..13of Integer;
  var  PruefSum : Array[1..13of Integer;
  var  Ergebnis : Integer;


Dann habe ich folgendes gemacht:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
PruefSum[1] := (Eanstelle[1] * 1);
PruefSum[2] := (Eanstelle[2] * 3);
PruefSum[3] := (Eanstelle[3] * 1);
PruefSum[4] := (Eanstelle[4] * 3);
PruefSum[5] := (Eanstelle[5] * 1);
PruefSum[6] := (Eanstelle[6] * 3);
PruefSum[7] := (Eanstelle[7] * 1);
PruefSum[8] := (Eanstelle[8] * 3);
PruefSum[9] := (Eanstelle[9] * 1);
PruefSum[10] := (Eanstelle[10] * 3);
PruefSum[11] := (Eanstelle[11] * 1);
PruefSum[12] := (Eanstelle[12] * 3);
PruefSum[13] := (Eanstelle[13] * 1
);

Ich hoffe, die Frage ist damit beantwortet.

Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt
Jakob_Ullmann
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1747
Erhaltene Danke: 15

Win 7, *Ubuntu GNU/Linux*
*Anjuta* (C, C++, Python), Geany (Vala), Lazarus (Pascal), Eclipse (Java)
BeitragVerfasst: Sa 12.06.10 15:01 
Wo liegt dann das Problem? Musst du doch einfach addieren, dann ist (10 - (summe mod 10)) mod 10 die letzte Ziffer.
DelphiDome Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Sa 12.06.10 15:05 
Das hört sich ja gut an. Muss ich jetzt den Vorschlag unter die Addition schreiben?
(Ergebnis := (PruefSum[1] + PruefSum[2] + PruefSum[3] + PruefSum[4] + PruefSum[5] + PruefSum[6] + PruefSum[7] + PruefSum[8] + PruefSum[9] + PruefSum[10] + PruefSum[11] + PruefSum[12]+PruefSum[13])) ???

Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Sa 12.06.10 15:16 
Probiers doch aus.

Man könnte es auch mit ner For-Schleife von 1 bis 13 lösen.

_________________
PROGRAMMER: A device for converting coffee into software.
DelphiDome Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Sa 12.06.10 16:05 
Wie sähe diese aus? (sorry, bin noch nicht sehr lange Delphi-Programmierer)
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Sa 12.06.10 16:09 
www.delphi-treff.de/.../kontrollstrukturen/
Ganz unten, unter schleifen.

_________________
PROGRAMMER: A device for converting coffee into software.

Für diesen Beitrag haben gedankt: DelphiDome
DelphiDome Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: So 13.06.10 11:42 
Danke! Jetzt hat es geklappt! :D