C# :: Aufgabe #294 :: Lösung #4

4 Lösungen Lösungen öffentlich
#294

Berechnen der Prüfziffer einer EAN- Nummer

Anfänger - C# von JKooP - 29.03.2020 um 13:53 Uhr
Schreibe ein Programm mit dem man sowohl die Prüfziffer einer EAN- Nummer (Europäische Artikel- Nummerierung) berechnen als auch überprüfen kann.

Die EAN- Nummer besteht aus 13 Ziffern, wobei es sich bei der letzten Ziffer um die Prüfziffer handelt.

Beispiel für eine EAN: 978381582086[?]

Die Prüfziffer wird berechnet, indem man die ersten 12 Ziffern von links beginnend abwechselnd mit 1 und 3 multipliziert und anschließend die Produkte summiert.

Die Differenz zum nächsten Vielfachen von 10 ist die Prüfziffer.

Ist die Summe durch 10 teilbar, ist die Prüfziffer die Ziffer 0.

9·1 + 7·3 + 8·1 + 3·3 + 8·1 + 1·3 + 5·1 + 8·3 + 2·1 + 0·3 + 8·1 + 6·3
= 9 + 21 + 8 + 9 + 8 + 3 + 5 + 24 + 2 + 0 + 8 + 18 = 115
115 + 5 = 120 ⇒ Prüfziffer: 5

Viel Spaß
#4
vote_ok
von dson (640 Punkte) - 11.05.2021 um 17:19 Uhr
Quellcode ausblenden C#-Code
using System;
using System.Collections.Generic;

namespace ean_pruefziffer_errechnen
{
    class Program
    {
        static void Main(string[] args)
        {
            double ean = 978381582086;
            bool maleins = true;
            double allezahlensumme = 0;
            double endzahl = 0;
            string eanstring = Convert.ToString(ean);

            List<double> allezahlen = new List<double>();

            foreach (var item in eanstring)
            {
                if (maleins == true)
                {
                    allezahlen.Add(Convert.ToDouble(item.ToString()));
                    maleins = false;
                }
                else if (maleins == false)
                {
                    allezahlen.Add(Convert.ToDouble(item.ToString()) * 3);
                    maleins = true;
                }
            }
            foreach (var item in allezahlen) { allezahlensumme += item; };

            eanstring = Convert.ToString(allezahlensumme);

            while (!eanstring.EndsWith("0"))
            {
                eanstring = Convert.ToString(Convert.ToDouble(eanstring) + 1);
            }

            endzahl = Convert.ToDouble(eanstring) - allezahlensumme;
            Console.WriteLine("Prüfziffer: " + endzahl);
        }
    }
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben