Estadistica

109
6-10-2015 APLICACIONES ESTADÍSTICAS [Subtítulo del documento] Melina Márquez UNIVERSIDAD DE GUAYAQUIL– CENTRO DE ESTUDIOS SANTO DOMINGO

Transcript of Estadistica

Page 1: Estadistica

6-10-2015

APLICACIONES ESTADÍSTICAS [Subtítulo del documento]

Melina Márquez UNIVERSIDAD DE GUAYAQUIL– CENTRO DE ESTUDIOS SANTO DOMINGO

Page 2: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Excel

La hoja de cálculo Excel o Calc (OpenOffice) es un software considerado como estándar en todos los entornos (educativo, profesional, familiar, etc), que posee la virtud de presentar una interfaz agradable, una facilidad de uso digna de elogio y permite realizar análisis estadísticos simples o más complejos y avanzados.

HISTORIA

Microsoft comercializo originalmente un

programa de hojas de cálculo llamado

multiplan en 1982 que fue muy popular en

los computadores la. Microsoft publico la

primera versión de Excel en 1985.

A principios de 1993 Excel se convirtió en

el objetivo de una demanda por otra

persona que ya tenía a la venta un

paquete de software llamado "Excel" en el sector financiero ya que era un

producto muy competitivo en el mercado. Como Resultado de la controversia

Microsoft estaba obligado a hacer Referencia al programa como "Microsoft

Excel" en todos sus comunicados de prensa y documentos jurídicos.

El origen, la historia y la cronología de las hojas de

cálculo electrónicas y de la famosa aplicación de

Microsoft Excel es la siguiente. En la antigüedad.

Las primeras hojas de cálculo nacen con el

desarrollo de la escritura y las matemáticas donde

se recoge la información de una manera

“Ordenada"

En 1846.Augustus de Morgan Matemático Del Siglo XIX introdujo un sistema de matrices (Filas & Columnas) Para Su Uso En La Contabilidad Financiera, Sentado las bases de la estructura principal en las hojas de cálculo, la celda.

En 1952.Aparece por primera vez el termino hoja de cálculo escrito en un diccionario, el diccionario de kohler.

Page 3: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

En 1960.Richard Mattessich planteo y siente las bases para la computarización de las hojas de cálculo.

En 1969.Pardo y Landau Desarrollan los algoritmos básicos para la

creación y programación de las hojas de cálculo electrónicas, desarrollan

el lenguaje LANPAR que fue utilizado por empresas como General

Motors,AT&T.etc... Con el objetivo de realizar presupuestos

Informáticamente.

En 1978.Daniel Singer Bricklin desarrolla el primer prototipo de visiCalc, programado bajo el sistema operativo de apple. visiCalc es considerado como la primera hoja de cálculo electrónica desarrollada e implementada con éxito en los ordenadores personales.

En 1979.Bricklin decide impulsar el primer prototipo de visiCalc, para ello crea la empresa software Arts corporation junto con Bob Frankston, ambos lanzaron la primera version de visiCalc para el ordenador personal

Apple 2 por un precio de 100 dólares, en esta primera versión la hoja de cálculo electrónica está comprendida por un total de 20 filas y 4 columnas. En 1982.La empresa de Bill Gates Microsoft desarrolla la hoja de cálculo electrónica Multiplan como alternativa a visaCalc, Multiplan sería la base para el desarrollo de la hoja de cálculo de excel.

Page 4: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

En 1983.Se lanza al mercado Lotus 1-2-3, una hoja de cálculo electrónica compatible con los ordenadores IBM y el sistema operativo MS-Dos , su éxito desplazo del cercado a visiCalc dado a la capacidad de generar graficas así como la posibilidad de usar funciones predefinidas y la facilidad de su uso al disponer de un menú en la parte superior de la pantalla . Postteriormente en la version 2.0 de Lotus 123 se incluirá la programación y automatización de las hojas de cálculo mediante macros.

En 1985.Se lanza al mercado a primera versión Excel, la cual fue desarrollada por microsoft para el Macintosh de Apple, en esta primer versión se dispone de menús desplegables así como la posibilidad de utilizar el ratón, la facilidad de su uso fue la razón por la que muchas personas y empresas decidieron adquirir un Macintosh para utilizar Excel como herramienta de cálculo.

En 1987. Nace Excel 2.0 una nueva inversión de la famosa hoja de cálculo

desarrollada para Windows 2.0, el éxito alcanzado por el programa ofimático de

Microsoft desplaza y elimina a otras hojas de cálculo electrónicas como Lotus 1-

2-3.

Así fue como se concluyó este programa que utilizamos en la mayor parte de

actividades que nosotros realizamos. Excel como podemos ver es una hoja de

cálculo que utilizamos más a menudo .También se puede caracterizar por ser

una herramienta fundamental en nuestro trabajo.

Page 5: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Las funciones (I)

Esta unidad es una de las más importantes del curso, pues en su comprensión y manejo está la base de Excel. Qué es una hoja de cálculo sino una base de datos que utilizamos con una serie de fórmulas para evitar tener que recalcular por cada cambio que hacemos. Por eso, esta unidad es fundamental para el desarrollo del curso y la buena utilización de Excel.

Vamos a profundizar en el manejo de funciones ya definidas por Excel 2013 para agilizar la creación de hojas de cálculo, estudiando la sintaxis de éstas así como el uso del asistente para funciones, herramienta muy útil cuando no conocemos muy bien las funciones existentes o la sintaxis de las mismas.

6.1. Introducir funciones

Una función es una fórmula predefinida por Excel (o por el usuario) que opera con uno o más valores y devuelve un resultado que aparecerá directamente en la celda o será utilizado para calcular la fórmula que la contiene.

La sintaxis de cualquier función es:

nombre_función(argumento1;argumento2;...;argumentoN)

Siguen las siguientes reglas:

- Si la función va al comienzo de una fórmula debe empezar por el signo =.

- Los argumentos o valores de entrada van siempre entre paréntesis. No dejes espacios antes o después de cada paréntesis.

- Los argumentos pueden ser valores constantes (número o texto), fórmulas o funciones.

- Los argumentos deben de separarse por un punto y coma ;.

Ejemplo: =SUMA(A1:C8)

Tenemos la función SUMA() que devuelve como resultado la suma de sus argumentos. El operador ":" nos identifica un rango de celdas. Así A1:C8 indica todas las celdas incluidas entre la celda A1 y la C8. De esta manera, la función anterior sería equivalente a:

=A1+A2+A3+A4+A5+A6+A7+A8+B1+B2+B3+B4+B5+B6+B7+B8+C1+C2+C3+C4+C5+C6+C7+C8

En este ejemplo, se puede apreciar la ventaja de utilizar la función.

Las fórmulas pueden contener más de una función, y pueden aparecer funciones anidadas dentro de la fórmula.

Page 6: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Ejemplo: =SUMA(A1:B4)/SUMA(C1:D4)

Existen muchos tipos de funciones dependiendo del tipo de operación o cálculo que realizan. Así, hay funciones matemáticas, trigonométricas, estadísticas, financieras, de texto, de fecha y hora, lógicas, de base de datos, de búsqueda y referencia y de información.

Para introducir una fórmula debe escribirse en una celda cualquiera tal cual introducimos cualquier texto, precedida siempre del signo =.

Si quieres conocer más sobre los operadores más utilizados y las precedencias

de los operadores visita nuestro básico .

6.2. Autosuma y funciones más frecuentes

Una función, como cualquier dato, se puede escribir directamente en la celda si conocemos su sintaxis, pero Excel dispone de herramientas que facilitan esta tarea.

En la pestaña Inicio o en la de Fórmulas encontrarás el botón de Autosuma que nos permite realizar la función SUMA de forma más rápida.

Con este botón tenemos acceso también a otras funciones utilizando la flecha de la derecha del botón. Al hacer clic sobre ésta aparecerá la lista desplegable de la imagen. Y podremos utilizar otra función que no sea la Suma, como puede ser Promedio (calcula la media aritmética), Cuenta (cuenta valores), Máx (obtiene el valor máximo) o Mín (obtiene el valor mínimo). Ademas de poder accesar al diálogo de funciones a través de Más Funciones.

Para utilizar estas opciones, asegúrate de que tienes seleccionada la celda en que quieres que se realice la operación antes de pulsar el botón.

Insertar función

Para insertar cualquier otra función, también podemos utilizar el asistente. Si queremos introducir una función en una celda:

Situarse en la celda donde queremos introducir la función.

Hacer clic en la pestaña Fórmulas

Elegir la opción Insertar función.

O bien hacer clic sobre el botón de la barra de fórmulas.

Aparecerá el siguiente cuadro de diálogo Insertar función:

Excel 2013 nos permite buscar la función que necesitamos escribiendo una breve descripción de la función necesitada en el recuadro Buscar una función: y, a continuación, haciendo clic sobre el botón. De esta forma, no es necesario conocer cada una de las funciones que incorpora Excel ya que nos mostrará en

Page 7: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

el cuadro de lista Seleccionar una función: las funciones que tienen que ver con la descripción escrita.

Para que la lista de funciones no sea tan extensa podemos seleccionar previamente una categoría del cuadro combinado O seleccionar una categoría:; esto hará que en el cuadro de lista sólo aparezcan las funciones de la categoría elegida y reduzca por lo tanto la lista. Si no estamos muy seguros de la categoría podemos elegir Todas.

En el cuadro de lista Seleccionar una función: hay que elegir la función que deseamos haciendo clic sobre ésta.

Observa cómo, conforme seleccionamos una función, en la parte inferior nos aparecen los distintos argumentos y una breve descripción de ésta. También disponemos de un enlace Ayuda sobre esta función para obtener una descripción más completa de dicha función.

Al final, hacer clic sobre el botón Aceptar.

La ventana cambiará al cuadro de diálogo Argumentos de función, donde nos pide introducir los argumentos de la función: este cuadro variará según la función que hayamos elegido. En nuestro caso se eligió la función SUMA ().

En el recuadro Número1 hay que indicar el primer argumento que, generalmente, será una celda o rango de celdas tipo A1:B4 . Para ello, hacer clic sobre el botón

para que el cuadro se haga más pequeño y podamos ver toda la hoja de cálculo; a continuación, seleccionar el rango de celdas o la celda deseadas como primer argumento (para seleccionar un rango de celdas haz clic con el botón izquierdo del ratón sobre la primera celda del rango y, sin soltar el botón, arrástralo hasta la última celda del rango) y pulsar la tecla INTRO para volver al cuadro de diálogo.

En el recuadro Número2 habrá que indicar cuál será el segundo argumento. Sólo en caso de que existiera.

Si introducimos segundo argumento, aparecerá otro recuadro para el tercero, y así sucesivamente.

Cuando tengamos introducidos todos los argumentos, hacer clic sobre el botón Aceptar.

Si por algún motivo insertáramos una fila en medio del rango de una función, Excel expande automáticamente el rango incluyendo así el valor de la celda en el rango. Por ejemplo: Si tenemos en la celda A5 la función =SUMA(A1:A4) e insertamos un fila en la posición 3, la fórmula se expandirá automáticamente cambiando a =SUMA(A1:A5).

Si quieres conocer más sobre las referencias y nombres visita nuestro básico Utilizar Expresiones como argumentos de las Funciones

Page 8: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Excel permite que en una función tengamos como argumentos expresiones. Por ejemplo, la suma de dos celdas (A1+A3). El orden de ejecución de la función será primero resolver las expresiones y después ejecutar la función sobre el resultado de las expresiones.

Por ejemplo, si tenemos la siguiente función =Suma((A1+A3);(A2-A4)) donde:

A1 vale 1 A2 vale 5 A3 vale 2 A4 vale 3

Excel resolverá primero las expresiones (A1+A3) y (A2-A4) por lo que obtendremos los valores 3 y 2 respectivamente. Después, realizará la suma, obteniendo así 5 como resultado.

Utilizar Funciones como argumentos de las Funciones

Excel también permite que una función se convierta en argumento de otra función. De esta forma, podemos realizar operaciones realmente complejas en una simple celda. Por ejemplo, =MAX(SUMA(A1:A4);B3); esta fórmula consta de la combinación de dos funciones, la suma y el valor máximo. Excel realizará primero la suma SUMA(A1:A4) y después calculará el valor máximo entre el resultado de la suma y la celda B3.

6.4. Funciones de fecha y hora

De entre todo el conjunto de funciones, en este apartado estudiaremos las funciones dedicadas al tratamiento de fechas y horas.

Estas son todas las posibles funciones ofrecidas por Excel.

En varias funciones veremos que el argumento que se le pasa o el valor que nos devuelve es un "número de serie". Pues bien, Excel llama número de serie al número de días transcurridos desde el 0 de enero de 1900 hasta la fecha introducida, es decir, coge la fecha inicial del sistema como el día 0/1/1900 y, a partir de ahí, empieza a contar. En las funciones que tengan núm_de_serie como argumento, podremos poner un número o bien la referencia de una celda que contenga una fecha.

Función Descripción Ver

detalle

AHORA Devuelve el número de serie correspondiente a la

fecha y hora actuales

AÑO Convierte un número de serie en un valor de año

DIA Convierte un número de serie en un valor de día del

mes

Page 9: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

DIA.LAB

Devuelve el número de serie de la fecha que tiene

lugar antes o después de un número determinado

de días laborables

DIA.LAB.INTL

Devuelve el número de serie de la fecha anterior o

posterior a un número especificado de días

laborables mediante parámetros para indicar cuáles

y cuántos días son días de fin de semana

DIAS.LAB Devuelve el número de todos los días laborables

existentes entre dos fechas

DIAS360 Calcula el número de días entre dos fechas a partir

de un año de 360 días

DIASEM Convierte un número de serie en un valor de día de

la semana

FECHA Devuelve el número de serie correspondiente a una

fecha determinada

FECHA.MES

Devuelve el número de serie de la fecha equivalente

al número indicado de meses anteriores o

posteriores a la fecha inicial

FECHANUMERO Convierte una fecha con formato de texto en un

valor de número de serie

FIN.MES

Devuelve el número de serie correspondiente al

último día del mes anterior o posterior a un número

de meses especificado

FRAC.AÑO

Devuelve la fracción de año que representa el

número total de días existentes entre el valor de

fecha_inicial y el de fecha_final

HORA Convierte un número de serie en un valor de hora

HOY Devuelve el número de serie correspondiente al día

actual

MES Convierte un número de serie en un valor de mes

MINUTO Convierte un número de serie en un valor de minuto

NSHORA Devuelve el número de serie correspondiente a una

hora determinada

NUM.DE.SEMANA

Convierte un número de serie en un número que

representa el lugar numérico correspondiente a una

semana de un año

Page 10: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

SEGUNDO Convierte un número de serie en un valor de

segundo

HORANUMERO Convierte una hora con formato de texto en un valor

de número de serie

6.5. Funciones de texto

Una hoja de cálculo está pensada para manejarse dentro del mundo de los números, pero Excel también tiene un conjunto de funciones específicas para la manipulación de texto.

Estas son todas las funciones de texto ofrecidas por Excel.

Función Descripción

CARACTER Devuelve el carácter especificado por el número de

código

CODIGO Devuelve un código numérico del primer carácter de

una cadena de texto

CONCATENAR Concatena varios elementos de texto en uno solo

DECIMAL Da formato a un número como texto con un número fijo

de decimales

DERECHA,

DERECHAB

Devuelve los caracteres del lado derecho de un valor de

texto

ENCONTRAR,

ENCONTRARB

Busca un valor de texto dentro de otro (distingue

mayúsculas de minúsculas)

EXTRAE, EXTRAEB

Devuelve un número específico de caracteres de una

cadena de texto que comienza en la posición que se

especifique

HALLAR, HALLARB Busca un valor de texto dentro de otro (no distingue

mayúsculas de minúsculas)

IGUAL Comprueba si dos valores de texto son idénticos

IZQUIERDA,

IZQUIERDAB

Devuelve los caracteres del lado izquierdo de un valor

de texto

LARGO, LARGOB Devuelve el número de caracteres de una cadena de

texto

LIMPIAR Quita del texto todos los caracteres no imprimibles

Page 11: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

MAYUSC / MINUSC Convierte el texto en mayúsculas o en minúsculas

respectivamente

MONEDA Convierte un número en texto, con el formato de

moneda $ (dólar)

NOMPROPIO Pone en mayúscula la primera letra de cada palabra de

un valor de texto

REEMPLAZAR,

REEMPLAZARB Reemplaza caracteres de texto

REPETIR Repite el texto un número determinado de veces

SUSTITUIR Sustituye texto nuevo por texto antiguo en una cadena

de texto

T Si el valor es un texto lo devuelve, y si no devuelve una

cadena vacía

TEXTO Convierte un valor en texto, con un formato de número

específico

TEXTOBAHT Convierte un número en texto, con el formato de

moneda ß (Baht)

Funciones de búsqueda

En una hoja de Excel es muy importante coger los datos correctos para trabajar con las fórmulas diseñadas. Por eso existe una agrupación de funciones específicas para realizar búsquedas de datos.

Comprendamos qué es en sí una búsqueda. Cuando queremos encontrar alguna información de algo, no buscamos directamente por lo que buscamos pues lo desconocemos, sino que realizamos una búsqueda de una propiedad o algo similar que conocemos que puede tener lo que buscamos. Por ejemplo, si buscamos a una persona, describimos su aspecto físico; si buscamos el nº de teléfono de un restaurante, buscamos en la guía de teléfonos por el nombre del restaurante... Normalmente el dato que queremos encontrar no lo conocemos. Por eso, buscamos por otros datos que sí conocemos.

Estas son las funciones disponibles en Excel para realizar búsquedas:

Función Descripción

AREAS Devuelve el número de áreas de una

referencia

BUSCAR Busca valores de un vector o una matriz

Page 12: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

BUSCARH Busca en la fila superior de una matriz y

devuelve el valor de la celda indicada

BUSCARV

Busca en la primera columna de una matriz y

se mueve en horizontal por la fila para

devolver el valor de una celda

COINCIDIR Busca valores de una referencia o matriz

COLUMNA Devuelve el número de columna de una

referencia

COLUMNAS Devuelve el número de columnas de una

referencia

DESREF Devuelve un desplazamiento de referencia

respecto a una referencia dada

DIRECCION Devuelve una referencia como texto a una

sola celda de una hoja de cálculo

ELEGIR Elige un valor de una lista de valores

FILA Devuelve el número de fila de una referencia

FILAS Devuelve el número de filas de una referencia

HIPERVINCULO

Crea un acceso directo o un salto que abre un

documento almacenado en un servidor de

red, en una intranet o en Internet

IMPORTARDATOSDINAMICOS Devuelve los datos almacenados en un

informe de tabla dinámica

INDICE Usa un índice para elegir un valor de una

referencia o matriz

INDIRECTO Devuelve una referencia indicada por un valor

de texto

TRANSPONER Devuelve la transposición de una matriz

6.7. Funciones financieras

Excel es una de las herramientas más potentes para trabajar con información y cálculos financieros. Ofrece una amplia gama de funciones prediseñadas para crearte tu propia "caja de ahorros en casa".

Todas estas funciones están agrupadas en la categoría de Financieras.

Vamos a estudiar la amplia gama de funciones financieras que nos ofrece Excel:

Page 13: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Función Descripción

AMORTIZ.LIN Devuelve la amortización de cada uno de los períodos

contables

AMORTIZ.PROGRE Devuelve la amortización de cada período contable

mediante el uso de un coeficiente de amortización

CUPON.DIAS Devuelve el número de días del período (entre dos

cupones) donde se encuentra la fecha de liquidación

CUPON.DIAS.L1 Devuelve el número de días desde el principio del

período de un cupón hasta la fecha de liquidación

CUPON.DIAS.L2 Devuelve el número de días desde la fecha de

liquidación hasta la fecha del próximo cupón

CUPON.FECHA.L1 Devuelve la fecha de cupón anterior a la fecha de

liquidación

CUPON.FECHA.L2 Devuelve la fecha del próximo cupón después de la

fecha de liquidación

CUPON.NUM Devuelve el número de pagos de cupón entre la fecha

de liquidación y la fecha de vencimiento

DB

Devuelve la amortización de un bien durante un período

específico a través del método de amortización de saldo

fijo

DDB

Devuelve la amortización de un bien durante un período

específico a través del método de amortización por doble

disminución de saldo u otro método que se especifique

DVS

Devuelve la amortización de un bien durante un período

especificado usando el método de amortización

acelerada con una tasa doble y según el coeficiente que

se especifique.

DURACION Devuelve la duración anual de un valor bursátil con

pagos de interés periódico

INT.ACUM Devuelve el interés acumulado de un valor bursátil con

pagos de interés periódicos

INT.ACUM.V Devuelve el interés acumulado de un valor bursátil con

pagos de interés al vencimiento

INT.EFECTIVO Devuelve la tasa de interés anual efectiva

Page 14: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

INT.PAGO.DIR

Calcula el interés pagado durante un período específico

de una inversión. Esta función se incluye para

proporcionar compatibilidad con Lotus 1-2-3.

MONEDA.DEC

Convierte una cotización de un valor bursátil expresada

en forma fraccionaria en una cotización de un valor

bursátil expresada en forma decimal

MONEDA.FRAC

Convierte una cotización de un valor bursátil expresada

en forma decimal en una cotización de un valor bursátil

expresada en forma fraccionaria

NPER

Devuelve el número de pagos de una inversión, basada

en pagos constantes y periódicos y una tasa de interés

constante.

PAGO.INT.ENTRE Devuelve el interés acumulado pagado entre dos

períodos

PAGO.PRINC.ENTRE Devuelve el capital acumulado pagado de un préstamo

entre dos períodos

PAGOINT Devuelve el pago de intereses de una inversión durante

un período determinado

PAGOPRIN

Devuelve el pago de un capital de una inversión

determinada, basado en pagos constantes y periódicos

y una tasa de interés constante.

SYD Devuelve la depreciación por método de anualidades de

un bien durante un período específico.

TASA Devuelve la tasa de interés por periodo de un préstamo

o una inversión.

TASA.DESC Devuelve la tasa de descuento de un valor bursátil

TASA.INT Devuelve la tasa de interés para la inversión total de un

valor bursátil

TIR Devuelve la tasa interna de retorno de una inversión para

una serie de valores en efectivo.

TIRM

Devuelve la tasa interna de retorno modificada, para una

serie de flujos periódicos, considerando costo de la

inversión e interés al volver a invertir el efectivo.

VA

Devuelve el valor actual de una inversión. El valor actual

es el valor que tiene actualmente la suma de una serie

de pagos que se efectúan en el futuro.

Page 15: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

VF Devuelve el valor futuro de una inversión

VF.PLAN Devuelve el valor futuro de un capital inicial después de

aplicar una serie de tasas de interés compuesto

VNA Devuelve el valor neto actual de una inversión a partir de

una tasa de descuentos y una serie de pagos futuros.

Otras funciones

Además de las funciones anteriormente mencionadas, existe un gran abanico de funciones de diferentes categorías que nos pueden ser de gran utilidad.

En este capítulo veremos algunas de ellas clasificándolas por categorías.

Función Descripción

ABS Devuelve el valor absoluto de un número

ALEATORIO Devuelve un número entre 0 y 1

COMBINAT Devuelve el número de combinaciones para un número

determinado de elementos

COS Devuelve el coseno de un ángulo

ENTERO Redondea un número hasta el entero inferior más próximo

EXP Realiza el cálculo de elevar "e" a la potencia de un número

determinado

FACT Devuelve el factorial de un número

NUMERO.ROMANO Devuelve el número pasado en formato decimal a número

Romano

PI Devuelve el valor de la constante pi

POTENCIA Realiza el cálculo de elevar un número a la potencia

indicada

PRODUCTO Devuelve el resultado de realizar el producto de todos los

números pasados como argumentos

RAIZ Devuelve la raiz cuadrada del número indicado

RESIDUO Devuelve el resto de la división

MEDIA.ARMO Devuelve la media armónica de un conjunto de números

positivos

Page 16: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

MAX Devuelve el valor máximo de la lista de valores

MIN Devuelve el valor mínimo de la lista de valores

MEDIANA Devuelve la mediana de la lista de valores

MODA Devuelve el valor que más se repite en la lista de valores

PROMEDIO Devuelve la media aritmética de la lista de valores

VAR Devuelve la varianza de una lista de valores

K.ESIMO.MAYOR Devuelve el valor k-ésimo mayor de un conjunto de datos

K.ESIMO.MENOR Devuelve el valor k-ésimo menor de un conjunto de datos

FALSO Devuelve el valor lógico Falso

VERDADERO Devuelve el valor lógico Verdadero

SI Devuelve un valor u otro, según se cumpla o no una

condición

NO Invierte el valor lógico proporcionado

Y Comprueba si todos los valores son verdaderos

O Comprueba si algún valor lógico es verdadero y devuelve

VERDADERO

ESBLANCO Comprueba si se refiere a una celda vacía

ESERR Comprueba si un valor es un error

ESLOGICO Comprueba si un valor es lógico

ESNOTEXTO Comprueba si un valor no es de tipo texto

ESTEXTO Comprueba si un valor es de tipo texto

ESNUMERO Comprueba si un valor es de tipo numérico

TIPO Devuelve un número que representa el tipo de datos del

valor

Si deseas saber cómo instalar y utilizar el pack de herramientas de análisis para

disfrutar de más funciones, haz clic aquí .

Controlar errores en funciones

Al igual que podíamos definir condiciones de validación para los datos, podemos controlar los errores en las fórmulas. Para corregirlos, necesitaremos, primero, localizarlos.

Page 17: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Por ejemplo, al introducir una fórmula manualmente podemos cometer un error sintáctico como =PROMEDO(A1:A9), lo que provocaría que apareciese en la celda un error de tipo #¿NOMBRE?.

Si pulsamos sobre la pestaña Formulas encontraremos el botón Comprobación de errores... dentro del grupo Auditoría de fórmulas.

Desde la pequeña flecha de la derecha podemos desplegar un menú, con opciones interesantes como localizar Referencias circulares. Si hay alguna, aparece su localización en el submenú.

En este apartado vamos a ver la primera opción, Comprobación de errores..., que realiza la misma acción que pulsar directamente sobre el botón sin desplegar el menú.

Aparece el cuadro de diálogo Comprobaciones de errores como el que vemos en la imagen donde nos informa del tipo de error que se ha detectado y, en ocasiones, nos ofrece una corrección.

Gráficos (I)

12.1. Introducción

Un gráfico es la representación gráfica de los datos de una hoja de cálculo y facilita su interpretación.

En esta unidad, vamos a ver cómo crear gráficos a partir de unos datos introducidos en una hoja de cálculo. La utilización de gráficos hace más sencilla e inmediata la interpretación de los datos. A menudo, un gráfico nos dice mucho más que una serie de datos clasificados por filas y columnas.

Cuando se crea un gráfico en Excel, podemos optar por crearlo:

- Como gráfico incrustado: Insertar el gráfico en una hoja normal como cualquier otro objeto.

- Como hoja de gráfico: Crear el gráfico en una hoja exclusiva para el gráfico. En las hojas de gráfico no existen celdas ni ningún otro tipo de objeto.

Veamos cómo crear un gráfico.

12.2. Crear gráficos

Para insertar un gráfico tenemos varias opciones, pero siempre utilizaremos la sección Gráficos que se encuentra en la pestaña Insertar.

Es recomendable que tengas seleccionado el rango de celdas que quieres que participen en el gráfico. De esta forma, Excel podrá generarlo automáticamente. En caso contrario, el gráfico se mostrará en blanco o no se creará debido a un tipo de error en los datos que solicita.

Page 18: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Como puedes ver, existen diversos tipos de gráficos a nuestra disposición. Podemos seleccionar un gráfico a insertar haciendo clic en el tipo que nos interese para que se despliegue el listado de los que se encuentran disponibles.

En cada uno de los tipos generales de gráficos podrás encontrar un enlace en la parte inferior del listado que muestra Más gráficos de...

Hacer clic en esa opción equivaldría a desplegar el cuadro de diálogo de Insertar gráfico que se muestra al hacer clic en la flecha de la parte inferior derecha de la sección Gráficos.

Aquí puedes ver listados todos los gráficos disponibles. Selecciona uno y pulsa Aceptar para empezar a crearlo.

Aparecerá un cuadro que contendrá el gráfico ya creado (si seleccionaste los datos previamente) o un cuadro en blanco (si no lo hiciste).

Además, verás que aparece en la barra de menús una sección nueva, Herramientas de gráficos, con dos pestañas: Diseño y Formato.

En los siguientes apartados veremos las opciones que se encuentran dentro de estas pestañas.

12.3. Añadir una serie de datos

Este paso es el más importante de todos ya que en él definiremos qué datos queremos que aparezcan en el gráfico. Si observamos la pestaña Diseño, encontraremos dos opciones muy útiles relacionadas con los Datos:

Primero nos fijaremos en el botón Seleccionar datos. Desde él se abre el siguiente cuadro de diálogo:

En el campo Rango de datos del gráfico, debemos indicar el rango de celdas que se tomarán en cuenta para crear el gráfico. En el caso de la imagen, hemos englobado de la celda C7 a la E8 (6 celdas). Para escoger los datos puedes

escribir el rango o bien pulsar el botón y seleccionar las celdas en la hoja.

Una vez hayamos acotado los datos que utilizaremos, Excel asociará unos al eje horizontal (categorías) y otros al eje vertical (series). Ten en cuenta que hay gráficos que necesitan más de dos series para poder crearse (por ejemplo, los gráficos de superficie) mientras que otros, en cambio, (como el que ves en la imagen) se bastan con una sola.

Utiliza el botón Editar o Modificar, dependiendo del eje, para modificar el literal que se mostrará en la leyenda de series del gráfico, o el rango de celdas de las

Page 19: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

series o categorías. En nuestro caso, por ejemplo, cambiaremos Series1 por Ventas.

El botón Cambiar fila/columna permuta los datos de las series y las pasa a categorías y viceversa. Este botón actúa del mismo modo que el que podemos encontrar en la banda de opciones Cambiar entre filas y columnas disponible en la pestaña Diseño.

Si haces clic en el botón Celdas ocultas y vacías, abrirás un pequeño cuadro de diálogo desde donde podrás elegir qué hacer con las celdas que no tengan datos o estén ocultas.

Los cambios que vas realizando en la ventana se van viendo plasmados en un gráfico. Cuando acabes de configurar el origen de datos, pulsa el botón Aceptar.

Realiza el Ejercicio Modificar las series de un gráfico.

12.4. Características y formato del gráfico

En la pestaña Diseño podrás encontrar todas las opciones relativas al aspecto del gráfico.

En la sección Diseños de gráfico podrás agregar o modificar la presentación de los elementos del gráfico, o bien escoger un Diseño rápido. Estos diseños rápidos incluyen aspectos como incluir un título al gráfico, situar la leyenda en uno u otro lado, incluir o no las etiquetas descriptivas en el propio gráfico, etc.

Si, por ejemplo, escoges Líneas de la cuadrícula, podrás escoger entre distintas opciones sobre las líneas a mostrar o la escala de valores a manejar. Te recomendamos que explores estas opciones, inclusive la última opción "Más opciones de...".

Si el gráfico está seleccionado, también podrás realizar estas acciones a partir de los botones que nos aparecen a la derecha de éste.

Si lo que quieres es desplazar los elementos, sólo deberás seleccionarlos en el propio gráfico y colocarlos donde desees.

Excel 2013 ha sido diseñado para que todas sus opciones sean sencillas e intuitivas, así que después de un par de pruebas con cada una de estas opciones entenderás perfectamente sus comportamientos y resultados.

Practica primero con unos cuantos gráficos con datos al azar y verás el provecho que puedes sacarle a estas características.

En la pestaña Diseño, también puedes dar un estilo a tu gráfico rápidamente.

Page 20: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

En función del tipo de gráfico que hayas insertado (líneas, barras, columnas, etc.) te propondrá unos u otros.

Estos estilos de diseño incluyen distintas presentaciones que cambiarán su aspecto, mediante la variación tanto de los colores como del estilo de algunos de los elementos del gráfico.

Para terminar de configurar tu gráfico puedes ir a la pestaña Formato, donde encontrarás la sección Estilos de forma (que utilizaremos también más adelante para enriquecer la visualización de los objetos que insertemos), y los Estilos de WordArt.

Estas opciones te permitirán aplicar diversos estilos sobre tus gráficos.

Para ello, simplemente selecciona el área completa del gráfico o de uno de sus componentes (áreas, barras, leyenda...) y, luego, haz clic en el estilo que más se ajuste a lo que buscas.

Si no quieres utilizar uno de los preestablecidos, puedes utilizar las listas Relleno de forma/texto, Contorno de forma/texto y Efectos de forma/texto para personalizar aún más el estilo del gráfico.

Al aplicar estilos, normalmente hablamos de un estilo genérico para todo el gráfico, pero también podemos personalizar cada uno de sus elementos: el área de trazado, la leyenda, las líneas de división principal, etc.

Para hacerlo, lo más cómodo es seleccionar en el propio gráfico el elemento que quieres modificar, o bien seleccionarlo en el desplegable de la ficha de Formato.

En la imagen vemos que está seleccionada el área de trazado.

A continuación, podemos pulsar el botón Aplicar formato a la selección.

Dependiendo del elemento seleccionado, podremos modificar unos aspectos u otros. Por ejemplo, las líneas de división principales no tienen opción de modificar el relleno, porque obviamente no se puede rellenar una línea. En cambio, la serie de datos sí que permite colorear el relleno, e incluso establecer el grado de transparencia.

Si la modificación que hemos realizado no nos convence, siempre podemos pulsar el botón Restablecer para hacer coincidir el estilo. Así recuperará el aspecto del estilo predeterminado que le hubiésemos aplicado.

Por último, no hemos de olvidar también que los elementos de texto que contenga el gráfico no dejan de ser eso, texto, por lo que podremos utilizar las herramientas de la pestaña Inicio como son la negrita, la cursiva, el tipo de fuente, su tamaño, el relleno, etc. En ocasiones, estas herramientas se comportarán de forma "inteligente". Por ejemplo, si tratamos de cambiar el color de relleno de un elemento de la leyenda con la herramienta, lo que hará Excel será asignar el color indicado tanto al cuadro de muestra de color de la leyenda como a las barras, sectores o líneas, es decir, a la serie que identifique en el

Page 21: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

gráfico. Lo mismo ocurrirá a la inversa. Si cambias con la herramienta de relleno el color de una serie, automáticamente se modificará el de la leyenda.

12.5. Modificar el tamaño y distribución de un gráfico

También puedes seleccionar un elemento del gráfico para modificarlo.

Cuando tienes un elemento seleccionado, aparecen diferentes tipos de controles que explicaremos a continuación:

Los controles cuadrados establecen el ancho y largo del objeto. Haz clic sobre ellos y arrástralos para modificar sus dimensiones.

Haciendo clic sobre uno o varios elementos del gráfico, aparecerán los símbolos circulares . Una vez seleccionados, pulsando el botón derecho del ratón podrás modificar las propiedades de estos elementos, tales como el contorno o el relleno.

También puedes mover los componentes del gráfico. Para ello, coloca el cursor

sobre cualquier objeto seleccionado, y cuando tome esta forma podrás hacer clic y arrastrarlo a la posición deseada.

12.6. Modificar la posición de un gráfico

Excel te permite decidir la posición del gráfico en el documento. Para ello:

Selecciona el gráfico.

Sitúate en la pestaña Diseño de las Herramientas de gráficos.

Pulsa sobre el botón Mover gráfico que encontrarás en la sección Ubicación

Se abrirá el siguiente cuadro de diálogo:

- La primera opción te permite establecer el gráfico como una Hoja nueva. Tendrás la ventaja de que no molestará en la hoja de cálculo, pero no podrás contrastar los datos númericos si la mantienes en una hoja aparte. Depende del formato que quieras utilizar. Escribe el nombre para la hoja en la caja de texto y pulsa Aceptar.

- Eligiendo Objeto en, podremos mover el gráfico a una hoja ya existente. Si utilizas este método, el gráfico quedará flotante en la hoja y podrás situarlo en la posición y con el tamaño que tú elijas. Ésta es la forma en que se inserta por defecto, cuando se genera un nuevo gráfico.

Además, también puedes mover el gráfico arrastrándolo dentro de la misma hoja o bien a otra.

Page 22: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Si deseas saber cómo añadir el gráfico a la lista de gráficos personalizados, haz

clic aquí .

12.7. Los minigráficos

Ahora que ya sabes cómo utilizar gráficos, vamos a hablar de los minigráficos. Se trata de una funcionalidad de Excel 2013 que permite insertar un pequeño gráfico representativo en una única celda que representará a una única serie de datos. De esta forma podrás ver de una ojeada la tendencia que representan unos determinados valores.

El grupo Minigráficos se encuentra también en la pestaña Insertar de la cinta de opciones. Disponemos de tres posibles tipos de gráfico: de línea, de columna y de ganancia o pérdida.

Si insertamos uno de ellos, dispondremos de una nueva barra de herramientas en la cinta: Herramientas para minigráfico. En ella, encontrarás la ficha Diseño que te permitirá realizar acciones básicas, como cambiar las celdas que se utilizan como fuente de datos, el tipo de gráfico (para cambiarlo a posteriori por cualquiera de los tres tipos disponibles), los estilos, o remarcar determinados puntos (el más alto, el más bajo...).

A pesar de que el minigráfico se contiene en una única celda, no es posible borrarlo seleccionándola y pulsando SUPR, como haríamos con otro tipo de contenido. Para proceder a borrarlo, debemos utilizar la opción Borrar que se encuentra en la pestaña Diseño de las Herramientas para minigráfico. Seleccionaremos el minigráfico o minigráficos a eliminar para que aparezca la barra y pulsaremos el botón Borrar.

Un detalle a tener en cuenta es que se ajusta automáticamente al tamaño de la celda, por lo que, si consideramos que es demasiado pequeño, sólo debemos aumentar el ancho de la columna que lo contiene para darle más ancho, o modificar la altura de la fila para darle más altura. Si lo que queremos es cambiar el grosor de la línea, por ejemplo, podremos hacerlo desde sus herramientas de estilo.

Programar en Excel - Pestaña DESARROLLADOR (Programador si es Excel 2010)

La pestaña Desarrollador (Programador) no viene activa, ya que solo se usa para programar. Si estás aquí es porque te interesa saber cómo activar la pestaña Desarrollador (Programador), sigue los siguientes pasos para activar la pestaña:

1. Abrimos la pestaña ARCHIVO y seleccionamos Opciones.

2. Se nos presenta una ventana, dentro de esta ventana en la parte izquierda seleccionamos la opción Personalizar Cinta de Opciones.

Page 23: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

3. En la parte derecha buscar “Pestañas Principales”, si te fijas todas las pestañas activas están con un signo check a excepción de la pestaña Desarrollador, para activarla, nos ubicamos en el cuadrito que esta la lado izquierdo y le damos un clic con el botón izquierdo del mouse, si te fijas ya está activa un check, lo cual indica que esta activa.

4. Ahora para guardar los cambios clic en aceptar y la venta se cierra.

Muy bien, ya está activo la Pestaña Desarrollador, ahora veamos qué es lo que contiene:

Esta pestaña contiene cinco secciones: Código, Complementos, Controles, Xml y Modificar. A continuación te explico los más usuales:

La sección Código: En esta sección encontramos los comandos: macros, Visual Basic, Grabar Macros, usar referencias relativas y Seguridad de macros.

Page 24: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

La sección controles: En esta sección encontramos los comandos insertar controles de formularios, Controles Active X, Propiedades, Ver código y Ejecutar Cuadro de Dialogo.

Versiones de Excel

Me he encontrado con que algunas personas no están seguras de la versión de Excel que están utilizando. Esto sucede cuando eres un usuario nuevo de Excel, pero no te preocupes ya que descubrir la versión es muy sencillo.

En primer lugar tenemos la ventana “splash” que es la que se muestra justamente al iniciar Excel pero que en ocasiones desaparece tan rápido que no alcanzamos a reconocer la versión de Excel que tenemos en nuestro equipo.

Otra manera de descubrirlo pulsar la tecla F1 lo cual abrirá la ventana de ayuda y podremos identificar la versión de Excel para la cual se está mostrando dicha ayuda.

Una tercera opción es ir a la ficha Archivo y seleccionar la opción Ayuda donde podrás observar todos los detalles de la versión de Excel.

Es importante conocer la versión de Excel que estás utilizando porque si tienes una versión actual y quieres compartir la información con otra persona pero tu archivo hace uso de funcionalidades exclusivas de las últimas versiones de Excel, entonces la otra persona podría tener dificultades para trabajar con el archivo. O peor aún, si has guardado el archivo en el formato de las versiones 2007 o 2010 entonces una persona con una versión de Excel 2003 (o anterior) no podrá siquiera abrir el archivo.

Historia de las versiones de Excel

Para tener una mejor idea de las versiones de Excel existentes en el mercado mencionaré todas las versiones del software y su año de lanzamiento.

Versión 1 – 1985. La primera versión de Excel fue creada para ser utilizada en la plataforma Macintosh de Apple.

Versión 2 – 1987. En este año se acababa de lanzar el sistema operativo Windows por lo tanto fue la primera versión de Excel para Windows sin embargo fue etiquetada como la versión 2 para dar continuidad con la versión creada previamente para Mac.

Versión 3 – 1990. Para este año el sistema operativo Windows ya tenía una amplia aceptación en todo el mundo y Excel era el software estrella de Microsoft. En esta versión se introducen los gráficos 3-D.

Versión 4 – 1992. Durante más de dos años no hubo competencia para Excel en la plataforma Windows y se aprovechó para mejorar la herramienta.

Versión 5 – 1993. En esta versión finalmente Excel permite crear múltiples hojas dentro de un libro y agrega el soporte para el lenguaje de programación VBA.

Page 25: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Versión 7 [Excel 95] – 1995. Se omite la versión 6 de Excel para empatar todos los productos de Microsoft Office [Word, Excel y PowerPoint] y a partir de esta versión se comienza a conocer a Excel por el año de su lanzamiento. Excel 95 es la primera versión de la hoja de cálculo en correr en un sistema operativo de 32-bits (como Windows 95).

Versión 8 [Excel 97] – 1997. En Excel 97 se introduce el formato condicional y la validación de datos. Se realizan mejoras para los programadores de VBA al incluir un nuevo Editor de VBA e introducir los módulos de clase y los formularios de usuario.

Versión 9 [Excel 2000] – 1999. Se agrega el soporte para complementos COM y varias mejoras para las tablas dinámicas.

Versión 10 [Excel XP] – 2001. Existen mejoras poco significativas pero se prepara esta versión para formar parte de Office XP y ser lanzado en conjunto con Windows XP.

Versión 11 [Excel 2003] – 2003. Esta versión ofrece un soporte mejorado para XML y correcciones en algunas funciones estadísticas.

Versión 12 [Excel 2007] – 2007. Un cambio significativo para la herramienta ya que se introduce un nuevo formato de archivo, una nueva interfaz de usuario que incluye la cinta de opciones. También se aumenta la capacidad de una hoja de cálculo al permitir muchas más filas y columnas.

Versión 14 [Excel 2010] – 2010. Un tanto supersticioso, Microsoft omite la versión 13 y sigue con la versión 14 también conocida como Excel 2010. En esta versión se introducen los minigráficos, la vista Backstage y la segmentación de datos.

Versión 15 [Excel 2013] – 2013. La última versión de la herramienta introduce nuevas características como el relleno rápido de columnas que reconoce ciertos patrones en nuestros datos y hace sugerencias inmediatas. La nueva versión de Excel también analiza los datos para hacer sugerencias en cuanto a los gráficos a crear e inclusive nos hace sugerencias al momento de crear una tabla dinámica, además se introducen nuevas funciones en Excel 2013.

A excepción de la Versión 1, el resto de las versiones antes mencionadas son para la plataforma Windows que es la plataforma con la mayor cantidad de usuarios de Excel, sin embargo, por mucho tiempo Microsoft también ha creado versiones de Excel para Mac.

Nuevas Funciones Excel

Expande tu capacidad de cálculos Excel

Formato: complemento (descarga y uso desde Excel)

Nivel: principiante, intermedio y avanzado Versión: Excel español 2.000, 2.002, 2.003 y 2.007 Contenido: 131 nuevas y útiles funciones para

Excel

Page 26: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Precio: 20 dólares (aprox. 17 euros) .

– Descarga inmediata luego de la compra – Compra garantizada por RegNow (líder mundial en transacciones seguras por internet) – Pago solo por tarjeta de crédito o PayPal vía RegNow – En ningún momento TodoExcel conoce o almacena sus datos – Todo queda cifrado y encriptado de forma segura por RegNow . …

.Cientos de nuevas funciones para tu Excel

Microsoft Excel posee muchas funciones con las cuales podemos armar nuestras fórmulas. Sin embargo, en nuestra larga trayectoria de desarrollos con Excel, hemos ido encontrando funciones “perdidas” u “olvidadas” que Microsoft nunca incorporó en Excel y que son de extrema utilidad. Ahora ya están disponibles en este nuevo y original complemento. La mayoría de estas nuevas funciones han sido creadas en base a problemas reales que diversos usuarios de Excel de todo el mundo nos fueron solicitando.

Nuevas funciones incluidas

BUSQUEDA Y REFERENCIA (10 nuevas funciones!) 1. AVERIGUAR: devuelve un valor lógico indicando si un valor se encuentra en una lista. 2. BUSCAR2: devuelve el valor de una fila dada la base de datos y dos criterios. 3. BUSQUEDA: devuelve el valor en la misma fila de una columna especificada en la tabla. 4. EXTRAERU: devuelve los valores únicos de una lista o conjunto, según un criterio dado. 5. EXTRAERUNICOS: devuelve los valores únicos de un conjunto o lista que contiene valores repetidos. 6. FILACOLUM: devuelve la fila y columna de un dato en un rango determinado. 7. FILCOL: devuelve la fila o columna en la que se encuentra un dato dentro de un rango. 8. GRUPOS: devuelve los valores de una base de datos asociados al dato indicado. 9. REPETIDO: devuelve un texto indicando si un valor esta repetido en una lista. 10. POSX: devuelve un número que indica donde se encuentra el valor indicado.

ESTADISTICAS (20 nuevas funciones!) 1. CANTIDADV: devuelve la cantidad de repeticiones de un valor en una lista. 2. CONTARENTRE: devuelve la cantidad de números que están comprendidos entre dos límites indicados. 3. CONTARUNICOS: devuelve la cantidad de valores únicos que existen en un rango especificado. 4. CONTARUNICOSI: devuelve la cantidad de valores únicos dentro de un rango dado un criterio. 5. CUENTANROS: devuelve la cantidad de números pares, impares, con

Page 27: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

decimales, enteros o primos. 6. DESVIME: devuelve el desvío % de un valor respecto a la media de toda la serie. 7. ENTRE: devuelve un valor lógico que indica si 1 valor se encuentra comprendido entre otros 2. 8. MAXENTRE: devuelve el máximo valor solo para los valores comprendidos en un intervalo indicado. 9. MINENTRE: devuelve el mínimo valor solo para los valores comprendidos en un intervalo indicado. 10. MODAS: devuelve el primero, el segundo, el tercer valor, etc, más repetido en un rango. 11. MODAT: devuelve la moda de una lista de textos. 12. NROFALTANTE: devuelve el primer número faltante de una serie de números ordenados. 13. NUMEROENTRE: devuelve un valor lógico que indica si un valor esta comprendido entre dos límites determinados. 14. ORDEN: devuelve el número de orden de un número dentro de una serie de números indicada. 15. ORDINVERS: devuelve para cada valor de una lista su número de orden de mayor a menor. 16. RANKING: devuelve un rango ordenado de forma ascendentemente o descendente. 17. TURNODE: devuelve un número que identifica al participante que le corresponde un turno indicado. 18. TURNODEX: devuelve un número y nombre de la persona que le corresponde un turno de trabajo indicado. 19. VALORAPROX: devuelve el valor de un rango especificado más próximo a un valor indicado. 20. VALORAPROX3: devuelve tres valores ubicados en un rango más cercanos al valor indicado.

FECHA Y HORA (30 nuevas funciones!) 1. CALCULANTID: devuelve en un rango de una 1 y 3 columnas la cantidad de años, meses, días netos entre dos fechas. 2. CALENDARIO: devuelve el calendario mensual del año y mes indicados. 3. CANTIDADIAS: devuelve la cantidad de días de la semana incluidos entre dos fechas. 4. CONVERTIRT: suma los valores de horas y devuelve el total en horas, minutos o segundos. 5. DIALAB: realiza la suma de días hábiles (con opción de incluir el sábado y fechas festivas). 6. DIANTERIOR: devuelve una fecha anterior a la indicada con nombre especificado. 7. DIASHAB: realiza la suma de días partiendo de una fecha determinada. 8. DIASLAB: devuelve la cantidad de días hábiles entre 2 fechas, con opción de incluir el sábado. 9. DIASNOLAB: devuelve la cantidad de días no laborables entre dos fechas. 10. DIASX: devuelve todos los días que pertenecen a un año, mes y día de semana indicados. 11. ESLABORABLE: devuelve un valor lógico indicando si una fecha es laborable o no. 12. FASELUNAR: devuelve la fase lunar para una fecha determinada.

Page 28: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

13. FECHAÑOS: devuelve una fecha incrementada o disminuida una cantidad de años indicada. 14. HORACTUAL: devuelve el número de serie que representa solo la hora actual. 15. HORAS: devuelve un número de serie en formato hora para las horas, minutos y segundos indicados. 16. HORAXNRO: devuelve el producto entre una hora y un número. 17. KDIA: devuelve el K día del año y mes indicados. 18. KHABIL: devuelve el K día hábil del mes y año indicado. 19. LETRAMES: devuelve en letras el nombre del mes perteneciente a la fecha indicada. 20. NOMBREDIA: devuelve un texto indicando el nombre del día de una fecha. 21. PASCUA: devuelve la fecha de Pascua dado el año. 22. PRIMEROMES: devuelve el primer día anterior o posterior a la fecha y meses indicados. 23. SEMANA: devuelve una fecha indicando a que semana pertenece la fecha indicada. 24. SIFECHAS: devuelve la cantidad o promedio de un rango según criterios relacionados con fechas. 25. TRISEM: devuelve el tipo intervalo indicado entre dos fechas. 26. ULTIMAFECHA: devuelve la última fecha perteneciente a un valor especificado ubicado en una lista. 27. ULTIMODIAH: devuelve el último día hábil de un mes de una fecha dada. 28. ULTIMONOMBREDIA: devuelve el último día del mes con un nombre indicado según una fecha indicada. 29. XDIAS: devuelve las 12 fechas de 1 año para un día y año se especificados. 30. XMESTRE: a partir de una fecha e indica a que mes, bimestre, trimestre, cuatrimestre o semestre pertenece.

FINANCIERAS (6 nuevas funciones!) 1. ANAHORI: calcula la variación % de una serie de números período a período. 2. ANAVERT: calcula el peso % de cada número de una serie en base un número determinado. 3. COFIN: calcula la tasa de interés anual implícita en una factura con descuento. 4. COMISION: devuelve el valor de una comisión según escalas de valores y % de comisiones 5. CUOTASF: devuelve la cantidad de cuotas faltantes para un plazo indicado. 6. PESEURO: convierte un valor de Pesetas a Euros o viceversa.

INFORMACION (17 nuevas funciones!) 1. CANTARCH: devuelve la cantidad de archivos de la extensión indicada dentro de un directorio. 2. CANTIDADERR: devuelven la cantidad de errores que existen en un rango. 3. CONSONANTE: devuelve un valor lógico indicando si una letra es consonante o no. 4. CONTARX: devuelve la cantidad valores dentro de un rango, dado el tipo de valores a contar. 5. DIPTONGO: devuelve un valor lógico indicando si dos letras forman un diptongo. 6. ENLISTA: devuelve un texto especificando si un valor se encuentra dentro de una lista de valores. 7. ESENTERO: devuelve un valor lógico indicando si el número es entero o no.

Page 29: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

8. ESFECHA: devuelve un valor lógico indicando si un valor determinado puede ser evaluado como fecha o no. 9. ESFORMULA: devuelve verdadero si la celda indicada en su argumento posee una función o fórmula. 10. FORMULAINGLES: devuelve un texto equivalente a la fórmula en inglés 11. GRUPOC: devuelve un valor lógico indicando si dos letras forman un grupo consonántico. 12. HAYDIP: devuelve un valor lógico indicando si en un texto existe diptongo. 13. MOSTRARFORMULA: devuelve un texto mostrando la fórmula de la celda indicada. 14. SERIAL: devuelve el número de serie decimal de una unidad de disco. 15. SONBLANCOS: devuelve verdadero si todas las celdas del rango indicado están vacías. 16. ULTIMAMODIFIC: devuelve una fecha que indica la última ves que se modificó un archivo. 17. VOCAL: devuelve un valor lógico indicando si una letra es vocal o no.

MATEMATICAS (19 nuevas funciones!) 1. ALEATORIOSR: devuelve números aleatorios sin repetir valores. 2. ARABIGOS: devuelve el equivalente arábigo de un numero romano (1 – 3999). 3. AROMANOS: devuelve el equivalente romano de un numero arábigo 4. CANTDEC: devuelve la cantidad de dígitos decimales que posee un número. 5. CIFRAS: devuelve la cantidad de cifras que posee un número especificado. 6. CUENTAMUL: devuelve la cantidad de Nºs de un rango que son múltiplos de un Nº indicado. 7. DECIMALES: devuelve la parte decimal del número especificado. 8. ESMULTIPLO: devuelve un valor lógico indicando si un número es múltiplo de otro. 9. FRACCION: devuelve un texto que indica el resultado de simplificar dos números, numerador y denominador. 10. POSIABS: devuelve la unidad, decena, centena, (hasta la centena de millón) de un valor especificado. 11. PRIMO: devuelve un valor lógico que indica si un número es primo o no (compuesto). 12. PROMEDIOSI: devuelve el promedio de un rango especificado según una condición declarada. 13. RAIZN: devuelve la raíz N del número indicado. 14. REDUCIR: reduce un número entero o una fecha a una sola cifra (dígito) 15. SUMARENTRE: devuelve la suma de un rango solo con los valores comprendidos entre límites indicados. 16. SUMARENTREFECHAS: devuelve la suma de un rango según dos fechas indicadas. 17. SUMARSIDIA: devuelve la suma de un rango que cumple con una condición relacionada con días. 18. SUMARSIF: devuelve la suma de un rango según criterios relacionados con fechas. 19. SUMAVISIBLES: devuelve la suma de los valores de celdas visibles.

TEXTO (27 nuevas funciones!) 1. ALETRAS: devuelve en letras el valor de un número. 2. ALREVES: devuelve el texto recibido al revés. 3. CAMBIARTEXTO: devuelve en mayúsculas, minúsculas, tipo nombre propio,

Page 30: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

o tipo título 1 texto determinado. 4. CONSONANTES: devuelve a cantidad de consonantes que existen en un texto. 5. CONTARENTEXTO: devuelve la cantidad de repeticiones que posee una palabra dentro de un texto especificado. 6. CONTARPALABRAS: devuelve la cantidad de palabras que posee una frase. 7. DER: devuelve los caracteres que se encuentran en el extremo derecho del texto indicado. 8. ENTEXTO: devuelve un valor lógico indicando si un texto esta dentro de otro. 9. ESALFAB: indica si un carácter (letra, símbolo, numero) pertenece al alfabeto. 10. ESPACIOST: devuelve el texto indicado sin espacios de izquierda, derecha y entre letras y/o palabras. 11. EXTRAENROS: para una tira de caracteres devuelve una tira de los números encontrados en la misma. 12. HALLARINV: devuelve la posición de una aparición de una cadena dentro de otra, desde el final de la cadena. 13. INSERTATEXT: inserta un texto dentro de otro texto. 14. LETRASUNICAS: indica la cantidad de caracteres únicos que hay dentro de una tira de caracteres. 15. NOBLANCOS: devuelve un listado de datos de una columna por n filas, colocando las filas vacías al final. 16. NTEXTO: convierte un número a formato de texto. 17. OCURRENCIAS: devuelve el número de veces que aparece un carácter dentro de otra tira de caracteres. 18. ORDENALFA: devuelve el orden de ubicación de un texto dentro de una lista de textos indicada. 19. SILABAS: devuelve una palabra separada en sílabas. 20. SIMILAR: indica un porcentaje de similitud entre dos textos, comparando letra por letra. 21. SIMILITUD: indica un porcentaje de similitud entre dos textos, comparando palabra por palabra y letra por letra. 22. SUSTITUYE: sustituye un texto por otro (indicando que aparición se sustituye). 23. TIPOTITULO: devuelve el texto indicado en forma de titulo. 24. TEXTOMAYOR: devuelve el K texto mayor, según orden alfabético. 25. TEXTOMENOR: devuelve el K texto menor, según orden alfabético. 26. VOCALES: devuelve la cantidad de vocales que existen en un texto. 27. XLARGO: devuelve el 1, 2, 3 o según indicación, el texto de menor cantidad de letras.

BASES DE DATOS (2 nuevas funciones!) 1. FILTROCRITERIO: devuelve un valor lógico indicando si un valor se encuentra en una lista. 2. CANTIDADFILTRO: devuelve el valor de una fila dada la base de datos y dos criterios.

Calc

Historia del Libre Office Cal

Page 31: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

El 28 de septiembre de 2010, algunos miembros del proyecto OpenOffice.org formaron un nuevo grupo llamado The Document Foundation, publicando una bifurcación de OpenOffice.org a la que llamaron LibreOffice. La bifurcación fue creada ante los temores de que Oracle Corporation, después de comprar a Sun Microsystems, anterior patrocinador de OpenOffice.org, descontinuara la suite, como hizo con OpenSolaris. Se esperaba que el nombre «LibreOffice» fuera provisional, puesto que Oracle fue invitada a convertirse en miembro de The Document Foundation y se le pidió que donara la marca OpenOffice.org al proyecto.

Oracle, en lugar de ello, rechazó el proyecto y exigió a todos los miembros del directorio de OpenOffice.org involucrados que renunciaran, alegando un conflicto de intereses. A finales de octubre de 2010, 33 voluntarios alemanes, no involucrados con el desarrollo, dejaron OpenOffice.org y se trasladaron a The Document Foundation para apoyar a LibreOffice.

The Document Foundation recibió apoyo de parte de la antigua comunidad de OpenOffice.org, incluyendo a las empresas Novell, Red Hat, Canonical y Google. El objetivo es producir una suite ofimática independiente de cualquier proveedor, compatible con el formato de archivo OpenDocument (norma ISO) y sin ninguna obligación de atribución de la autoría del código a Sun u Oracle. En abril de 2011 Oracle anunció que abandonaba Open Office, cediéndolo a la Apache Software Foundation.

En el ínterin surgió el proyecto Go-oo, que era una versión adaptada a partir de OpenOffice.org con algunas modificaciones y gestionada por Novell y otras empresas y utilizada como base en casi todas las distribuciones de GNU/Linux. Sin embargo, el Proyecto Go-oo fue descontinuado a favor de LibreOffice y las mejoras que este proyecto realizó ahora están fusionadas en LibreOffice. Asimismo, se esperaba que otros proyectos se unieran también a LibreOffice.

'The Document Foundation' se dirige a lanzar nuevas versiones de LibreOffice a un ritmo de una cada seis meses, y a alinearse, con el tiempo, con el calendario de publicación de nuevas versiones en marzo y septiembre de la mayoría del ecosistema del software libre. Uno de los objetivos de los desarrolladores de LibreOffice es la eliminación de código no utilizado, como señaló Michael Meeks, miembro del directorio de 'The Document Foundation' y, anteriormente, desarrollador de OpenOffice.org. Desde septiembre hasta diciembre de 2011 se ha eliminado más de la mitad del código fuente que se sabe no utilizado en la suite.

Operaciones y funciones básicas en Calc

A través del programa Calc puedes realizar diversos cálculos:

Todas las operaciones y funciones (fórmulas predefinidas) deben ir precedidas del signo (=). Por ejemplo, si escribimos en la casilla C1: =B1*5, el contenido de la celda B1 se multiplica por 5.

Las operaciones simples se expresan así:

Page 32: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

En las fórmulas y funciones, puedes utilizar números, referencias a celdas o rangos de celdas (por ejemplo, A1:C25).

Es posible también utilizar unas funciones dentro de otras (anidadas).

Las funciones básicas suelen tener un nombre natural (por ejemplo, sumar es

SUMA), seguido de paréntesis donde se establecen los parámetros; por

ejemplo, =CONTAR(B5:B35) significa que contará el número de celdas que

contengan números de la B5 a la B35.

Las funciones se expresan así:

Crear gráficos en Calc

Puedes crear gráficos fácilmente gracias al Asistente para gráficos:

1. Selecciona el rango de celdas que contiene los datos que se van a representar (si los rangos de datos no son continuos, se pueden seleccionar con la tecla Ctrl).

2. Selecciona la opción Insertar, Gráfico.

Puedes exportar tus tablas y gráficos de Calc a un procesador de textos siguiendo estos pasos:

1. Selecciona la tabla o gráfico y cópiala. 2. Abre el procesador de textos, pulsa en el lugar donde quieres insertar el

elemento y pégala.

Page 33: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Puedes descargar un ejemplo en Calc en este enlace.

Generalidades

Calc es una hoja de cálculo similar con un rango de características más o menos equivalente. Su tamaño es mucho menor y proporciona un número de características no presentes en Excel, incluyendo un sistema que automáticamente define series para representar gráficamente basado en la disposición de los datos del usuario. Calc también es capaz de exportar hojas de cálculo como archivos PDF, cuenta con filtros, autofiltros y además puede realizar agrupaciones en tablas dinámicas que Lotus 123 en sus versiones anteriores no hacía, posiblemente la versión 9.8 de Lotus 123 tenga estas posibilidades.

Dado que, desde el punto de vista de la programación de macros, Calc no es compatible con el modelo de objetos de Excel (aunque sí con prácticamente todo su repertorio de funciones BASIC), no es tan vulnerable a los virus de macros (o macrovirus) como el producto de Microsoft. Además, dado que su difusión es bastante menor, no hay tanto interés por parte de los creadores de software malicioso (malware) de atacarlo específicamente.

Calc puede abrir y guardar las hojas de cálculo en el formato de archivos de Microsoft Excel. El formato por defecto de Apache OpenOffice 2.0 Calc se puede fijar para que sea el de Microsoft Excel, o el formato Open Document Format (ODF) de la organización OASIS. Calc también apoya una amplia gama de otros formatos, tanto para abrir y guardar archivos.

Apache OpenOffice es software libre. Cualquier persona puede hacer mejoras y luego compartirlas para el disfrute de todos. A medida que continúa creciendo la base de usuarios y desarrolladores de Apache OpenOffice, las características y mejoras pueden ser agregadas al paquete a mayor ritmo.

En algunos casos, Calc carece de asistentes para acceder a ciertas características avanzadas asociadas a productos de la competencia como capacidades estadísticas como el soporte de la barra de error en los gráficos, y el análisis de regresión polinómico, sin embargo esos cálculos se puede realizar incorporando manualmente las funciones y las relaciones más algunos macros. Otra aplicación FOSS llamada Gnumeric proporcionaría un acceso más fácil en

Page 34: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

estas características del análisis estadístico exponiéndolas a los usuarios con asistentes.

Crítica sobre el rendimiento

La versión 2.0 de Calc tenía problemas al manejar hojas de cálculo muy grandes (20.000 filas con 100 columnas). Esto es en parte debido al formato XML para manejar entradas en las celdas. Un hacker de Novell Linux y el GNOME, llamado Federico Mena Quintero, ha analizado la causa del retardo en su blog [1] y ofreció algunas sugerencias para mejorar la situación. Estas críticas se han disipado, ya que las versiones de Go-oo (http://www.go-oo.org), entre las que se encuentra la distribuida por Canonical en Ubuntu, permiten 1.048.576 de filas y 1.024 columnas.

La mayoría de los usuarios que trabajan con un conjunto de datos (datasets) tan grandes usan un programa manejador de bases de datos (como MySQL o PostgreSQL), así que no es un gran problema. En Apache OpenOffice se puede conectar con bases de datos externas usando el componente Base.

Comparación contra Microsoft Excel

Calc, al igual que el resto de la suite Open Office, puede fácilmente exportar hojas de cálculo (obviamente incluyendo gráficos) como archivo PDF a partir de su versión 1.1.0 (lanzada en marzo de 2004). En contraste, Excel sólo incluye esta característica desde su versión 2007.

Otra de las ventajas de Calc es que directamente usas medidas métricas cuando define el ancho de una celda o columna, o la altura de una celda o fila. Este número se puede expresar tanto en cm, mm, pulgadas, picas y puntos (tipográficos).

Asimismo Calc tiene algunas funciones adicionales, como DOMINGODEPASCUA, la cual trabaja casi con cualquier año. Otras como DÍAS y AÑOS (las cuales calculan diferencias entre fechas), se pueden reemplazar con la relativamente desconocida, y muy poco documentada SIFECHA de Excel (DATEDIF en inglés, llamada así en español debido a un error de traducción).1

No obstante, aunque Calc soporta totalmente el formato condicional de Excel 97-2003, no soporta las mejoras implementadas al mismo en la versión 2007 de Excel, así como tampoco, las "barras de datos" que se pueden asociar a celdas específicas.

Por otro lado, y a diferencia del producto de Microsoft (incluso su versión 2010), Calc ofrece un asistente de funciones más sofisticado, que le permite al usuario navegar a través de fórmulas anidadas.

Calc también permite fechas mucho menores que al primero de enero de 1900, la cual puede ser útil para calcular períodos históricos. Por ejemplo HOY()-FECHA(1789; 7; 14) devuelve la cantidad de días entre la fecha actual del sistema y la Toma de la Bastilla. Aún más, puede ir tan atrás como el primero de enero del año 100 (después de Cristo), compensando el desfase de 11 días debido al pasaje desde el calendario juliano al gregoriano (que tuvo lugar

Page 35: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

cuando se pasó, en los entonces países católicos, del 4 de octubre de 1582 al 15 del mismo mes y año). Este desplazamiento permite calcular correctamente que el día del "descubrimiento oficial" de América (12 de octubre de 1492) efectivamente cayó un día viernes (mediante la función DÍASEM o, eventualmente, usando MÓDULO).

Finalmente, respecto de las macros, las funciones de BASIC de Calc son básicamente las mismas que las de Excel, aunque al primero le suelen faltar algunas, como InStrRev (la cual busca una subcadena en una cadena, recorriéndola en reversa, desde atrás hacia adelante). Pero desafortunadamente, el modelo de objetos de Calc es bastante diferente del de Excel, y no soporta la característica de "edición inteligente" del producto de Microsoft, heredada del entorno de programación Visual Studio, relacionada al manejo fácil de cada objecto. propiedad u objeto. procedimiento (objeto. método).

Javascript

JavaScript, es un lenguaje de programación de páginas web de lado del cliente, nos permite añadir a las páginas web efectos y funciones adicionales a los contemplados en el estándar HTML. Gracias a que se ejecuta en el navegador(localmente), JavaScript, nos permite responder de manera rápida y eficaz a las acciones del usuario, creando de esta manera aplicaciones interactivas

HISTORIA

A principios de los años 90, la mayoría de usuarios que se conectaban a Internet lo hacían con módems a una velocidad máxima de 28.8 kbps. En esa época, empezaban a desarrollarse las primeras aplicaciones web y por tanto, las páginas web comenzaban a incluir formularios complejos.

Con unas aplicaciones web cada vez más complejas y una velocidad de navegación tan lenta, surgió la necesidad de un lenguaje de programación que se ejecutara en el navegador del usuario. De esta forma, si el usuario no rellenaba correctamente un formulario, no se le hacía esperar mucho tiempo hasta que el servidor volviera a mostrar el formulario indicando los errores existentes.

Brendan Eich, un programador que trabajaba en Netscape, pensó que podría solucionar este problema adaptando otras tecnologías existentes (como ScriptEase) al navegador Netscape Navigator 2.0, que iba a lanzarse en 1995. Inicialmente, Eich denominó a su lenguaje LiveScript.

Posteriormente, Netscape firmó una alianza con Sun Microsystems para el desarrollo del nuevo lenguaje de programación. Además, justo antes del lanzamiento Netscape decidió cambiar el nombre por el de JavaScript. La razón del cambio de nombre fue exclusivamente por marketing, ya que Java era la palabra de moda en el mundo informático y de Internet de la época.

La primera versión de JavaScript fue un completo éxito y Netscape Navigator 3.0 ya incorporaba la siguiente versión del lenguaje, la versión 1.1. Al mismo tiempo,

Page 36: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Microsoft lanzó JScript con su navegador Internet Explorer 3. JScript era una copia de JavaScript al que le cambiaron el nombre para evitar problemas legales.

Para evitar una guerra de tecnologías, Netscape decidió que lo mejor sería estandarizar el lenguaje JavaScript. De esta forma, en 1997 se envió la especificación JavaScript 1.1 al organismo ECMA European Computer Manufacturers Association).

ECMA creó el comité TC39 con el objetivo de "estandarizar de un lenguaje de script multiplataforma e independiente de cualquier empresa". El primer estándar que creó el comité TC39 se denominó ECMA-262, en el que se definió por primera vez el lenguaje ECMAScript.

Por este motivo, algunos programadores prefieren la denominación ECMAScript para referirse al lenguaje JavaScript. De hecho, JavaScript no es más que la implementación que realizó la empresa Netscape del estándar ECMAScript.

La organización internacional para la estandarización (ISO) adoptó el estándar ECMA-262 a través de su comisión IEC, dando lugar al estándar ISO/IEC-16262.

Especificaciones oficiales

ECMA ha publicado varios estándares relacionados con ECMAScript. En Junio de 1997 se publicó la primera edición del estándar ECMA-262. Un año después, en Junio de 1998 se realizaron pequeñas modificaciones para adaptarlo al estandar ISO/IEC-16262 y se creó la segunda edición.

La tercera edición del estándar ECMA-262 (publicada en Diciembre de 1999) es la versión que utilizan los navegadores actuales y se puede consultar gratuitamente en http://www.ecma-international.org/publications/standards/Ecma-262.htm

Actualmente se encuentra en desarrollo la cuarta versión de ECMA-262, que podría incluir novedades como paquetes, namespaces, definición explícita de clases, etc.

ECMA también ha definido varios estándares relacionados con ECMAScript, como el estándar ECMA-357, que define una extensión conocida como E4X y que permite la integración de JavaScript y XML.

Cómo incluir JavaScript en documentos XHTML

La integración de JavaScript y XHTML es muy flexible, ya que existen al menos tres formas para incluir código JavaScript en las páginas web.

1.4.1. Incluir JavaScript en el mismo documento XHTML

El código JavaScript se encierra entre etiquetas <script> y se incluye en cualquier parte del documento. Aunque es correcto incluir cualquier bloque de código en cualquier zona de la página, se recomienda definir el código JavaScript dentro de la cabecera del documento (dentro de la etiqueta <head>):

Page 37: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Ejemplo de código JavaScript en el propio documento</title> <script type="text/javascript"> alert("Un mensaje de prueba"); </script> </head> <body> <p>Un párrafo de texto.</p> </body> </html>

Para que la página XHTML resultante sea válida, es necesario añadir el atributo type a la etiqueta <script>. Los valores que se incluyen en el atributo type están estandarizados y para el caso de JavaScript, el valor correcto es text/javascript.

Este método se emplea cuando se define un bloque pequeño de código o cuando se quieren incluir instrucciones específicas en un determinado documento HTML que completen las instrucciones y funciones que se incluyen por defecto en todos los documentos del sitio web.

El principal inconveniente es que si se quiere hacer una modificación en el bloque de código, es necesario modificar todas las páginas que incluyen ese mismo bloque de código JavaScript.

1.4.2. Definir JavaScript en un archivo externo

Las instrucciones JavaScript se pueden incluir en un archivo externo de tipo JavaScript que los documentos XHTML enlazan mediante la etiqueta <script>. Se pueden crear todos los archivos JavaScript que sean necesarios y cada documento XHTML puede enlazar tantos archivos JavaScript como necesite.

Ejemplo:

Archivo codigo.js

alert("Un mensaje de prueba");

Documento XHTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Ejemplo de código JavaScript en el propio documento</title> <script type="text/javascript" src="/js/codigo.js"></script> </head>

Page 38: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

<body> <p>Un párrafo de texto.</p> </body> </html>

Además del atributo type, este método requiere definir el atributo src, que es el que indica la URL correspondiente al archivo JavaScript que se quiere enlazar. Cada etiqueta <script> solamente puede enlazar un único archivo, pero en una misma página se pueden incluir tantas etiquetas <script> como sean necesarias.

Los archivos de tipo JavaScript son documentos normales de texto con la extensión .js, que se pueden crear con cualquier editor de texto como Notepad, Wordpad, EmEditor, UltraEdit, Vi, etc.

La principal ventaja de enlazar un archivo JavaScript externo es que se simplifica el código XHTML de la página, que se puede reutilizar el mismo código JavaScript en todas las páginas del sitio web y que cualquier modificación realizada en el archivo JavaScript se ve reflejada inmediatamente en todas las páginas XHTML que lo enlazan.

1.4.3. Incluir JavaScript en los elementos XHTML

Este último método es el menos utilizado, ya que consiste en incluir trozos de JavaScript dentro del código XHTML de la página:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Ejemplo de código JavaScript en el propio documento</title> </head> <body> <p onclick="alert('Un mensaje de prueba')">Un párrafo de texto.</p> </body> </html>

El mayor inconveniente de este método es que ensucia innecesariamente el código XHTML de la página y complica el mantenimiento del código JavaScript. En general, este método sólo se utiliza para definir algunos eventos y en algunos otros casos especiales, como se verá más adelante.

Etiqueta noscript

Algunos navegadores no disponen de soporte completo de JavaScript, otros navegadores permiten bloquearlo parcialmente e incluso algunos usuarios bloquean completamente el uso de JavaScript porque creen que así navegan de forma más segura.

Page 39: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

En estos casos, es habitual que si la página web requiere JavaScript para su correcto funcionamiento, se incluya un mensaje de aviso al usuario indicándole que debería activar JavaScript para disfrutar completamente de la página. El siguiente ejemplo muestra una página web basada en JavaScript cuando se accede con JavaScript activado y cuando se accede con JavaScript completamente desactivado.

Figura 1.1 Imagen de www.Netvibes.com con JavaScript activado

Figura 1.2 Imagen de www.Netvibes.com con JavaScript desactivado

El lenguaje HTML define la etiqueta <noscript> para mostrar un mensaje al usuario cuando su navegador no puede ejecutar JavaScript. El siguiente código muestra un ejemplo del uso de la etiqueta <noscript>:

<head> ... </head> <body> <noscript> <p>Bienvenido a Mi Sitio</p> <p>La página que estás viendo requiere para su funcionamiento el uso de JavaScript. Si lo has deshabilitado intencionadamente, por favor vuelve a activarlo.</p> </noscript> </body>

Page 40: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

La etiqueta <noscript> se debe incluir en el interior de la etiqueta <body> (normalmente se incluye al principio de <body>). El mensaje que muestra <noscript> puede incluir cualquier elemento o etiqueta XHTML.

Glosario básico

Script: cada uno de los programas, aplicaciones o trozos de código creados con el lenguaje de programación JavaScript. Unas pocas líneas de código forman un script y un archivo de miles de líneas de JavaScript también se considera un script. A veces se traduce al español directamente como "guión", aunque script es una palabra más adecuada y comúnmente aceptada.

Sentencia: cada una de las instrucciones que forman un script.

Palabras reservadas: son las palabras (en inglés) que se utilizan para construir las sentencias de JavaScript y que por tanto no pueden ser utilizadas libremente. Las palabras actualmente reservadas por JavaScript son: break, case, catch, continue, default, delete, do, else, finally, for, function, if, in, instanceof, new, return, switch, this, throw, try, typeof, var, void, while, with.

Sintaxis

La sintaxis de un lenguaje de programación se define como el conjunto de reglas que deben seguirse al escribir el código fuente de los programas para considerarse como correctos para ese lenguaje de programación.

La sintaxis de JavaScript es muy similar a la de otros lenguajes de programación como Java y C. Las normas básicas que definen la sintaxis de JavaScript son las siguientes:

No se tienen en cuenta los espacios en blanco y las nuevas líneas: como sucede con XHTML, el intérprete de JavaScript ignora cualquier espacio en blanco sobrante, por lo que el código se puede ordenar de forma adecuada para entenderlo mejor (tabulando las líneas, añadiendo espacios, creando nuevas líneas, etc.)

Se distinguen las mayúsculas y minúsculas: al igual que sucede con la sintaxis de las etiquetas y elementos XHTML. Sin embargo, si en una página XHTML se utilizan indistintamente mayúsculas y minúsculas, la página se visualiza correctamente, siendo el único problema la no validación de la página. En cambio, si en JavaScript se intercambian mayúsculas y minúsculas el script no funciona.

No se define el tipo de las variables: al crear una variable, no es necesario indicar el tipo de dato que almacenará. De esta forma, una misma variable puede almacenar diferentes tipos de datos durante la ejecución del script.

No es necesario terminar cada sentencia con el carácter de punto y coma (;): en la mayoría de lenguajes de programación, es obligatorio terminar cada sentencia con el carácter ;. Aunque JavaScript no obliga a hacerlo, es conveniente seguir la tradición de terminar cada sentencia con el carácter del punto y coma (;).

Se pueden incluir comentarios: los comentarios se utilizan para añadir información en el código fuente del programa. Aunque el contenido de los

Page 41: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

comentarios no se visualiza por pantalla, si que se envía al navegador del usuario junto con el resto del script, por lo que es necesario extremar las precauciones sobre la información incluida en los comentarios.

JavaScript define dos tipos de comentarios: los de una sola línea y los que ocupan varias líneas.

Ejemplo de comentario de una sola línea:

// a continuación se muestra un mensaje alert("mensaje de prueba");

Los comentarios de una sola línea se definen añadiendo dos barras oblicuas (//) al principio de la línea.

Ejemplo de comentario de varias líneas:

/* Los comentarios de varias líneas son muy útiles cuando se necesita incluir bastante información en los comentarios */ alert("mensaje de prueba");

Posibilidades y limitaciones

Desde su aparición, JavaScript siempre fue utilizado de forma masiva por la mayoría de sitios de Internet. La aparición de Flash disminuyó su popularidad, ya que Flash permitía realizar algunas acciones imposibles de llevar a cabo mediante JavaScript.

Sin embargo, la aparición de las aplicaciones AJAX programadas con JavaScript le ha devuelto una popularidad sin igual dentro de los lenguajes de programación web.

En cuanto a las limitaciones, JavaScript fue diseñado de forma que se ejecutara en un entorno muy limitado que permitiera a los usuarios confiar en la ejecución de los scripts.

De esta forma, los scripts de JavaScript no pueden comunicarse con recursos que no pertenezcan al mismo dominio desde el que se descargó el script. Los scripts tampoco pueden cerrar ventanas que no hayan abierto esos mismos scripts. Las ventanas que se crean no pueden ser demasiado pequeñas ni demasiado grandes ni colocarse fuera de la vista del usuario (aunque los detalles concretos dependen de cada navegador).

Además, los scripts no pueden acceder a los archivos del ordenador del usuario (ni en modo lectura ni en modo escritura) y tampoco pueden leer o modificar las preferencias del navegador.

Por último, si la ejecución de un script dura demasiado tiempo (por ejemplo por un error de programación) el navegador informa al usuario de que un script está consumiendo demasiados recursos y le da la posibilidad de detener su ejecución.

Page 42: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

A pesar de todo, existen alternativas para poder saltarse algunas de las limitaciones anteriores. La alternativa más utilizada y conocida consiste en firmar digitalmente el script y solicitar al usuario el permiso para realizar esas acciones.

JavaScript y navegadores

Los navegadores más modernos disponibles actualmente incluyen soporte de JavaScript hasta la versión correspondiente a la tercera edición del estándar ECMA-262.

La mayor diferencia reside en el dialecto utilizado, ya que mientras Internet Explorer utiliza JScript, el resto de navegadores (Firefox, Opera, Safari, Konqueror) utilizan JavaScript.

JavaScript en otros entornos

La inigualable popularidad de JavaScript como lenguaje de programación de aplicaciones web se ha extendido a otras aplicaciones y otros entornos no relacionados con la web.

Herramientas como Adobe Acrobat permiten incluir código JavaScript en archivos PDF. Otras herramientas de Adobe como Flash y Flex utilizan ActionScript, un dialecto del mismo estándar de JavaScript.

Photoshop permite realizar pequeños scripts mediante JavaScript y la versión 6 de Java incluye un nuevo paquete (denominado javax.script) que permite integrar ambos lenguajes.

Por último, aplicaciones como Yahoo Widgets y el Dashboard de Apple utilizan JavaScript para programar sus widgets.

El primer script

A continuación, se muestra un primer script sencillo pero completo:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>El primer script</title> <script type="text/javascript"> alert("Hola Mundo!"); </script> </head> <body> <p>Esta página contiene el primer script</p> </body> </html>

Page 43: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

En este ejemplo, el script se incluye como un bloque de código dentro de una página XHTML. Por tanto, en primer lugar se debe crear una página XHTML correcta que incluya la declaración del DOCTYPE, el atributo xmlns, las secciones <head> y <body>, la etiqueta <title>, etc.

Aunque el código del script se puede incluir en cualquier parte de la página, se recomienda incluirlo en la cabecera del documento, es decir, dentro de la etiqueta <head>.

A continuación, el código JavaScript se debe incluir entre las etiquetas <script>...</script>. Además, para que la página sea válida, es necesario definir el atributo type de la etiqueta <script>. Técnicamente, el atributo type se corresponde con "el tipo MIME", que es un estándar para identificar los diferentes tipos de contenidos. El "tipo MIME" correcto para JavaScript es text/javascript.

Una vez definida la zona en la que se incluirá el script, se escriben todas las sentencias que forman la aplicación. Este primer ejemplo es tan sencillo que solamente incluye una sentencia: alert("Hola Mundo!");.

La instrucción alert() es una de las utilidades que incluye JavaScript y permite mostrar un mensaje en la pantalla del usuario. Si se visualiza la página web de este primer script en cualquier navegador, automáticamente se mostrará una ventana con el mensaje "Hola Mundo!".

A continuación se muestra el resultado de ejecutar el script en diferentes navegadores:

Figura 2.1 Mensaje mostrado con "alert()" en Internet Explorer

Page 44: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Figura 2.2 Mensaje mostrado con "alert()" en Firefox

Figura 2.3 Mensaje mostrado con "alert()" en Opera

Como se puede observar en las imágenes anteriores, el funcionamiento de la utilidad alert() en los distintos navegadores es idéntico. Sin embargo, existen grandes diferencias visuales en la forma en la que se presentan los mensajes.

Ejercicio 1

Modificar el primer script para que:

1. Todo el código JavaScript se encuentre en un archivo externo llamado codigo.js y el script siga funcionando de la misma manera.

2. Después del primer mensaje, se debe mostrar otro mensaje que diga "Soy el primer script"

3. Añadir algunos comentarios que expliquen el funcionamiento del código 4. Añadir en la página XHTML un mensaje de aviso para los navegadores

que no tengan activado el soporte de JavaScript

Programación básica

Antes de comenzar a desarrollar programas y utilidades con JavaScript, es necesario conocer los elementos básicos con los que se construyen las

Page 45: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

aplicaciones. Si ya sabes programar en algún lenguaje de programación, este capítulo te servirá para conocer la sintaxis específica de JavaScript.

Si nunca has programado, este capítulo explica en detalle y comenzando desde cero los conocimientos básicos necesarios para poder entender posteriormente la programación avanzada, que es la que se utiliza para crear las aplicaciones reales.

Variables

Las variables en los lenguajes de programación siguen una lógica similar a las variables utilizadas en otros ámbitos como las matemáticas. Una variable es un elemento que se emplea para almacenar y hacer referencia a otro valor. Gracias a las variables es posible crear "programas genéricos", es decir, programas que funcionan siempre igual independientemente de los valores concretos utilizados.

De la misma forma que si en Matemáticas no existieran las variables no se podrían definir las ecuaciones y fórmulas, en programación no se podrían hacer programas realmente útiles sin las variables.

Si no existieran variables, un programa que suma dos números podría escribirse como:

resultado = 3 + 1

El programa anterior es tan poco útil que sólo sirve para el caso en el que el primer número de la suma sea el 3 y el segundo número sea el 1. En cualquier otro caso, el programa obtiene un resultado incorrecto.

Sin embargo, el programa se puede rehacer de la siguiente manera utilizando variables para almacenar y referirse a cada número:

numero_1 = 3 numero_2 = 1 resultado = numero_1 + numero_2

Los elementos numero_1 y numero_2 son variables que almacenan los valores que utiliza el programa. El resultado se calcula siempre en función del valor almacenado por las variables, por lo que este programa funciona correctamente para cualquier par de números indicado. Si se modifica el valor de las variables numero_1 y numero_2, el programa sigue funcionando correctamente.

Las variables en JavaScript se crean mediante la palabra reservada var. De esta forma, el ejemplo anterior se puede realizar en JavaScript de la siguiente manera:

var numero_1 = 3; var numero_2 = 1; var resultado = numero_1 + numero_2;

La palabra reservada var solamente se debe indicar al definir por primera vez la variable, lo que se denomina declarar una variable. Cuando se utilizan las

Page 46: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

variables en el resto de instrucciones del script, solamente es necesario indicar su nombre. En otras palabras, en el ejemplo anterior sería un error indicar lo siguiente:

var numero_1 = 3; var numero_2 = 1; var resultado = var numero_1 + var numero_2;

Si cuando se declara una variable se le asigna también un valor, se dice que la variable ha sido inicializada. En JavaScript no es obligatorio inicializar las variables, ya que se pueden declarar por una parte y asignarles un valor posteriormente. Por tanto, el ejemplo anterior se puede rehacer de la siguiente manera:

var numero_1; var numero_2; numero_1 = 3; numero_2 = 1; var resultado = numero_1 + numero_2;

Una de las características más sorprendentes de JavaSript para los programadores habituados a otros lenguajes de programación es que tampoco es necesario declarar las variables. En otras palabras, se pueden utilizar variables que no se han definido anteriormente mediante la palabra reservada var. El ejemplo anterior también es correcto en JavaScript de la siguiente forma:

var numero_1 = 3; var numero_2 = 1; resultado = numero_1 + numero_2;

La variable resultado no está declarada, por lo que JavaScript crea una variable global (más adelante se verán las diferencias entre variables locales y globales) y le asigna el valor correspondiente. De la misma forma, también sería correcto el siguiente código:

numero_1 = 3; numero_2 = 1; resultado = numero_1 + numero_2;

En cualquier caso, se recomienda declarar todas las variables que se vayan a utilizar.

El nombre de una variable también se conoce como identificador y debe cumplir las siguientes normas:

Sólo puede estar formado por letras, números y los símbolos $ (dólar) y _ (guión bajo).

El primer carácter no puede ser un número.

Por tanto, las siguientes variables tienen nombres correctos:

Page 47: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

var $numero1; var _$letra; var $$$otroNumero; var $_a__$4;

Sin embargo, las siguientes variables tienen identificadores incorrectos:

var 1numero; // Empieza por un número var numero;1_123; // Contiene un carácter ";"

Tipos de variables

Aunque todas las variables de JavaScript se crean de la misma forma (mediante la palabra reservada var), la forma en la que se les asigna un valor depende del tipo de valor que se quiere almacenar (números, textos, etc.)

3.2.1. Numéricas

Se utilizan para almacenar valores numéricos enteros (llamados integer en inglés) o decimales (llamados float en inglés). En este caso, el valor se asigna indicando directamente el número entero o decimal. Los números decimales utilizan el carácter . (punto) en vez de , (coma) para separar la parte entera y la parte decimal:

var iva = 16; // variable tipo entero var total = 234.65; // variable tipo decimal

3.2.2. Cadenas de texto

Se utilizan para almacenar caracteres, palabras y/o frases de texto. Para asignar el valor a la variable, se encierra el valor entre comillas dobles o simples, para delimitar su comienzo y su final:

var mensaje = "Bienvenido a nuestro sitio web"; var nombreProducto = 'Producto ABC'; var letraSeleccionada = 'c';

En ocasiones, el texto que se almacena en las variables no es tan sencillo. Si por ejemplo el propio texto contiene comillas simples o dobles, la estrategia que se sigue es la de encerrar el texto con las comillas (simples o dobles) que no utilice el texto:

/* El contenido de texto1 tiene comillas simples, por lo que se encierra con comillas dobles */ var texto1 = "Una frase con 'comillas simples' dentro"; /* El contenido de texto2 tiene comillas dobles, por lo que se encierra con comillas simples */ var texto2 = 'Una frase con "comillas dobles" dentro';

No obstante, a veces las cadenas de texto contienen tanto comillas simples como dobles. Además, existen otros caracteres que son difíciles de incluir en una

Page 48: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

variable de texto (tabulador, ENTER, etc.) Para resolver estos problemas, JavaScript define un mecanismo para incluir de forma sencilla caracteres especiales y problemáticos dentro de una cadena de texto.

El mecanismo consiste en sustituir el carácter problemático por una combinación simple de caracteres. A continuación se muestra la tabla de conversión que se debe utilizar:

Si se quiere incluir... Se debe incluir...

Una nueva línea \n

Un tabulador \t

Una comilla simple \'

Una comilla doble \"

Una barra inclinada \\

De esta forma, el ejemplo anterior que contenía comillas simples y dobles dentro del texto se puede rehacer de la siguiente forma:

var texto1 = 'Una frase con \'comillas simples\' dentro'; var texto2 = "Una frase con \"comillas dobles\" dentro";

Este mecanismo de JavaScript se denomina "mecanismo de escape" de los caracteres problemáticos, y es habitual referirse a que los caracteres han sido "escapados".

Ejercicio 2

Modificar el primer script del capítulo anterior para que:

1. El mensaje que se muestra al usuario se almacene en una variable llamada mensaje y el funcionamiento del script sea el mismo.

2. El mensaje mostrado sea el de la siguiente imagen:

Page 49: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Figura 3.1 Nuevo mensaje que debe mostrar el script

3.2.3. Arrays

En ocasiones, a los arrays se les llama vectores, matrices e incluso arreglos. No obstante, el término array es el más utilizado y es una palabra comúnmente aceptada en el entorno de la programación.

Un array es una colección de variables, que pueden ser todas del mismo tipo o cada una de un tipo diferente. Su utilidad se comprende mejor con un ejemplo sencillo: si una aplicación necesita manejar los días de la semana, se podrían crear siete variables de tipo texto:

var dia1 = "Lunes"; var dia2 = "Martes"; ... var dia7 = "Domingo";

Aunque el código anterior no es incorrecto, sí que es poco eficiente y complica en exceso la programación. Si en vez de los días de la semana se tuviera que guardar el nombre de los meses del año, el nombre de todos los países del mundo o las mediciones diarias de temperatura de los últimos 100 años, se tendrían que crear decenas o cientos de variables.

En este tipo de casos, se pueden agrupar todas las variables relacionadas en una colección de variables o array. El ejemplo anterior se puede rehacer de la siguiente forma:

var dias = ["Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"];

Page 50: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Ahora, una única variable llamada dias almacena todos los valores relacionados entre sí, en este caso los días de la semana. Para definir un array, se utilizan los caracteres [ y ] para delimitar su comienzo y su final y se utiliza el carácter , (coma) para separar sus elementos:

var nombre_array = [valor1, valor2, ..., valorN];

Una vez definido un array, es muy sencillo acceder a cada uno de sus elementos. Cada elemento se accede indicando su posición dentro del array. La única complicación, que es responsable de muchos errores cuando se empieza a programar, es que las posiciones de los elementos empiezan a contarse en el 0 y no en el 1:

var diaSeleccionado = dias[0]; // diaSeleccionado = "Lunes" var otroDia = dias[5]; // otroDia = "Sábado"

En el ejemplo anterior, la primera instrucción quiere obtener el primer elemento del array. Para ello, se indica el nombre del array y entre corchetes la posición del elemento dentro del array. Como se ha comentado, las posiciones se empiezan a contar en el 0, por lo que el primer elemento ocupa la posición 0 y se accede a el mediante dias[0].

El valor dias[5] hace referencia al elemento que ocupa la sexta posición dentro del array dias. Como las posiciones empiezan a contarse en 0, la posición 5 hace referencia al sexto elemento, en este caso, el valor Sábado.

Ejercicio 3

Crear un array llamado meses y que almacene el nombre de los doce meses del año. Mostrar por pantalla los doce nombres utilizando la función alert().

3.2.4. Booleanos

Las variables de tipo boolean o booleano también se conocen con el nombre de variables de tipo lógico. Aunque para entender realmente su utilidad se debe estudiar la programación avanzada con JavaScript del siguiente capítulo, su funcionamiento básico es muy sencillo.

Una variable de tipo boolean almacena un tipo especial de valor que solamente puede tomar dos valores: true (verdadero) o false (falso). No se puede utilizar para almacenar números y tampoco permite guardar cadenas de texto.

Los únicos valores que pueden almacenar estas variables son true y false, por lo que no pueden utilizarse los valores verdadero y falso. A continuación se muestra un par de variables de tipo booleano:

var clienteRegistrado = false; var ivaIncluido = true;

Page 51: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Operadores

Las variables por sí solas son de poca utilidad. Hasta ahora, sólo se ha visto cómo crear variables de diferentes tipos y cómo mostrar su valor mediante la función alert(). Para hacer programas realmente útiles, son necesarias otro tipo de herramientas.

Los operadores permiten manipular el valor de las variables, realizar operaciones matemáticas con sus valores y comparar diferentes variables. De esta forma, los operadores permiten a los programas realizar cálculos complejos y tomar decisiones lógicas en función de comparaciones y otros tipos de condiciones.

3.3.1. Asignación

El operador de asignación es el más utilizado y el más sencillo. Este operador se utiliza para guardar un valor específico en una variable. El símbolo utilizado es = (no confundir con el operador == que se verá más adelante):

var numero1 = 3;

A la izquierda del operador, siempre debe indicarse el nombre de una variable. A la derecha del operador, se pueden indicar variables, valores, condiciones lógicas, etc:

var numero1 = 3; var numero2 = 4; /* Error, la asignación siempre se realiza a una variable, por lo que en la izquierda no se puede indicar un número */ 5 = numero1; // Ahora, la variable numero1 vale 5 numero1 = 5; // Ahora, la variable numero1 vale 4 numero1 = numero2;

3.3.2. Incremento y decremento

Estos dos operadores solamente son válidos para las variables numéricas y se utilizan para incrementar o decrementar en una unidad el valor de una variable.

Ejemplo:

var numero = 5; ++numero; alert(numero); // numero = 6

El operador de incremento se indica mediante el prefijo ++ en el nombre de la variable. El resultado es que el valor de esa variable se incrementa en una unidad. Por tanto, el anterior ejemplo es equivalente a:

Page 52: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

var numero = 5; numero = numero + 1; alert(numero); // numero = 6

De forma equivalente, el operador decremento (indicado como un prefijo -- en el nombre de la variable) se utiliza para decrementar el valor de la variable:

var numero = 5; --numero; alert(numero); // numero = 4

El anterior ejemplo es equivalente a:

var numero = 5; numero = numero - 1; alert(numero); // numero = 4

Los operadores de incremento y decremento no solamente se pueden indicar como prefijo del nombre de la variable, sino que también es posible utilizarlos como sufijo. En este caso, su comportamiento es similar pero muy diferente. En el siguiente ejemplo:

var numero = 5; numero++; alert(numero); // numero = 6

El resultado de ejecutar el script anterior es el mismo que cuando se utiliza el operador ++numero, por lo que puede parecer que es equivalente indicar el operador ++ delante o detrás del identificador de la variable. Sin embargo, el siguiente ejemplo muestra sus diferencias:

var numero1 = 5; var numero2 = 2; numero3 = numero1++ + numero2; // numero3 = 7, numero1 = 6 var numero1 = 5; var numero2 = 2; numero3 = ++numero1 + numero2; // numero3 = 8, numero1 = 6

Si el operador ++ se indica como prefijo del identificador de la variable, su valor se incrementa antes de realizar cualquier otra operación. Si el operador ++ se indica como sufijo del identificador de la variable, su valor se incrementa después de ejecutar la sentencia en la que aparece.

Por tanto, en la instrucción numero3 = numero1++ + numero2;, el valor de numero1 se incrementa después de realizar la operación (primero se suma y numero3 vale 7, después se incrementa el valor de numero1 y vale 6). Sin embargo, en la instrucción numero3 = ++numero1 + numero2;, en primer lugar se incrementa el valor de numero1 y después se realiza la suma (primero se incrementa numero1 y vale 6, después se realiza la suma y numero3 vale 8).

Page 53: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

3.3.3. Lógicos

Los operadores lógicos son imprescindibles para realizar aplicaciones complejas, ya que se utilizan para tomar decisiones sobre las instrucciones que debería ejecutar el programa en función de ciertas condiciones.

El resultado de cualquier operación que utilice operadores lógicos siempre es un valor lógico o booleano.

3.3.3.1. Negación

Uno de los operadores lógicos más utilizados es el de la negación. Se utiliza para obtener el valor contrario al valor de la variable:

var visible = true; alert(!visible); // Muestra "false" y no "true"

La negación lógica se obtiene prefijando el símbolo ! al identificador de la variable. El funcionamiento de este operador se resume en la siguiente tabla:

variable !variable

true false

false true

Si la variable original es de tipo booleano, es muy sencillo obtener su negación. Sin embargo, ¿qué sucede cuando la variable es un número o una cadena de texto? Para obtener la negación en este tipo de variables, se realiza en primer lugar su conversión a un valor booleano:

Si la variable contiene un número, se transforma en false si vale 0 y en true para cualquier otro número (positivo o negativo, decimal o entero).

Si la variable contiene una cadena de texto, se transforma en false si la cadena es vacía ("") y en true en cualquier otro caso.

var cantidad = 0; vacio = !cantidad; // vacio = true cantidad = 2; vacio = !cantidad; // vacio = false var mensaje = ""; mensajeVacio = !mensaje; // mensajeVacio = true mensaje = "Bienvenido"; mensajeVacio = !mensaje; // mensajeVacio = false

Page 54: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

3.3.3.2. AND

La operación lógica AND obtiene su resultado combinando dos valores booleanos. El operador se indica mediante el símbolo && y su resultado solamente es true si los dos operandos son true:

variable1 variable2 variable1 && variable2

true true True

true false False

false true False

false false False

var valor1 = true; var valor2 = false; resultado = valor1 && valor2; // resultado = false valor1 = true; valor2 = true; resultado = valor1 && valor2; // resultado = true

3.3.3.3. OR

La operación lógica OR también combina dos valores booleanos. El operador se indica mediante el símbolo || y su resultado es true si alguno de los dos operandos es true:

variable1 variable2 variable1 || variable2

true true True

true false True

false true True

false false False

var valor1 = true; var valor2 = false; resultado = valor1 || valor2; // resultado = true valor1 = false; valor2 = false; resultado = valor1 || valor2; // resultado = false

3.3.4. Matemáticos

JavaScript permite realizar manipulaciones matemáticas sobre el valor de las variables numéricas. Los operadores definidos son: suma (+), resta (-), multiplicación (*) y división (/). Ejemplo:

Page 55: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

var numero1 = 10; var numero2 = 5; resultado = numero1 / numero2; // resultado = 2 resultado = 3 + numero1; // resultado = 13 resultado = numero2 – 4; // resultado = 1 resultado = numero1 * numero 2; // resultado = 50

Además de los cuatro operadores básicos, JavaScript define otro operador matemático que no es sencillo de entender cuando se estudia por primera vez, pero que es muy útil en algunas ocasiones.

Se trata del operador "módulo", que calcula el resto de la división entera de dos números. Si se divide por ejemplo 10 y 5, la división es exacta y da un resultado de 2. El resto de esa división es 0, por lo que módulo de 10 y 5 es igual a 0.

Sin embargo, si se divide 9 y 5, la división no es exacta, el resultado es 1 y el resto 4, por lo que módulo de 9 y 5 es igual a 4.

El operador módulo en JavaScript se indica mediante el símbolo %, que no debe confundirse con el cálculo del porcentaje:

var numero1 = 10; var numero2 = 5; resultado = numero1 % numero2; // resultado = 0 numero1 = 9; numero2 = 5; resultado = numero1 % numero2; // resultado = 4

Los operadores matemáticos también se pueden combinar con el operador de asignación para abreviar su notación:

var numero1 = 5; numero1 += 3; // numero1 = numero1 + 3 = 8 numero1 -= 1; // numero1 = numero1 - 1 = 4 numero1 *= 2; // numero1 = numero1 * 2 = 10 numero1 /= 5; // numero1 = numero1 / 5 = 1 numero1 %= 4; // numero1 = numero1 % 4 = 1

3.3.5. Relacionales

Los operadores relacionales definidos por JavaScript son idénticos a los que definen las matemáticas: mayor que (>), menor que (<), mayor o igual (>=), menor o igual (<=), igual que (==) y distinto de (!=).

Los operadores que relacionan variables son imprescindibles para realizar cualquier aplicación compleja, como se verá en el siguiente capítulo de programación avanzada. El resultado de todos estos operadores siempre es un valor booleano:

var numero1 = 3;

Page 56: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

var numero2 = 5; resultado = numero1 > numero2; // resultado = false resultado = numero1 < numero2; // resultado = true numero1 = 5; numero2 = 5; resultado = numero1 >= numero2; // resultado = true resultado = numero1 <= numero2; // resultado = true resultado = numero1 == numero2; // resultado = true resultado = numero1 != numero2; // resultado = false

Se debe tener especial cuidado con el operador de igualdad (==), ya que es el origen de la mayoría de errores de programación, incluso para los usuarios que ya tienen cierta experiencia desarrollando scripts. El operador == se utiliza para comparar el valor de dos variables, por lo que es muy diferente del operador =, que se utiliza para asignar un valor a una variable:

// El operador "=" asigna valores var numero1 = 5; resultado = numero1 = 3; // numero1 = 3 y resultado = 3 // El operador "==" compara variables var numero1 = 5; resultado = numero1 == 3; // numero1 = 5 y resultado = false

Los operadores relacionales también se pueden utilizar con variables de tipo cadena de texto:

var texto1 = "hola"; var texto2 = "hola"; var texto3 = "adios"; resultado = texto1 == texto3; // resultado = false resultado = texto1 != texto2; // resultado = false resultado = texto3 >= texto2; // resultado = false

Cuando se utilizan cadenas de texto, los operadores "mayor que" (>) y "menor que" (<) siguen un razonamiento no intuitivo: se compara letra a letra comenzando desde la izquierda hasta que se encuentre una diferencia entre las dos cadenas de texto. Para determinar si una letra es mayor o menor que otra, las mayúsculas se consideran menores que las minúsculas y las primeras letras del alfabeto son menores que las últimas (a es menor que b, b es menor que c, A es menor que a, etc.)

Ejercicio 4

A partir del siguiente array que se proporciona: var valores = [true, 5, false, "hola", "adios", 2];

1. Determinar cual de los dos elementos de texto es mayor

Page 57: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

2. Utilizando exclusivamente los dos valores booleanos del array, determinar los operadores necesarios para obtener un resultado true y otro resultado false

3. Determinar el resultado de las cinco operaciones matemáticas realizadas con los dos elementos numéricos

Estructuras de control de flujo

Los programas que se pueden realizar utilizando solamente variables y operadores son una simple sucesión lineal de instrucciones básicas.

Sin embargo, no se pueden realizar programas que muestren un mensaje si el valor de una variable es igual a un valor determinado y no muestren el mensaje en el resto de casos. Tampoco se puede repetir de forma eficiente una misma instrucción, como por ejemplo sumar un determinado valor a todos los elementos de un array.

Para realizar este tipo de programas son necesarias las estructuras de control de flujo, que son instrucciones del tipo "si se cumple esta condición, hazlo; si no se cumple, haz esto otro". También existen instrucciones del tipo "repite esto mientras se cumpla esta condición".

Si se utilizan estructuras de control de flujo, los programas dejan de ser una sucesión lineal de instrucciones para convertirse en programas inteligentes que pueden tomar decisiones en función del valor de las variables.

3.4.1. Estructura if

La estructura más utilizada en JavaScript y en la mayoría de lenguajes de programación es la estructura if. Se emplea para tomar decisiones en función de una condición. Su definición formal es:

if(condicion) { ... }

Si la condición se cumple (es decir, si su valor es true) se ejecutan todas las instrucciones que se encuentran dentro de {...}. Si la condición no se cumple (es decir, si su valor es false) no se ejecuta ninguna instrucción contenida en {...} y el programa continúa ejecutando el resto de instrucciones del script.

Ejemplo:

var mostrarMensaje = true; if(mostrarMensaje) { alert("Hola Mundo"); }

Page 58: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

En el ejemplo anterior, el mensaje sí que se muestra al usuario ya que la variable mostrarMensaje tiene un valor de true y por tanto, el programa entra dentro del bloque de instrucciones del if.

El ejemplo se podría reescribir también como:

var mostrarMensaje = true; if(mostrarMensaje == true) { alert("Hola Mundo"); }

En este caso, la condición es una comparación entre el valor de la variable mostrarMensaje y el valor true. Como los dos valores coinciden, la igualdad se cumple y por tanto la condición es cierta, su valor es true y se ejecutan las instrucciones contenidas en ese bloque del if.

La comparación del ejemplo anterior suele ser el origen de muchos errores de programación, al confundir los operadores == y =. Las comparaciones siempre se realizan con el operador ==, ya que el operador = solamente asigna valores:

var mostrarMensaje = true; // Se comparan los dos valores if(mostrarMensaje == false) { ... } // Error - Se asigna el valor "false" a la variable if(mostrarMensaje = false) { ... }

La condición que controla el if() puede combinar los diferentes operadores lógicos y relacionales mostrados anteriormente:

var mostrado = false; if(!mostrado) { alert("Es la primera vez que se muestra el mensaje"); }

Los operadores AND y OR permiten encadenar varias condiciones simples para construir condiciones complejas:

var mostrado = false; var usuarioPermiteMensajes = true; if(!mostrado && usuarioPermiteMensajes) { alert("Es la primera vez que se muestra el mensaje"); }

Page 59: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

La condición anterior está formada por una operación AND sobre dos variables. A su vez, a la primera variable se le aplica el operador de negación antes de realizar la operación AND. De esta forma, como el valor de mostrado es false, el valor !mostrado sería true. Como la variable usuarioPermiteMensajes vale true, el resultado de !mostrado && usuarioPermiteMensajes sería igual a true && true, por lo que el resultado final de la condición del if() sería true y por tanto, se ejecutan las instrucciones que se encuentran dentro del bloque del if().

Ejercicio 5

Completar las condiciones de los if del siguiente script para que los mensajes de los alert() se muestren siempre de forma correcta:

var numero1 = 5; var numero2 = 8; if(...) { alert("numero1 no es mayor que numero2"); } if(...) { alert("numero2 es positivo"); } if(...) { alert("numero1 es negativo o distinto de cero"); } if(...) { alert("Incrementar en 1 unidad el valor de numero1 no lo hace mayor o igual que numero2"); }

3.4.2. Estructura if...else

En ocasiones, las decisiones que se deben realizar no son del tipo "si se cumple la condición, hazlo; si no se cumple, no hagas nada". Normalmente las condiciones suelen ser del tipo "si se cumple esta condición, hazlo; si no se cumple, haz esto otro".

Para este segundo tipo de decisiones, existe una variante de la estructura if llamada if...else. Su definición formal es la siguiente:

if(condicion) { ... } else { ... }

Si la condición se cumple (es decir, si su valor es true) se ejecutan todas las instrucciones que se encuentran dentro del if(). Si la condición no se cumple (es decir, si su valor es false) se ejecutan todas las instrucciones contenidas en else { }. Ejemplo:

Page 60: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

var edad = 18; if(edad >= 18) { alert("Eres mayor de edad"); } else { alert("Todavía eres menor de edad"); }

Si el valor de la variable edad es mayor o igual que el valor numérico 18, la condición del if() se cumple y por tanto, se ejecutan sus instrucciones y se muestra el mensaje "Eres mayor de edad". Sin embargo, cuando el valor de la variable edad no es igual o mayor que 18, la condición del if() no se cumple, por lo que automáticamente se ejecutan todas las instrucciones del bloque else { }. En este caso, se mostraría el mensaje "Todavía eres menor de edad".

El siguiente ejemplo compara variables de tipo cadena de texto:

var nombre = ""; if(nombre == "") { alert("Aún no nos has dicho tu nombre"); } else { alert("Hemos guardado tu nombre"); }

La condición del if() anterior se construye mediante el operador ==, que es el que se emplea para comparar dos valores (no confundir con el operador = que se utiliza para asignar valores). En el ejemplo anterior, si la cadena de texto almacenada en la variable nombre es vacía (es decir, es igual a "") se muestra el mensaje definido en el if(). En otro caso, se muestra el mensaje definido en el bloque else { }.

La estructura if...else se puede encadenar para realizar varias comprobaciones seguidas:

if(edad < 12) { alert("Todavía eres muy pequeño"); } else if(edad < 19) { alert("Eres un adolescente"); } else if(edad < 35) { alert("Aun sigues siendo joven"); } else { alert("Piensa en cuidarte un poco más"); }

No es obligatorio que la combinación de estructuras if...else acabe con la instrucción else, ya que puede terminar con una instrucción de tipo else if().

Page 61: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Ejercicio 6

El cálculo de la letra del Documento Nacional de Identidad (DNI) es un proceso matemático sencillo que se basa en obtener el resto de la división entera del número de DNI y el número 23. A partir del resto de la división, se obtiene la letra seleccionándola dentro de un array de letras.

El array de letras es:

var letras = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E', 'T'];

Por tanto si el resto de la división es 0, la letra del DNI es la T y si el resto es 3 la letra es la A. Con estos datos, elaborar un pequeño script que:

1. Almacene en una variable el número de DNI indicado por el usuario y en otra variable la letra del DNI que se ha indicado. (Pista: si se quiere pedir directamente al usuario que indique su número y su letra, se puede utilizar la función prompt())

2. En primer lugar (y en una sola instrucción) se debe comprobar si el número es menor que 0 o mayor que 99999999. Si ese es el caso, se muestra un mensaje al usuario indicando que el número proporcionado no es válido y el programa no muestra más mensajes.

3. Si el número es válido, se calcula la letra que le corresponde según el método explicado anteriormente.

4. Una vez calculada la letra, se debe comparar con la letra indicada por el usuario. Si no coinciden, se muestra un mensaje al usuario diciéndole que la letra que ha indicado no es correcta. En otro caso, se muestra un mensaje indicando que el número y la letra de DNI son correctos.

Ver solución

3.4.3. Estructura for

Las estructuras if y if...else no son muy eficientes cuando se desea ejecutar de forma repetitiva una instrucción. Por ejemplo, si se quiere mostrar un mensaje cinco veces, se podría pensar en utilizar el siguiente if:

var veces = 0; if(veces < 4) { alert("Mensaje"); veces++; }

Se comprueba si la variable veces es menor que 4. Si se cumple, se entra dentro del if(), se muestra el mensaje y se incrementa el valor de la variable veces. Así se debería seguir ejecutando hasta mostrar el mensaje las cinco veces deseadas.

Sin embargo, el funcionamiento real del script anterior es muy diferente al deseado, ya que solamente se muestra una vez el mensaje por pantalla. La

Page 62: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

razón es que la ejecución de la estructura if() no se repite y la comprobación de la condición sólo se realiza una vez, independientemente de que dentro del if() se modifique el valor de la variable utilizada en la condición.

La estructura for permite realizar este tipo de repeticiones (también llamadas bucles) de una forma muy sencilla. No obstante, su definición formal no es tan sencilla como la de if():

for(inicializacion; condicion; actualizacion) { ... }

La idea del funcionamiento de un bucle for es la siguiente: "mientras la condición indicada se siga cumpliendo, repite la ejecución de las instrucciones definidas dentro del for. Además, después de cada repetición, actualiza el valor de las variables que se utilizan en la condición".

La "inicialización" es la zona en la que se establece los valores iniciales de las variables que controlan la repetición.

La "condición" es el único elemento que decide si continua o se detiene la repetición.

La "actualización" es el nuevo valor que se asigna después de cada repetición a las variables que controlan la repetición.

var mensaje = "Hola, estoy dentro de un bucle"; for(var i = 0; i < 5; i++) { alert(mensaje); }

La parte de la inicialización del bucle consiste en:

var i = 0;

Por tanto, en primer lugar se crea la variable i y se le asigna el valor de 0. Esta zona de inicialización solamente se tiene en consideración justo antes de comenzar a ejecutar el bucle. Las siguientes repeticiones no tienen en cuenta esta parte de inicialización.

La zona de condición del bucle es:

i < 5

Los bucles se siguen ejecutando mientras se cumplan las condiciones y se dejan de ejecutar justo después de comprobar que la condición no se cumple. En este caso, mientras la variable i valga menos de 5 el bucle se ejecuta indefinidamente.

Como la variable i se ha inicializado a un valor de 0 y la condición para salir del bucle es que i sea menor que 5, si no se modifica el valor de i de alguna forma, el bucle se repetiría indefinidamente.

Page 63: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Por ese motivo, es imprescindible indicar la zona de actualización, en la que se modifica el valor de las variables que controlan el bucle:

i++

En este caso, el valor de la variable i se incrementa en una unidad después de cada repetición. La zona de actualización se ejecuta después de la ejecución de las instrucciones que incluye el for.

Así, durante la ejecución de la quinta repetición el valor de i será 4. Después de la quinta ejecución, se actualiza el valor de i, que ahora valdrá 5. Como la condición es que i sea menor que 5, la condición ya no se cumple y las instrucciones del for no se ejecutan una sexta vez.

Normalmente, la variable que controla los bucles for se llama i, ya que recuerda a la palabra índice y su nombre tan corto ahorra mucho tiempo y espacio.

El ejemplo anterior que mostraba los días de la semana contenidos en un array se puede rehacer de forma más sencilla utilizando la estructura for:

var dias = ["Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"]; for(var i=0; i<7; i++) { alert(dias[i]); }

Ejercicio 7

El factorial de un número entero n es una operación matemática que consiste en multiplicar todos los factores n x (n-1) x (n-2) x ... x 1. Así, el factorial de 5 (escrito como 5!) es igual a: 5! = 5 x 4 x 3 x 2 x 1 = 120

Utilizando la estructura for, crear un script que calcule el factorial de un número entero.

Ver solución

3.4.4. Estructura for...in

Una estructura de control derivada de for es la estructura for...in. Su definición exacta implica el uso de objetos, que es un elemento de programación avanzada que no se va a estudiar. Por tanto, solamente se va a presentar la estructura for...in adaptada a su uso en arrays. Su definición formal adaptada a los arrays es:

for(indice in array) { ... }

Page 64: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Si se quieren recorrer todos los elementos que forman un array, la estructura for...in es la forma más eficiente de hacerlo, como se muestra en el siguiente ejemplo:

var dias = ["Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"]; for(i in dias) { alert(dias[i]); }

La variable que se indica como indice es la que se puede utilizar dentro del bucle for...in para acceder a los elementos del array. De esta forma, en la primera repetición del bucle la variable i vale 0 y en la última vale 6.

Esta estructura de control es la más adecuada para recorrer arrays (y objetos), ya que evita tener que indicar la inicialización y las condiciones del bucle for simple y funciona correctamente cualquiera que sea la longitud del array. De hecho, sigue funcionando igual aunque varíe el número de elementos del array.

Funciones y propiedades básicas de JavaScript

JavaScript incorpora una serie de herramientas y utilidades (llamadas funciones y propiedades, como se verá más adelante) para el manejo de las variables. De esta forma, muchas de las operaciones básicas con las variables, se pueden realizar directamente con las utilidades que ofrece JavaScript.

3.5.1. Funciones útiles para cadenas de texto

A continuación se muestran algunas de las funciones más útiles para el manejo de cadenas de texto:

length, calcula la longitud de una cadena de texto (el número de caracteres que la forman)

var mensaje = "Hola Mundo"; var numeroLetras = mensaje.length; // numeroLetras = 10

+, se emplea para concatenar varias cadenas de texto

var mensaje1 = "Hola"; var mensaje2 = " Mundo"; var mensaje = mensaje1 + mensaje2; // mensaje = "Hola Mundo"

Además del operador +, también se puede utilizar la función concat()

var mensaje1 = "Hola"; var mensaje2 = mensaje1.concat(" Mundo"); // mensaje2 = "Hola Mundo"

Las cadenas de texto también se pueden unir con variables numéricas:

Page 65: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

var variable1 = "Hola "; var variable2 = 3; var mensaje = variable1 + variable2; // mensaje = "Hola 3"

Cuando se unen varias cadenas de texto es habitual olvidar añadir un espacio de separación entre las palabras:

var mensaje1 = "Hola"; var mensaje2 = "Mundo"; var mensaje = mensaje1 + mensaje2; // mensaje = "HolaMundo"

Los espacios en blanco se pueden añadir al final o al principio de las cadenas y también se pueden indicar forma explícita:

var mensaje1 = "Hola"; var mensaje2 = "Mundo"; var mensaje = mensaje1 + " " + mensaje2; // mensaje = "Hola Mundo"

toUpperCase(), transforma todos los caracteres de la cadena a sus correspondientes caracteres en mayúsculas:

var mensaje1 = "Hola"; var mensaje2 = mensaje1.toUpperCase(); // mensaje2 = "HOLA"

toLowerCase(), transforma todos los caracteres de la cadena a sus correspondientes caracteres en minúsculas:

var mensaje1 = "HolA"; var mensaje2 = mensaje1.toLowerCase(); // mensaje2 = "hola"

charAt(posicion), obtiene el carácter que se encuentra en la posición indicada:

var mensaje = "Hola"; var letra = mensaje.charAt(0); // letra = H letra = mensaje.charAt(2); // letra = l

indexOf(caracter), calcula la posición en la que se encuentra el carácter indicado dentro de la cadena de texto. Si el carácter se incluye varias veces dentro de la cadena de texto, se devuelve su primera posición empezando a buscar desde la izquierda. Si la cadena no contiene el carácter, la función devuelve el valor -1:

var mensaje = "Hola"; var posicion = mensaje.indexOf('a'); // posicion = 3 posicion = mensaje.indexOf('b'); // posicion = -1

Su función análoga es lastIndexOf():

lastIndexOf(caracter), calcula la última posición en la que se encuentra el carácter indicado dentro de la cadena de texto. Si la cadena no contiene el carácter, la función devuelve el valor -1:

var mensaje = "Hola";

Page 66: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

var posicion = mensaje.lastIndexOf('a'); // posicion = 3 posicion = mensaje.lastIndexOf('b'); // posicion = -1

La función lastIndexOf() comienza su búsqueda desde el final de la cadena hacia el principio, aunque la posición devuelta es la correcta empezando a contar desde el principio de la palabra.

substring(inicio, final), extrae una porción de una cadena de texto. El segundo parámetro es opcional. Si sólo se indica el parámetro inicio, la función devuelve la parte de la cadena original correspondiente desde esa posición hasta el final:

var mensaje = "Hola Mundo"; var porcion = mensaje.substring(2); // porcion = "la Mundo" porcion = mensaje.substring(5); // porcion = "Mundo" porcion = mensaje.substring(7); // porcion = "ndo"

Si se indica un inicio negativo, se devuelve la misma cadena original:

var mensaje = "Hola Mundo"; var porcion = mensaje.substring(-2); // porcion = "Hola Mundo"

Cuando se indica el inicio y el final, se devuelve la parte de la cadena original comprendida entre la posición inicial y la inmediatamente anterior a la posición final (es decir, la posición inicio está incluida y la posición final no):

var mensaje = "Hola Mundo"; var porcion = mensaje.substring(1, 8); // porcion = "ola Mun" porcion = mensaje.substring(3, 4); // porcion = "a"

Si se indica un final más pequeño que el inicio, JavaScript los considera de forma inversa, ya que automáticamente asigna el valor más pequeño al inicio y el más grande al final:

var mensaje = "Hola Mundo"; var porcion = mensaje.substring(5, 0); // porcion = "Hola " porcion = mensaje.substring(0, 5); // porcion = "Hola "

split(separador), convierte una cadena de texto en un array de cadenas de texto. La función parte la cadena de texto determinando sus trozos a partir del carácter separador indicado:

var mensaje = "Hola Mundo, soy una cadena de texto!"; var palabras = mensaje.split(" "); // palabras = ["Hola", "Mundo,", "soy", "una", "cadena", "de", "texto!"];

Con esta función se pueden extraer fácilmente las letras que forman una palabra:

var palabra = "Hola"; var letras = palabra.split(""); // letras = ["H", "o", "l", "a"]

Page 67: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

3.5.2. Funciones útiles para arrays

A continuación se muestran algunas de las funciones más útiles para el manejo de arrays:

length, calcula el número de elementos de un array

var vocales = ["a", "e", "i", "o", "u"]; var numeroVocales = vocales.length; // numeroVocales = 5

concat(), se emplea para concatenar los elementos de varios arrays

var array1 = [1, 2, 3]; array2 = array1.concat(4, 5, 6); // array2 = [1, 2, 3, 4, 5, 6] array3 = array1.concat([4, 5, 6]); // array3 = [1, 2, 3, 4, 5, 6]

join(separador), es la función contraria a split(). Une todos los elementos de un array para formar una cadena de texto. Para unir los elementos se utiliza el carácter separador indicado

var array = ["hola", "mundo"]; var mensaje = array.join(""); // mensaje = "holamundo" mensaje = array.join(" "); // mensaje = "hola mundo"

pop(), elimina el último elemento del array y lo devuelve. El array original se modifica y su longitud disminuye en 1 elemento.

var array = [1, 2, 3]; var ultimo = array.pop(); // ahora array = [1, 2], ultimo = 3

push(), añade un elemento al final del array. El array original se modifica y aumenta su longitud en 1 elemento. (También es posible añadir más de un elemento a la vez)

var array = [1, 2, 3]; array.push(4); // ahora array = [1, 2, 3, 4]

shift(), elimina el primer elemento del array y lo devuelve. El array original se ve modificado y su longitud disminuida en 1 elemento.

var array = [1, 2, 3]; var primero = array.shift(); // ahora array = [2, 3], primero = 1

unshift(), añade un elemento al principio del array. El array original se modifica y aumenta su longitud en 1 elemento. (También es posible añadir más de un elemento a la vez)

var array = [1, 2, 3];

Page 68: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

array.unshift(0); // ahora array = [0, 1, 2, 3]

reverse(), modifica un array colocando sus elementos en el orden inverso a su posición original:

var array = [1, 2, 3]; array.reverse(); // ahora array = [3, 2, 1]

3.5.3. Funciones útiles para números

A continuación se muestran algunas de las funciones y propiedades más útiles para el manejo de números.

NaN, (del inglés, "Not a Number") JavaScript emplea el valor NaN para indicar un valor numérico no definido (por ejemplo, la división 0/0).

var numero1 = 0; var numero2 = 0; alert(numero1/numero2); // se muestra el valor NaN

isNaN(), permite proteger a la aplicación de posibles valores numéricos no definidos

var numero1 = 0; var numero2 = 0; if(isNaN(numero1/numero2)) { alert("La división no está definida para los números indicados"); } else { alert("La división es igual a => " + numero1/numero2); }

Infinity, hace referencia a un valor numérico infinito y positivo (también existe el valor –Infinity para los infinitos negativos)

var numero1 = 10; var numero2 = 0; alert(numero1/numero2); // se muestra el valor Infinity

toFixed(digitos), devuelve el número original con tantos decimales como los indicados por el parámetro digitos y realiza los redondeos necesarios. Se trata de una función muy útil por ejemplo para mostrar precios.

var numero1 = 4564.34567; numero1.toFixed(2); // 4564.35 numero1.toFixed(6); // 4564.345670 numero1.toFixed(); // 4564

Page 69: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Programación avanzada

Las estructuras de control, los operadores y todas las utilidades propias de JavaScript que se han visto en los capítulos anteriores, permiten crear scripts sencillos y de mediana complejidad.

Sin embargo, para las aplicaciones más complejas son necesarios otros elementos como las funciones y otras estructuras de control más avanzadas, que se describen en este capítulo.

Introducción

Una función no es más que un bloque de enunciados que componen un comportamiento que puede ser invocado las veces que sea necesario.

Sintaxis general de una función

Una función de JavaScript presenta este aspecto:

function nombre_de_la_función(){ …enunciados a ejecutar… }

Para ejecutar la función posteriormente no hay más que invocar su nombre en cualquier momento y desde cualquier parte de un código, con una excepción: la función debe haber sido definida anteriormente. Así, por ejemplo, este código:

function dame_una_a(){ alert("¡AAAAAAAAAAAAAAAAA!"); } dame_una_a();

ejecutaría la alerta, pero éste:

dame_una_a(); function dame_una_a(){ alert("¡AAAAAAAAAAAAAAAAA!"); }

generaría un error, porque en el momento en que se invoca la función ésta aún no ha sido registrada.

Hay que poner especial atención a la hora de crear la funciones, para no repetir los nombres, principalmente porque esto no genera errores en JavaScript, y

Page 70: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

puede suponer quebraderos de cabeza cuando un script no funciona pero la consola de errores no muestra mensaje alguno.

Si definimos dos funciones con el mismo nombre, como en este ejemplo:

function alerta(){ alert("Ia Ia Shub-Niggurath"); } function alerta(){ alert("Klaatu barada nikto"); } alerta();

sólo funciona la segunda, que ha sido la última definida.

Funciones y argumentos

Podemos desear que una función ejecute unos enunciados en los que opere con una serie de valores que no hayamos definido dentro de la misma, sino que los reciba de otra función o enunciado. Esos valores son los argumentos, que se especifican entre los paréntesis que van tras el nombre de la función, y se separan por comas:

function nombre_de_la_función(argumento1,argumento1,…){ …enunciados a ejecutar… }

Los argumentos se nombran como las variables:

function sumar(x,y){ var total = x + y; alert(total); }

Si después se ejecuta unas líneas como las siguientes:

sumar(1,2); sumar(3,5); sumar(8,13);

en la función sumar total adquiere sucesivamente los valores de 3, 8 y 21, que es lo que mostrarían tres alertas.

Page 71: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Aunque en los ejemplos emplee numerales, como argumentos se puede enviar cualquier variable. Sólo hay que recordar que si se trata de una cadena literal, debe ir entrecomillada:

la_función('cadena','otra_cadena');

Por último, sobre los argumentos hay que recordar las respuestas a tres preguntas:

¿Qué ocurre si se envía a una función menos argumentos que los que se han especificado?: Los argumentos que no han recibido un valor adoptan el de undefined.

¿Qué ocurre si se envía a una función más argumentos que los que se han especificado?: Los argumentos que sobran son elgantemente ignorados.

¿Cuántos argumentos se pueden especificar como máximo?: 255.

Variables y su ámbito

El ámbito sería algo así como el espacio en el que las variables existen y al que pueden acceder enunciados u otras funciones. Si se define una variable dentro de una función, esa variable sólo existe para esa función, y otras funciones no pueden acceder a su valor a menos que lo reciban como un argumento:

function concatenar_cadenas(){ var a = "orda"; var b = "lía"; var c = a + b; } function mostrar_resultado(){ alert(c); } concatenar_cadenas(); mostrar_resultado();

En este caso no obtenemos una alerta con «ordalía», sino un error, puesto que en la función mostrar_resultado() pedimos que se muestre el valor de una variable que no existe en su ámbito. Dicho de otra manera, las variables existen sólo para concatenar_cadenas(), y aunque adquieren los valores definidos en cuanto ejecutamos la función, ésta es una «barrera» que impide que se pueda acceder a aquellos desde fuera.

Para que el código funionase, deberíamos definir las variables fuera de ambas funciones, para que su ámbito sea global:

Page 72: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

var a = ""; var b = ""; var c = ""; function concatenar_cadenas(){ a = "orda"; b = "lía"; c = a + b; } function mostrar_resultado(){ alert(c); } concatenar_cadenas(); mostrar_resultado();

De esta forma, toda función puede acceder a las variables. concatenar_cadenas() modifica los valores iniciales, pero ahora estos se almacenan de manera global fuera de ella; así están disponibles para mostrar_resultado().

return

Hay otra opción con la que solucionar el problema anterior, y que además puede ser útil en otras ocasiones: return que permite devolver valores al origen de la invocación de una función. El esquema de funcionamiento es algo así:

Un ejemplo esquemático del funcionamiento de return

Page 73: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Rehagamos el ejemplo anterior que no funcionaba por cuestiones de ámbito de las variables, pero enviando el resultado por medio de return:

function concatenar_cadenas(){ var a = "orda"; var b = "lía"; var c = a + b; return c; } function mostrar_resultado(){ alert(concatenar_cadenas()); } mostrar_resultado();

Ahora mostrar_resultado cuenta con el alert que tiene que mostrar el resultado de la concatenación. En la alerta invocamos la función concatenar_cadenas, que devuelve el valor de c; así, es como si en hubiéramos hecho una alerta de c directamente.

En este ejemplo no hemos necesitado enviar argumentos porque se trata de un ejemplo muy sencillo, pero en los ejemplos sobre funciones veremos esto con más detalle.

FUNCIONES JAVASCRIPT

Una función JavaScript es un fragmento de código que puede ser invocado para realizar tareas o devolver un resultado. Si has trabajado con otros lenguajes de programación el concepto te resultará familiar. Las funciones JavaScript son similares a lo que en otros lenguajes se denomina procedimientos, funciones o métodos.

Programar, usando un símil, podemos verlo como realizar un viaje por carretera. Cuando realizamos un viaje, aparte de la necesidad de definir el objetivo y estudiar la ruta del viaje (estructura del programa) podemos decir que: “En general, pero sobre todo para viajes complicados, conviene dividir el problema en subapartados”.

La estrategia del “divide y vencerás”... Es una de las estrategias más usadas en programación de ordenadores y, una vez más, abordaremos aquí el uso de esta filosofía compañera de viaje del programador. El concepto de función aplicado a la programación JavaScript es muy similar al aplicable a distintas facetas de la vida: un escritor divide su curso en capítulos y apéndices. Un profesor divide el

Page 74: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

contenido de la asignatura en temas. Un ingeniero divide el proyecto en partes como Memoria, Anejos, Pliego de Condiciones, Presupuesto y Planos. En una fábrica, organizan el trabajo dividiendo las áreas funcionales en recepción de materias primas, área de pre-proceso, área de proceso, área de post-proceso y área de carga y despacho de producto terminado.

De cara a la programación JavaScript, usaremos la división del código en funciones por ser una estrategia efectiva para resolver problemas complejos. Cada función será llamada para realizar su cometido en un orden establecido.

Además una función se puede llamar tantas veces como se desee, lo cual evita tener que repetir código y por otro lado permite que cuando haya que realizar una corrección únicamente tengamos que hacerla en la función concreta que se ve afectada.

Las funciones pueden recibir información para realizar su cometido, por ejemplo function suma (a, b) recibe dos elementos de información: a y b, o no recibirla por realizar un proceso que no necesita recibir información, por ejemplo function dibujarCirculo().

Otra característica interesante de las funciones es que permite abstraer los problemas. Supongamos que necesitamos una función que devuelva para un importe de una compra sin impuestos el importe con impuestos, y que a su vez el porcentaje de impuestos a aplicar depende del tipo de producto. Si un compañero nos facilita la función function obtenerImporteConImpuestos (importeSinImpuestos) no tenemos que preocuparnos del código de la función. Unicamente sabemos que invocando a la función obtendremos el importe con impuestos. De esta forma, podemos utilizar funciones que han creado otros programadores o funciones disponibles en librerías sin necesidad de conocer el código de las mismas. Decimos que las funciones son “cajas negras” que facilitan la abstracción porque no necesitamos ver en su interior, sólo nos interesan sus resultados.

De hecho, es posible que un programador use un código para una función function obtenerImporteConImpuestos (importeSinImpuestos) y otro programador use otro código para esa misma función sin que esto suponga ningún problema. Lo importante es que la función realice su cometido, no cómo lo realice ya que es frecuente que haya distintas maneras de hacer algo (aunque ciertamente hacer las cosas de diferente manera no debe significar que unas veces se hagan bien y otro mal: siempre deberían hacerse las cosas bien).

Una función en general debe tener un nombre descriptivo de cuál es su cometido y tener un cometido claro y único. No deben mezclarse tareas que no tengan relación entre sí dentro de una función.

FUNCIONES CON PARÁMETROS Y SIN PARÁMETROS

Una función JavaScript puede requerir ser llamada pasándole cierta información o no requerir información.

Page 75: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Definición de una función sin parámetros (no requiere información):

//Comentario descriptivo de qué hace la función

function nombreDeLaFunción () {

//Código de la función

}

Definición de una función con parámetros (requiere información):

//Comentario descriptivo de qué hace la función

function nombreDeLaFunción (param1, param2, …, paramN) {

//Código de la función

}

Una función puede recibir tantos parámetros como se deseen, aunque no sería demasiado razonable que una función reciba más de cuatro o cinco parámetros.

Los parámetros que se le pasan a la función pueden ser:

a) Valores simples a los que se denomina literales: por ejemplo 554, true ó ‘aldea’.

b) Variables que contienen un número, un texto o un valor booleano.

c) Objetos de naturaleza compleja, como arrays y otros tipos de objetos que veremos más adelante.

Cuando una función recibe un parámetro dicho parámetro funciona como si se tratara de una variable disponible para la función inicializada con el valor que se le pasa a la función.

Veamos un ejemplo:

function mostrarImporteConImpuestos(importeSinImpuestos) {

Page 76: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

var importeConImpuestos; importeConImpuestos = importeSinImpuestos * 1.21;

msg = 'Importe antes de impuestos: '+ importeSinImpuestos + '\n\n';

alert(msg + 'Importe con impuestos: '+ importeConImpuestos + '\n\n');

}

Aquí vemos dos cosas de interés: el parámetro que recibe la función no tiene un tipo de datos explícito. El tipo de datos es “inferido” por el intérprete JavaScript.

Por otro lado, el parámetro está disponible dentro de la función con el valor con el que haya sido invocado. Por ejemplo onclick="mostrarImporteConImpuestos(100)" hará que importeSinImpuestos valga 100 porque ese es el valor con el que se invoca.

Cuando una función tiene varios parámetros, se debe invocar escribiendo su nombre seguido de los parámetros en el orden adecuado.

FUNCIONES QUE DEVUELVEN UN RESULTADO. RETURN.

Una función JavaScript puede devolver un resultado si se introduce la sentencia return resultado; donde resultado es aquello que queremos devolver (normalmente una variable que contiene un valor numérico, de texto o booleano, pero también podrían ser objetos con mayor complejidad como un array).

Una vez se llega a la sentencia return se produce la devolución del resultado y se interrumpe la ejecución de la función. Por ello la sentencia return será normalmente la última instrucción dentro de una función.

Definición de una función sin parámetros que devuelve un resultado:

//Comentario descriptivo de qué hace la función

function nombreDeLaFunción () {

//Código de la función

return resultado;

}

Definición de una función con parámetros que devuelve un resultado:

Page 77: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

//Comentario descriptivo de qué hace la función

function nombreDeLaFunción (param1, param2, …, paramN) {

//Código de la función

return resultado;

}

Una función sólo devolverá un resultado y normalmente sólo tendrá una sentencia return, aunque si hay sentencias condicionales como if, puede haber varias sentencias return: una sentencia return para cada sentencia condicional.

Si además del resultado la función incluye código que implique acciones como mostrar un mensaje por pantalla, se ejecutará el código a la vez que se devuelve el resultado.

Veamos un ejemplo:

function obtenerImporteConImpuestos(importeSinImpuestos) {

var importeConImpuestos; importeConImpuestos = importeSinImpuestos * 1.21;

return importeConImpuestos;

}

Un ejemplo de uso de esta función sería:

onclick="alert('Calculado para producto de precio 100: importe con impuestos vale ' + obtenerImporteConImpuestos(100));"

Aquí vemos cómo al invocar la función ésta devuelve un resultado que se coloca allí donde se encuentra la llamada a la función (en este ejemplo el resultado se coloca dentro de una sentencia para mostrar un mensaje por pantalla. Aquí el resultado es numérico, pero el intérprete lo transformará automáticamente en texto para mostrarlo por pantalla).

También será frecuente almacenar el resultado en una variable, por ejemplo:

Page 78: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

var importeConImp = obtenerImporteConImpuestos(100);

El resultado que devuelve una función puede ser:

a) Un valor simple (literal): por ejemplo 554, ó true ó ‘aldea’.

b) Una variable que contienen un número, un texto o un valor booleano.

c) Un objeto de naturaleza compleja, como arrays y otros tipos de objetos que veremos más adelante.

El resultado que devuelve una función no tiene un tipo de datos explícito. El tipo de datos es “inferido” por el intérprete JavaScript.

LLAMADAS A FUNCIONES DESDE OTRAS FUNCIONES

Una función puede llamar a otra función simplemente escribiendo su nombre y los parámetros que sean necesarios. Ejemplo:

function mostrarImporteConImpuestos2(importeSinImpuestos) {

var msg; msg = 'Ejemplo. Importe antes de impuestos: '+ importeSinImpuestos + '\n\n';

alert(msg + 'Importe con impuestos: '+ obtenerImporteConImpuestos(importeSinImpuestos) + '\n\n');

}

En esta función en vez de realizarse el cálculo del importe con impuestos, se invoca otra función que es la que se encarga de realizar el cálculo y devolver el valor correspondiente.

Page 79: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

PASO DE PARÁMETROS A FUNCIONES

Hay dos formas comunes de pasar parámetros a funciones en programación: por valor, que implica que si se pasa una variable sus cambios sólo son conocidos dentro de la función, o por variable, que implica que si se pasa una variable ésta puede ser modificada por la función y sus cambios ser conocidos fuera de la función. JavaScript trabaja con paso de parámetros por valor, lo que implica que la variable pasada como parámetro funciona como una variable local a la función: si el parámetro sufre cambios, estos cambios sólo son conocidos dentro de la función. La variable “verdadera” no puede ser modificada.

PASO DE UN NÚMERO DE PARÁMETROS INCORRECTO

Si se pasan más parámetros de los necesarios, JavaScript ignorará los parámetros sobrantes. Si se pasan menos parámetros de los necesarios, JavaScript asignará valor undefined a los parámetros de los que no se recibe información y se ejecutará sin que surja ningún mensaje de error (aparte de los posibles resultados extraños que esto pudiera ocasionar).

EJERCICIOS

1. Crea un script donde declares una función obtenerImporteConImpuestos que reciba dos parámetros: el importe sin impuestos (numérico) y el tipo de producto (numérico entero). La función debe mostrar por pantalla el importe sin impuestos más el 21% si el tipo de producto es 1, ó el importe sin impuestos más el 10% si el tipo de producto es 2, ó el importe sin impuestos más el 5% si el tipo de producto es 3.

Ejemplo: obtenerImporteConImpuestos(100, 1) debe mostrar: Para un importe sin impuestos de 100 y tipo de producto 1 el resultado de importe con impuestos es 121. obtenerImporteConImpuestos(100, 2) debe mostrar: Para un importe sin impuestos de 100 y tipo de producto 2 el resultado de importe con impuestos es 110.

2. Crea un script donde declares una función obtenerImporteConImpuestos2 que reciba un parámetro: el importe sin impuestos (numérico). La función debe devolver un array con valor undefined para el índice 0, el importe sin impuestos más el 21% para el índice 1, el importe sin impuestos más el 10% para el índice 2, ó el importe sin impuestos más el 5% para el índice 3. Invoca la función haciendo que se muestre el contenido del array por pantalla.

obtenerImporteConImpuestos(100) debe devolver: resultado[0] = undefined, resultado[1] = 121, resultado[2] = 110, resultado[3] = 105. Por pantalla se debe mostrar: Para precio sin impuestos 100 si el producto es tipo 1 el importe es 121,

Page 80: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

si el producto es tipo 2 el importe es 110 y si el producto es tipo 3 el importe es 105.

Ejecuta el código y comprueba sus resultados. Para comprobar si es correcta tu solución puedes consultar en los foros aprenderaprogramar.com.

Para acceder a la información general sobre este curso y al listado completo de entregas pulsa en este link: Ver curso completo.

Para hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.

Applet de Java

El lenguaje Java se puede usar para crear los applets de Java. Un applet es un elemento más de una página web, como una imagen o una porción de texto. Cuando el navegador carga la página web, el applet insertado en dicha página se carga y se ejecuta.

Proyecto Descartes

Descartes (M.E.C.) es un programa realizado en lenguaje applet de java que se caracterizan porque crean "escenas" que se pueden insertar en las páginas web. Descartes no sólo convierte una web en una web interactiva sino que, además, es configurable, es decir, que los usuarios (profesores) pueden "programarlo" para que aparezcan diferentes elementos y distintos tipos de interacción.

El año 2000 fue declarado por la Unesco como año mundial de las matemáticas, con el objetivo de promover entre los especialistas de su enseñanza una profunda reflexión sobre su didáctica, las metodologías utilizadas, los materiales y medios didácticos empleados y la adecuación de los contenidos a la sociedad tecnológica de la información, de la comunicación y del conocimiento.

En España, el gobierno priorizó la necesidad de actualizar los contenidos y las metodologías de los currículos de la enseñanza primaria y secundaria en el marco de la LOGSE, destacando al ordenador como herramienta de aprendizaje y de actividad matemática en la sociedad actual. Esto llevó a formular un Programa de Nuevas Tecnologías de la Información y de la Comunicación del Ministerio de Educación y Cultura, denominado Proyecto Descartes, que pretende favorecer la utilización de la computadora como herramienta didáctica en las clases de matemáticas. El proyecto pretende modificar la didáctica y metodológica que es tradicional en esta materia, cambiando los modelos de clases receptivas, pasivas o poco interactivas, por parte de los alumnos, por un clima tecnológico entre alumnos y profesores, utilizando y experimentando con nuevas tecnologías de la información y de la comunicación como medio didáctico en sus clases, promoviendo nuevas metodologías de trabajo en el aula, más activas, participativas, motivadoras y personalizadas, para que con apoyo del profesor y buenas propuestas los alumnos piensen soluciones a problemas.

Para ello se ha desarrollado una herramienta capaz de generar materiales interactivos de matemáticas (Descartes); se han construido con ella más de cien unidades didácticas de los distintos cursos de la enseñanza secundaria; se ha

Page 81: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

realizado la difusión del proyecto entre los profesores de matemática, principalmente con cursos específicos de formación sobre el uso de esta herramienta, en congresos y jornadas dedicadas a la matemática o al uso didáctico de las tecnologías de la información.

Descartes es un programa realizado en lenguaje Java, lo que se denomina un

applet. Estos programas se caracterizan por la posibilidad de ser insertados en

las páginas web. Existen en internet numerosos applets, algunos de ellos

interactivos, es decir que permiten al usuario modificar algún parámetro y

observar el efecto que se produce en la pantalla, pero lo que caracteriza a

Descartes es que, además, es configurable, es decir, que los usuarios

(profesores) pueden programarlo para que aparezcan diferentes elementos y

distintos tipos de interacción. En particular, el applet Descartes tiene una

programación muy matemática para que a los profesores de esta materia les

resulte fácil su aprendizaje y utilización. Tiene como principal finalidad la creación

de actividades relacionadas con la representación gráfica de funciones, las

representaciones geométricas, la realización de cálculos con las operaciones

aritméticas, la utilización de funciones y curvas en general.

Características:

Es una simulación de un sistema de referencia cartesiano interactivo, en el que se pueden configurar y emplear todos los elementos habituales: origen, ejes, cuadrantes, cuadrícula, puntos, coordenadas, segmentos, vectores, rectas, etc. Todas estas representaciones se realizan sobre un rectángulo y a estas representaciones las denominamos escenas. Los objetos y elementos que aparecen pueden depender de controles, que son parámetros modificables por el usuario, lo que hace que las gráficas y los elementos geométricos que se muestran cambien al ser modificados esos controles. En él se pueden representar curvas y gráficas dadas por sus ecuaciones, tanto en forma explícita como implícita; en particular permite representar las gráficas de todas las funciones que habitualmente se utilizan en la enseñanza secundaria, tanto en coordenadas cartesianas como paramétricas. Se muestran aplicaciones donde también se hacen representaciones en coordenadas polares. Se pueden representar los elementos geométricos habituales: puntos, segmentos, ángulos, rectas, polígonos, circunferencias, etc. Dispone también de una poderosa herramienta de cálculo que permite evaluar cualquier expresión matemática y mostrar el resultado en las escenas. También se pueden definir algoritmos, funciones definidas mediante algoritmos, así como usar sucesiones de puntos, familias de funciones, textos y expresiones matemáticas que pueden aparecer en la escena.

El Proyecto Descartes ha sido diseñado y realizado por el Centro nacional de información y comunicación educativa del Ministerio de Educación Cultura y Deporte.

Descartes es un programa realizado en lenguaje Java, lo que se denomina un applet. Estos programas se caracterizan porque crean "escenas" que se pueden insertar en las páginas web.

Page 82: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Descartes es un proyecto que pretende hacer las matemáticas más interactivas y visuales mediante el uso del ordenador. Con Descartes se pueden crear, de modo sencillo e intuitivo, applets de matemáticas modificables y con animaciones. Las unidades didácticas disponibles pueden ser también adaptadas fácilmente por el profesor.

En la siguiente dirección se encuentra recogida toda la documentación del proyecto Descartes:

http://recursostic.educacion.es/descartes/web/

Allí encontramos no sólo la forma de descargar el

programa y su documentación, sino también muchas

aportaciones en forma de unidades didácticas en

formato web, algunas escenas para insertar en

páginas web, experiencias de aula y, lo que es más

importante, cursos de autoformación para aprender a

manejar el

Desarrollador

IBM

http://www.spss.com

Información general

Lanzamiento inicial 1969

Última versión

estable

22.0

6 de septiembre de 2013;

hace 2 años

Género Software estadístico

Programado en Java

Sistema operativo Multiplataforma

Licencia Propietaria

SPSS es un programa estadístico informático muy usado en las ciencias sociales y las empresas de investigación de mercado. Originalmente SPSS fue creado como el acrónimo de Statistical Package for the Social Sciences aunque también se ha referido como "Statistical Product and Service Solutions" (Pardo, A., & Ruiz, M.A., 2002, p. 3). Sin embargo, en la actualidad la parte SPSS del nombre completo del software (IBM SPSS) no es acrónimo de nada.1

Page 83: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Es uno de los programas estadísticos más conocidos teniendo en cuenta su capacidad para trabajar con grandes bases de datos y un sencillo interface para la mayoría de los análisis. En la versión 12 de SPSS se podían realizar análisis con 2 millones de registros y 250.000 variables. El programa consiste en un módulo base y módulos anexos que se han ido actualizando constantemente con nuevos procedimientos estadísticos. Cada uno de estos módulos se compra por separado.

Por ejemplo SPSS puede ser utilizado para evaluar cuestiones educativas.

Actualmente, compite no sólo con softwares licenciados como lo son SAS, MATLAB, Statistica, Stata, sino también con software de código abierto y libre, de los cuales el más destacado es el Lenguaje R. Recientemente ha sido desarrollado un paquete libre llamado PSPP, con una interfaz llamada PSPPire que ha sido compilada para diversos sistemas operativos como Linux, además de versiones para Windows y OS X. Este último paquete pretende ser un clon de código abierto que emule todas las posibilidades del SPSS.

Historia

Fue creado en 1968 por Norman H. Nie, C. Hadlai (Tex) Hull y Dale H. Bent. Entre 1969 y 1975 la Universidad de Chicago por medio de su National Opinion Research Center estuvo a cargo del desarrollo, distribución y venta del programa. A partir de 1975 corresponde a SPSS Inc.

Originalmente el programa fue creado para grandes computadores. En 1970 se publica el primer manual de usuario del SPSS por Nie y Hall. Este manual populariza el programa entre las instituciones de educación superior en EE. UU. En 1984 sale la primera versión para computadores personales.

Desde la versión 14, pero más específicamente desde la versión 15 se ha implantado la posibilidad de hacer uso de las librerías de objetos del SPSS desde diversos lenguajes de programación. Aunque principalmente se ha implementado para Python, también existe la posibilidad de trabajar desde Visual Basic, C++ y otros lenguajes.

El 28 de junio de 2009 se anuncia que IBM, meses después de ver frustrado su intento de compra de Sun Microsystems, adquiere SPSS, por 1.200 millones de dólares.2

Versiones del SPSS SPSS Inc. desarrolla un módulo básico del paquete estadístico SPSS, del que han aparecido las siguientes versiones:

SPSS 1 - 1968 SPSSx release 2 - 1983 (para grandes servidores tipo UNIX) SPSS 5.0 - diciembre 1993 SPSS 6.1 - febrero 1995 SPSS 7.5 - enero 1997 SPSS 8.0 - 1998 SPSS 9.0 - marzo 1999 SPSS 10.0.5 - diciembre 1999 SPSS 10.0.7 - julio 2000

Page 84: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

SPSS 10.1.4 - enero 2002 SPSS 11.0.1 - abril 2002 SPSS 11.5.1 - abril 2003 SPSS 12.0.1 - julio 2004 SPSS 13.0.1 - marzo 2005 (Permite por primera vez trabajar con múltiples

bases de datos al mismo tiempo.) SPSS 14.0.1 - enero 2006 SPSS 15.0.1 - noviembre 2006 SPSS 16.0.1 - noviembre 2007 (En la lista de usuarios de SPSS "SPSSX

(r) Discussion [SPSSX-L@LISTSERV. UGA. EDU]" varios funcionarios de la empresa anunciaron previamente la salida de la versión 16 de este software. En ella se incorporó una interfaz basada en Java que permite realizar algunas mejoras en las facilidades de uso del sistema.)

SPSS 16.0.2 - abril 2008 SPSS Statistics 17.0.1 - diciembre 2008 (Incorpora aportes importantes

como el ser multilenguaje, pudiendo cambiar de idioma en las opciones siempre que queramos. También incluye modificaciones en el editor de sintaxis de forma tal que resalta las palabras claves y comandos, haciendo sugerencias mientras se escribe. En este sentido se aproxima a los sistemas IDE que se utilizan en programación.)

SPSS Statistics 17.0.2 - marzo 2009 PASW Statistics 17.0.3 - septiembre 2009 (IBM adquiere los derechos y

cambia su denominación de SPSS por PASW 18) PASW Statistics 18.0 - agosto 2009 PASW Statistics 18.0.1 - diciembre 2009 PASW Statistics 18.0.2 - abril 2010 PASW Statistics 18.0.3 - septiembre 2010 IBM SPSS Statistics 19.0 - agosto 2010 (Pasa a denominarse IBM SPSS) IBM SPSS Statistics 19.0.1 - diciembre 2010 IBM SPSS Statistics 20.0 - agosto 2011 IBM SPSS Statistics 20.0.1 - marzo 2012 IBM SPSS Statistics 21.0 - agosto 2012 IBM SPSS Statistics 22.0 - agosto 2013

Módulos del SPSS

.El sistema de módulos de SPSS, como los de otros programas (similar al de algunos lenguajes de programación) provee toda una serie de capacidades adicionales a las existentes en el sistema base. Algunos de los módulos disponibles son:

Modelos de Regresión Modelos Avanzados

o Reducción de datos: Permite crear variables sintéticas a partir de variables colineales por medio del Análisis Factorial.

o Clasificación: Permite realizar agrupaciones de observaciones o de variables (cluster analysis) mediante tres algoritmos distintos.

o Pruebas no paramétricas: Permite realizar distintas pruebas estadísticas especializadas en distribuciones no normales.

Tablas: Permite al usuario dar un formato especial a las salidas de los datos para su uso posterior. Existe una cierta tendencia dentro de los usuarios y de los desarrolladores del software por dejar de lado el sistema

Page 85: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

original de TABLES para hacer uso más extensivo de las llamadas CUSTOM TABLES.

Tendencias Categorías: Permite realizar análisis multivariados de variables

normalmente categorías. También se pueden usar variables métricas siempre que se realice el proceso de recodificación adecuado de las mismas.

Análisis Conjunto: Permite realizar el análisis de datos recogidos para este tipo específico de pruebas estadísticas.

Mapas: Permite la representación geográfica de la información contenida en un fichero (descontinuado para SPSS 16).

Pruebas Exactas: permite realizar pruebas estadísticas en muestras pequeñas.

Análisis de Valores Perdidos: Regresión simple basada en imputaciones sobre los valores ausentes.

Muestras Complejas: permite trabajar para la creación de muestras estratificadas, por conglomerados u otros tipos de muestras.

SamplePower (cálculo de tamaños muestrales) Árboles de Clasificación: Permite formular árboles de clasificación y/o

decisión con lo cual se puede identificar la conformación de grupos y predecir la conducta de sus miembros.

Validación de Datos: Permite al usuario realizar revisiones lógicas de la información contenida en un fichero ".sav" y obtener reportes de los valores considerados atípicos. Es similar al uso de sintaxis o scripts para realizar revisiones de los ficheros. De la misma forma que estos mecanismos es posterior a la digitalización de los datos.

SPSS Programmability Extension (SPSS 14 en adelante). Permite utilizar el lenguaje de programación Python para un mejor control de diversos procesos dentro del programa que hasta ahora eran realizados principalmente mediante scripts (con el lenguaje SAX Basic). Existe también la posibilidad de usar las tecnologías .NET de Microsoft para hacer uso de las librerías del SPSS. Aunque algunos usuarios han cuestionado sobre la necesidad de incluir otros lenguajes, la empresa no tiene esto entre sus objetivos inmediatos.

Desde el SPSS/PC hay una versión adjunta denomina SPSS Student que es un programa completo de la versión correspondiente pero limitada en su capacidad en cuanto al número de registros y variables que puede procesar. Esta versión es para fines de enseñanza del manejo del programa

Manejo

SPSS tiene un sistema de ficheros en el cual el principal son los archivos de datos (extensión. SAV). Aparte de este tipo existen otros dos tipos de uso frecuente:

Archivos de salida (output, extensión. SPO): en estos se despliega toda la información de manipulación de los datos que realizan los usuarios mediante las ventanas de comandos. Son susceptibles de ser exportados con varios formatos (originalmente HTML, RTF o TXT, actualmente la versión 15 incorpora la exportación a PDF junto a los formatos XLS y DOC que ya se encontraban en la versión 12)

Page 86: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Archivos de sintaxis (extensión. SPS): Casi todas las ventanas de SPSS cuentan con un botón que permite hacer el pegado del proceso que el usuario desea realizar. Lo anterior genera un archivo de sintaxis donde se van guardando todas las instrucciones que llevan a cabo los comandos del SPSS. Este archivo es susceptible de ser modificado por el usuario. Muchos de los primeros usuarios del SPSS suelen escribir estos archivos en vez de utilizar el sistema de pegado del programa.

Existe un tercer tipo de fichero: el fichero de scripts (extensión. SBS). Este fichero es utilizado por los usuarios más avanzados del software para generar rutinas que permiten automatizar procesos muy largos y/o complejos. Muchos de estos procesos suelen no ser parte de las salidas estándar de los comandos del SPSS, aunque parten de estas salidas. Buena parte de la funcionalidad de los archivos de scripts ha sido ahora asumida por la inserción del lenguaje de programación Python en las rutinas de sintaxis del SPSS. Procedimientos que antes solo se podían realizar mediante scripts ahora se pueden hacer desde la sintaxis misma.

El programa cuando se instala trae un determinado número de ejemplos o utilidades de casi todos los ficheros en cuestión. Estos son usados para ilustrar algunos de los ejemplos de uso del programa.

Aquí está una pequeña lista de cosas que se pueden hacer mediante este programa:

1. Introducción de datos:

Vamos a vista de datos y se introducen en DISTINTAS columnas (porque son distintas variables) de arriba abajo

2. Cálculos básicos:

-para hacer operaciones: ANALIZAR>>estadísticos descriptivos>>frecuencias (para tablas de frecuencias) ahí llevas la variable que te interese al otro lado y le das a estadísticos donde marcaremos todo lo que queramos saber (media, moda, mediana, cuartiles). Nos aparecerá una pantalla nueva con los resultados. Si necesitamos saber P2,5 o P97,5 habría que hacerlo aquí.

-ANALIZAR>>estadísticos descriptivos>>explorar: ahí introducimos la variable en el primer campo (lista de dependientes) y le damos a aceptar. Aquí nos da toda la información de antes pero ADEMÁS nos da el intervalo de confianza y estimación muestral así como el error típico de la media ENCIMA nos da las gráficas del diagrama tronco hojas y el de cajas.

-Para la ASIMETRIA y la KURTOSIS: En simetría: si es negativo está sesgada a la IZQUIERDA si es 0 es simétrica y si es positivo está sesgada a la DERECHA. En curtosis: si está rondando el 0 es mesocurtica, si es negativo platicúrtica y si es positiva leptocúrtica.

-ANALIZAR>>estadísticos descriptivos>>frecuencias>>gráficos esto es útil para ver la FORMA DE LA DISTRIBUCIÓN ya que podemos superponer la curva de la normal. Si la curva se parece al histograma podemos decir que es simétrica.

Page 87: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

-Si por ejemplo queremos hacer una nube de puntos o un diagrama de dispersión para ver dos variables cuantitativas,vamos a Gráficos>>cuadro de diálogos antiguos>>dispersión puntos>>dispersión simple>>definir>> OJO hay que saber cual es la dependiente y cual la independiente. En función de será la X (dependiente (Y) y independiente (X)[la edad por ejemplo sería independiente en la mayoría de los casos])

-Otra cosa que podemos sacar es el coeficiente de correlación lineal de Pearson ANALIZAR>>correlaciones>>bi variadas. Ahí nos aparecerá una tabla. En una diagonal siempre nos saldrá 1 (no hacer caso) en el otro te aparecerá otro valor, que será el importante.

-El coeficiente de regresión y el coeficiente de determinación: ANALIZAR>>regresión>>lineal. De todas las tablas que hay, hay que fijarse en la que pone RESUMEN DEL MODELO y fijarse en la R2 (coeficiente de determinación). Para sacar el coeficiente de regresión (b) hay que mirar en una tabla llama COEFICIENTES. Ahí vemos dos números debajo de la B. La primera se llama constante (también denominada a) y el segundo es el coeficiente B de regresión. En resumen hay que coger el SEGUNDO.

-Si queremos contrastar dos medias: ANALIZAR>> comparar medias>>prueba t para muestras independientes>>definir grupos.

-Para hacer una selección de datos de una variable: DATOS>>Seleccionar casos>>Si satisface la condición>>Pones la variable a la derecha=(lo que quieras comparar) Ahora ya vamos a ANALIZAR>>explorar.

-ANALIZAR>>Estadístico descriptivo>>tablas de contingencia>>casillas>>% en filas>> aceptar

-ANALIZAR>>Estadísticos descriptivos>>Tablas de contingencia>>Mostrar gráfico de barras agrupados Y estadísticos>>(el estadístico que se quiera)

-ANALIZAR>>Comparar medias>>Prueba T para 1 muestra>>(ponemos el valor en valor de prueba)>>Aceptar `[Miramos en Sig]

-Si queremos cambiar el nombre a las variables para que sea más cómodo, se puede en VISTA DE VARIABLES (pestaña derecha) y clickas en el nombre.

Fichero de datos de SPSS

Los ficheros de datos en formato SPSS tienen en Windows la extensión. SAV. Al abrir un fichero de datos con el SPSS, vemos la vista de datos, una tabla en la que las filas indican los casos y las columnas las variables. Cada celda corresponde al valor que una determinada variable adopta en un cierto caso.

Además de esta vista de datos, en las últimas versiones del programa existe una vista de variables en la que se describen las características de cada una. En esta vista las filas corresponden a cada variable y las columnas nos permiten acceder a sus características:

Nombre, limitado a 8 caracteres.

Page 88: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Tipo de variable (compárese este listado de opciones con los tipos de variables estadísticas existentes)

o Numérico, número en formato estándar) o Coma decimal, número con comas cada tres posiciones y con un

punto como delimitador de los decimales o Punto decimal, número con puntos cada tres posiciones y con una

coma como límite delimitador de los decimales. o Notación científica, número que se expresa con un formato tal que

se sigue de una E y un número que expresa la potencia de 10 a la que se multiplica la parte numérica previa

o Fecha o Moneda dólar, formato numérico con el que se expresan

cantidades en dólares o Moneda del usuario, formato numérico con el que se expresan

cantidades en la moneda definida en la pestaña de monedas del cuadro de diálogo "Opciones"

o Cadena de caracteres o variable alfanumérica Tamaño total Tamaño de la parte decimal Etiqueta de la variable Etiquetas para los valores Valores perdidos Espacio que ocupa en la vista de datos Alineación de la variable en la vista de datos Escala de medición.

Algunos usuarios pasan por alto las características de las variables cuando se trabaja en la base de datos. Sin embargo, cuando se utilizan scripts o Python las características de las variables pueden tomar gran relevancia en la construcción de procedimientos ad-hoc.

Fichero de sintaxis de SPSS

Se pueden generar estos archivos de sintaxis con la ayuda del programa mismo, pues en casi todas las ventanas donde se realizan tareas en el SPSS existe un botón "Pegar". Este botón cierra la ventana en cuestión y guarda la sintaxis de las acciones seleccionadas en dicha ventana. Una vez salvado este archivo es susceptible de modificación.

La sintaxis tal cual se presenta a continuación fue producida directamente con el SPSS. Este programa le da un formato legible a la sintaxis, formato que el software en algunos casos no requiere para su correcto uso.

Otra peculiaridad de las sintaxis del SPSS es que no son "case sensitive". Ante lo cual es común ver sintaxis escritas solo en mayúsculas, solo en minúsculas o bien una combinación propia de cada usuario. Esta situación se modifica para aquellas personas que hacen uso de Python dentro de sus sintaxis, pues éste es un lenguaje sensitivo a las variaciones entre mayúsculas y minúsculas. Esto obliga a estos usuarios a escribir sintaxis con mayor cuidado.

Page 89: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

El siguiente ejemplo ilustra como abrir un fichero de datos mediante sintaxis y como llevar a cabo una frecuencia y una tabla de contingencia con datos de uno de los archivos de ejemplo que instala el programa.

*Este es un comentario, debe ir precedido por un asterisco y finalizado por un punto. *Abre el archivo Tomato.sav. GET FILE='C:\Program Files\SPSS\Tomato.sav'. *Genera una tabla con las frecuencias de la variable fertilizante. FREQUENCIES VARIABLES=fert /ORDER= ANALYSIS. *Genera una tabla de contingencia con las variables altura inicial y fertilizante. CROSSTABS /TABLES=initial BY fert /FORMAT= AVALUE TABLES /CELLS= COUNT /COUNT ROUND CELL.

S-PLUS,

S-PLUS

de Wikipedia, la enciclopedia libre

S-PLUS

Desarrollador (s) TIBCO Software Inc.

Última versión estable 8,2 / noviembre de

2010; Hace 4 años

Sistema operativo De Windows, Unix /

Linux

Escribe paquete estadístico

Licencia propietario

S-PLUS es una implementación comercial de la lenguaje de programación S vendido por TIBCO Software Inc ..

Cuenta con capacidades de programación orientados a objetos y algoritmos de análisis avanzados.

Cronología histórica

Page 90: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

1988: S-PLUS es producido por primera vez por una empresa de nueva creación con sede en Seattle llamada Ciencias Estadísticas, Inc. El fundador y único propietario es R. Douglas Martin, profesor de estadística en la Universidad de Washington, Seattle.

1993: Ciencias Estadísticas adquiere la licencia exclusiva para distribuir S y se fusiona con MathSoft, convirtiéndose Data Products División de Análisis de la firma (DAPD).

1995: S-PLUS 3.3 para Windows 95 / NT. Biblioteca de Matrix, la historia de comandos, gráficos Trellis

1996: S-PLUS 3.4 para UNIX. Gráficos Trellis, biblioteca nlme, hurgar en la basura hexagonal, métodos de racimo.

1997: S-PLUS 4 para Windows. Nueva interfaz gráfica de usuario, la integración con Excel, gráficos editables.

1998:. S-PLUS 4.5 para Windows Diagrama de dispersión de cepillado, crear gráficos de S-PLUS desde dentro de Excel y SPSS.

1998: S-PLUS está disponible para Linux y Solaris.

1999: S-PLUS 5 para Solaris, Linux, HP-UX, IBM AIX, SGI Irix y DEC Alpha. S-PLUS 2000 para Windows. nlme 3.3, control de la calidad de gráficos, nuevos comandos para la manipulación de datos.

2000: S-PLUS 6 para Linux / UNIX. Basado en Java GUI, Graphlets, survival5, falta biblioteca de datos, robusta biblioteca.

2001: MathSoft vende su Ingeniería y Educación División de Productos (EEPD) con sede en Cambridge, cambia de nombre a perspicaz Corporation, y mueve la sede a Seattle. Este movimiento es básicamente un "Deshacer" de la fusión previa entre MathSoft y Ciencias Estadísticas, Inc.

2001: S-PLUS Analytic Server 2.0. S-PLUS 6 para Windows (integración de Excel, C ++ clases / bibliotecas para la conectividad, Graphlets, S versión 4, falta biblioteca de datos, robusta biblioteca).

2002: StatServer 6. Edición Estudiante de S-PLUS ahora libre.

2003: S-PLUS 6.2 Nueva presentación de informes, integración de bases de datos, mejora Graphlets, portado a AIX, las bibliotecas para datos correlacionados, métodos bayesianos, regresiones multivariantes.

2004: compras perspicaces del lenguaje S de Lucent Technologies por $ 2 millones.

2004: S + ArrayAnalyzer 2.0 liberado.

Page 91: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

2005: S-PLUS 7.0 liberado. Biblioteca bigdata para trabajar con conjuntos de datos más grandes que la memoria, S-PLUS Workbench (Eclipse herramienta de desarrollo). Perspicaz Miner 7.0 liberado.

2007: S-PLUS 8 en libertad. Nuevo sistema de paquetes, extensiones de lenguaje para R compatibilidad paquete, Workbench depurador.

2008: TIBCO adquiere perspicaz Corporación

MINITAB, ,...

Minitab es otro de los programas más usados en el mundo para análisis estadístico. Permite calcular la mayoría de metodologías estadísticas habituales, entre las que se cuentan: análisis exploratorio de datos, gráficos estadísticos, control de calidad, estadística no paramétrica, regresión y sus variantes, análisis multivariado de datos, etc.

Puede ver las características de la versión 15 y descargar una versión de demostración funcional durante 30 días.

Manual en pdf: Documento publicado por por la Universidad Oberta de Cataluña. Muestra de manera detallada el cálculo de medidas de tendencia central, dispersión, posición, asimetría, para diferentes conjuntos de datos. Las ecuaciones presentadas para el cálculo manual, son reforzadas mediante la resolución de los ejercicios en Minitab.

Statgraphics es un programa de estadística de fácil manejo y una buena herramienta para la enseñanza de la estadística en secundaria y para la investigación en educación.

En statgraphics.net se puede descargar una versión demo del programa (en español de duración limitada o en inglés con funciones limitadas)

Mini cursos de la Universidad de Granada en Power Point que explica detalladamente cómo utilizar el paquete estadístico Statgraphics:

Statistica es otro de los programas más usados a nivel mundial para el análisis estadístico. Entre todas las bondades y pruebas estadísticas que incluye, destaca la variedad de gráficos y la facilidad en el manejo de bases de datos.

Page 92: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

En statsoft.com se puede descargar la versión 7 de demostración del programa.

-Stat 2.5

PH-Stat es un complemento de Excel producido por la

Editorial Prentice Hall y acompaña a varios de sus libros de texto sobre

estadística.

Destaca la posibilidad de poder crear gráficos de control de calidad, diagramas

de tallos y hojas, cajas de dispersión, intervalos de confianza en estimación,

análisis de varianza, entre otros.

El software puede emplearse libremente cuando se adquieren textos de Prentice

Hall.

Puede descargar la versión 2.5 de PH-Stat para conocer su funcionamiento.

R

R (lenguaje de programación)

(Redirigido desde «R-project»)

R

Desarrollador

Ross Ihaka y Robert Gentleman

www.r-project.org

Información general

Diseñador R Development Core Team

Última versión

estable

3.2.2

14 de agosto de 2015; hace

49 días

Género Software matemático

Page 93: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Sistema operativo Multiplataforma

Licencia GPL

En español Sí

[editar datos en Wikidata]

R es un lenguaje y entorno de programación para análisis estadístico y gráfico.

Se trata de un proyecto de software libre, resultado de la implementación GNU del premiado lenguaje S. R y S-Plus -versión comercial de S- son, probablemente, los dos lenguajes más utilizados en investigación por la comunidad estadística, siendo además muy populares en el campo de la investigación biomédica, la bioinformática y las matemáticas financieras. A esto contribuye la posibilidad de cargar diferentes bibliotecas o paquetes con finalidades específicas de cálculo o gráfico.

R se distribuye bajo la licencia GNU GPL y está disponible para los sistemas operativos Windows, Macintosh, Unix y GNU/Linux.

Fue desarrollado inicialmente por Robert Gentleman y Ross Ihaka del Departamento de Estadística de la Universidad de Auckland en 1993.1 Sin embargo, si se remonta a sus bases iniciales, puede decirse que inició en los Bell Laboratories de AT&T y ahora Alcatel-Lucent en Nueva Jersey con el lenguaje S. Éste último, un sistema para el análisis de datos desarrollado por John Chambers, Rick Becker, y colaboradores diferentes desde finales de 1970. La historia desde este punto es prácticamente la del lenguaje S. Los diseñadores iniciales, Gentleman y Ihaka, combinaron las fortalezas de dos lenguajes existentes, S y Scheme. En sus propias palabras: "El lenguaje resultante es muy similar en apariencia a S, pero en el uso de fondo y la semántica es derivado desde Scheme". El resultado se llamó R "en parte al reconocimiento de la influencia de S y en parte para hacer gala de sus propios logros".2

Su desarrollo actual es responsabilidad del R Development Core Team. Para saber más al respecto y en el entorno del programa, puede teclearse contributors(); en la lista desplegada aparecen los nombres de los autores iniciales y los actuales pertenecientes al R Development Core Team (Equipo Central de Desarrolladores R).

A continuación se enumeran algunos hitos en el desarrollo de R:3

Versión 0.16: Es la última versión alfa desarrollada esencialmente por Ihaka y Gentleman, que incluye gran parte de las características descritas en el "White Book".

La lista de correo comenzó su andadura el 1 de abril de 1997.

Versión 0.49 (23 de abril de 1997): Es la versión más antigua de la que se conserva el código (que todavía compila en algunas plataformas UNIX). En

Page 94: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

esta fecha arrancó también CRAN con tres espejos que albergaban 12 paquetes. Poco después aparecieron las versiones alfa para Windows y Mac OS.

Versión 0.60 (5 de diciembre de 1997): R se integra oficialmente en el Proyecto GNU. El código se versiona a través de CVS.

R efectuando múltiples tareas en Windows, versión 3.2.2.

Versión 1.0.0 (29 de febrero de 2000): Los desarrolladores lo consideran suficientemente estable para su uso en producción.4

Versión 1.4.0: Se introducen los métodos S4 y aparece la primera versión para Mac OS X.

Versión 2.0.0 (4 de octubre de 2004): Introduce el lazy loading, que permite una carga rápida de datos con un coste de memoria mínimo.

Versión 2.1.0: Aparece el soporte para UTF-8 y comienzan los esfuerzos de internacionalización para distintos idiomas.

Versión 2.9.0: El paquete 'Matrix' se incluye en la distribución básica de R.

Versión 2.11.0 (22 de abril de 2010): Soporte para sistemas Windows de 64 bits.

Versión 2.13.0 (14 de abril de 2011): Añadida una nueva función al compilador que permite acelerar las funciones convirtiéndolas a byte-code.

Versión 2.14.0 (31 de octubre de 2011): Añadidos espacios de nombres obligatorios para los paquetes. Añadido un nuevo paquete de paralelización.

Versión 2.15.0 (30 de marzo de 2012): Nuevas funciones de balanceo de cargas. Mejorada la velocidad de serialización para grandes vectores.

Versión 3.0.0 (3 de abril de 2013): Mejoras en GUI, funciones gráficas, gestión de memoria, rendimiento e internacionalización.

Características[editar]

R proporciona un amplio abanico de herramientas estadísticas (modelos lineales y no lineales, tests estadísticos, análisis de series temporales, algoritmos de clasificación yagrupamiento, etc.) y gráficas.

Al igual que S, se trata de un lenguaje de programación, lo que permite que los usuarios lo extiendan definiendo sus propias funciones. De hecho, gran parte de las funciones de R están escritas en el mismo R, aunque para algoritmos

Page 95: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

computacionalmente exigentes es posible desarrollar bibliotecas en C, C++ o Fortran que se cargan dinámicamente. Los usuarios más avanzados pueden también manipular los objetos de R directamente desde código desarrollado en C. R también puede extenderse a través de paquetes desarrollados por su comunidad de usuarios.

R hereda de S su orientación a objetos. La tarea de extender R se ve facilitada por su permisiva política de lexical scoping.5

Además, R puede integrarse con distintas bases de datos y existen bibliotecas que facilitan su utilización desde lenguajes de programación interpretados como Perl y Python.

Otra de las características de R es su capacidad gráfica, que permite generar gráficos con alta calidad. R posee su propio formato para la documentación basado en LaTeX.

Regresión y su análisis somero en R versión 3.2.2 y en el sistema operativo

Windows

R también puede usarse como herramienta de cálculo numérico, campo en el que puede ser tan eficaz como otras herramientas específicas tales como GNU Octave y su equivalente comercial, MATLAB.6 Se ha desarrollado una interfaz, RWeka7 para interactuar con Weka que permite leer y escribir ficheros en el formato arff y enriquecer R con los algoritmos de minería de datos de dicha plataforma.

Extensiones y paquetes[editar]

R forma parte de un proyecto colaborativo y abierto. Sus usuarios pueden publicar paquetes que extienden su configuración básica. Existe un repositorio oficial de paquetes cuyo número superó en otoño de 2009 la cifra de los 2000.

Dado el enorme número de nuevos paquetes, éstos se han organizado en vistas (o temas), que permiten agruparlos según su naturaleza y función. Por ejemplo, hay grupos de paquetes relacionados con estadística bayesiana, econometría, series temporales, etc.

Para facilitar el desarrollo de nuevos paquetes, se ha puesto a servicio de la comunidad una forja de desarrollo que facilita las tareas relativas a dicho proceso.

Ejemplos mínimos

Page 96: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Algunos ejemplos mínimos para ver la forma en que se puede introducir el código.

Ejemplo 1

Instalación y activación de paquetes Para cargar los paquetes que se requieren se debe de seleccionar el espejo (*mirror*), descargar la paquetería y luego activarla. Para seleccionar el espejo:

chooseCRANmirror(graphics = FALSE, useHTTPS = getOption("useHTTPS",

FALSE))

HTTP CRAN mirror

1: 0-Cloud 2: Algeria 3: Argentina (La Plata) 4:

Australia (Canberra)

5: Australia (Melbourne) 6: Austria 7: Belgium (Antwerp)

8: Belgium (Ghent)

9: Brazil (BA) 10: Brazil (PR) 11: Brazil (RJ) 12:

Brazil (SP 1)

13: Brazil (SP 2) 14: Canada (BC) 15: Canada (NS)

16: Canada (ON)

17: Chile 18: China (Beijing 2) 19: China (Beijing 3)

20: China (Beijing 4)

21: China (Hefei) 22: China (Xiamen) 23: Colombia (Cali)

24: Czech Republic

25: Denmark 26: Ecuador 27: El Salvador 28:

Estonia

29: France (Lyon 1) 30: France (Lyon 2) 31: France (Montpellier)

32: France (Paris 1)

33: France (Paris 2) 34: Germany (Berlin) 35: Germany

(Göttingen) 36: Germany (Münster)

37: Greece 38: Hungary 39: Iceland 40:

India

41: Indonesia (Jakarta) 42: Iran 43: Ireland 44:

Italy (Milano)

45: Italy (Padua) [https] 46: Italy (Padua) 47: Italy (Palermo)

48: Japan (Tokyo)

49: Japan (Yamagata) 50: Korea (Seoul 1) 51: Korea (Seoul 2)

52: Korea (Ulsan)

53: Lebanon 54: Mexico (Mexico City) 55: Mexico (Texcoco)

56: Netherlands (Amsterdam)

57: Netherlands (Utrecht) 58: New Zealand 59: Norway

60: Philippines

61: Poland 62: Portugal 63: Russia (Moscow)

64: Slovakia

65: South Africa (Cape Town) 66: South Africa (Johannesburg) 67: Spain (A

Coruña) 68: Spain (Madrid)

Page 97: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

69: Sweden 70: Switzerland 71: Taiwan (Chungli)

72: Taiwan (Taipei)

73: Thailand 74: Turkey (Denizli) 75: Turkey (Mersin)

76: UK (Bristol)

77: UK (Cambridge) 78: UK (London 1) 79: UK (London 2)

80: UK (St Andrews)

81: USA (CA 1) 82: USA (CA 2) 83: USA (CO)

84: USA (IA)

85: USA (IN) 86: USA (KS) 87: USA (MD) 88:

USA (MI 1)

89: USA (MI 2) 90: USA (MO) 91: USA (NC) 92:

USA (OH 1)

93: USA (OH 2) 94: USA (OR) 95: USA (PA 1)

96: USA (PA 2)

97: USA (TN) 98: USA (TX) 99: USA (WA) 100:

Venezuela

101: Vietnam

Selection:

Al omitir la comillas y sólo escribir chooseCRANmirror() se desplegará una ventana para elegirlo manualmente con el ratón. Lo mismo ocurrirá si se omite graphics = FALSE o se escribe graphics = TRUE.

Cuando se instalan paquetes para análisis especializados, específicos o que simplemente no tiene predeterminadamente instalados pero no activados el sistema, se instala. Así pues, en este caso, los paquetes, al ser un entorno con dependencias funcionan mejor con tales paquetes auxiliares. Las dependencias pueden ser por ejemplo otros paquetes o bases de datos para que funcione o bien, o mejor o de hecho lo haga. Algunos paquetes funcionan con dependencias muy específicas, otros con dependencias muy generales; como sea, a veces la misma instalación, al ser común la dependencia, lo hace de forma automática, pero no en todas las ocasiones. Por esto para instalar el paquete de interés se escribirá:

install.packages("deldir", dep=T) # Para la triangulación de Delaunay y teselación

de Dirichlet junto con todas las dependencias

Para activar la librería pueden ser:

library("deldir") # Para el elejmplo anterior.

library('Benchmarking') # Para el [[Análisis de Datos Envolvente]]

require(maps) # Para elaborar mapas. Previa instalación.

require('plot3D') # Para elaborar mapas 3D. Previa instalación.

Page 98: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Todos tanto con comillas dobles (" ") como con comillas simples (' ') o libres. Si se instalaron las arriba mencionadas dependencias, aparecerán indicaciones luego del comando que describe las dependencias que también se activaron al llamar la librería que se usará.

Ejemplo 2

Elaboración de mapas Esto se encuentra libremente en:

example(map)

Para elaborar un mapa de Estados Unidos que sea sobre la tasa de desempleo de 2009 por condados (municipios) y que estos estén marcados por densidad de color se usará lo que a continuación se presenta. Basado en la solución J del "Choropleth Challenge". La referencia completa se encuentra acá. Se puede obtener este ejemplo (en inglés y con los colores originales) en

example(map)

Para el ejemplo en español:

require(maps) # activación de librería

require(mapproj) # se usará para projection="polyconic"

# Cargar los datos

# unemp incluye datos para condados de los Estados Unidos continentales. Se

excluyen Alaska, Hawaii, Puerto Rico, y pequeñas ciudades de Virginia

data(unemp) # Datos de desempleo

data(county.fips) # mapa de los condados

# Se define la paleta de colores. Escala de grises en este caso. En el original,

rosas y magenta.

colors = c("#F1EEF6", "#D3D3D3", "#B9B9B9", "#787878", "#2E2E2E",

"#111111") # Colores

unemp$colorBuckets <- as.numeric(cut(unemp$unemp, c(0, 2, 4, 6, 8, 10, 100)))

# Rangos de desempleo

leg.txt <- c("<2%", "2-4%", "4-6%", "6-8%", "8-10%", ">10%") # Etiquetas de los

rangos

# Se alinean los datos con definiciones de mapa (parciales) de emparejamientos

de estados,

# nombre de condados, que incluyen varios polígonos para algunos

condados

cnty.fips <- county.fips$fips[match(map("county", plot=FALSE)$names,

county.fips$polyname)]

colorsmatched <- unemp$colorBuckets [match(cnty.fips, unemp$fips)]

# Se dibuja el mapa. Luego se guarda en JPEG.

Page 99: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

jpeg("desempleo Estados Unidos 2009.jpg", width = 1024, height=750) # Crea

imagen de 1024 x 750 pixeles.

map("county", col = colors[colorsmatched], fill = TRUE, resolution = 0, lty = 0,

projection = "polyconic") # Mapa general del desempleo en grises

map("state", col = "white", fill = FALSE, add = TRUE, lty = 1, lwd = 0.2,

projection="polyconic") # Mapa de los estados sobre puesto

title(main="Desempleo por condado, año 2009", cex.main = 3,

sub="Creado con información de la solución de J del 'Choropleth Challenge'

más info en http://blog.revolutionanalytics.com/2009/11/choropleth-

challenge-result.html")

# Se creó el título del mapa

legend("top", leg.txt, horiz = T, fill = colors, bg="#F1F1F1", cex=1.5) # Indicación

de los colores por su rango

map.axes() # Para colocar ejes con la latitud y longitud

dev.off()

# Para ver los límites del condado débiles, vaya a RGui : File/SaveAs/PDF

Lo anterior da como resultado el mapa de la imagen inferior.

Page 100: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Ejemplo

El siguiente ejemplo es tomado del libro de Kleiber y Zeileis intitulado Applied Econometrics with R. El ejemplo que abajo se expondrá no es tomado al pie de la letra, se le agregaron algunos cambios por el tipo de licencia; no obstante, el fin es el mismo. Se agregan muchas cosas para hacer más didáctico el código y permitir exponer la flexibilidad del paquete estadístico R.

library(AER) # Para el compendio de datos del libro de Kleiber & Zeileis

(2008)

library(scales) # Para las transparencias de los elementos de color.

library(quantreg) # Para usar las regresiones por cuantiles

data("CPS1985", package = "AER") # Carga los datos del paquete AER

cps <- CPS1985 # Renombra la variable como cps

cps_lm <- lm(log(wage) ~ experience + I(experience^2) + education, data = cps)

# Hace la regresión simple

cps_rq <- rq(log(wage) ~ experience + I(experience^2) + education, data = cps,

tau = seq(0.2, 0.8, by = 0.15)) # Regresión por cuantiles

cps2 <- data.frame(education = mean(cps$education), experience =

min(cps$experience):max(cps$experience)) # Crea un "data frame" con los

datos pertinentes

cps2 <- cbind(cps2, predict(cps_lm, newdata = cps2, interval = "prediction")) #

Se agragan los valores requeridos al "data frame" anterior

cps2 <- cbind(cps2, predict(cps_rq, newdata = cps2, type = "")) # Se

agregan los valores "tau" a cps2. Los valores de los cuantiles

jpeg("salarios.jpeg", width = 924 , height=924) # Crea una imagen en el directorio

actual con 924x924 px de cada lado

# Se hace la gráfica con:

plot(log(wage) ~ experience, data = cps, # Crea el mapeo principal de datos en

el gráfico

pch=20, col="#234DEA", cex=2, # Se crean los puntos azules rellenos

axes=F, # se eliminan los ejes

ylab= "", xlab= "") # Se eliminan los nombres de los ejes

box(lty=2, col="#424242", lwd=2) # Agregada una caja gris punteada

# Sigue agregar el eje de las abscisas (de las x) y el de las ordenadas

axis(1, col="#610B21", lwd=3, col.axis="#610B21", cex=2)

axis(2, col="#610B21", lwd=3, col.axis="#610B21", las=2)

# Se agregan las leyendas a los ejes

mtext("Experiencia", side=1, cex=1.7, col="#610B21", line=2)

mtext("Logaritmo del salario", side=2, cex=1.7, col="#610B21", line=2)

for(i in 6:10) lines(cps2[,i] ~ experience, data = cps2, # hace el mapeo de

las líneas predeterminadas

col=alpha("#FFFF00", .75), lwd=5) #líneas amarillas gruesas

con un 75% de transperencia

title("Estimación de los salarios en forma semi-logarítmica", cex.main=2.7,

col.main="#2E2E2E",

Page 101: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

sub="Con base en el libro de Kleiber & Zeileis (2008) y con datos de Brendt

(1991)", col.sub="#FF0000", font.sub=4, cex.sub=1.3)

# Se crearon el título y subtítulo con los colores y tipo de texto

correspondientes

dev.off() # Se cierra el archivo de imégen, JPEG en este

caso

Acá abajo aparece la imagen que se generó con el código de arriba. Además, cualquier error que en la imagen venga no es culpa de los autores del libro citado. Los propietarios de los derechos de autor son totalmente los autores del libro.

Bioconductor, un conjunto de paquetes para el análisis de datos en genómica.

Rmetrics, orientado al análisis de los mercados financieros y la valoración de instrumentos de inversión.

Herramientas de productividad[editar]

Existen diversas interfaces que facilitan el trabajo con R.

Interfaces gráficas[editar]

JGR o Java GUI for R, una terminal de R multiplataforma basada en Java

R Commander (Rcmdr), una interfaz gráfica multiplataforma basada en tcltk

RExcel, que permite usar R y Rcmdr desde Microsoft Excel

rggobi, una interfaz a GGobi para visualización

RKWard, basado en KDE

Sage

Statistical Lab

nexusBPM, una herramienta de automatización

RStudio

Cantor8

Editores e IDEs[editar]

Entre los editores de texto e IDEs con soporte para R se cuentan:

Bluefish,9 Crimson Editor, ConTEXT, Eclipse,10 Emacs (Emacs Speaks Statistics), Geany, jEdit,11 Kate,12 RStudio,13 RKWard,14 Syn, TextMate, Tinn-R, Vim, gedit, SciTE, WinEdt(R Package RWinEdt) y notepad++.15

Sweave es un procesador de documentos que puede ejecutar código de R incrustado en código de LaTeX y para insertar código, resultados y gráficos en el documento escrito en LaTeX. LyX puede usarse para crear y compilar documentos desarrollados en Sweave. El paquete odfWeave es similar, generando documentos en el formatoOpenDocument (ODF); extensiones en estado experimental también permiten generar documentos del tipo presentación u hoja de cálculo.

Lenguajes de script[editar]

La funcionalidad de R puede ser invocada desde código desarrollado en otros lenguajes de script tales como Python (mediante RPy16 ), Perl (mediante

Page 102: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Statistics::R17 ), Ruby18 yF#.19 También pueden desarrollarse scripts en R directamente usando littler20 o Rscript, que forma parte de la distribución básica de R desde la versión 2.5.0.

SAS

Paquete estadístico

Un paquete estadístico es un programa informático que está especialmente

diseñado para resolver problemas en el área de la estadística, o bien está

programado

4 KB (529 palabras) - 15:05 13 abr 2015

World Programming System (categoría Paquetes de

software estadístico)

Desarrollado por la compañía World Programming. WPS permite a sus usuarios

crear, editar y ejecutar programas escritos en el lenguaje SAS

3 KB (196 palabras) - 16:54 19 sep 2014

SPSS (categoría Paquetes de software estadístico)

SPSS es un programa estadístico informático muy usado en las ciencias

sociales y las empresas de investigación de mercado. Originalmente SPSS fue

creado

20 KB (2912 palabras) - 21:56 7 sep 2015

Psiquiatría

978-84-458-1659-2. Programa oficial de la especialidad de Psiquiatría. BOE

núm. 224, martes 16 de septiembre de 2008; pág 37916.

Orden SAS/1620/2009, de 2

12 KB (1419 palabras) - 19:23 19 sep 2015

Statistica (categoría Paquetes de software estadístico)

Actualmente compite con otros paquetes estadísticos tanto propietarios

(SPSS, SAS, Matlab o Stata) como libres (R). El programa consta de varios

módulos. El principal

9 KB (972 palabras) - 22:49 14 abr 2014

Page 103: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

R (lenguaje de programación) (categoría Paquetes de

software estadístico)

R es un lenguaje y entorno de programación para análisis estadístico y gráfico.

Se trata de un proyecto de software libre, resultado de la implementación

28 KB (3184 palabras) - 09:23 2 oct 2015

Econometría (categoría Estadística)

finalidad más bien estadística. Otor ejemplo al respecto, Stata es

un programaestadístico, pero permite poderosos análisis en econometría.

Gretl está enfocado

28 KB (3448 palabras) - 06:38 27 jul 2015

Submarinos Clase Daphné

sudafricana: S97 SAS Maria Van Riebeeck; renombrado SAS Spear - botado

en 1970 - baja en 2003 S98 SAS Emily Hobhouse; renombrado SAS Umkhonto

- botado

9 KB (843 palabras) - 04:41 16 may 2015

Cuantil (categoría Estadística descriptiva)

nueve ejemplos de abordaje. El software SAS incluye cinco variantes; SciPy,

ocho; Stata, cuatro. Los programas de propósito general como una planilla de

7 KB (889 palabras) - 13:05 21 may 2015

Prueba t de Student (categoría Estadística paramétrica)

En estadística, una prueba t de Student, prueba t-Student, o Test-T es

cualquier prueba en la que el estadístico utilizado tiene una distribución t de

31 KB (3709 palabras) - 13:21 21 sep 2015

Bmi

por los diseños de Airbus y Embraer para iniciar el programa de renovación de

su flota. En 1999, SAS, accionista de British Midland desde 1987, vendió parte

27 KB (3337 palabras) - 10:26 2 oct 2015

Page 104: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Buenos Aires

Costanera: Presentación. Anuario Estadístico 2006. Capítulo 13: Servicios

públicos. Cuadro 13.10. Anuario Estadístico 2006. Capítulo 13: Servicios

públicos

218 KB (22 113 palabras) - 19:27 6 oct 2015

Análisis conjunto

respuestas se codifican y se introducen en un programa para

análisis estadísticocomo R, SPSS, Barbwin o SAS. El ordenador utiliza el

análisis de varianza

4 KB (490 palabras) - 19:44 8 ene 2015

Genocidio guatemalteco

Comisión para el Esclarecimiento Histórico, fue quien realizó el

trabajo estadísticosobre el número reportado de muertes, e indicó que el

mismo es únicamente

91 KB (8540 palabras) - 00:43 6 oct 2015

Sax

pronunciación corriente en la actualidad es /saks/ (localmente /sæːʰ/ o

/sas/),[cita requerida] aunque tradicionalmente fue /sax/, de lo que da fe el

34 KB (3300 palabras) - 04:16 12 sep 2015

Granada

datos de los que dispone el Instituto Nacional de Estadística, recogidos en su

anuarioestadístico. Temperatura Su temperatura media es de 15,7 °C lo

233 KB (26 017 palabras) - 22:46 6 oct 2015

Aeropuerto de Barcelona-El Prat (sección Tráfico y estadísticas)

interferencias en las normales operaciones del aeropuerto. Dentro

del programa de modernización de las instalaciones antiguas, en el primer

trimestre

47 KB (3665 palabras) - 18:00 2 oct 2015

Page 105: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Clase Horizon

de la cancelación del proyecto de fragata OTAN NFR-90. El resultado

del programaCNGF consistió en la fragata Horizon y en el sistema de misiles

antiaéreos

5 KB (323 palabras) - 01:05 7 may 2014

Anthony James Barr (sección Statistical Analysis System (SAS))

diseñador software e inventor. Entre sus notables contribuciones está

el SAS(Statistical Analysis System), la automatización y optimización de la

producción

6 KB (820 palabras) - 22:51 28 ene 2015

Minería de datos (sección De la estadística)

New Your. p. 18. ISBN 978-1-59904-252-7. Plantilla:Cite Journal. Programa de

Minería de Datos, University of Central Florida Proyecto Medical Miner

SPAD

Si consideras que este artículo debería existir y dispones de fuentes

fiables, puedes crearlo teniendo en cuenta nuestros pilares y, si

quieres, usando nuestro asistente.

Stata

Stata es un paquete de software estadístico creado en 1985 por StataCorp. Es utilizado principalmente por instituciones académicas y empresariales dedicadas a la investigación, especialmente en economía, sociología, ciencias políticas, biomedicinay epidemiología.

Stata permite, entre otras funcionalidades, la gestión de datos, el análisis estadístico, el trazado de gráficos y las simulaciones.

El tipo de archivos que utiliza son

dta archivos de datos

do archivos de comandos

ado programas

hlp archivos de ayuda

gph gráficos

dct archivos diccionarios

smcl archivos log

Page 106: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

El nombre Stata es una "palabra baúl" que combina las palabras statistics (estadística) y data (datos); no es un acrónimo y por lo tanto no debe ser escrito en mayúsculas (es decir, no es "STATA" si no "Stata").

Matlab

MATLAB

MATLAB

MATLAB (abreviatura de MATrix LABoratory, "laboratorio de matrices") es una herramienta de software matemático que ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programación propio (lenguaje M). Está disponible para las plataformas Unix, Windows, Mac OS X y GNU/Linux .

Entre sus prestaciones básicas se hallan: la manipulación de matrices, la representación de datos y funciones, la implementación de algoritmos, la creación de interfaces de usuario (GUI) y la comunicación con programas en otros lenguajes y con otros dispositivos hardware. El paquete MATLAB dispone de dos herramientas adicionales que expanden sus prestaciones, a saber, Simulink (plataforma de simulación multidominio) y GUIDE (editor de interfaces de usuario - GUI). Además, se pueden ampliar las capacidades de MATLAB con las cajas de herramientas (toolboxes); y las de Simulink con los paquetes de bloques (blocksets).

Es un software muy usado en universidades y centros de investigación y desarrollo. En los últimos años ha aumentado el número de prestaciones, como la de programar directamente procesadores digitales de señal o crear código VHDL. Las aplicaciones de MATLAB se desarrollan en un lenguaje de programación propio. Este lenguaje es interpretado, y puede ejecutarse tanto en el entorno interactvo, como a través de un archivo de script (archivos *.m). Este lenguaje permite operaciones de vectores y matrices, funciones, cálculo lambda, y programación orientada a objetos.

Gráficos e interfaces gráficas

MATLAB provee funciones para visualizar datos en 2D y 3D.

Page 107: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

Simulink

Simulink es un módulo que permite la simulación de sistemas dinámicos a través de una interfaz basada en bloques.

Toolboxes

Las funcionalidades de Matlab se agrupan en más de 35 toolboxes y paquetes de bloques (para Simulink), clasificadas en las siguientes categorías:2

MATLAB

Parallel Computing

Math, Statistics, and Optimization

Control Systems

Signal Processing and Communications

Image Processing and Computer Vision

Test and Measurement

Computational Finance

Computational Biology

Code Generation and Verification

Application Deployment

Database Connectivity and Reporting

MATLAB Report Generator

Simulink

Event-Based Modeling

Physical Modeling

Control Systems

Signal Processing and Communications

Code Generation

Real-Time Simulation and Testing

Verification, Validation, and Test

Simulation Graphics and Reporting

Limitaciones y alternativas

Durante mucho tiempo hubo críticas porque MATLAB es un producto propietario de The Mathworks, y los usuarios están sujetos y bloqueados al vendedor. Recientemente se ha proporcionado una herramienta adicional llamada MATLAB Builder bajo la sección de herramientas "Application Deployment" para utilizar funciones MATLAB como archivos de biblioteca que pueden ser usados con ambientes de construcción de aplicación .NET o Java. Pero la desventaja es que el computador donde la aplicación tiene que ser utilizada necesita MCR(MATLAB Component Runtime) para que los archivos MATLAB funcionen correctamente. MCR se puede distribuir libremente con los archivos de biblioteca generados por el compilador MATLAB.

Interfaz con otros lenguajes de programación

MATLAB puede llamar funciones y subrutinas escritas en C o Fortran. Se crea una función envoltorio que permite que sean pasados y devueltos tipos de datos de MATLAB. Los archivos objeto dinámicamente cargables creados compilando

Page 108: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

esas funciones se denominan "MEX-files", aunque la extensión de nombre de archivo depende del sistema operativo y del procesador.

Historial de versiones[editar]

Véase también: Anexo:Versiones de MATLAB

La versión actual de MATLAB es la R2015b, publicada el 3 de septiembre de 2015.

Requisitos del sistema

Los requisitos del sistema para la versión R2015b son los siguientes:3

Sistema operativo:

Windows: Windows 7 SP1 en adelante, Windows Server 2008 SP2 en adelante.

Mac: OS X 10.9.5 - 10.10

Linux: Kernel 2.6 o superior, glibc 2.11 o superior.

Procesador: Intel o AMD x86 con soporte de instrucciones SSE2.

Disco: 1 GB solo para MATLAB, 3-4 GB para una instalación típica.

RAM: 2 GB mínimo, 4 GB recomendado.

Tarjeta gráfica: Soporte para OpenGL 3.3 recomendado.

BIBLIOGRAFÍA

https://es.wikipedia.org/wiki/Apache_OpenOffice_Calc

https://www.google.com/search?q=versiones+e+calc&ie=utf-8&oe=utf-

8#q=versiones+de+calc

https://www.google.com/search?q=versiones+e+calc&ie=utf-8&oe=utf-8

http://programa.nii.com/es/app/consumer/calc_cient%C3%ADfica

https://www.google.com/search?q=desarrolladores+de+calc&ie=utf-8&oe=utf-8

http://www.ite.educacion.es/formacion/materiales/131/cd/modulo_3/actividades.

html

http://www.ite.educacion.es/formacion/materiales/131/cd/modulo_3/crear_grfico

s_en_calc.html

http://www.ite.educacion.es/formacion/materiales/131/cd/modulo_3/operaciones

_y_funciones_bsicas_en_calc.html

https://www.google.com/search?q=funciones+de+calc&ie=utf-8&oe=utf-8

https://sites.google.com/site/misitiowebestudiodelaunidad2y3/unidad-2/historia-

del-libreoffice-calc

https://www.google.com/search?q=historia+de+calc&ie=utf-8&oe=utf-8

Page 109: Estadistica

Melina Márquez | UNIVERSIDAD DE GUAYAQUIL

http://www.todoexcel.com/nuevas-funciones-excel/

https://www.google.com/search?q=cosas+adicionales+de+excel&ie=utf-

8&oe=utf-8

https://es.wikipedia.org/wiki/MATLAB#Historia

https://es.wikipedia.org/wiki/SPSS#Historia

https://translate.google.com/translate?hl=es&sl=en&tl=es&u=STATGRAPHICS

%20historia

https://translate.google.com/translate?hl=es&sl=en&tl=es&u=minitab%20%20hi

storia