Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Fehler bei EAN-Prüfsummenberechnungsprogramm


DelphiDome - Sa 12.06.10 14:30
Titel: Fehler bei EAN-Prüfsummenberechnungsprogramm
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 - Sa 12.06.10 14:34

Wie sieht dein Code bisher aus, um erstens zu lösen?


DelphiDome - Sa 12.06.10 14:52

Ich habe folgende Variablen vereinbart:


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:


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 - 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 - 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 - Sa 12.06.10 15:16

Probiers doch aus.

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


DelphiDome - Sa 12.06.10 16:05

Wie sähe diese aus? (sorry, bin noch nicht sehr lange Delphi-Programmierer)


Xentar - Sa 12.06.10 16:09

http://www.delphi-treff.de/tutorials/objectpascal/delphi-crashkurs/kontrollstrukturen/
Ganz unten, unter schleifen.


DelphiDome - So 13.06.10 11:42

Danke! Jetzt hat es geklappt! :D