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.

Empfohlene Antworten

Veröffentlicht

Guten Tag,

ich komme leider überhaupt nicht weiter mit der folgenden Aufgabe.
Es soll ein Abrufcode generiert werden, jeder soll einzigartig sein.
 

Stelle Inhalt
1 - 2 SQ
3 - 10 acht Zufallsziffern aus dem Bereich 1 bis 9
11 und 12 zweistellige Prüfzahl, soll folgende Bedingung genügen:
(Quersumme der Stellen 3 bis 10 + Prüfzahl) modulo 97 =1


Bsp. SQ 12345678 56
SQ Präfix, 8 Zufallsziffern, zweistellige Prüfzahl

Aufgabe: Prozedur entwickeln, die einen Abrufcode generiert, der den oben aufgeführten Kreterien entspricht.
Folgende Funktionen sollen verwendet werden:
ZufallszifferErzegen():Integer = Erzeugt Zufallsziffer aus dem Bereic 1-9
AbrufcodeFinden(String):Boolean = Überprüft ob der übergebene Abrufcode bereits existiert.
Stellen Sie den Algorithmus der Prozedur AbrufcodeGenerieren() in Pseudocode oder im Sturktogramm oder PAP dar.
 

Pseudocode:
//Alle Variablen
praefix = "SQ"
array = []
achtZiffern
pruefzahl
abrufcode

//8 Zahlen
wiederhole 8 mal:
zahl = ZufallszifferErzeugen()
zahl zu string umwandeln
zahl zu array hinzufügen

Inhalt Array zusammenfügen
in achtZifffern speichern

//Prüfzahl
Prüfzahl generieren
Modulo Check
in prüfzahl speichern

//Alle String Variablen zusammenfügen
abrufcode = praefix + achtZiffern + prüfzahl



Ich verstehe die zweistellige Prüfzahl nicht.
(Quersumme der Stellen 3 bis 10 + Prüfzahl) modulo 97 =1
Quersumme ist ja Bsp. von 24 2+4=6.
Quersumme der Stellen 3 bis 10? 3+4+6+7+8+9+10 = 47 ??
Dazu soll eine Prüfzahl addiert werden. Ich soll mir die Prüfzahl ausdenken, sagen wir mal 5 + 47 = 52
modulo 97 = 1, ich verstehe, dass 10 modulo 97 = 7 ist, aber wüsste nicht wie ich alle Zahlen bis 97 finde, die bei Modulo 1 haben. Dürfte auch nicht wichtig sein für die Aufgabe.
Daraus könnte man leicht ein Pseudocode schreiben, jedoch verstehe ich den mittleren Teil mit der Quersumme nicht.

Danke für eure Zeit.

 

Ist das Beispiel "SQ 12345678 56" richtig?

Es gibt nur eine Bedingung, damit x MOD 97 = 1 ergibt: Es ist das vielfache von 97 + 1.

((0 * 97) + 1) MOD 97 = 1
((1 * 97) + 1) MOD 97 = 1
((2 * 97) + 1) MOD 97 = 1
((3 * 97) + 1) MOD 97 = 1
...

Also müsste die Quersumme + Prüfzahl 98 ergeben.

1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 = 36

98 - 36 = 62

Wie man auf die 56 kommt, ist mir schleierhaft.

Bearbeitet von Whiz-zarD
editiert

vor 42 Minuten schrieb Gusop:

ich verstehe, dass 10 modulo 97 = 7 ist

Nein, 10 MOD 97 ist 10. Modulo gibt immer den Rest einer Division zurück.
Also:

1 / 97 = 0 Rest 1		 1 MOD 97 = 1
10 / 97 = 0 Rest 10		10 MOD 97 = 10
97 / 97 = 1 Rest 0		97 MOD 97 = 0
98 / 97 = 1 Rest 1		98 MOD 97 = 1

 

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

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.