Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Userlösung 4. Handlungsschritt Abschlussprüfung

Empfohlene Antworten

Veröffentlicht

Hallo ITler,

ich bin gerade dabei für meine Abschlussprüfung 2014 zu lernen und gehe gerade ein paar Aufgaben durch und benötige dringend eure Hilfe !!!! :(

post-89055-14430449714994_thumb.jpg

Kann mir jemand bitte zu dieser Aufgabe seinen Lösungsweg aufschreiben, ich wäre seeeehr dankbar.

Na genauso wie's da steht, würd ich sagen :D


boolean isvalid(string knum) {

  int sum = 0;

  int qsum = 0;

  for (int i=0; i < knum.length() - 1; i++) { // -1, da die letzte ziffer PZ ist

    int zahl = knum[i]; // das parsen kann man sich im pseudocode imho sparen

    if (i % 2 == 0) {

      qsum += quersumme(zahl*3);

    } else {

      sum += zahl

    }

  }

  int sumsum = sum+qsum;

  int pz = 10-(sumsum%10) // alternativ per rundeauf-methode

  return pz == knum[knum.length() - 1];

}

Keine Garantie auf Korrektheit, nicht wahr?

  • Autor

Hall ein Bob.

vielen Dank für deine Lösung. Jetzt wollte ich das ganze mal ein wenig in abgeänderter Version umsetzen.

Dafür nutze ich Visual Studio C#.

Mein CODE.

static void Main(string[] args)

{

String knum = "9342571866601997";

int sum = 0;

int qsum = 0;

Console.WriteLine("Bitte geben Sie Ihre Kreditkartennummer ein");

Console.WriteLine(knum);

for (int i = 0; i < knum.Length - 1; i++) // -1, da die letzte ziffer PZ ist

{

int zahl = knum; // das parsen kann man sich im pseudocode imho sparen

if (i % 2 == 0)

{

qsum += zahl * 3; // Schritt 1: Multiplikation aller Zahlen an GERADER Stelle mit 3

Console.WriteLine("Quersumme" + " " + qsum);

}

else

{

sum += zahl; // Schritt 3: Addition aller Ziffern an ungerader Stelle

Console.WriteLine("Summe" + " " + sum);

}

}

int sumsum = sum + qsum; // Schritt 4: Addition der Egebnisse aus den Schritten 2 und 3

int pz = 10 - (sumsum % 10); // alternativ per rundeauf-methode // Schritt 5

if (pz == knum[knum.Length - 1])

{

Console.WriteLine("True");

}

else

{

Console.WriteLine("False");

}

Console.ReadLine();

}

int quersumme(int zahl)

{

Doch irgendwie funktioniert das ganze noch nicht :((

Du hast die Methode "quersumme" rausgenommen.

Ich bezweifel auch, dass c# das konvertieren eines chars zum int so macht wie du dir das vorstellst, vermutlich muss der char eben geparset werden.

Generell ist "funktioniert nicht" allerdings keine gültige Fehlerbeschreibung.

Und denk dran, dass du keinen lauffähigen cvode schreiben musst in der Klausur. Du sollst zeigen, dass du in der Lage bist, anhand einer Problemstellung ein programm zu entwickeln. nicht umsonst wird unter anderem ein Struktogramm angeboten.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.