Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Problema Con un Pseudocodigo (https://www.clubdelphi.com/foros/showthread.php?t=91288)

osmardj 20-12-2016 21:38:36

Problema Con un Pseudocodigo
 
3 Archivos Adjunto(s)
Buenas a todos tengo un Problema para resolver este código Verhoeff, base 64 y alleged rc4 busque pero a mostrar algunas pruebas me da otro resultado alguien q me pueda ayudar.

Archivo Adjunto 3462

Archivo Adjunto 3463

Archivo Adjunto 3464
les dejo los pdf.

ecfisa 20-12-2016 22:05:43

Hola osmardj.
Cita:

Empezado por osmardj (Mensaje 511913)
Buenas a todos tengo un Problema para resolver este código Verhoeff, base 64 y alleged rc4 busque pero a mostrar algunas pruebas me da otro resultado...

Por favor muéstranos el código que llevas echo explicándonos en que partes se te presentan dificultades.

Saludos :)

Casimiro Notevi 20-12-2016 22:16:43

Bienvenido a clubdelphi, como siempre aconsejamos a los nuevos, no olvides leer nuestra guía de estilo, gracias por tu colaboración :)

osmardj 20-12-2016 22:34:43

Cita:

Empezado por ecfisa (Mensaje 511914)
Hola osmardj.


Por favor muéstranos el código que llevas echo explicándonos en que partes se te presentan dificultades.

Saludos :)

Gracia por responder

encontre el primero el Verhoeff y el codigo que encontre no me devuelve los resultados qe deseo
Código Delphi [-]
program Verhoeff;
{$APPTYPE CONSOLE}
uses
  SysUtils;

var

d: array[0..9] of array [0..9] of byte =
               ((0, 1, 2, 3, 4, 5, 6, 7, 8, 9),
    (1, 2, 3, 4, 0, 6, 7, 8, 9, 5),
    (2, 3, 4, 0, 1, 7, 8, 9, 5, 6),
    (3, 4, 0, 1, 2, 8, 9, 5, 6, 7),
    (4, 0, 1, 2, 3, 9, 5, 6, 7, 8),
    (5, 9, 8, 7, 6, 0, 4, 3, 2, 1),
    (6, 5, 9, 8, 7, 1, 0, 4, 3, 2),
    (7, 6, 5, 9, 8, 2, 1, 0, 4, 3),
    (8, 7, 6, 5, 9, 3, 2, 1, 0, 4),
    (9, 8, 7, 6, 5, 4, 3, 2, 1, 0));

p: array[0..7] of array [0..9] of byte =
    ((0, 1, 2, 3, 4, 5, 6, 7, 8, 9),
     (1, 5, 7, 6, 2, 8, 3, 0, 9, 4),
     (5, 8, 0, 3, 7, 9, 6, 1, 4, 2),
     (8, 9, 1, 6, 0, 4, 3, 5, 2, 7),
     (9, 4, 5, 3, 1, 2, 6, 8, 7, 0),
     (4, 2, 8, 6, 5, 7, 3, 9, 0, 1),
     (2, 7, 9, 3, 8, 0, 6, 4, 1, 5),
     (7, 0, 4, 6, 9, 1, 3, 2, 5, 8));

inv: array[0..9] of byte =
    (0, 4, 3, 2, 1, 5, 6, 7, 8, 9);

number: String;

// Check number
// return true if check digit in number is correct, false otherwise
function verhoeffCheck(number: String): boolean;
var
  c, digit, i, len: Integer;
begin

   c := 0;
   len := length(number);
   result := false;

  for i:=1 to len do
    begin
      digit := StrToInt(number[len - i + 1]);
                c := d[c][p[(i - 1) mod 8][digit]];
          end;

  if c = 0 then
    result := true;
end;

// Calculate check digit for a given number
function verhoeffCheckDigit(number: String): integer;
var
  c, digit, i, len: Integer;
begin

   c := 0;
   len := length(number);

  for i:=2 to len do
    begin
      digit := StrToInt(number[len - i + 1]);
                 c := d[c][p[(i - 1) mod 8][digit]];
          end;

  result := inv[c];
end;

// Get number and check it
begin


  writeln('Ingrese el Numero');
  readln(number);

  if verhoeffCheck(number) = true then
     writeln('El número es correcto')
  else
     begin
       writeln('El número no es válido');
       writeln('Para este número introduzca un dígito de control es válida ' + IntToStr(verhoeffCheckDigit(number)));
     end;

  readln;

end.
pero como veo no es lo que necesito.
me empece a complicar al ver que esta dificil la cosa.

ecfisa 20-12-2016 23:08:45

Hola osmardj.

En este enlace encontrarás la implementación del algorítmo en Pascal: Algorithm Implementation/Checksums/Verhoeff Algorithm


Saludos :)


La franja horaria es GMT +2. Ahora son las 04:26:43.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi