You are on page 1of 7

Ejemplo 1.

Clculo del Mximo Comn Divisor

/* * Clculo del mximo comn divisor utilizando el algoritmo * de Euclides. * * (c) jsegovia@cnc.una.py */ var a, b : numerico inicio

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-b sino 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) jsegovia@cnc.una.py */ var a, b : numerico inicio

imprimir ("Ingrese dos enteros positivos:"

leer (a, b) imprimir (nEl MCM de , a, y , b, es , (a*b) / MCD (a, b)) fin sub MCD (a, b : numerico) retorna numerico inicio mientras (a <> b ) { si ( a > b ) { a=a-b sino b=b-a } } retorna a fin

Ejemplo 3. El clsico factorial

/* * Este es el clsico ejemplo del clculo del factorial * de un entero positivo n. * * (c) jsegovia@cnc.una.py

*/ var n : numerico inicio imprimir ("nCALCULO DE FACTORIAL", "n--------------------",

"nIngrese un numero (0-n):"

leer (n) si ( n >= 0 && n == int (n) ) { imprimir ("nnn", n, "!=", fact (n)) sino imprimir ("nNo definido para ", n) } fin sub fact (n : numerico) retorna numerico /* * Calcula el factorial de n. Imprime los valores que * se usaron en la etapa del clculo. */ var r : numerico inicio si ( n == 0 ) { r=1 sino

imprimir ("n", n, "! = ", n, " x (", n-1, "!)"

r = n*fact(n-1) } retorna r fin sub fact2 (n : numerico) retorna numerico /* * Una versin ms compacta de fact(), que no imprime el * rastro de los valores intermedios. */ inicio retorna ifval ( 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) jsegovia@cnc.una.py */ var A : vector [10] numerico m, n : numerico inicio imprimir (nIngrese , alen (A), nmeros separados por comas:n) leer (A) desde m=1 hasta alen(A)-1 { desde n=m+1 hasta alen (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) jsegovia@cnc.una.py */ 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 inicio impr_mat (Matriz original:n, M) transponer (M, T) impr_mat (nLa traspuesta es:n, T) fin sub transponer ( M : matriz [*,*] numerico ref R : 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) desde filas=1 hasta cant_filas { desde cols=1 hasta cant_cols { R [filas, cols] = M [cols, filas] } } fin sub impr_mat (msg : cadena; M : matriz [*,*] numerico) var k=0 inicio imprimir (msg) desde k=1 hasta alen (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) jsegovia@cnc.una.py */ var n=0 hex = k=0 const DIG_HEX = 0123456789ABCDEF inicio 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

You might also like