SL Ejemplos

download SL Ejemplos

of 6

Transcript of SL Ejemplos

  • 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