Ejecución |
 |
Guión de la actividad 10.2: Números
primos entre dos valores introducidos
por el usuario
|
Arrancar el KPL y abrimos el archivo Primos1 creado
anteriormente bien desde la
carpeta My Programs Files
que está en Mis Documentos o
bien desde: |
 |
Editamos las primeras líneas
de código para que el
comentario nos quede así: |
/*Programa: Primos2
Autores: Lidia y Pablo
Descripción: Este
programa imprime la
lista de los números
primos entre dos valores
naturales introducidos
por el
usuario, dando el
resultado en 15
columnas*/
|
Poner título al programa: Primos2 en lugar de
Primos1.
Guardamos el archivo
picando en
Archivo/Guardar como
nuevo programa y
escribiremos el
nombre Primos2,
seleccionando la
carpeta donde quiera
ir almacenando todas
las actividades. Por
defecto la carpeta
elegida es My
Phrograms Files que
está en Mis
Documentos.
La Function EsPrimo()
no la tocamos.
En el Método
Principal, Method
Main(), definimos la
variable columna:
|
 |
|
Var
columna
As
Integer
//contador de columnas
|
A continuación añadimos el
código: |
ConsoleWriteLine("Sabías
que el número de números
naturales primos es
infinito?")
ConsoleWriteLine("Vamos
a hallar todos los
primos entre dos números
naturales dados")
ConsoleWriteLine("")
|
Hacemos que la variable n
tome el valor que
introduzca el usuario a
través de la consola: |
Var n
As
Integer=ConsoleReadInt("Introduzca
un número natural: ",True)
|
e introducimos un WHILE para que ese valor de n sea un número
entero mayor que cero: |
While
n<=0
ConsoleWriteLine("Por
favor, tiene que ser
mayor que cero")
n=ConsoleReadInt("Introduzca
un número natural: ",True)
End While
|
Idem para la variable m: |
While
m<=0
ConsoleWriteLine("Por favor, otra vez igual,tiene que ser
mayor que cero")
m=ConsoleReadInt("Introduzca
otro número natural: ",True)
End While
|
Escribimos a continuación: |
//impresión del
resultado
ConsoleWriteLine("")
ConsoleWriteLine("Los
números primos
comprendidos entre los
valores "+Min(n,m)+"
y "+Max(n,m)+" son:")
ConsoleWriteLine("")
|
donde Min(n,m) es una función
matemática predefinida
disponible en KPL que
devuelve el menor valor de n
y
m, y Max(n,m) es también una
función matemática
predefinida disponible en
KPL que devuelve el mayor
valor de n y m.
Después editamos el FOR en
el que k recorre todos los
valores entre Min(n,m) y
Max(n,m) y que imprime k
cuando k es primo: |
For
k=Min(n,m)
To
Max(n,m)
If
EsPrimo(k)
Then
ConsoleWrite(k)
ConsoleWrite("
")
columna=columna+1
If
columna=15
Then
columna=0
ConsoleWriteLine("")
End If
End If
Next
|
Cuando EsPrimo(k) sea True
se imprimirá k, unos
espacios en blanco y además
el contador de columnas
aumentará en 1 (ver
columna=columna+1). A
continuación hemos
introducimos un IF para que
cuando el contador de
columnas sea 15, entonces
asigna a la variable
columna el valor cero y además hace un salto de línea de impresión.
Guardamos el archivo picando
sobre el icono
o Archivo/Guardar.
En el caso de existir algún
error en el CÓDIGO FUENTE de
nuestro programa, KPL nos
informa con un aviso de
ERROR y el cursor se sitúa
sobre la línea y secuencia
errónea. Lo rectificaremos.
Al ejecutar el programa
(F5), nos pedirá el primer
el número natural: |
 |
Si por ejemplo introducimos
-324 y damos a intro,
obtendremos: |
 |
Ahora si introducimos 324,
intro y después nos pedirá
otro número natural;
introducimos por ejemplo
1500, intro y obtenemos: |
 |
Puedes comprobar que si se
introduce 1500 primero y 324
después, el programa imprime
el mismo resultado. Esto se
lo tenemos que agradecer a
las funciones matemáticas
Min y Max.
¿Cuáles son los primos entre
5000 y 20000? |