Código de Basic - Cálculo de la/s constante/s de Kaprekar

Filtrado por el tag: keywords
<<>>
Imágen de perfil

Cálculo de la/s constante/s de Kaprekargráfica de visualizaciones


Basic

Publicado el 28 de Febrero del 2025 por Ángel (5 códigos)
551 visualizaciones desde el 28 de Febrero del 2025
Permite calcular la/s constante/s de Kaprekar.
Escoge un número entero positivo. Ordena sus dígitos en orden ascendente y lo resta a la ordenación descendente de los mismos.
Repite el proceso hasta que obtenga una constante o se meta en un bucle.(Para salir pulse ESC)

Requerimientos

Programa desarrollado en lenguaje Qb64 (Quick Basic).
Se puede descargar el IDE en qb64.com
Tutorial en https://www.qb64tutorial.com/the-tutorial
Otras páginas son Qb64.org https://www.abcdatos.com/tutoriales/programacion/qbasic/

Qb64.org
Qbasic.net

Versión 1.0

Publicado el 28 de Febrero del 2025gráfica de visualizaciones de la versión: Versión 1.0
552 visualizaciones desde el 28 de Febrero del 2025
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
' Constantes de Kaprekar. Enero 2025.
' https://sites.google.com/site/abugarins/, abugarins@gmail.com
'
' Escoge un numero entero positivo. Ordena sus digitos en orden ascendente y restalo a la ordenacion descendente de los mismos.
' Repite el proceso hasta que obtengas una constante.
'
Option _Explicit
Screen _NewImage(1260, 940, 32)
_FullScreen
 
Dim Pr As Integer, Lon As Integer, Vi As Integer, I As Integer, J As Integer
Dim N1 As Integer, N2 As Integer, Di As Integer, An As Integer, Lin As Integer, Nu As Integer
 
Dim Ni As String, Au As String * 1, N11 As String, N22 As String, Dii As String, Tmp As String
 
On Error GoTo Erro
 
Pr = 1
Nu = 0
 
Cls
 
Line Input "Numero inicial (F=fin):"; Ni
If _Trim$(UCase$(Ni)) = "F" Then End
 
Cls
 
Print "Numero incial:"; Ni
Print
 
Lin = Len(Ni)
 
For I = 1 To Lin
    J = Asc(Mid$(Ni, I, 1))
    If Not (J >= 48 And J <= 57) Then
        Print "Ha de ser un numero entero positivo.";
        Beep
        Line Input Tmp
        Run
    End If
Next I
 
While Pr = 1
 
    Nu = Nu + 1
 
    Ni = _Trim$(Ni)
    Lon = Len(Ni)
    'Print "Longitud:"; Str$(Lon)
 
    Vi = Val(Ni)
 
    N11 = Ni
    N1 = Val(N11)
 
    For I = 1 To Lon - 1
        For J = I + 1 To Lon
 
            If Val(Mid$(N11, I, 1)) < Val(Mid$(N11, J, 1)) Then
                Au = Mid$(N11, J, 1)
                Mid$(N11, J, 1) = Mid$(N11, I, 1)
                Mid$(N11, I, 1) = Au
            End If
 
        Next J
    Next I
 
    N1 = Val(N11)
    'Print N11; " - ";
 
    N22 = Ni
    N2 = Val(N22)
 
    For I = 1 To Lon - 1
        For J = I + 1 To Lon
 
            If Val(Mid$(N22, I, 1)) > Val(Mid$(N22, J, 1)) Then
                Au = Mid$(N22, J, 1)
                Mid$(N22, J, 1) = Mid$(N22, I, 1)
                Mid$(N22, I, 1) = Au
            End If
 
        Next J
    Next I
 
    N2 = Val(N22)
 
    If N1 = N2 Then
        Print "Constante de kaprekar trivial = 0."
        Exit While
    End If
 
    Di = N1 - N2
    Dii = Str$(Di)
 
    If Di = An Then
        Print " "; N11; " - "; N22; " = "; Dii; " (Constante de kaprekar para numeros de"; Str$(Lin); " cifras)."
        Exit While
    Else
        Print Nu; ": "; N11; " - "; N22; " = "; Dii
        'Print N22; " = "; Dii
        An = Di
        Ni = _Trim$(Dii)
        'Con retencion de ceros
        While Len(Ni) < Lin
            Ni = "0" + Ni
        Wend
    End If
 
    Print
 
    If InKey$ = Chr$(27) Then End
 
Wend
 
Line Input " "; Tmp
 
Run
 
Erro:
 
Print
 
Beep
 
Print ">>> ERROR "; Err; "("; _ErrorMessage$; ") en linea "; _ErrorLine; " <<<";
 
Beep
 
End



Comentarios sobre la versión: Versión 1.0 (0)


No hay comentarios
 

Comentar la versión: Versión 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s7562