#include #define TOTAL_BINES 10 algoritmo /* verifica y obtiene argumento: tamaño de muestra*/ tamaño muestra=0 //obtener total argumentos //es distinto a '2', entonces{ terminar } //obtener parámetro numérico(2), mover a 'tamaño muestra' /* algo menos natural, pero más claro para una mente formal: */ obtener total argumentos si ' es distinto a( 2 ) ' terminar sino guardar ' parám numérico(2)' en 'tamaño muestra' fin si /* establece la escala para desplegar barras */ escala = 1.0 si ' #(tamaño muestra > 50) ' #( escala = 50.0 / tamaño muestra ) fin si /* Generar muestra de tamaño "tamaño muestra" */ dimensionar con ( tamaño muestra) matriz aleatoria entera ( 10, muestra ) decimales '3' /* Genera tabla de clases con 10 bines */ tabla de clases=0 bines(TOTAL_BINES, muestra), mover a 'tabla de clases' /* Imprime tabla de clases */ ir a subrutina( desplegar tabla de clases) /* Calcula promedio según tabla de clases */ promedio tabla=0, FREC=0, MC=0 ir a subrutina ( calcular promedio de tabla de clases ) /* Calcula desviación estándar y varianza */ desviación estándar=0, varianza=0 ir a subrutina ( calcular desviación estándar y varianza ) /* Calcula promedio de la muestra completa e imprime medidas */ ir a subrutina ( desplegar medidas y medias ) /* Construye barras */ tamaño barras=0, barras=0 ir a subrutina( construir barras para histograma ), mover a 'barras' /* arma histograma de salida */ sMC=0 ir a subrutina( construir y desplegar histograma ) terminar subrutinas desplegar tabla de clases: token.separador '"\t"' imprimir '#(utf8("Tamaño de la muestra = ")), tamaño muestra,NL,NL,\ #(utf8("Números entre 0 y 10\n\n")),\ " --RANGO--\tM.DE C.\tFREC.\tF.R\t F.A.\tF.R.A.\n",\ "-----------------------------------------------------\n"' imprimir 'justificar derecha(5,#(string(tabla de clases))), NL' retornar desplegar medidas y medias: promedio muestra=0 muestra, promediar, mover a 'promedio muestra' imprimir ' "Media de la muestra = ", promedio muestra, NL,\ "Media de la tabla = ", promedio tabla, NL,\ "Varianza = ", varianza, NL,\ #(utf8("Desviación estandar = ")), desviación estándar,NL' retornar construir barras para histograma: #(tamaño barras = int(FREC * escala * 5)) dimensionar con (TOTAL_BINES) matriz rellena ("*", barras) #(barras = replicate( barras, tamaño barras)) retornar ' barras ' construir y desplegar histograma: #(sMC = string(MC)) unir columnas( sMC, sMC, justificar derecha(5,#(string(FREC))), barras ) /* Imprime histograma */ token.separador '" "' imprimir ( " M.C. FREC.\n-----------\n",\ sMC,NL ) retornar calcular promedio de tabla de clases: //[1:filasde(tabla de clases), 3] coger (tabla de clases), mover a 'MC' //[1:filasde(tabla de clases), 4] coger (tabla de clases), mover a 'FREC' /* un poco menos natural, pero más claro para una mente formal: */ #basic{ MC = tabla de clases[ 1:TOTAL_BINES, 3] FREC = tabla de clases[ 1:TOTAL_BINES, 4] } borrar intervalo multiplicar(MC,FREC), calcular sumatoria, dividir entre (tamaño muestra), mover a 'promedio tabla' retornar calcular desviación estándar y varianza: restar( MC, promedio tabla), elevar al cuadrado, por (FREC), calcular sumatoria, dividir entre(tamaño muestra), copiar en 'varianza' calcular raíz, mover a 'desviación estándar' retornar