Upload
andreyfg
View
215
Download
0
Embed Size (px)
Citation preview
7/23/2019 SL Ejemplos
1/6
emplos http://www.cnc.una.py/sl/SL-ejem
6 30/09/2015 0
7/23/2019 SL Ejemplos
2/6
Bienvenida
Novedades
Documentos
Descarga de SLE
Licencia
Programas fuente de ejemplo
Ejemplo 1. Clculo del Mximo Comn Divisor
/** Clculo del mximo comn divisor utilizando el algoritmo
* de Euclides.
*
* (c) [email protected]
*/
var
a, b : numericoinicio
imprimir ("Ingrese dos enteros positivos:")
leer (a, b)si( (a < 1) or(b < 1) ) {
terminar (\nLos valores ingresados deben ser positivos) }
mientras(a b ) {si( a > b ) {
a = a - bsino
b = b - a } } imprimir (\nEl MCD es , a)fin
Ejemplo 2. Clculo del Mnimo Comn Mltiplo
/*
* Clculo del mnimo comn mltiplo, usando la relacin
** a * b
* MCM(a,b) = ------------
* MCD (a, b)** (c) [email protected]
*/
var
a, b : numericoinicio
imprimir ("Ingrese dos enteros positivos:") leer (a, b) imprimir (\nEl MCM de , a, y , b, es , (a*b) / MCD (a, b))fin
subMCD (a, b : numerico) retornanumerico
emplos http://www.cnc.una.py/sl/SL-ejem
6 30/09/2015 0
7/23/2019 SL Ejemplos
3/6
inicio
mientras(a b ) {si( a > b ) {
a = a - bsino
b = b - a } }
retornaa
fin
Ejemplo 3. El clsico factorial
/** Este es el clsico ejemplo del clculo del factorial* de un entero positivo n.** (c) [email protected]
*/var
n : numericoinicio
imprimir ("\nCALCULO DE FACTORIAL", "\n--------------------", "\nIngrese un numero (0-n):") leer (n)
si( n >= 0 && n == int (n) ) { imprimir ("\n\n\n", n, "!=", fact (n))
sino
imprimir ("\nNo definido para ", n)
}fin
subfact (n : numerico) retornanumerico/** Calcula el factorial de n. Imprime los valores que* se usaron en la etapa del clculo.*/var
r : numericoinicio
si( n == 0 ) { r = 1
sino
imprimir ("\n", n, "! = ", n, " x (", n-1, "!)") r = n*fact(n-1) }
retornarfin
subfact2 (n : numerico) retornanumerico/** Una versin ms compacta de fact(), que no imprime el
emplos http://www.cnc.una.py/sl/SL-ejem
6 30/09/2015 0
7/23/2019 SL Ejemplos
4/6
* rastro de los valores intermedios.*/inicio
retornaifval ( n == 0,1,n*fact2(n-1))
fin
Ejemplo 4. Lectura y ordenacin de un vector
/** Lee un vector de 10 elementos numricos, ordena* ascendentemente sus elementos y los imprime.* La ordenacin se hace con el algoritmo de la burbuja.** (c) [email protected]*/var
A : vector[10] numerico m, n : numericoinicio
imprimir (\nIngrese , alen (A), nmeros separados por comas:\n) leer (A)
desdem=1 hastaalen(A)-1 {desden=m+1 hastaalen (A) {
si( A [m] > A [n] ) { intercambiar (A [m], A [n]) } } }
imprimir ("\nEl vector ordenado es:\n, A)fin
Ejemplo 5. Transpuesta de una matriz
/** Dado un arreglo bidimensional (matriz), genera e imprime* su traspuesta.*
* (c) [email protected]*/var
/* * Las 3 ltimas filas de M sern iguales. */ M : matriz[5, 3] = {{7, 12, 5}, {1, 4, 22}, {6, 20, 13}, ... } T : matriz[*,*] numerico
emplos http://www.cnc.una.py/sl/SL-ejem
6 30/09/2015 0
7/23/2019 SL Ejemplos
5/6
inicio
impr_mat (Matriz original:\n, M) transponer (M, T) impr_mat (\nLa traspuesta es:\n, T)fin
subtransponer ( M : matriz[*,*] numericorefR : matriz[*,*] numerico)
/** trasponer() produce la transpuesta de M y lo deposita* en R.* M puede tener cualquier tamao, con tal de que* sea bidimensional y rectangular (cantidad igual de* elementos por cada fila).* R debe ser un arreglo abierto.*/var
cant_filas = alen (M) cant_cols = alen (M [1]) filas, cols : numerico
inicio /* * Ntese que las filas y columnas estn en orden * inverso en el siguiente dim(). */ dim (R, cant_cols, cant_filas)
desdefilas=1 hastacant_filas {desdecols=1 hastacant_cols {
R [filas, cols] = M [cols, filas] } }fin
subimpr_mat (msg : cadena; M : matriz[*,*] numerico)var
k = 0inicio
imprimir (msg)desdek=1 hastaalen (M) {
imprimir (M [k], \n) }fin
Ejemplo 6. Conversin de decimal a hexadecimal
/** Lee un entero positivo e imprime el mismo nmero expresado* en base 16.** (c) [email protected]*/var
emplos http://www.cnc.una.py/sl/SL-ejem
6 30/09/2015 0
7/23/2019 SL Ejemplos
6/6
n = 0 hex = k = 0const
DIG_HEX = 0123456789ABCDEFinicio
imprimir (Ingrese un entero positivo:) leer (n)
repetir
hex = DIG_HEX [n % 16 + 1] + hex n = int (n/16)
hasta( n == 0 ) imprimir (\nHexadecimal=, hex)fin
emplos http://www.cnc.una.py/sl/SL-ejem