Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos...

125

Transcript of Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos...

Page 1: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo
Page 2: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Contenido

LENGUAJE DE PROGRAMACION C ...................................................... 11

PROCESO DE INSTALACIÓN .............................................................................................. 11

PROCESO DE INCIALIZACION DEL LENGUAJE ................................................................... 15

ORIGENES DE LENGUAJE C ......................................................................... 18

TIPOS DE DATOS ............................................................................................................... 18

VARIABLES ........................................................................................................................ 19

Normas ............................................................................................................................. 19

Declaración ....................................................................................................................... 19

CONSTANTES .................................................................................................................... 19

OPERADORES .................................................................................................................... 19

Operadores Especiales ..................................................................................................... 21

Precedencia y Jerarquía de Operadores ........................................................................... 21

Librerías ............................................................................................................................ 21

Estructura de un Programa .............................................................................................. 22

Entrada y Salida de Consola ............................................................................................. 23

Sentencia printf ................................................................................................................ 23

Sentencia Scanf() .............................................................................................................. 24

Funciones Getche y Getch ................................................................................................ 25

Sentencias Goto, Continue y Exit ..................................................................................... 25

Sentencia IF....................................................................................................................... 26

Sentencia For .................................................................................................................... 26

Sentencia Switch ............................................................................................................... 27

Estructura Iterativa Condicional While............................................................................. 29

Instrucción Do – While ..................................................................................................... 30

Funciones y Subrutinas ..................................................................................................... 30

Proyecto de aplicación ..................................................................................................... 32

JAVASCRIPT ............................................................................................ 38

Instalacion del lenguaje .................................................................................................... 38

Page 3: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Ejecucion de los programas JavaScript ............................................................................. 39

Conceptos de Algoritmo, Programa y Lenguaje de Programación. ................................. 40

¿Qué es JavaScript? ................................................................................... 40

Variables. .......................................................................................................................... 41

Entrada de datos por teclado. .......................................................................................... 43

Estructuras secuenciales de programación. ..................................................................... 43

Estructuras condicionales simples. ................................................................................... 44

Estructuras condicionales compuestas. ........................................................................... 46

Estructuras condicionales anidadas. ................................................................................ 47

Operadores lógicos && (y) en las estructuras condicionales. .......................................... 49

Operadores lógicos || (o) en las estructuras condicionales. ........................................... 50

Estructuras switch. ........................................................................................................... 51

Estructura repetitiva (while) ............................................................................................. 53

Concepto de acumulador. ................................................................................................ 55

Estructura repetitiva (do/while) ....................................................................................... 56

Estructura repetitiva (for) ................................................................................................. 57

EJERCICIOS PROPUESTOS ................................................................................................. 59

TALLERES ................................................................................................... 61

Funciones .................................................................................................. 67

Funciones con parámetros. .............................................................................................. 69

Funciones que retornan un valor. .................................................................................... 70

Programación orientada a objetos. .................................................................................. 73

Clase Date ......................................................................................................................... 74

Clase Array ........................................................................................................................ 76

Clase Math ........................................................................................................................ 79

Clase String. ...................................................................................................................... 81

Formularios y Eventos. ..................................................................................................... 83

Controles FORM, BUTTON y TEXT. ................................................................................... 84

Control PASSWORD .......................................................................................................... 85

Page 4: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Control SELECT .................................................................................................................. 86

Control CHECKBOX ........................................................................................................... 88

Control RADIO ................................................................................................................... 89

Control TEXTAREA ............................................................................................................ 90

EJERCICIOS PROPUESTOS ................................................................................................. 91

TALLERES ........................................................................................................................... 93

Eventos onFocus y onBlur ................................................................................................ 97

Eventos onMouseOver y onMouseOut ............................................................................ 98

Evento onLoad ................................................................................................................ 100

El objeto window. ........................................................................................................... 101

Propiedad location del objeto window .......................................................................... 104

Propiedad history del objeto window ............................................................................ 106

Propiedad screen del objeto window ............................................................................. 108

Propiedad navigator del objeto window ........................................................................ 109

Archivo JavaScript externo (*.js) .................................................................................... 110

Programación orientada a objetos en JavaScript. .......................................................... 111

Definición de varias clases. ............................................................................................. 114

Vectores con componentes de tipo objeto. ................................................................... 116

EJERCICIOS PROPUESTOS ............................................................................................... 117

TALLERES ................................................................................................. 119

BIBLIOGRAFIA ...................................................................................... 121

GLOSARIO ................................................................................................................. 122

Page 5: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

LENGUAJE

C

Page 6: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

MÓDULO DE FORMACIÓN Nº 4

PROGRAMACIÓN II

–DESARROLLO DE APLICACIONES-

DURACIÓN MÁXIMA

150 HORAS

Acompañamiento directo 60 HORAS

Trabajo independiente 15 HORAS

TOTALIDAD DEL MODULO Prácticas 75 HORAS

Créditos Académicos 3

MÓDULO DE FORMACIÓN Nº 4

PROGRAMACIÓN II

–DESARROLLO DE APLICACIONES-

DURACIÓN MÁXIMA

86 HORAS

Acompañamiento directo 34 HORAS

Trabajo independiente 9 HORAS

TOTALIDAD DEL MODULO Prácticas 43 HORAS

1. COMPETENCIAS A DESARROLLAR

COMPETENCIA ESPECÍFICA Competencia: (220501007)

Desarrollar el sistema de información que cumpla con los requerimientos de la solución informática.

Elemento de competencia 01: Construir el software para el sistema de información de acuerdo con la metodología de desarrollo seleccionada.

Elemento de competencia 02: Probar el software desarrollado de acuerdo con las especificaciones establecidas en el diseño.

2. RESULTADOS (LOGROS) DE APRENDIZAJE

1. Conoce las estructuras básicas del lenguaje de programación. 2. Codifica ejercicios básicos lineales (E/S) de manera lógica y ordenada 3. Aplica correctamente las funciones básicas de entrada y salida y sus respectivos

formatos en la codificación de ejercicios. 4. Conoce y aplica las funciones matemáticas y de manejo de cadenas. 5. Soluciona y codifica ejercicios prácticos, aplicando estructuras condicionales. 6. Soluciona y codifica ejercicios prácticos, aplicando ciclos repetitivos. 7. Genera programas modulares utilizando de manera eficiente y práctica la

potencialidad de las funciones en el lenguaje. 8. Diseña tipos de datos Abstractos y los aplica a la solución del problema

utilizando la Sentencia Struct.

Page 7: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

9. Diseña y desarrolla soluciones informáticas con almacenamiento de datos en disco.

3. CONTENIDOS

3.1 DE CONCEPTOS Y PRINCIPIOS (SABER)

Tipos de lenguajes.

Introducción al lenguaje

Estructura del Lenguaje.

- Identificadores

- Constantes.

- Operadores.

- Separadores

- Comentarios.

Elementos del Lenguaje

Tipos de Datos

Caracteres (Tipo char)

Números enteros (Tipo int)

Números reales (Tipo float)

Números reales (Tipo double)

Duración y visibilidad de las variables

- Modos de almacenamiento

- Variables locales (auto)

- Variables globales.

- Variables externas ( Externa)

- Variables estáticas ( static)

Constantes

- Constantes enteras

- Constantes de punto flotante.

- Constantes tipo carácter (char)

- Constantes tipo cadena (String)

Estructura Básica del programa

Instrucciones básicas de entrada y salida de Datos.

Funciones básicas de entrada y salida de Datos.

Función print (), scan (),

Gotoxy (x,y)

Arreglos unidimensionales.

Funciones matemáticas y de cadena.

Caracteres de conversión para cada función.

Arreglos unidimensionales.

Transferencia de control condicional.

Conceptos básicos de ciclos repetitivos.

Ciclos While, Do While, For.

Page 8: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Vectores y matrices.

Estructuras ( Struct )

Conceptos básicos de Funciones.

Ciclos repetitivos.

Transferencias de control condicional.

Manejo de Archivos

Elementos básicos del sistema de archivos.

El puntero a un archivo.

Apertura de un archivo

Cierre de un archivo.

Determinación del fin de archivo.

3.2 DE PROCESOS (SABER HACER)

Identificar los tipos de variables y tipos de datos.

Crear programas básicos utilizando variables, y funciones básicas de entrada y salida

Distinguir las diferencias entre los lenguajes de programación, sus ventajas y desventajas.

Crear programas utilizando los diferentes formatos de las funciones de entrada y salida.

Crear programas utilizando arreglos unidimensionales.

Capturar datos adecuadamente por pantalla y en los diferentes formatos.

Realizar operaciones matemáticas y muestra por pantalla sus resultados con formatos adecuados.

Manejar cadenas de texto.

Diseñar programas simples aplicando su estructura básica y utilizando instrucciones básicas de entrada y salida de datos.

Crear programas utilizando estructuras condicionales sencillas y múltiples

Crear programas utilizando la sentencia switch

Crear programas utilizando la sentencia switch/case

Crear programas utilizando la sentencia While

Crear programas utilizando la sentencia for

Crear programas utilizando la sentencia do While

Crear programas utilizando vectores y matrices

Utilizar los ciclos repetitivos e identificar cuál de ellos es el adecuado según el caso a resolver.

Comprender el Concepto de transferencia de control condicional.

Identificar y manejar cada una de las estructuras condicionales existentes.

Determinar en que casos se manejan estructuras de datos.

Optimizar estructuras de datos aplicándolos a ejercicios simples.

Definir y establecer el momento adecuado para utilizar funciones en una

Page 9: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

solución informática.

Crea programas declarando y realizando llamados a las funciones de manera adecuada.

Conocer como se maneja un archivo en

Determinar cuando es necesario la utilización de los archivos para almacenar información en disco.

Utilizar adecuadamente herramientas de control para el manejo de archivos.

3.3 ACTITUDINAL ( SER)

Receptivo con el conocimiento adquirido.

Eficiente en las labores a realizar.

Respetuoso con las normas técnicas impuestas.

Organizado y ordenado con la información que se esta analizando y procesando.

Responsable con el manejo de la información suministrada

Receptivo con el conocimiento adquirido.

Eficiente en las labores a realizar.

Respetuoso con las normas técnicas impuestas.

Organizado y ordenado con la información que se esta analizando y procesando.

Oportuno y veraz en la entrega de la información.

Confidente en el manejo y administración de la información.

Ordenado durante la realización y presentación de los trabajos.

Responsable y cuidadoso con los equipos a su cargo.

Respetuoso con las normas técnicas impuestas.

Organizado y ordenado con la información que se esta analizando y procesando.

Oportuno y veraz en la entrega de la información.

Confidente en el manejo y administración de la información.

Organizado y eficiente en clasificar la información que se utilizara en la solución a los casos planteados.

Respeta las normas establecidas para el desarrollo de los procesos.

Lógico, critico y objetivo para generar aplicaciones de programas

Respeta las normas de seguridad establecidas dentro de la Institución.

4. CRITERIOS DE EVALUACION

Utiliza los documentos generados dentro de la Organización.

Los programas básicos diseñados son eficientes y concretos.

Identifica las palabras del lenguaje, comprende el concepto de identificadores, operadores, separadores y comentarios.

Page 10: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Distingue y diferencia diferentes tipos de datos.

Reconoce diferentes tipos de variables y constantes.

Captura datos adecuadamente por pantalla utilizando diferentes formatos.

Emplea el manejo de cadenas de texto y utiliza las herramientas adecuadas.

Utiliza correctamente los tipos de datos y variables

Crea programas básicos con instrucciones de entrada y salida

Genera presentaciones por de formatos por pantalla

Utiliza operaciones matemáticas y muestra por pantalla los resultados empleando formatos.

Usa adecuadamente estructuras condiciones simples y múltiples.

Identifica y utiliza las sentencias switch y switch/case

Los programas generados son eficientes y dan solución adecuada a los casos propuestos.

Identifica adecuadamente los ciclos repetitivos

Analiza de acuerdo al problema planteado el ciclo repetitivo a usar

Utiliza los ciclos while, for, do while

Reconoce la diferencia entre vectores y matrices

Utiliza adecuadamente en los programas vectores o matrices

Conoce el uso y alcance de las funciones en programación.

Utiliza funciones en los programas

Genera programas modulares y soluciona de manera eficiente casos empresariales.

Conoce y comprende el concepto de archivo.

Utiliza cada una de las funciones de lectura / escritura de archivo y establece las diferencias.

Page 11: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

LOGRO DE COMPETENCIA

1. Desarrollar el sistema de información que cumpla con los requerimientos de la

solución informática.

LOGROS DE APRENDIZAJE.

1. Conoce las estructuras básicas del lenguaje de programación.

2. Codifica ejercicios básicos lineales (E/S) de manera lógica y ordenada

3. Aplica correctamente las funciones básicas de entrada y salida y sus respectivos

formatos en la codificación de ejercicios.

4. Conoce y aplica las funciones matemáticas y de manejo de cadenas.

5. Soluciona y codifica ejercicios prácticos, aplicando estructuras condicionales.

6. Soluciona y codifica ejercicios prácticos, aplicando ciclos repetitivos.

7. Genera programas modulares utilizando de manera eficiente y práctica la

potencialidad de las funciones en el lenguaje.

8. Diseña tipos de datos Abstractos y los aplica a la solución del problema utilizando

la Sentencia Struct.

9. Diseña y desarrolla soluciones informáticas con almacenamiento de datos en

disco.

LENGUAJE DE PROGRAMACION C

PROCESO DE INSTALACIÓN

Insertar el CD o dispositivo de almacenamiento que contiene el lenguaje de

aplicación, copie la carpeta de instalador al disco duro C:

Ir abriendo las carpetas en el siguiente orden

Page 12: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Tc Instalador buscar el archivo Install que es el ejecutable o archivo que

permite instalar el lenguaje de programación.

Pulse doble clic sobre este archivo y aparecerá la siguiente pantalla pulse Enter

para continuar

Aparecerá la siguiente pantalla, donde debe especificar la unidad donde se va a

instalar el lenguaje por defecto aparece la unidad A:\ cámbiela por la unidad C:\

que es el disco duro

Page 13: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Aparece la siguiente pantalla donde se visualiza la ruta de donde se sacaran los

archivos a instalar que se encuentran en la carpeta TcInstalador, pulse Enter para

continuar así:

Aparece la siguiente pantalla donde se visualiza la ruta en la que se instalaran o

copiaran los archivos necesarios para el funcionamiento del lenguaje de

programación, desplace el cursor hasta la opción Star Installation para que se inicie

la instalación del lenguaje

Se empieza a instalar todos los archivos necesarios para el funcionamiento del

lenguaje, espere a que aparezca el mensaje de bienvenida al sistema

Page 14: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Aparece el archivo de ayuda del lenguaje de programación

Cierre esta ventana y esta listo para comenzar a utilizar el lenguaje de programación

Page 15: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

PROCESO DE INCIALIZACION DEL LENGUAJE

Una vez instalado el lenguaje se debe buscar en el disco duro (C:\) la carpeta TC

que es la carpeta que se acabo de crear al instalar el lenguaje de programación

Pulse doble clic sobre la carpeta TC doble clic sobre la carpeta bin

busque el ejecutable TC

Aparece el siguiente pantallazo de inicialización del lenguaje de programación

donde se visualizan las distintas opciones de trabajo agrupadas según su función

en menús desplegables

Page 16: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Para crear un nuevo programa en Lenguaje C, pulse las teclas Alt + F y reubique el

cursor hasta New

Digite el programa y guárdelo ingresando nuevamente al menú File y reubique el

cursor hasta la opción Save As, ingrese el nombre del archivo (que debe ser de 8

caracteres máximo) y seleccione la ubicación del archivo, pulse Enter al finalizar

Page 17: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Una vez guardado el programa se procede a compilar o corregir errores, para ello

ubique el cursor en el Menú Compiler y escoja la opción Compile, también puede

realizar este procedimiento pulsando las teclas Alt+F9

En caso de que el compilador encuentre errores emite un mensaje indicando la

cantidad de Errores (instrucciones mal digitadas, falta de terminación en las

instrucciones, variables no declaradas, etc.) y de Warning (procesos lógicos que no

se deben efectuar, variables que no tienen valores almacenados, variables

declaradas y nunca usadas, etc.) que existen.

Page 18: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Para corregir los errores pulse Enter, el compilador visualiza en color verde el error

con su correspondiente línea para que el usuario pueda desplazarse a ella y

corregir el error

Una vez corregidos los errores y que al compilar Alt+F9 no aparezca ningún error

se puede ejecutar el programa para ello pulse Ctrl + F9 para ver que operaciones

realiza el programa digitado

ORIGENES DE LENGUAJE C El origen de C se basa en un antiguo lenguaje llamado BCPL que luego evoluciono a B y

luego a C, cuyo creador fue Brian Kernighan y Richie en 1972. El lenguaje C++ se empezó a

desarrollar en 1980 por B. Stroustrup regido por la norma o estándar ANSI C

Es un lenguaje potente y general, lo que lo ha llevado a ocupar el primer puesto

como herramienta de desarrollo de aplicaciones. Su evolución ha continuado

con la aparición de java, el cual simplifica algunas funciones de c

TIPOS DE DATOS

TIPO SIGNIFICADO RANGO

Char Carácter 0 – 255

Int Entero -32768 a 32768

Flota Flotante Números Reales

Double Doble -1.7 e -308 a 1.7 e 308

Void Vació Sin valor

Long Entero largo -2147483648 -

2147483647

Page 19: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Short Entero corto -32768 a 32768

VARIABLES Espacio en memoria donde se almacena un dato que se modifica durante la ejecución del

programa

Normas Debe comenzar por una letra

Máximo 32 caracteres

Diferencia entre mayúsculas y minúsculas

Puede ser una combinación entre letras y números

No puede contener símbolos especiales (+ - * / \ () %)

Declaración Tipo de dato nom_variable;

int a,b;

char c;

Cuando se requiere capturar varios caracteres se debe declarar como un arreglo

char nombre [16]; donde 16 es el espacio de caracteres que captura

CONSTANTES Espacio en memoria que almacena un dato que no se modifica durante la ejecución del

programa. Existen constantes de tipo carácter, cadenas y simbólicas.

Carácter. Se escriben entre comillas sencillas ‘a’

Cadenas. Se escriben entre comillas dobles “Curso de c”

Simbólicas. #define PI 3.1416

‘ \b ’ Retroceso

‘ \a ‘ Alarma

‘ \t ‘ Tabulador horizontal

‘ \f ‘ Alimentación de pagina

‘ \n ‘ Nueva Línea

OPERADORES

Page 20: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Es un símbolo que tiene una función predefinida y que recibe sus argumentos de manera

infija. Existe gran variedad de operadores así:

1. Aritméticos. Nos permiten hacer cualquier operación aritmética que

necesitemos

+ suma * multiplicación % mod. (residuo)

- resta / división ++ incremento

- - decremento

El incremento y decremento añade o resta una unidad a su operador

X = 4

Y = x ++ y = 5

Z = x -- z = 3

Preincremento y predecremento añade o resta una unidad antes de utilizar el valor

del operador

X = 2004

Y = ++ x X y Y = 2005

2. Relaciónales. Estos operadores nos permiten evaluar condiciones entre un par

de operandos

Mayor que < Menor que

= Mayor o igual que <= Menor o igual que

= = Igual ! = Diferente o distinto

3. Operadores Lógicos. Son aquellos operadores que permiten conectar un par

de propiedades

&& Conjunción (Y)

| | Disyunción (O)

! Negación

Page 21: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Operadores Especiales

Operador de Asignación (=)

Variable = valor

X= X+2

X+=2

Operador Ternario (?) Condicional

Sirve para escribir expresiones condicionales

Exp1 ? Exp2 : Exp3

Exp 1 Se evalúa primero, si es diferente de cero (Verdadero) entonces se evalúa la exp. 2

devolviéndose como resultado de la expresión la condicional. Si Exp 1 es igual a Cero (0)

es decir falsa, se evalúa la Exp3 y se devuelve como resultado la expresión condicional

Precedencia y Jerarquía de Operadores

( ) [ ] ! ++ * &

* / %

+ -

< <= > >=

= = ! =

&&

||

Librerías Son archivos que se conocen como encabezados o cabeceras (header), en ellos se

encuentra el prototipo o extensión de los archivos

Conio.h Unidades de manejo de pantalla

Page 22: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

String.h Trabajo con cadenas

Ctype.h Conversión de caracteres

Stdio.h Trabajo con funciones de lectura y entrada de datos

Estructura de un Programa Se componen de una o más rutinas que necesariamente no deben estar en un mismo

archivo. Esta compuesto por:

1. Una cabecera de función. La misión es identificar la función, así como declarar

el tipo de dato que devuelve

2. Declaración de argumentos. Informa de los parámetros que recibe la función

en caso de recibir alguno

3. Sentencia Compuesta. Contiene el código de la función

Las sentencias simples se delimitan por el carácter (;) mientras que las sentencias

compuestas delimitan las sentencias que contienen entre llaves

( { } )

Los comentarios son pequeñas anotaciones de texto que clarifican alguna parte del código

( /* */)

#include <stdio.h> Librerías

#include <conio.h>

main( ) Función principal o inicio de programa

{

int a; Declaración de variables

printf(“Digite un numero”); Operaciones de

scanf(“%d”,&a); asignación

printf(“el numero digitado es %d”,a);

}

Page 23: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

LOGRO DE COMPETENCIA

1. Desarrollar el sistema de información que cumpla con los requerimientos de la

solución informática.

LOGROS DE APRENDIZAJE.

1. Conoce las estructuras básicas del lenguaje de programación.

2. Codifica ejercicios básicos lineales (E/S) de manera lógica y ordenada

3. Aplica correctamente las funciones básicas de entrada y salida y sus respectivos

formatos en la codificación de ejercicios.

4. Conoce y aplica las funciones matemáticas y de manejo de cadenas.

5. Soluciona y codifica ejercicios prácticos, aplicando estructuras condicionales.

6. Soluciona y codifica ejercicios prácticos, aplicando ciclos repetitivos.

7. Genera programas modulares utilizando de manera eficiente y práctica la

potencialidad de las funciones en el lenguaje.

8. Diseña tipos de datos Abstractos y los aplica a la solución del problema utilizando

la Sentencia Struct.

9. Diseña y desarrolla soluciones informáticas con almacenamiento de datos en

disco.

Entrada y Salida de Consola Sentencia printf Escribe datos en diversos formatos, por lo tanto se denomina salida formateada

Estructura

printf (“Cadena de control”, lista de argumentos)

Cadena de control. Comienza con un signo % y luego el código del

Formato

% c Visualiza carácter

% d % i Visualiza decimal

% e Notación científica

% f Flotante

% s Cadena de Caracteres

% u Decimal sin signo

% p Puntero

Page 24: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

% % Imprime el signo %

Ejemplo

Printf (“Datos %c %d %s \n “ , ‘a’ , 100 , “caracteres”);

Datos a 100 caracteres

main()

{ int a,b; a=10; b=10; printf(“Suma de a+b = %d\n”, a+b); }

Suma de a+b = 20

También se puede especificar el ancho del campo, bien sea completando la salida con

blancos o ceros para asegurar que es al menos la longitud mínima

printf (“%05d”,48) 00048

printf(%5d”,48) 48

Si se desea especificar posiciones decimales, para un valor en punto flotante, se pone un

punto decimal seguido por el numero de decimales

printf(“%10.2f”,123.1283) 123.12

Cuando se usa el punto en una cadena el valor que sigue al punto indica el máximo ancho

de la cadena

printf (“%5.7s”, “José Pérez”)

Mínimo 5 caracteres y un máximo de 7, si la cadena es mas larga se trunca

Sentencia Scanf() Permite entrar datos en la memoria del computador a través del teclado.

Estructura

scanf(“Cadena de control”, &lista de argumentos);

Page 25: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

En la cadena de control indicaremos, por regla general, los modificadores que harán

referencia al tipo de dato de los argumentos. Al igual que en la sentencia printf los

modificadores estarán formados por el carácter % seguido de un carácter de conversión.

Los argumentos indicados serán, nuevamente, las variables.

La principal característica de la sentencia scanf es que necesita saber la posición de la

memoria del computador en que se encuentra la variable para poder almacenar la

información obtenida. Para indicarle esta posición se utiliza el símbolo ampersand ( & ),

que se colocara delante del nombre de cada variable.

Funciones Getche y Getch Sirven para que el usuario introduzca un carácter por teclado. No continua hasta que no

se digite un carácter.

Getche() Visualiza por pantalla el carácter pulsado

Getch() No visualiza el carácter pulsado

Ejemplo

#include <stdio.h> main ( ) { char letra[2]; printf(“Digite un caracter”); letra = getche(); printf (“La letra digitada es %s”,letra); getch (); }

Sentencias Goto, Continue y Exit Sentencia Goto(ir a)

Nos permite hacer un alto a la parte del programa que deseemos. La etiqueta no se

ejecuta es como un marcador dentro del programa

Sentencia Continue ()

Similar al break pero termina con la realización de una iteración particular y permite

continuar con la siguiente

Page 26: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Funcion Exit()

Cancela la ejecución del programa inmediatamente

Sentencia IF if (Expresión) { } if (Expresión) if(Expresión) S1 Else S2 Else S3

Ejemplo

Programa que elige el menor de tres números

float a,b,c,menor; if(a<b) { if(a<c) menor=a; else menor=c; }

Sentencia For La forma general de esta sentencia es:

for(expresion1;expresion2;expresion3)

Sentencias;

Expresión 1. Condición de inicialización o contador, generalmente se hace para inicializar

el parámetro que controla la repetición del bucle.

Expresión 2. Es la condición que se debe cumplir para que se ejecuten las sentencias, se

ejecuta mientras sea cierta

Page 27: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Expresión 3. Se utiliza para modificar el valor del parámetro

Si no se coloca una expresión de condición, el lenguaje asume el valor de 1 y el bucle se

ejecutara en forma indefinida.

Ejemplo

Programa que imprime los números de dos (2) en dos (2) en forma descendente

#include<conio.h> #include<stdio.h> #include<math.h> main() { int i; clrscr(); textcolor(LIGHTCYAN); gotoxy(3,3); cprintf("NUMEROS DE 2 EN 2 HASTA 10: \n");

for(i=10;i>=2;i-=2) { cprintf("%d\n",i); Ciclo o bucle que comienza en 10 y getch(); va descontando de 2 en 2 hasta llegar } al numero 2 }

Sentencia Switch La forma general de esta sentencia es:

switch(Expresión) { case exp1: sentencia 1; sentencia 2; break; case exp2: sentencia 1; sentencia 2; break; case expN: sentencia N; break; }

Page 28: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Expresión. Evalúa un valor entero o char

Exp1..N. Representa expresiones constantes de valores enteros o caracteres

Break. Se utiliza para terminar la ejecución de bucles o salir de una sentencia switch. Es

necesaria en esta última para transferir el control fuera de la misma. En caso de bucles

anidados, el control se transfiere fuera de la sentencia mas interna en la que se encuentre

pero no en la externa

Ejemplo

Un programa que imprime una vocal dada así:

Letra = ’e’ Switch(Letra) { case ‘a’,’A’ : printf(“Es la vocal a \n”); break; case ‘e’,’E’ : printf(“Es la vocal e \n”); break; case ‘i’, ‘I’ : printf(“Es la vocal I \n”); break; }

Page 29: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

LOGRO DE COMPETENCIA

1. Desarrollar el sistema de información que cumpla con los requerimientos de la solución

informática.

LOGROS DE APRENDIZAJE.

1. Conoce las estructuras básicas del lenguaje de programación.

2. Codifica ejercicios básicos lineales (E/S) de manera lógica y ordenada

3. Aplica correctamente las funciones básicas de entrada y salida y sus respectivos formatos

en la codificación de ejercicios.

4. Conoce y aplica las funciones matemáticas y de manejo de cadenas.

5. Soluciona y codifica ejercicios prácticos, aplicando estructuras condicionales.

6. Soluciona y codifica ejercicios prácticos, aplicando ciclos repetitivos.

7. Genera programas modulares utilizando de manera eficiente y práctica la potencialidad de

las funciones en el lenguaje.

8. Diseña tipos de datos Abstractos y los aplica a la solución del problema utilizando la

Sentencia Struct.

9. Diseña y desarrolla soluciones informáticas con almacenamiento de datos en disco.

Estructura Iterativa Condicional While La forma general de esta estructura es:

While (expresión)

Sentencias;

En esta estructura cada vez que se ejecute esta instrucción se pregunta si la condición es

verdadera, si es así se ejecutan las instrucciones del bloque y se vuelve a chequear la

condición. En el caso que la condición sea falsa no se ejecutaran las instrucciones y sé

continua con la instrucción siguiente

Lo normal es que la sentencia incluya algún elemento que altere el valor de la expresión

proporcionando así la condición de salida del bucle.

Si la sentencia es compuesta se encierra entre llaves {}

Ejemplo

Programa que calcule la suma de los números del 1 al 100

Int suma, limite; suma = 1; limite = 100; while(limite>0) {

Page 30: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

suma = suma +limite; limite--; }

Instrucción Do – While La estructura general de esta sentencia es:

Do sentencias; while (Expresión);

Se ejecutan las sentencias mientras el valor de la expresión sea verdadero y se ejecutara al

menos una vez. Si la sentencia es compuesta se encierra entre llaves { }

Ejemplo Programa que pide un número igual a cero

Int numero=0; Do { printf(“Digite el numero cero \n”); scanf(“%d”,&numero”); } while(numero !=0)

Funciones y Subrutinas Las funciones permiten agrupar una serie de operaciones de tal manera que se puedan

utilizar mas tarde sin tener que preocuparse por como implementarlas, simplemente

funcionaran. El uso de las funciones es una práctica común y recomendable ya que

permite modularizar el código, simplificando el desarrollo y depuración del mismo.

Las funciones se deben declarar igual que las variables indicando los argumentos de

entrada y su tipo y el tipo de valor que devolverá.

Declaración

Tipo_devuelto nom_funcion (argumentos);

Definición

Tipo devuelto nom_funcion(argumentos)

{

Page 31: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

sentencias;

}

Ejemplo

Programa que compara dos números y determina cual es el mayor utilizando funciones

Compara(int a, int b) { if(a>b) pritnf(“%i es mayor que %i \n”, a , b); else printf(“%i es mayor que %i \n”, b , a); } main() { int num1,num2; printf(“introduzca 2 numeros”); scanf(“%d %d”,&num1,num2); compara (num1,num2); return 0; }

Page 32: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

LOGRO DE COMPETENCIA

1. Desarrollar el sistema de información que cumpla con los requerimientos de la solución

informática.

LOGROS DE APRENDIZAJE.

1. Conoce las estructuras básicas del lenguaje de programación.

2. Codifica ejercicios básicos lineales (E/S) de manera lógica y ordenada

3. Aplica correctamente las funciones básicas de entrada y salida y sus respectivos formatos

en la codificación de ejercicios.

4. Conoce y aplica las funciones matemáticas y de manejo de cadenas.

5. Soluciona y codifica ejercicios prácticos, aplicando estructuras condicionales.

6. Soluciona y codifica ejercicios prácticos, aplicando ciclos repetitivos.

7. Genera programas modulares utilizando de manera eficiente y práctica la potencialidad de

las funciones en el lenguaje.

8. Diseña tipos de datos Abstractos y los aplica a la solución del problema utilizando la

Sentencia Struct.

9. Diseña y desarrolla soluciones informáticas con almacenamiento de datos en disco.

Proyecto de aplicación El estudiante debe aplicar todos los conocimientos adquiridos durante el desarrollo del

mismo. Para ello deberá desarrollar los siguientes ejercicios y encadenarlos a través de un

menú principal llamando a las funciones respectivas:

1. Elaborar una factura que permita registrar 3 productos, realizando descuentos por

la forma de pago y calculando el iva y total a pagar

2. Realizar un programa de conversiones, donde se solicita un numero y se devuelve

en centímetros, metros y pulgadas dependiendo de la unidad seleccionada

3. Realizar un programa que calcule recursivamente el factorial de un numero dado

Realizar un programa que permita al usuario seleccionar entre calcular el cuadrado de un

numero dado, calcular el resido de un numero dado, determinar si un numero es par o

impar, devolver la tabla del numero dado.

Page 33: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

JAVASCRIPT

Page 34: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

MÓDULO DE FORMACIÓN Nº 4

PROGRAMACIÓN II

–DESARROLLO DE APLICACIONES- MANUAL DE JAVASCRIPT

DURACIÓN MÁXIMA

20 HORAS

Acompañamiento directo 8 HORAS

Trabajo independiente 2 HORAS

TOTALIDAD DEL MODULO Prácticas 10 HORAS

Créditos Académicos 3

1. COMPETENCIAS A DESARROLLAR

COMPETENCIA ESPECÍFICA Competencia: (220501007)

Desarrollar el sistema de información que cumpla con los requerimientos de la solución informática.

Elemento de competencia 01: Construir el software para el sistema de información de acuerdo con la metodología de desarrollo seleccionada.

Elemento de competencia 02: Probar el software desarrollado de acuerdo con las especificaciones establecidas en el diseño.

2. RESULTADOS (LOGROS) DE APRENDIZAJE

1. Conoce las estructuras básicas del lenguaje de programación. 2. Codifica ejercicios básicos lineales (E/S) de manera lógica y ordenada 3. Aplica correctamente las funciones básicas de entrada y salida y sus respectivos

formatos en la codificación de ejercicios. 4. Conoce y aplica las funciones matemáticas y de manejo de cadenas. 5. Soluciona y codifica ejercicios prácticos, aplicando estructuras condicionales. 6. Soluciona y codifica ejercicios prácticos, aplicando ciclos repetitivos.

3. CONTENIDOS

3.1 DE CONCEPTOS Y PRINCIPIOS (SABER)

Conceptos de Algoritmo, Programa y Lenguaje de Programación.

Qué es JavaScript?

Variables.

Entrada de datos por teclado.

Estructuras secuenciales de programación.

Estructuras condicionales simples.

Estructuras condicionales compuestas.

Estructuras condicionales anidadas.

Operadores lógicos && (y) en las estructuras condicionales.

Page 35: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Operadores lógicos || (o) en las estructuras condicionales.

Estructuras switch.

Estructura repetitiva (while)

Concepto de acumulador.

Estructura repetitiva (do/while)

Estructura repetitiva (for)

3.2 DE PROCESOS (SABER HACER)

Identificar los tipos de variables y tipos de datos.

Crear programas básicos utilizando variables, y funciones básicas de entrada y salida

Distinguir las diferencias entre los lenguajes de programación, sus ventajas y desventajas.

Crear programas utilizando los diferentes formatos de las funciones de entrada y salida.

Crear programas utilizando arreglos unidimensionales.

Capturar datos adecuadamente por pantalla y en los diferentes formatos.

Realizar operaciones matemáticas y muestra por pantalla sus resultados con formatos adecuados.

Manejar cadenas de texto.

Diseñar programas simples aplicando su estructura básica y utilizando instrucciones básicas de entrada y salida de datos.

Crear programas utilizando estructuras condicionales sencillas y múltiples

Crear programas utilizando la sentencia switch

Crear programas utilizando la sentencia switch/case

Crear programas utilizando la sentencia While

Crear programas utilizando la sentencia for

Crear programas utilizando la sentencia do While

Crear programas utilizando vectores y matrices

Utilizar los ciclos repetitivos e identificar cuál de ellos es el adecuado según el caso a resolver.

Comprender el Concepto de transferencia de control condicional.

3.3 ACTITUDINAL ( SER)

Receptivo con el conocimiento adquirido.

Eficiente en las labores a realizar.

Respetuoso con las normas técnicas impuestas.

Organizado y ordenado con la información que se esta analizando y procesando.

Responsable con el manejo de la información suministrada

Oportuno y veraz en la entrega de la información.

Confidente en el manejo y administración de la información.

Page 36: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Ordenado durante la realización y presentación de los trabajos.

Responsable y cuidadoso con los equipos a su cargo.

Organizado y eficiente en clasificar la información que se utilizara en la solución a los casos planteados.

Respeta las normas establecidas para el desarrollo de los procesos.

Lógico, critico y objetivo para generar aplicaciones de programas

Respeta las normas de seguridad establecidas dentro de la Institución.

4. CRITERIOS DE EVALUACION

Utiliza los documentos generados dentro de la Organización.

Los programas básicos diseñados son eficientes y concretos.

Identifica las palabras del lenguaje, comprende el concepto de identificadores, operadores, separadores y comentarios.

Distingue y diferencia diferentes tipos de datos.

Reconoce diferentes tipos de variables y constantes.

Captura datos adecuadamente por pantalla utilizando diferentes formatos.

Emplea el manejo de cadenas de texto y utiliza las herramientas adecuadas.

Utiliza correctamente los tipos de datos y variables

Crea programas básicos con instrucciones de entrada y salida

Genera presentaciones de formatos por pantalla

Utiliza operaciones matemáticas y muestra por pantalla los resultados empleando formatos.

Usa adecuadamente estructuras condiciones simples y múltiples.

Identifica y utiliza las sentencias switch y switch/case

Los programas generados son eficientes y dan solución adecuada a los casos propuestos.

Identifica adecuadamente los ciclos repetitivos

Analiza de acuerdo al problema planteado el ciclo repetitivo a usar

Utiliza los ciclos while, for, do while

5. TÉCNICAS E INSTRUMENTOS DE EVALUACIÓN

Algunas de las formas sugeridas de obtención de las evidencias son: TÉCNICAS: Observación continua por parte del formador durante el proceso de formación y formulación de preguntas y aportes por parte del estudiante. INSTRUMENTOS: Evaluaciones de Diagnostico, Entrevista, Cuestionarios en formato de Test, Talleres prácticos del tema.

6. ESTRATEGIAS METODOLÓGICAS

Page 37: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

El formador: Socialización de los conceptos expuestos. Utilizando ejemplos prácticos involucra al estudiante en los conceptos para desarrollar programas. Desarrolla dinámicas lúdicas para la comprensión de los temas. El estudiante: Desarrolla guía de trabajo. Desarrolla ejercicios propuestos por el docente. Desarrolla evaluación propuesta. Comparte experiencias prácticas con los demás compañeros.

7. MEDIOS DIDÁCTICOS Y RECURSOS EDUCATIVOS

Laboratorios de sistemas, computadores, software, modulo guía, presentación en power point referente al tema especifico, Internet, talleres, tablero, marcadores. Video sobre metodologías de programación. Artículos de Revistas especializadas en análisis y desarrollo de sistemas de información.

8. ESCENARIOS DE APRENDIZAJE

Aula taller de clases, sala de audiovisuales, laboratorios de sistemas, entorno laboral y social.

9. PRERREQUISITO

Poseer las competencias específicas del módulo Programación I

Page 38: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

JAVASCRIPT LOGROS DE APRENDIZAJE

1. Conoce las estructuras básicas del lenguaje de programación.

2. Codifica ejercicios básicos lineales (E/S) de manera lógica y ordenada

3. Aplica correctamente las funciones básicas de entrada y salida y sus respectivos

formatos en la codificación de ejercicios.

4. Conoce y aplica las funciones matemáticas y de manejo de cadenas.

5. Soluciona y codifica ejercicios prácticos, aplicando estructuras condicionales.

6. Soluciona y codifica ejercicios prácticos, aplicando ciclos repetitivos.

7. Genera programas modulares utilizando de manera eficiente y práctica la

potencialidad de las funciones en el lenguaje.

8. Diseña y desarrolla soluciones informáticas con programación orientada a objeto.

LOGROS DE COMPRETENCIAS

1. Desarrollar el sistema de información que cumpla con los requerimientos de la

solución informática

Instalacion del lenguaje JavaScript es un lenguaje de programación interpretado, es decir, que no requiere

compilación, utilizado principalmente en páginas web, con una sintaxis semejante a la del

lenguaje Java y el lenguaje C.

No requiere de ningún tipo de software para crear scripts o programas, tan solo se debe

contar con un programa navegador (como Internet Explorer) y un editor de texto como el

Bloc de notas, el EditPad Lite, etc.

Todos los navegadores modernos interpretan el código JavaScript integrado dentro de las

páginas web.

Ingreso, manejo y almacenamiento de programas(scripts)

Abra el editor de texto (Bloc de notas, EditPad Lite, etc.) y en el escribimos el código de

programa para el famoso "Hola Mundo", es decir un programa que muestre en el

documento HTML el mensaje "Hola Mundo".

<html>

Page 39: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

<head> </head> <body> <script language="javascript"> document.write('Hola Mundo'); </script> </body> </html>

El programa en JavaScript debe ir encerrado entre la marca script e inicializada la

propiedad languaje con la cadena javascript:

<script language="javascript"> </script>

Para imprimir caracteres sobre la página debemos llamar al comando 'write' del objeto

document. La información a imprimirse debe ir entre comillas y encerrada entre

paréntesis. Todo lo que indicamos entre comillas aparecerá tal cual dentro de la página

HTML.Es decir, si pedimos al navegador que ejecute esta página mostrará el texto 'Hola

Mundo'.Cada vez que escribimos una instrucción finalizamos con el caracter punto y

coma. ES IMPORTANTISIMO TENER EN CUENTA QUE JavaScript es SENSIBLE A

MAYUSCULAS Y MINUSCULAS. NO ES LO MISMO ESCRIBIR:document.write que

DOCUMENT.WRITE (la primera forma es la correcta, la segunda forma provoca un error de

sintaxis).Nos acostumbraremos a prestar atención cada vez que escribamos en minúsculas

o mayúsculas para no cometer errores sintácticos. Ya veremos que los nombres de

funciones llevan letras en mayúsculas.

Ejecucion de los programas JavaScript Ejecución directa

Es el método de ejecutar scripts más básico. En este caso se incluyen las instrucciones

dentro de la etiqueta <SCRIPT>. Cuando el navegador lee la página y encuentra un script

va interpretando las líneas de código y las va ejecutando una después de otra. Llamamos a

esta manera ejecución directa pues cuando se lee la página se ejecutan directamente los

scripts.

Respuesta a un evento

Es la otra manera de ejecutar scripts, pero antes de verla debemos hablar sobre los

eventos. Los eventos son acciones que realiza el usuario. Los programas como Javascript

Page 40: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

están preparados para atrapar determinadas acciones realizadas, en este caso sobre la

página, y realizar acciones como respuesta. De este modo se pueden realizar programas

interactivos, ya que controlamos los movimientos del usuario y respondemos a ellos.

Existen muchos tipos de eventos distintos, por ejemplo la pulsación de un botón, el

movimiento del ratón o la selección de texto de la página. Las acciones que queremos

realizar como respuesta a un evento se han de indicar dentro del mismo código HTML,

pero en este caso se indican en atributos HTML que se colocan dentro de la etiqueta que

queremos que responda a las acciones del usuario.

Volviendo a nuestro primer programa Guardelo con un nombre apropiado y agréguele la

extencion “.html”

Active su programa navegador y el abra el script que guardo con la extencion “.html” y vea

el resultado en la página web.

Conceptos de Algoritmo, Programa y Lenguaje de Programación. Algoritmo: Son los pasos a seguir para resolver un problema.

Programa: Conjunto de instrucciones que entiende un ordenador para realizar una

actividad. Todo programa tiene un objetivo bien definido: un procesador de texto es un

programa que permite cargar, modificar e imprimir textos, un programa de ajedrez

permite jugar al ajedrez contra el ordenador u otro contrincante humano. La actividad

fundamental del programador es resolver problemas empleando el ordenador como

herramienta fundamental. Para la resolución de un problema hay que pantear un

algoritmo

Lenguaje de programación: Conjunto de instrucciones que son interpretadas por una

computadora para realizar operaciones, mostrar datos por pantalla, sacar listados por

impresora, entrar datos por teclado, etc. Nosotros aprenderemos a programar utilizando

el lenguaje de programación JavaScript. Para desarrollar este curso no requerimos ningún

conocimiento de otro lenguaje.

¿Qué es JavaScript? JavaScript, al igual que Flash, Visual Basic Script, es una de las múltiples maneras que han

surgido para extender las capacidades del lenguaje HTML (lenguaje para el diseño de

páginas de Internet). Al ser la más sencilla, es por el momento la más extendida. JavaScript

no es un lenguaje de programación propiamente dicho como C, C++, Delphi, etc. Es un

lenguaje script u orientado a documento, como pueden ser los lenguajes de macros que

tienen muchos procesadores de texto y planillas de cálculo. No se puede desarrollar un

programa con JavaScript que se ejecute fuera de un Navegador. JavaScript es un lenguaje

Page 41: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

interpretado que se embebe en una página web HTML. Un lenguaje interpretado significa

que a las instrucciones las analiza y procesa el navegador en el momento que deben ser

ejecutadas.

Variables. Una variable es un depósito donde hay un valor. Consta de un nombre y pertenece a un

tipo (númerico, cadena de caracteres, etc.).Tipos de variable: Una variable puede

almacenar:Valores Enteros (100, 260, etc.)Valores Reales (1.24, 2.90, 5.00, etc.)Cadenas

de caracteres ("Juan", "Compras", "Listado", etc.)Valores lógicos (true, false) Existen otros

tipos de variables que veremos más adelante. Las variables son nombres que ponemos a

los lugares donde almacenamos la información. En JavaScript, deben comenzar por una

letra o un subrayado (_), pudiendo haber además dígitos entre los demás caracteres. Una

variable no puede tener el mismo nombre de una palabra clave del lenguaje. Una variable

se define anteponiéndole la palabra clave var: var dia; se pueden declarar varias variables

en una misma línea: var dia, mes, año; a una variable se la puede definir e

inmediatamente inicializarla con un valor: var edad=20; o en su defecto en dos pasos: var

edad; edad=20.

Elección del nombre de una variable: Debemos elegir nombres de variables

representativos. En el ejemplo anterior los nombres dia, mes, año son lo suficientemente

claros para darnos una idea acabada sobre su contenido, una mala elección de nombres

hubiera sido llamarlas a,b y c. Podemos darle otros buenos nombres. Otros no son tan

representativos, por ejemplo d, m, a. Posiblemente cuando estemos resolviendo un

problema dicho nombre nos recuerde que almacenamos el dia, pero pasado un tiempo lo

olvidaríamos. Impresión de variables en una página HTML.Para mostrar el contenido de

una variable en una página utilizamos el objeto document y llamamos a la función write.

En el siguiente ejemplo definimos una serie de variables y las mostramos en la página:

<html> <head> </head> <body> <script language="JavaScript"> var nombre='Juan'; var edad=10; var altura=1.92; var casado=false; document.write(nombre); document.write('<br>'); document.write(edad); document.write('<br>');

Page 42: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

document.write(altura); document.write('<br>'); document.write(casado); </script> </body> </html>

Cuando imprimimos una variable, no la debemos disponer entre simples comillas (en caso

de hacer esto, aparecerá el nombre de la variable y no su contenido)

Los valores de las variables que almacenan nombres (es decir, son cadenas de caracteres)

deben ir encerradas entre comillas simples. Los valores de las variables enteras (en este

ejemplo la variable edad) y reales no deben ir encerradas entre comillas. Cada instrucción

finaliza con un punto y coma.

Las variables de tipo boolean pueden almacenar solo dos valores: true o false.

El resultado al visualizar la página debe ser 4 líneas similares a éstas:

Juan

10

1.92

false

Es decir que se muestran los contenidos de las 4 variables. Una variable es de un tipo

determinado cuando le asignamos un valor:

var edad=10;

Es de tipo entera ya que le asignamos un valor entero.

var nombre='juan';

Es de tipo cadena.Para mostrar el contenido de una variable en una página debemos

utilizar la función 'write' que pertenece al objeto document. Recordemos que el lenguaje

JavaScript es sensible a mayúsculas y minúsculas y no será lo mismo si tipeamos:

Document.Write(nombre);esto porque no existe el objeto 'Document' sino el objeto

'document' (con d minúscula), lo mismo no existe la función 'Write' sino 'write', este es un

error muy común cuando comenzamos a programar en JavaScript

Page 43: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Entrada de datos por teclado. Para la entrada de datos por teclado tenemos la función prompt. Cada vez que

necesitamos ingresar un dato con esta función, aparece una ventana donde cargamos el

valor. Hay otras formas más sofisticadas para la entrada de datos en una página HTML,

pero para el aprendizaje de los conceptos básicos de JavaScript nos resultará más práctica

esta función.

Para ver su funcionamiento analicemos este ejemplo:

<html> <head> </head> <body> <script language="JavaScript"> var nombre; var edad; nombre=prompt('Ingrese su nombre:',''); edad=prompt('Ingrese su edad:',''); document.write('Hola '); document.write(nombre); document.write(' asi que tienes '); document.write(edad); document.write(' años'); </script> </body> </html>

La sintaxis de la función prompt es:

<variable que recibe el dato>=prompt(<mensaje a mostrar en la ventana>,<valor

inicial a mostrar en la ventana>);

La función prompt tiene dos parámetros: uno es el mensaje y el otro el valor incial a

mostrar.

Estructuras secuenciales de programación. Cuando en un problema sólo participan operaciones, entradas y salidas se la denomina

estructura secuencial.El problema anterior, donde se ingresa el nombre de una persona y

su edad se trata de una estructura secuencial.

Ejemplo de otro algoritmo con estructura secuencial: Realizar la carga de dos números por

teclado e imprimir su suma y su producto:

Page 44: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

<html> <head> <script language="JavaScript"> var valor1; var valor2; valor1=prompt('Ingrese primer número:',''); valor2=prompt('Ingrese segundo número',''); var suma=parseInt(valor1)+parseInt(valor2); var producto=valor1*valor2; document.write('La suma es '); document.write(suma); document.write('<br>'); document.write('El producto es '); document.write(producto); </script> </head> <body> </body> </html> Lo primero que debemos tener en cuenta es que si queremos que el operador + sume los

contenidos de los valores numéricos ingresados por teclado, debemos llamar a la función

parseInt y pasarle como parámetro las variables valor1 y valor2 sucesivamente. Con esto

logramos que el operador más, sume las variables como enteros y no como cadenas de

caracteres. Si por ejemplo sumamos 1 + 1 sin utilizar la función parseInt el resultado será

11 en lugar de 2, ya que el operador + concatena las dos cadenas.Cuando empleamos el

operador * para el producto, ya no es obligatorio utilizar la función parseInt (es decir, sólo

para el operador + debemos utilizarla).En JavaScript, como no podemos indicarle de qué

tipo es la variable, requiere mucho más cuidado cuando operamos con sus

contenidos.Este problema es secuencial ya que ingresamos dos valores por teclado, luego

hacemos dos operaciones y por último mostramos los resultados.

Estructuras condicionales simples. No todos los problemas pueden resolverse empleando estructuras secuenciales. Cuando

hay que tomar una decisión aparecen las estructuras condicionales En nuestra vida diaria

se nos presentan situaciones donde debemos decidir¿Elijo la carrera A o la carrera B ?¿Me

pongo este pantalón ?¿Entro al sitio A o al sitio B ?Para ir al trabajo, ¿elijo el camino A o el

camino B ?Al cursar una carrera, ¿elijo el turno mañana, tarde o noche ?Por supuesto que

en un problema se combinan estructuras secuenciales y condicionales.Cuando se presenta

la elección tenemos la opción de realizar una actividad o no realizarla.En una estructura

Page 45: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

CONDICIONAL SIMPLE por el camino del verdadero hay actividades y por el camino del

falso no hay actividades. Por el camino del verdadero pueden existir varias operaciones,

entradas y salidas, inclusive ya veremos que puede haber otras estructuras condicionales.

Ejemplo: Realizar la carga de una nota de un alumno. Mostrar un mensaje que aprobó si

tiene una nota mayor o igual a 4:

<html> <head> </head> <body> <script language="javascript"> var nombre; var nota; nombre=prompt('Ingrese nombre:',''); nota=prompt('Ingrese su nota:',''); if (nota>=4) { document.write(nombre+' esta aprobado con un '+nota); } </script> </body> </html>

Aparece la instrucción if en el lenguaje JavaScript. La condición debe ir entre

paréntesis. Si la condición se verifica verdadera se ejecuta todas las instrucciones

que se encuentran encerradas entre las llaves de apertura y cerrado seguidas al if.

Para disponer condiciones en un if podemos utilizar alguno de los siguientes

operadores relacionales:

> mayor

>= mayor o igual

< menor

<= menor o igual

!= distinto

== igual

Page 46: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Siempre debemos tener en cuenta que en la condición del if deben intervenir una variable

un operador relacional y otra variable o valor fijoOtra cosa que hemos incorporado es el

operador + para cadenas de caracteres:

document.write(nombre+' esta aprobado con un '+nota);

Con esto hacemos más corto la cantidad de líneas de nuestro programa, recordemos que

veníamos haciéndolo de la siguiente forma:

document.write(nombre);

document.write(' esta aprobado con un ');

document.write(nota);

Estructuras condicionales compuestas. Cuando se presenta la elección tenemos la opción de realizar una actividad u otra. Es decir

tenemos actividades por el verdadero y por el falso de la condición. Lo más importante

que hay que tener en cuenta es que se realizan las actividades de la rama del verdadero o

las del falso, NUNCA se realizan las actividades de las dos ramas. En una estructura

condicional compuesta tenemos entradas, salidas, operaciones, tanto por la rama del

verdadero como por la rama del falso.

Ejemplo: Realizar un programa que lea dos números distintos y muestre el mayor de

ellos:

<html> <head> </head> <body> <script language="javascript"> var num1,num2; num1=prompt('Ingrese el primer número:',''); num2=prompt('Ingrese el segundo número:',''); num1=parseInt(num1); num2=parseInt(num2); if (num1>num2) { document.write('el mayor es '+num1); } else { document.write('el mayor es '+num2); }

Page 47: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

</script> </body> </html> La función prompt retorna un string por lo que debemos convertirlo a entero cuando

queremos saber cual de los dos valores es mayor numéricamente. En el lenguaje

JavaScript una variable puede ir cambiando el tipo de dato que almacena a lo largo de la

ejecución del programa. Más adelante veremos qué sucede cuando preguntamos cuál de

dos string es mayor. Estamos en presencia de una ESTRUCTURA CONDICIONAL

COMPUESTA ya que tenemos actividades por la rama del verdadero y del falso.La

estructura condicional compuesta tiene la siguiente codificación:

if (<condición>) { <Instruccion(es)> } else { <Instruccion(es)> } Es igual que la estructura condicional simple salvo que aparece la palabra clave “else” y

posteriormente un bloque { } con una o varias instrucciones.

Si la condición del if es verdadera se ejecuta el bloque que aparece después de la

condición, en caso que la condición resulte falsa se ejecuta la instrucción o bloque de

instrucciones que indicamos después del else.

Estructuras condicionales anidadas. Decimos que una estructura condicional es anidada cuando por la rama del verdadero o el

falso de una estructura condicional hay otra estructura condicional.

Ejemplo: Confeccionar un programa que pida por teclado tres notas de un alumno, calcule

el promedio e imprima alguno de estos mensajes:Si el promedio es >=7 mostrar

"Promocionado".Si el promedio es >=4 y <7 mostrar "Regular".Si el promedio es <4

mostrar "Reprobado".Solución:

<html> <head> </head> <body> <script language="javascript"> var nota1,nota2,nota3; nota1=prompt('Ingrese 1ra. nota:','');

Page 48: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

nota2=prompt('Ingrese 2da. nota:',''); nota3=prompt('Ingrese 3ra. nota:',''); //Convertimos los 3 string en enteros nota1=parseInt(nota1); nota2=parseInt(nota2); nota3=parseInt(nota3); var pro; pro=(nota1+nota2+nota3)/3; if (pro>=7) { document.write('promocionado'); } else { if (pro>=4) { document.write('regular'); } else { document.write('reprobado'); } } </script> </body> </html>

Analicemos el siguiente programa. Se ingresan tres string por teclado que representan las

notas de un alumno, se transformas a variables enteras y se obtiene el promedio sumando

los tres valores y dividiendo por 3 dicho resultado. Primeramente preguntamos si el

promedio es superior o igual a 7, en caso afirmativo por la rama del verdadero de la

estructura condicional mostramos un mensaje que indique 'Promocionado' (con comillas

indicamos un texto que debe imprimirse en pantalla).En caso que la condición nos de

falso, por la rama del falso aparece otra estructura condicional, porque todavía debemos

averiguar si el promedio del alumno es superior/ igual a cuatro o inferior a cuatro.

Los comentarios en JavaScript los hacemos disponiendo dos barras previas al comentario:

//Convertimos los 3 string en enteros

Si queremos disponer varias líneas de comentarios tenemos como alternativa:

/*

Page 49: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

linea de comentario 1.

linea de comentario 2.

etc.

*/

Es decir encerramos el bloque con los caracteres /* */

Operadores lógicos && (y) en las estructuras condicionales. El operador &&, traducido se lo lee como "Y". Se emplea cuando en una estructura

condicional se disponen dos condiciones.Cuando vinculamos dos o más condiciones con el

operador "&&" las dos condiciones deben ser verdaderas para que el resultado de la

condición compuesta de Verdadero y continúe por la rama del verdadero de la estructura

condicional.Recordemos que la condición debe ir entre paréntesis en forma obligatoria. La

utilización de operadores lógicos permite en muchos casos, plantear algoritmos más

cortos y comprensibles.

Veamos un ejemplo: Confeccionar un programa que lea por teclado tres números

distintos y nos muestre el mayor de ellos.

<html> <head> </head> <body> <script language="javascript"> var num1,num2,num3; num1=prompt('Ingrese primer número:',''); num2=prompt('Ingrese segundo número:',''); num3=prompt('Ingrese tercer número:',''); num1=parseInt(num1); num2=parseInt(num2); num3=parseInt(num3); if (num1>num2 && num1>num3) { document.write('el mayor es el '+num1); } else { if (num2>num3) { document.write('el mayor es el '+num2);

Page 50: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

} else { document.write('el mayor es el '+num3); } } </script> </body> </html>

Podemos leerla de la siguiente forma: Si el contenido de la variable num1 es mayor al

contenido de la variable num2 Y si el contenido de la variable num1 es mayor al contenido

de la variable num3 entonces la CONDICION COMPUESTA resulta Verdadera.

Si una de las condiciones simples da falso, la CONDICION COMPUESTA da Falso y continúa

por la rama del falso.Es decir que se mostrará el contenido de num1 si y sólo si

num1>num2 y num1>num3.En caso de ser Falsa la condición de la rama del falso,

analizamos el contenido de num2 y num3 para ver cual tiene un valor mayor.En esta

segunda estructura condicional, al haber una condición simple, no se requieren

operadores lógicos.

Operadores lógicos || (o) en las estructuras condicionales. Traducido se lo lee como "O". Si la condición 1 es Verdadera o la condición 2 es

Verdadera, luego ejecutar la rama del Verdadero.Cuando vinculamos dos o más

condiciones con el operador "O", con que una de las dos condiciones sea Verdadera

alcanzan para que el resultado de la condición compuesta sea Verdadero.

Ejemplo: Se carga una fecha (día, mes y año) por teclado. Mostrar un mensaje si

corresponde al primer trimestre del año (enero, febrero o marzo).Cargar por teclado el

valor numérico del día, mes y año por separado.

<html> <head> </head> <body> <script language="javascript"> var dia,mes,año; dia=prompt('Ingrese día:',''); mes=prompt('Ingrese mes:',''); año=prompt('Ingrese año:',''); dia=parseInt(dia);

Page 51: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

mes=parseInt(mes); año=parseInt(año); if (mes==1 || mes==2 || mes==3) { document.write('corresponde al primer trimestre del año.'); } </script> </body> </html>

La carga de una fecha se hace por partes, ingresamos las variables dia, mes y año.

Estructuras switch. La instrucción switch es una alternativa para remplazar los if/else if.

De todos modos se puede aplicar en ciertas situaciones donde la condición se verifica si es

igual a cierto valor. No podemos preguntar por mayor o menor.

Con un ejemplo sencillo veremos cual es su sintaxis. Confeccionar un programa que

solicite que ingrese un valor entre 1 y 5. Luego mostrar en castellano el valor ingresado.

Mostrar un mensaje de error en caso de haber ingresado un valor que no se encuentre en

dicho rango.

<html> <head> </head> <body> <script language="javascript"> var valor; valor=prompt('Ingrese un valor comprendido entre 1 y 5:',''); //Convertimos a entero valor=parseInt(valor); switch (valor) { case 1: document.write('uno'); break; case 2: document.write('dos'); break; case 3: document.write('tres'); break; case 4: document.write('cuatro'); break; case 5: document.write('cinco'); break;

Page 52: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

default:document.write('debe ingresar un valor comprendido entre 1 y 5.'); } </script> <A href="pagina2.html">Ver segundo problema</a> </body> </html>

Debemos tener en cuenta que la variable que analizamos debe ir después de la instrucción

switch entre paréntesis. Cada valor que se analiza debe ir luego de la palabra clave 'case' y

seguido a los dos puntos, las instrucciones a ejecutar, en caso de verificar dicho valor la

variable que analiza el switch.

Es importante disponer la palabra clave 'break' al finalizar cada caso. La instrucciones que

hay después de la palabra clave 'default' se ejecutan en caso que la variable no se

verifique en algún case. De todos modos el default es opcional en esta instrucción.

Plantearemos un segundo problema para ver que podemos utilizar variables de tipo

cadena con la instrucción switch. Ingresar por teclado el nombre de un color (rojo, verde o

azul), luego pintar el fondo de la ventana con dicho color:

<html> <head> </head> <body> <script language="javascript"> var col; col=prompt('Ingrese el color con que se quiere pintar el fondo de la ventana (rojo, verde, azul)' ,''); switch (col) { case 'rojo': document.bgColor='#ff0000'; break; case 'verde': document.bgColor='#00ff00'; break; case 'azul': document.bgColor='#0000ff'; break; } </script> </body> </html> Cuando verificamos cadenas debemos encerrarlas entre comillas el valor a analizar: case 'rojo': document.bgColor='#ff0000'; break;

Page 53: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Para cambiar el color de fondo de la ventana debemos asignarle a la propiedad bgColor

del objeto document el color a asignar (el color está formado por tres valores

hexadecimales que representan la cantidad de rojo, verde y azul), en este caso al valor de

rojo le asignamos ff (255 en decimal) es decir el valor máximo posible, luego 00 para verde

y azul (podemos utilizar algún software de graficación para que nos genere los tres

valores).

Estructura repetitiva (while) Hasta ahora hemos empleado estructuras SECUENCIALES y CONDICIONALES. Existe otro

tipo de estructuras tan importantes como las anteriores que son las estructuras

REPETITIVAS.Una estructura repetitiva permite ejecutar una instrucción o un conjunto de

instrucciones varias veces.Una ejecución repetitiva de sentencias se caracteriza por:- La o

las sentencias que se repiten.- El test o prueba de condición antes de cada repetición, que

motivará que se repitan o no las sentencias.Funcionamiento del while: En primer lugar se

verifica la condición, si la misma resulta verdadera se ejecutan las operaciones que

indicamos entre las llaves que le siguen al while.En caso que la condición sea Falsa

continua con la instrucción siguiente al bloque de llaves.El bloque se repite MIENTRAS la

condición sea Verdadera.Importante: Si la condición siempre retorna verdadero estamos

en presencia de un ciclo repetitivo infinito. Dicha situación es un error de programación,

nunca finalizará el programa.

Ejemplo: Realizar un programa que imprima en pantalla los números del 1 al 100.Sin

conocer las estructuras repetitivas podemos resolver el problema empleando una

estructura secuencial. Inicializamos una variable con el valor 1, luego imprimimos la

variable, incrementamos nuevamente la variable y así sucesivamente.

<html> <head> </head> <body> <script language="javascript"> var x; x=1; while (x<=100) { document.write(x); document.write('<br>'); x=x+1; } </script> </body> </html>

Page 54: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Para que se impriman los números, uno en cada línea, agregamos la marca HTML de

<br>.Es muy importante analizar este programa: La primera operación inicializa la variable

x en 1, seguidamente comienza la estructura repetitiva while y disponemos la siguiente

condición ( x <= 100), se lee MIENTRAS la variable x sea menor o igual a 100.Al ejecutarse

la condición, retorna VERDADERO, porque el contenido de x (1) es menor o igual a 100. Al

ser la condición verdadera se ejecuta el bloque de instrucciones que contiene la

estructura while. El bloque de instrucciones contiene dos salidas al documento y una

operación. Se imprime el contenido de x y seguidamente se incrementa la variable x en

uno.La operación x = x + 1 se lee como "en la variable x se guarda el contenido de x más

1". Es decir, si x contiene 1 luego de ejecutarse esta operación se almacenará en x un 2.Al

finalizar el bloque de instrucciones que contiene la estructura repetitiva, se verifica

nuevamente la condición de la estructura repetitiva y se repite el proceso explicado

anteriormente. Mientras la condición retorne verdadero, se ejecuta el bloque de

instrucciones; al retornar falso la verificación de la condición, se sale de la estructura

repetitiva y continúa el algoritmo, en este caso, finaliza el programa. Lo más difícil es la

definición de la condición de la estructura while y qué bloque de instrucciones se va a

repetir. Observar que si, por ejemplo, disponemos la condición x >=100 ( si x es mayor o

igual a 100) no provoca ningún error sintáctico pero estamos en presencia de un error

lógico porque al evaluarse por primera vez la condición retorna falso y no se ejecuta el

bloque de instrucciones que queríamos repetir 100 veces.No existe una RECETA para

definir una condición de una estructura repetitiva, sino que se logra con una práctica

continua, solucionando problemas. Una vez planteado el programa debemos verificar si el

mismo es una solución válida al problema (en este caso se deben imprimir los números del

1 al 100 en la página), para ello podemos hacer un seguimiento del flujo del diagrama y los

valores que toman las variables a lo largo de la ejecución:

x

1

2

3

4

.

.

Page 55: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

100

101

Cuando x vale 101 la condición de la estructura repetitiva retorna falso, en este caso

finaliza el diagrama.

La variable x recibe el nombre de CONTADOR. Un contador es un tipo especial de variable

que se incrementa o decrementa con valores constantes durante la ejecución del

programa. El contador x nos indica en cada momento la cantidad de valores impresos en

la página. Importante: Podemos observar que el bloque repetitivo puede no ejecutarse si

la condición retorna falso la primera vez. La variable x debe estar inicializada con algún

valor antes que se ejecute la operación x = x + 1. Probemos algunas modificaciones de

este programa y veamos qué cambios se deberían hacer para: 1 - Imprimir los números

del 1 al 500.2 - Imprimir los números del 50 al 100.3 - Imprimir los números del -50 al 0.4 -

Imprimir los números del 2 al 100 pero de 2 en 2 (2,4,6,8 ....100).

Concepto de acumulador. Explicaremos el concepto de un acumulador con un ejemplo. Problema: Desarrollar un

programa que permita la carga de 5 valores por teclado y nos muestre posteriormente la

suma.

<html> <head> </head> <body> <script language="javascript"> var x=1; var suma=0; var valor; while (x<=5) { valor=prompt('Ingrese valor:',''); valor=parseInt(valor); suma=suma+valor; x=x+1; } document.write("La suma de los valores es "+suma+"<br>"); </script> </body> </html>

Page 56: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

En este problema, a semejanza de los anteriores, llevamos un CONTADOR llamado x que

nos sirve para contar las vueltas que debe repetir el while.También aparece el concepto

de ACUMULADOR (un acumulador es un tipo especial de variable que se incrementa o

decrementa con valores variables durante la ejecución del programa).Hemos dado el

nombre de suma a nuestro acumulador. Cada ciclo que se repita la estructura repetitiva,

la variable suma se incrementa con el contenido ingresado en la variable valor. La prueba

del diagrama se realiza dándole valores a las variables:

valor suma x

0 0

(Antes de entrar a la estructura repetitiva estos son los valores).

5 5 1

16 21 2

7 28 3

10 38 4

2 40 5

Este es un seguimiento del programa planteado. Los números que toma la variable valor

dependerá de qué cifras cargue el operador durante la ejecución del programa.

Hay que tener en cuenta que cuando en la variable valor se carga el primer valor (en este

ejemplo es el valor 5), al cargarse el segundo valor (16), el valor anterior 5 se pierde, por

ello la necesidad de ir almacenando en la variable suma los valores ingresados.

Estructura repetitiva (do/while) La sentencia do/while es otra estructura repetitiva, la cual ejecuta al menos una vez su

bloque repetitivo, a diferencia del while que puede no ejecutar el bloque.Esta estructura

repetitiva se utiliza cuando conocemos de antemano que por lo menos una vez se

ejecutará el bloque repetitivo.La condición de la estructura está abajo del bloque a

repetir, a diferencia del while que está en la parte superior.Finaliza la ejecución del bloque

repetitivo cuando la condición retorna falso, es decir igual que el while.

Ejemplo: Escribir un programa que solicite la carga de un número entre 0 y 999, y nos

muestre un mensaje de cuántos dígitos tiene el mismo. Finalizar el programa cuando se

cargue el valor 0.

<html>

Page 57: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

<head> </head> <body> <script language="javascript"> var valor; do { valor=prompt('Ingrese un valor entre 0 y 999:',''); valor=parseInt(valor); document.write('El valor '+valor+' tiene '); if (valor<10) { document.write('Tiene 1 digitos'); } else { if (valor<100) { document.write('Tiene 2 digitos'); } else { document.write('Tiene 3 digitos'); } } document.write('<br>'); } while(valor!=0); </script> </body> </html>

En este problema por lo menos se carga un valor. Si se carga un valor menor a 10 se trata

de un número de una cifra, si es mayor a 10 pero menor a 100 se trata de un valor de dos

dígitos, en caso contrario se trata de un valor de tres dígitos. Este bloque se repite

mientras se ingresa en la variable 'valor' un número distinto a 0.

Estructura repetitiva (for) Cualquier problema que requiera una estructura repetitiva se puede resolver empleando

la estructura while. Pero hay otra estructura repetitiva cuyo planteo es más sencillo en

ciertas situaciones.Esta estructura se emplea en aquellas situaciones en las cuales

CONOCEMOS la cantidad de veces que queremos que se ejecute el bloque de

instrucciones. Ejemplo: cargar 10 números, ingresar 5 notas de alumnos, etc. Conocemos

de antemano la cantidad de veces que queremos que el bloque se repita.Por último, hay

Page 58: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

que decir que la ejecución de la sentencia break dentro de cualquier parte del bucle

provoca la salida inmediata del mismo.

Sintaxis:

for (<Inicialización> ; <Condición> ; <Incremento o Decremento>) { <Instrucciones> } Esta estructura repetitiva tiene tres argumentos: variable de inicialización, condición y

variable de incremento o decremento.

Funcionamiento:

Primero se ejecuta por única vez el primer argumento. Por lo general se

inicializa una variable.

El segundo paso es evaluar la (Condición), en caso de ser verdadera se

ejecuta el bloque, en caso contrario continúa el programa.

El tercer paso es la ejecución de las instrucciones.

El cuarto paso es ejecutar el tercer argumento (Incremento o Decremento).

Luego se repiten sucesivamente del Segundo al Cuarto Paso.

Este tipo de estructura repetitiva se utiliza generalmente cuando sabemos la cantidad de

veces que deseamos que se repita el bloque.

Ejemplo: Mostrar por pantalla los números del 1 al 10.

<html> <head> </head> <body> <script language="javascript"> var f; for(f=1;f<=10;f++) { document.write(f+" "); } </script> </body> </html>

Page 59: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Inicialmente f se la inicializa con 1. Como la condición se verifica como verdadera se

ejecuta el bloque del for (en este caso mostramos el contenido de la variable f y un

espacio en blanco). Luego de ejecutar el bloque pasa al tercer argumento del for (en este

caso con el operador ++ se incrementa en uno el contenido de la variable f, existe otro

operador -- que decrementa en uno una variable), hubiera sido lo mismo poner f=f+1 pero

este otro operador matemático nos simplifica las cosas.

Importante: Tener en cuenta que no lleva punto y coma al final de los tres argumentos del

for. El disponer un punto y coma provoca un error lógico y no sintáctico, por lo que el

navegador no avisará.

EJERCICIOS PROPUESTOS

EJERCICIO 1

Confeccionar un programa que permita cargar un número entero positivo de hasta tres

cifras y muestre un mensaje indicando si tiene 1, 2, ó 3 cifras. Mostrar un mensaje de

error si el número de cifras no es 1, 2 ó 3.

EJERCICIO 2

De un postulante a un empleo, que realizó un test de capacitación, se obtuvo la siguiente

información: nombre del postulante, cantidad total de preguntas que se le realizaron y

cantidad de preguntas que contestó correctamente. Se pide confeccionar un programa

que lea los datos del postulante e informe el nivel del mismo según el porcentaje de

respuestas correctas que ha obtenido, y sabiendo que:

Nivel superior: Porcentaje>=90%. Nivel medio: Porcentaje>=75% y <90%. Nivel regular: Porcentaje>=50% y <75%. Fuera de nivel: Porcentaje<50%.

EJERCICIO 3

De un operario se conoce su sueldo y los años de antigüedad. Se pide confeccionar un

programa que lea los datos de entrada e informe:

a) Si el sueldo es inferior a 500 y su antigüedad es igual o superior a 10 años,

otorgarle un aumento del 20 %, mostrar el sueldo a pagar.

Page 60: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

b) Si el sueldo es inferior a 500 pero su antigüedad es menor a 10 años, otorgarle un

aumento de 5 %.

c) Si el sueldo es mayor o igual a 500 mostrar el sueldo en la página sin cambios.

Solicitar el ingreso alguna de estas palabras (casa, mesa, perro, gato) luego mostrar la

palabra traducida en inglés. Es decir, si se ingresa 'casa' debemos mostrar el texto 'house'

en la página.

EJERCICIO 4

En un banco se procesan datos de las cuentas corrientes de sus clientes. De cada cuenta

corriente se conoce: número de cuenta, nombre del cliente y saldo actual. El ingreso de

datos debe finalizar al ingresar un valor negativo en el número de cuenta.

Se pide confeccionar un programa que lea los datos de las cuentas corrientes e informe:

a) De cada cuenta: número de cuenta, nombre del cliente y estado de la cuenta

según su saldo, sabiendo que:

Estado de la cuenta 'Acreedor' si el saldo es >0.

'Deudor' si el saldo es <0.

'Nulo' si el saldo es =0.

b) La suma total de los saldos acreedores

EJERCICIO 5

Se realizó un censo provincial y se desea procesar la información obtenida en dicho censo.

De cada una de las personas censadas se tiene la siguiente información: número de

documento, edad y sexo ('femenino' o 'masculino')

Se pide confeccionar un programa que lea los datos de cada persona censada (para

finalizar ingresar el valor cero en el número de documento) e informar:

a) Cantidad total de personas censadas.

b) Cantidad de varones.

c) Cantidad de mujeres.

d) Cantidad de varones cuya edad varía entre 16 y 65 años.

EJERCICIO 6

Page 61: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Se cuenta con la siguiente información:

Las edades de 50 estudiantes del turno mañana. Las edades de 60 estudiantes del turno tarde. Las edades de 110 estudiantes del turno noche. Las edades de cada estudiante deben ingresarse por teclado.

a) Obtener el promedio de las edades de cada turno (tres promedios).

b) Imprimir dichos promedios (promedio de cada turno).

c) Mostrar por pantalla un mensaje que indique cual de los tres turnos tiene un

promedio de edades mayor.

TALLERES EJERCICIO 1

Realizar un programa que muestre su nombre y su edad en una página HTML.

Emplear el comando write del objeto document para imprimir.

Tener en cuenta que si queremos que cada dato quede en una fila distinta de la página

debemos insertar la marca <br> (salto de linea en HTML), es decir debemos disponer:

document.write('<br>')

EJERCICIO 2

Confeccionar una programa en JavaScript que defina e inicialice una variable real donde

almacenar el sueldo de un operario y otra de tipo cadena de caracteres donde

almacenaremos el nombre. Imprimir cada variable en una línea distinta en pantalla.

EJERCICIO 3

Confeccionar un programa que permita cargar el nombre de un usuario y su mail por

teclado. Mostrar posteriormente los datos en la página HTML.

EJERCICIO 4

Realizar la carga del lado de un cuadrado, mostrar por pantalla el perímetro del mismo (El

perímetro de un cuadrado se calcula multiplicando el valor del lado por cuatro).

EJERCICIO 5

Escribir un programa en el cual se ingresen cuatro números, calcular e informar la suma

de los dos primeros y el producto del tercero y el cuarto.

Page 62: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

EJERCICIO 6

Realizar un programa que lea cuatro valores numéricos e informar su suma y producto.

EJERCICIO 7

Se debe desarrollar un programa que pida el ingreso del precio de un artículo y la cantidad

que lleva el cliente. Mostrar lo que debe abonar el comprador.

EJERCICIO 8

Se ingresan tres notas de un alumno, si el promedio es mayor o igual a tres mostrar el

mensaje 'Promocionado'. Tener en cuenta que para obtener el promedio debemos operar

suma=nota1+nota2+nota3; y luego hacer promedio=suma/3;

EJERCICIO 9

Solicitar que se ingrese dos veces una clave. Mostrar un mensaje si son iguales (tener en

cuenta que para ver si dos variables tienen el mismo valor almacenado debemos utilizar el

operador ==).

EJERCICIO 10

Realizar un programa que lea por teclado dos números, si el primero es mayor al segundo

informar su suma y diferencia, en caso contrario informar el producto y la división del

primero respecto al segundo.

EJERCICIO 11

Se ingresan tres notas de un alumno, si el promedio es mayor o igual a 4 mostrar un

mensaje 'regular', sino 'reprobado'.

EJERCICIO 12

Se ingresa por teclado un número positivo de uno o dos dígitos (1..99) mostrar un mensaje

indicando si el número tiene uno o dos dígitos (recordar de convertir a entero con

parseInt para preguntar posteriormente por una variable entera).Tener en cuenta qué

condición debe cumplirse para tener dos dígitos, un número entero.

EJERCICIO 13

Page 63: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Se cargan por teclado tres números distintos. Mostrar por pantalla el mayor de ellos.

EJERCICIO 14

Se ingresa por teclado un valor entero, mostrar una leyenda que indique si el número es

positivo, cero o negativo.

EJERCICIO 15

Realizar un programa que pida cargar una fecha cualquiera, luego verificar si dicha fecha

corresponde a Navidad.

EJERCICIO 16

Se ingresan tres valores por teclado, si todos son iguales se imprime la suma del primero

con el segundo y a este resultado se lo multiplica por el tercero (tener en cuenta que

puede haber tres condiciones simples)

EJERCICIO 17

Se ingresan por teclado tres números, si todos los valores ingresados son menores a 10,

imprimir en la página la leyenda ' Todos los números son menores a diez'.

EJERCICIO 18

Escribir un programa que pida ingresar la coordenada de un punto en el plano, es decir

dos valores enteros x e y. Posteriormente imprimir en pantalla en qué cuadrante se ubica

dicho punto. (1º Cuadrante si x > 0 Y y > 0 , 2º Cuadrante: x < 0 Y y > 0, etc.)

EJERCICIO 19

Realizar un programa que imprima 25 términos de la serie 11 - 22 - 33 - 44, etc. (No se

ingresan valores por teclado).

EJERCICIO 20

Mostrar los múltiplos de 8 hasta el valor 500. Debe aparecer en pantalla 8 -16 -24, etc.

EJERCICIO 21

Escribir un programa que lea 10 notas de alumnos y nos informe cuántos tienen notas

mayores o iguales a 7 y cuántos menores.

Page 64: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

EJERCICIO 22

Se ingresan un conjunto de 5 alturas de personas por teclado. Mostrar la altura promedio

de las personas.

EJERCICIO 23

En una empresa trabajan 5 empleados cuyos sueldos oscilan entre $100 y $500, realizar

un programa que lea los sueldos que cobra cada empleado e informe cuántos empleados

cobran entre $100 y $300 y cuántos cobran más de $300. Además el programa deberá

informar el total que paga la empresa en sueldos del personal.

EJERCICIO 24

Realizar un programa que imprima 20 términos de la serie 5 - 10 - 15 - 20, etc. (No se

ingresan valores por teclado).

EJERCICIO 25

Mostrar los múltiplos de 10 hasta el valor 1500.

Debe aparecer en pantalla 10 - 20 -30 etc.

EJERCICIO 26

Realizar un programa que permita cargar dos listas de 3 valores cada una. Informar con un

mensaje cual de las dos listas tiene un valor acumulado mayor (mensajes 'Lista 1 mayor',

'Lista 2 mayor', 'Listas iguales')

Tener en cuenta que puede haber dos o más estructuras repetitivas en un algoritmo.

EJERCICIO 27

Desarrollar un programa que permita cargar 5 números enteros y luego nos informe

cuántos valores fueron pares y cuántos impares.

Emplear el operador "%" en la condición de la estructura condicional.

if (valor%2==0)

Page 65: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

el operador "%" retorna el resto de la división valor / 2. Por ejemplo: 12 % 2, retorna 0; 13

% 2, retorna 1, porque el resto de dividir 13 en 2 es 1.

EJERCICIO 28

Realizar un programa que acumule (sume) valores ingresados por teclado hasta ingresa el

9999 (no sumar dicho valor, solamente indica que ha finalizado la carga). Imprimir el valor

acumulado e informar si dicho valor es cero, mayor a cero o menor a cero.

EJERCICIO 29

Confeccionar un programa que lea 3 pares de datos, cada par de datos corresponde a la

medida de la base y la altura de un triángulo. El programa deberá informar:

a) De cada triángulo la medida de su base, su altura y su superficie.

b) La cantidad de triángulos cuya superficie es mayor a 12.

EJERCICIO 30

Desarrollar un programa que solicite la carga de 10 números e imprima la suma de lo

últimos 5 valores ingresados.

EJERCICIO 31

Desarrollar un programa que muestre la tabla de multiplicar del 5 (del 5 al 50).

EJERCICIO 32

Confeccionar un programa que permita ingresar un valor del 1 al 10 y nos muestre la tabla

de multiplicar del mismo (los primeros 12 términos)

Ejemplo: Si ingreso 3 deberá aparecer en pantalla los valores 3, 6, 9, hasta el 36.

EJERCICIO 33

Realizar un programa que lea los lados de 4 triángulos, e informar:

De cada uno de ellos, qué tipo de triángulo es: equilátero (tres lados iguales), isósceles

(dos lados iguales), o escaleno (ningún lado igual)

Cantidad de triángulos de cada tipo.

Tipo de triángulo del que hay menor cantidad.

Page 66: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

EJERCICIO 34

Escribir un programa que pida ingresar coordenadas (x,y) que representan puntos en el

plano. Informar cuántos puntos se han ingresado en el primer, segundo, tercer y cuarto

cuadrante. Al comenzar el programa se pide que se ingrese la cantidad de puntos a

procesar.

Page 67: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

LOGROS DE APRENDIZAJE

1. Conoce las estructuras básicas del lenguaje de programación.

2. Codifica ejercicios básicos lineales (E/S) de manera lógica y ordenada

3. Aplica correctamente las funciones básicas de entrada y salida y sus respectivos

formatos en la codificación de ejercicios.

4. Conoce y aplica las funciones matemáticas y de manejo de cadenas.

5. Soluciona y codifica ejercicios prácticos, aplicando estructuras condicionales.

6. Soluciona y codifica ejercicios prácticos, aplicando ciclos repetitivos.

7. Genera programas modulares utilizando de manera eficiente y práctica la

potencialidad de las funciones en el lenguaje.

8. Diseña y desarrolla soluciones informáticas con programación orientada a objeto.

LOGROS DE COMPRETENCIAS

1. Desarrollar el sistema de información que cumpla con los requerimientos de la

solución informática

Funciones En programación es muy frecuente que un determinado procedimiento de cálculo

definido por un grupo de sentencias tenga que repetirse varias veces, ya sea en un mismo

programa o en otros programas, lo cual implica que se tenga que escribir tantos grupos de

aquellas sentencias como veces aparezca dicho proceso.La herramienta más potente con

que se cuenta para facilitar, reducir y dividir el trabajo en programación, es escribir

aquellos grupos de sentencias una sola y única vez bajo la forma de una FUNCION.Un

programa es una cosa compleja de realizar y por lo tanto es importante que esté bien

ESTRUCTURADO y también que sea inteligible para las personas. Si un grupo de sentencias

realiza una tarea bien definida, entonces puede estar justificado el aislar estas sentencias

formando una función, aunque resulte que sólo se le llame o use una vez. Hasta ahora

hemos visto como resolver un problema planteando un único algoritmo.Con funciones

podemos segmentar un programa en varias partes.Frente a un problema, planteamos un

algoritmo, éste puede constar de pequeños algoritmos.

Una función es un conjunto de instrucciones que resuelven una parte del problema y que

puede ser utilizado (llamado) desde diferentes partes de un programa.

Consta de un nombre y parámetros. Con el nombre llamamos a la función, es decir,

hacemos referencia a la misma. Los parámetros son valores que se envían y son

indispensables para la resolución del mismo. La función realizará alguna operación con los

Page 68: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

parámetros que le enviamos. Podemos cargar una variable, consultarla, modificarla,

imprimirla, etc. Incluso los programas más sencillos tienen la necesidad de fragmentarse.

Las funciones son los únicos tipos de subprogramas que acepta JavaScript. Tienen la

siguiente estructura:

function <nombre de función>(argumento1, argumento2, ..., argumento n) { <código de la función> } Debemos buscar un nombre de función que nos indique cuál es su objetivo (Si la función

recibe un string y lo centra, tal vez deberíamos llamarla centrarTitulo). Veremos que una

función puede variar bastante en su estructura, puede tener o no parámetros, retornar un

valor, etc.

Ejemplo: Mostrar un mensaje que se repita 3 veces en la página con el siguiente texto:

'Cuidado'

'Ingrese su documento correctamente'

'Cuidado'

'Ingrese su documento correctamente'

'Cuidado'

'Ingrese su documento correctamente'

La solución sin emplear funciones es:

<html> <head> </head> <body> <script language="javascript"> document.write("Cuidado<br>"); document.write("Ingrese su documento correctamente<br>"); document.write("Cuidado<br>"); document.write("Ingrese su documento correctamente<br>"); document.write("Cuidado<br>"); document.write("Ingrese su documento correctamente<br>"); </script> </body> </html>

Page 69: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Empleando una función: <html> <head> </head> <body> <script languaje="javascript"> function mostrarMensaje() { document.write("Cuidado<br>"); document.write("Ingrese su documento correctamente<br>"); } mostrarMensaje(); mostrarMensaje(); mostrarMensaje(); </script> </body> </html> Recordemos que JavaScript es sensible a mayúsculas y minúsculas. Si fijamos como

nombre a la función mostrarTitulo (es decir la segunda palabra con mayúscula) debemos

respetar este nombre cuando la llamemos a dicha función.Es importante notar que para

que una función se ejecute debemos llamarla desde fuera por su nombre (en este

ejemplo: mostrarMensaje()). Cada vez que se llama una función se ejecutan todas las

líneas contenidas en la misma. Si no se llama a la función, las instrucciones de la misma

nunca se ejecutarán. A una función la podemos llamar tantas veces como necesitemos.

Las funciones nos ahorran escribir código que se repite con frecuencia y permite que

nuestro programa sea más entendible.

Funciones con parámetros. Explicaremos con un ejemplo, una función que tiene datos de entrada.

Ejemplo: Confeccionar una función que reciba dos números y muestre en la página los

valores comprendidos entre ellos de uno en uno. Cargar por teclado esos dos valores.

<html> <head> </head> <body> <script language="javascript"> function mostrarComprendidos(x1,x2) { var inicio;

Page 70: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

for(inicio=x1;inicio<=x2;inicio++) { document.write(inicio+' '); } } var valor1,valor2; valor1=prompt('Ingrese valor inferior:',''); valor1=parseInt(valor1); valor2=prompt('Ingrese valor superior:',''); valor2=parseInt(valor2); mostrarComprendidos(valor1,valor2); </script> </body> </html>

El programa de JavaScript empieza a ejecutarse donde definimos las variables valor1 y

valor2 y no donde se define la función. Luego de cargar los dos valores por teclado se

llama a la función mostrarComprendidos y le enviamos las variables valor1 y valor2. Los

parámetors x1 y x2 reciben los contenidos de las variables valor1 y valor 2. Es importante

notar que a la función la podemos llamar la cantidad de veces que la necesitemos.

Funciones que retornan un valor. Son comunes los casos donde una función, luego de hacer un proceso, retorne un valor.

Ejemplo 1: Confeccionar una función que reciba un valor entero comprendido entre 1 y 5.

Luego retornar en castellano el valor recibido.

<html> <head> </head> <body> <script language="javascript"> function convertirCastellano(x) { if (x==1) return "uno"; else if (x==2) return "dos"; else if (x==3) return "tres"; else if (x==4)

Page 71: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

return "cuatro"; else if (x==5) return "cinco"; else return "valor incorrecto"; } var valor; valor=prompt("Ingrese un valor entre 1 y 5",""); valor=parseInt(valor); var r; r=convertirCastellano(valor); document.write(r); </script> </body> </html>

Podemos ver que el valor retornado por una función lo indicamos por medio de la palabra

clave return. Cuando se llama a la función, debemos asignar el nombre de la función a una

variable, ya que la misma retorna un valor.Una función puede tener varios parámetros,

pero sólo puede retornar un único valor. La estructura condicional if de este ejemplo

puede ser remplazada por la instrucción switch, la función queda codificada de la

siguiente manera:

function convertirCastellano(x) { switch (x) { case 1:return "uno"; case 2:return "dos"; case 3:return "tres"; case 4:return "cuatro"; case 5:return "cinco"; default:return "valor incorrecto"; } } Esta es una forma más elegante que una serie de if anidados. La instrucción switch analiza

el contenido de la variable x con respecto al valor de cada caso. En la situación de ser

igual, ejecuta el bloque seguido de los 2 puntos hasta que encuentra la instrucción return

o break.

Page 72: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Ejemplo 2: Confeccionar una función que reciba una fecha con el formato de día, mes y

año y retorne un string con un formato similar a: "Hoy es 10 de junio de 2003".

<html> <head> </head> <body> <script language="javascript"> function formatearFecha(dia,mes,año) { var s='Hoy es '+dia+' de '; switch (mes) { case 1:s=s+'enero '; break; case 2:s=s+'febrero '; break; case 3:s=s+'marzo '; break; case 4:s=s+'abril '; break; case 5:s=s+'mayo '; break; case 6:s=s+'junio '; break; case 7:s=s+'julio '; break; case 8:s=s+'agosto '; break; case 9:s=s+'septiembre '; break; case 10:s=s+'octubre '; break; case 11:s=s+'noviembre '; break; case 12:s=s+'diciembre '; break; } //fin del switch s=s+'de '+año; return s; } document.write(formatearFecha(11,6,2006)); </script> </body> </html>

Page 73: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Analicemos un poco la función formatearFecha. Llegan tres parámetros con el día, mes y

año. Definimos e inicializamos una variable con:

var s='Hoy es '+dia+' de ';

Luego le concatenamos o sumamos el mes:

s=s+'enero ';

Esto, si el parámetro mes tiene un uno. Observemos como acumulamos lo que tiene 's'

más el string 'enero'. En caso de hacer s='enero ' perderíamos el valor previo que tenía la

variable s. Por último concatenamos el año:

s=s+'de '+año;

Cuando se llama a la función directamente, al valor devuelto se lo enviamos a la función

write del objeto document. Esto último lo podemos hacer en dos pasos:

var fec= formatearFecha(11,6,2006);

document.write(fec);

Guardamos en la variable 'fec' el string devuelto por la función.

Programación orientada a objetos. Un objeto es una estructura que contiene tanto las variables (llamadas propiedades) como

las funciones que manipulan dichas variables (llamadas métodos). A partir de esta

estructura se ha creado un nuevo modelo de programación (la programación orientada a

objetos) que atribuye a los mismos propiedades como herencia o polimorfismo. Como

veremos, JavaScript simplifica en algo este modelo y hace una programación híbrida entre

la programación estructurada y la programación orientada a objetos. El modelo de la

programación orientada a objetos normal y corriente separa los mismos en dos: clases e

instancias (objetos). Las primeras son entes más abstractos que definen un conjunto

determinado de objetos. Las segundas son miembros de una clase, poseyendo las mismas

propiedades que la clase a la cual pertenecen. Propiedades y métodos.Para acceder a los

métodos y propiedades de un objeto debemos utilizar la siguiente

sintaxis:objeto.propiedad objeto.metodo(parametros)

Conceptos Básicos.Objetos son todas las cosas con identidad propia. Se relacionan entre

si. Poseen características (atributos) y tienen responsabilidades (funciones, métodos) que

deben cumplir. Son ejemplares (instancias) de una clase y conocen a la clase a la cual

pertenecen. Atributos o propiedades Son las características, cualidades distintivas de cada

Page 74: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

objeto. Deben ser mínimos para poder realizar todas las operaciones que requiere la

aplicación. Ejemplos de objetos del mundo real:

-Casa: atributos: tamaño, precio, cantidad de habitaciones, etc.; responsabilidades:

comodidad, seguridad, etc.

-Mesa: atributos: altura, largo, ancho, etc.; responsabilidades: contener elementos.

- Ventana: atributos: tamaño, color, etc.; responsabilidades: abrirse, cerrarse, etc.

Ejemplos de objetos del mundo de la programación:

-Ventana: atributos: tamaño, color, etc.; responsabilidades: mostrar título, achicarse, etc.

Responsabilidades o Métodos.Son las responsabilidades que debe cumplir la clase. El

objetivo de un método es ejecutar las actividades que tiene encomendada la clase.Es un

algoritmo (conjunto de operaciones) que se ejecuta en respuesta a un mensaje;

respuestas a mensajes para satisfacer peticiones.Un método consiste en el nombre de la

operación y sus argumentos. El nombre del método identifica una operación que se

ejecuta.Un método está determinado por la clase del objeto receptor, todos los objetos

de una clase usan el mismo método en respuesta a mensajes similares.La interpretación

de un mensaje (selección del método ejecutado) depende del receptor y puede variar con

distintos receptores, es decir, puede variar de una clase a otra.ClasesUna clase es una

agrupación de objetos que comparten las mismas propiedades y comportamientos. Es un

molde para objetos que poseen las mismas características (que pueden recibir los mismos

mensajes y responden de la misma manera).Una clase es una representación de una idea

o concepto. Unidad que encapsula códigos y datos para los métodos (operaciones).Todos

los ejemplares de una clase se comportan de forma similar (invocan el mismo método) en

respuesta a mensajes similares.La clase a la cual pertenece un objeto determina el

comportamiento del objeto.Una clase tiene encomendadas actividades que ejecutan los

métodos.Las clases están definidas por:

- Atributos (Propiedades),

- Comportamiento (operaciones o métodos) y

- Relaciones con otros objetos.

Una aplicación es un conjunto de objetos de determinadas clases.

Clase Date

Page 75: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

JavaScript dispone de varias clases predefinidos para acceder a muchas de las funciones

normales de cualquier lenguaje, como puede ser el manejo de vectores o el de fechas.

Esta clase nos permitirá manejar fechas y horas. Se invoca así:

fecha = new Date();//creación de un objeto de la clase Date

fecha = new Date(año, mes, dia);

fecha = new Date(año, mes, dia, hora, minuto, segundo);

Si no utilizamos parámetros, el objeto fecha contendrá la fecha y hora actuales, obtenidas

del reloj de nuestra computadora. En caso contrario hay que tener en cuenta que los

meses comienzan por cero. Así, por ejemplo:

navidad06 = new Date(2006, 11, 25)

El objeto Date dispone, entre otros, de los siguientes métodos:

getYear() setYear(año) Obtiene y coloca, respectivamente, el año de la fecha. Éste se devuelve como número de 4 dígitos excepto en el caso en que esté entre 1900 y 1999, en cuyo caso devolverá las dos últimas cifras. getFullYear() setFullYear(año) Realizan la misma función que los anteriores, pero sin tanta complicación, ya que siempre devuelven números con todos sus dígitos. getMonth() setMonth(mes) getDate() setDate(dia) getHours() setHours(horas) getMinutes() setMinutes(minutos) getSeconds() setSeconds(segundos) Obtienen y colocan, respectivamente, el mes, día, hora, minuto y segundo de la fecha. getDay() Devuelve el día de la semana de la fecha en forma de número que va del 0 (domingo) al 6 (sábado)

Page 76: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Ejemplo: Mostrar en una página la fecha y la hora actual.

<HTML> <HEAD> <SCRIPT LANGUAGE="JavaScript"> function mostrarFechaHora() { var fecha fecha=new Date(); document.write('Hoy es '); document.write(fecha.getDate()+'/'); document.write((fecha.getMonth()+1)+'/'); document.write(fecha.getYear()); document.write('<br>'); document.write('Es la hora '); document.write(fecha.getHours()+':'); document.write(fecha.getMinutes()+':'); document.write(fecha.getSeconds()); } //Llamada a la función mostrarFechaHora(); </SCRIPT> </HEAD> <BODY> </BODY> </HTML> En este problema hemos creado un objeto de la clase Date. Luego llamamos una serie de

métodos que nos retornan datos sobre la fecha y hora actual del equipo de computación

donde se está ejecutando el navegador.Es bueno notar que para llamar a los métodos

disponemos:<nombre de objeto>.<nombre de método>(parámetros)

Clase Array Un vector es una estructura de datos que permite almacenar un CONJUNTO de datos.

Con un único nombre se define un vector y por medio de un subíndice hacemos referencia

a cada elemento del mismo (componente).

Ejemplo 1: Crear un vector para almacenar los cinco sueldos de operarios y luego mostrar

el total de gastos en sueldos (cada actividad en una función).

Page 77: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

<HTML> <HEAD> </HEAD> <BODY> <SCRIPT LANGUAGE="JavaScript"> function cargar(sueldos) { var f; for(f=0;f<sueldos.length;f++) { var v; v=prompt('Ingrese sueldo:',''); sueldos[f]=parseInt(v); } }

function calcularGastos(sueldos) { var total=0; var f; for(f=0;f<sueldos.length;f++) { total=total+sueldos[f]; } document.write('Listado de sueldos<br>'); for(f=0;f<sueldos.length;f++) { document.write(sueldos[f]+'<br>'); } document.write('Total de gastos en sueldos:'+total); } var sueldos; sueldos=new Array(5); cargar(sueldos); calcularGastos(sueldos); </SCRIPT> </BODY> </HTML> Recordemos que el programa comienza a ejecutarse a partir de las líneas que se

encuentran fuera de las funciones:

Page 78: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

var sueldos; sueldos=new Array(5); cargar(sueldos); calcularGastos(sueldos); Lo primero, definimos una variable y posteriormente creamos un objeto de la clase Array,

indicándole que queremos almacenar 5 valores.Llamamos a la función cargar enviándole

el vector. En la función, a través de un ciclo for recorremos las distintas componentes del

vector y almacenamos valores enteros que ingresamos por teclado.Para conocer el

tamaño del vector accedemos a la propiedad length de la clase Array.En la segunda

función sumamos todas las componentes del vector, imprimimos en la página los valores y

el total de gastos.

Ejemplo 2: Crear un vector con elementos de tipo string. Almacenar los meses de año. En

otra función solicitar el ingreso de un número entre 1 y 12. Mostrar a qué mes

corresponde y cuántos días tiene dicho mes.

<HTML> <HEAD></HEAD> <BODY> <SCRIPT LANGUAGE="JavaScript"> function mostrarFecha(meses,dias) { var num; num=prompt('Ingrese número de mes:',''); num=parseInt(num); document.write('Corresponde al mes:'+meses[num-1]); document.write('<br>'); document.write('Tiene '+dias[num-1]+' días'); } var meses; meses=new Array(12); meses[0]='Enero'; meses[1]='Febrero'; meses[2]='Marzo'; meses[3]='Abril'; meses[4]='Mayo'; meses[5]='Junio'; meses[6]='Julio'; meses[7]='Agosto'; meses[8]='Septiembre'; meses[9]='Octubre';

Page 79: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

meses[10]='Noviembre'; meses[11]='Diciembre'; var dias; dias=new Array(12); dias[0]=31; dias[1]=28; dias[2]=31; dias[3]=30; dias[4]=31; dias[5]=30; dias[6]=31; dias[7]=31; dias[8]=30; dias[9]=31; dias[10]=30; dias[11]=31; mostrarFecha(meses,dias); </SCRIPT> </BODY> </HTML>

En este problema definimos dos vectores, uno para almacenar los meses y otro los días.

Decimos que se trata de vectores paralelos porque en la componente cero del vector

meses almacenamos el string 'Enero' y en el vector dias, la cantidad de días del mes de

enero. Es importante notar que cuando imprimimos, disponemos como subíndice el valor

ingresado menos 1, esto debido a que normalmente el operador de nuestro programa

carga un valor comprendido entre 1 y 12. Recordar que los vectores comienzan a

numerarse a partir de la componente cero.

document.write('Corresponde al mes:'+meses[num-1]);

Clase Math Esta clase no está construida para que tengamos nuestras variables Math, sino como un

contenedor que tiene diversas constantes (como Math.E y Math.PI) y los siguientes

métodos matemáticos:

Método Descripción Expresión de ejemplo

Resultado del ejemplo

Abs Valor absoluto Math.abs(-2) 2

sin, cos, tan

Funciones trigonométricas, reciben el argumento en radianes

Math.cos(Math.PI) -1

Page 80: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

asin, acos, atan

Funciones trigonométricas inversas Math.asin(1) 1.57

exp, log Exponenciación y logaritmo, base E Math.log(Math.E) 1

Ceil Devuelve el entero más pequeño mayor o igual al argumento

Math.ceil(-2.7) -2

Floor Devuelve el entero más grande menor o igual al argumento

Math.floor(-2.7) -3

Round Devuelve el entero más cercano o igual al argumento

Math.round(-2.7) -3

min, max Devuelve el menor (o mayor) de sus dos argumentos

Math.min(2,4) 2

Pow Exponenciación, siendo el primer argumento la base y el segundo el exponente

Math.pow(2,3) 8

Sqrt Raíz cuadrada Math.sqrt(25) 5

Random Genera un valor aleatorio comprendido entre 0 y 1.

Math.random() Ej. 0.7345

Ejemplo: Confeccionar un programa que permita cargar un valor comprendido entre 1 y

10. Luego generar un valor aleatorio entre 1 y 10, mostrar un mensaje con el número

sorteado e indicar si ganó o perdió:

<html> <head> </head> <body> <script language="JavaScript"> var selec=prompt('Ingrese un valor entre 1 y 10',''); selec=parseInt(selec); var num=parseInt(Math.random()*10)+1; if (num==selec) document.write('Ganó el número que se sorteó es el '+ num); else document.write('Lo siento se sorteó el valor '+num+' y usted eligió el '+selec); </script> </body> </html>

Para generar un valor aleatorio comprendido entre 1 y 10 debemos plantear lo siguiente:

var num=parseInt(Math.random()*10)+1;

Page 81: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Al multiplicar Math.random() por 10, nos genera un valor aleatorio comprendido entre un

valor mayor a 0 y menor a 10, luego, con la función parseInt, obtenemos sólo la parte

entera. Finalmente sumamos uno. El valor que cargó el operador se encuentra en:

var selec=prompt('Ingrese un valor entre 1 y 10','');

Con un simple if validamos si coinciden los valores (el generado y el ingresado por

teclado).

Clase String. Un string consiste en uno o más caracteres encerrados entre simple o doble comillas.

Concatenación de cadenas (+) JavaScript permite concatenar cadenas utilizando el

operador +. El siguiente fragmento de código concatena tres cadenas para producir su

salida:

var final='La entrada tiene ' + contador + ' caracteres.';

Dos de las cadenas concatenadas son cadenas literales. La del medio es un entero que

automáticamente se convierte a cadena y luego se concatena con las otras.

Propiedad length Retorna la cantidad de caracteres de un objeto String.

var nom='Juan';

document.write(nom.length); //Resultado 4

Métodos

charAt(pos)

Retorna el caracter del índice especificado. Comienzan a numerarse de la posición cero.

var nombre='juan';

var caracterPrimero=nombre.charAt(0);

substring (posinicial, posfinal)Retorna un String extraída de otro, desde el caracter

'posinicial' hasta el 'posfinal'-1:

cadena3=cadena1.substring(2,5);

En este ejemplo, "cadena3" contendrá los caracteres 2, 3, 4 sin incluir el 5 de cadena1

(Cuidado que comienza en cero). indexOf (subCadena) Devuelve la posición de la

subcadena dentro de la cadena, o -1 en caso de no estar. Tener en cuenta que puede

retornar 0 si la subcadena coincide desde el primer caracter.

Page 82: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

var nombre='Rodriguez Pablo';

var pos=nombre.indexOf('Pablo');

if (pos!=-1)

document.write ('Está el nombre Pablo en la variable nombre');

toUpperCase()

Convierte todos los caracteres del String que invoca el método a mayúsculas:

cadena1=cadena1.toUpperCase();

Luego de esto, cadena1 tiene todos los caracteres convertidos a mayúsculas.

toLowerCase()

Convierte todos los caracteres del String que invoca el método a minúsculas:

cadena1=cadena1.toLowerCase();

Luego de esto, cadena1 tiene todos los caracteres convertidos a minúsculas.

Ejemplo: Cargar un string por teclado y luego llamar a los distintos métodos de la clase

String y la propiedad length.

<html> <head> </head> <body> <script language="JavaScript"> var cadena=prompt('Ingrese una cadena:',''); document.write('La cadena ingresada es:'+cadena); document.write('<br>'); document.write('La cantidad de caracteres son:'+cadena.length); document.write('<br>'); document.write('El primer caracter es:'+cadena.charAt(0)); document.write('<br>'); document.write('Los primeros 3 caracteres son:'+cadena.substring(0,3)); document.write('<br>'); if (cadena.indexOf('hola')!=-1) document.write('Se ingresó la subcadena hola'); else document.write('No se ingresó la subcadena hola');

Page 83: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

document.write('<br>'); document.write('La cadena convertida a mayúsculas es:'+cadena.toUpperCase()); document.write('<br>'); document.write('La cadena convertida a minúsculas es:'+cadena.toLowerCase()); document.write('<br>'); </script> </body> </html>

Formularios y Eventos. El uso de JavaScript en los formularios HTML se hace fundamentalmente con el objetivo

de validar los datos ingresados. Se hace esta actividad en el cliente (navegador) para

desligar de esta actividad al servidor que recibirá los datos ingresados por el usuario.Esta

posibilidad de hacer pequeños programas que se ejecutan en el navegador, evitan

intercambios innecesarios entre el cliente y el servidor (navegador y sitio

web).Suponemos que conoce las marcas para la creación de formularios en una página

web:

form <FORM> ... </FORM> text <INPUT TYPE="text"> password <INPUT TYPE="password"> textarea <TEXTAREA> ... </TEXTAREA> button <INPUT TYPE="button"> submit <INPUT TYPE="submit"> reset <INPUT TYPE="reset"> checkbox <INPUT TYPE="checkbox"> radio <INPUT TYPE="radio"> select <SELECT> ... </SELECT> hidden <INPUT TYPE="hidden"> El navegador crea un objeto por cada control visual que aparece dentro de la página.

Nosotros podemos acceder posteriormente desde JavaScript a dichos objetos.

El objeto principal es el FORM que contendrá todos los otros objetos: TEXT (editor de

líneas), TEXTAREA (editor de varias líneas), etc.Nuestra actividad en JavaScript es procesar

los eventos que generan estos controles (un evento es una acción que se dispara, por

ejemplo si se presiona un botón).

Un ejemplo muy sencillo empleando el lenguaje JavaScript; dispondremos un botón y cada

vez que se presione, mostraremos un contador:

<html> <head> </head>

Page 84: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

<body> <script language="JavaScript"> var contador=0; function incrementar() { contador++; alert('El contador ahora vale :' + contador); } </script> <form> <input type="button" onClick="incrementar()" value="incrementar"> </form> </body> </html>` A los eventos de los objetos HTML se les asocia una función, dicha función se ejecuta

cuando se dispara el evento respectivo. En este caso cada vez que presionamos el botón,

se llama a la función incrementar, en la misma incrementamos la variable contador en

uno. Hay que tener en cuenta que a la variable contador la definimos fuera de la función

para que no se inicialice cada vez que se dispara el evento. La función alert crea una

ventana que puede mostrar un mensaje.

Controles FORM, BUTTON y TEXT. Hasta ahora hemos visto como crear un formulario con controles de tipo BUTTON.

Agregamos un control de tipo TEXT (permite al operador cargar caracteres porteclado).

Ahora veremos la importancia de definir un NAME a todo control de un formulario.

Con un ejemplo veremos estos controles: Confeccionar un formulario que permita

ingresar el nombre y edad de una persona:

<html> <head></head> <body> <script language="JavaScript"> function mostrar() { var nom=document.form1.nombre.value; var ed=document.form1.edad.value; alert('Ingreso el nombre:' + nom); alert('Y la edad:' + ed); } </script>

Page 85: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

<form name="form1"> Ingrese su nombre: <input type="text" name="nombre"><br> Ingrese su edad: <input type="text" name="edad"><br> <input type="button" value="Confirmar" onClick="mostrar()"> </form> </body> </html> En este problema tenemos cuatro controles: 1 FORM, 1 BUTTON, 2 TEXT. El evento que se

dispara al presionar el botón se llama mostrar. La función 'mostrar' accede a los

contenidos de los dos controles de tipo TEXT:

var nom=document.form1.nombre.value;

var ed=document.form1.edad.value;

Para hacer más clara la función guardamos en dos variables auxiliares los contenidos de

los controles de tipo TEXT. Hay que tener en cuenta que a nuestra página la accedemos

por medio del objeto: document, luego, al formulario que hemos creado, lo accedemos

por el NAME que le dimos al formulario, en este caso: form1, luego, a cada control que

contiene el formulario, lo accedemos nuevamento por su NAME, es decir: nombre y edad

respectivamente. Por último, para acceder a las cadenas cargadas debemos indicar la

propiedad value.

Control PASSWORD Esta marca es una variante de la de tipo "TEXT". La diferencia fundamental es que cuando

se carga un texto en el campo de edición sólo muestra asteriscos en pantalla, es decir, es

fundamental para el ingreso de claves y para que otros usuarios no vean los caracteres

que tipeamos. La mayoría de las veces este dato se procesa en el servidor. Pero podemos

en el cliente (es decir en el navegador) verificar si ha ingresado una cantidad correcta de

caracteres, por ejemplo.

Ejemplo: Codificar una página que permita ingresar una password y luego muestre una

ventana de alerta si tiene menos de 5 caracteres.

<HTML> <HEAD> <SCRIPT LANGUAGE="JavaScript"> function validar() { if (document.form1.text1.value.length<5)

Page 86: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

{ alert("Ingrese al menos 5 caracteres"); document.form1.text1.value=""; } } </SCRIPT> </HEAD> <BODY> <FORM NAME="form1"> Ingrese clave(al menos 5 caracteres): <INPUT TYPE="password" NAME="text1"> <INPUT TYPE="button" ONCLICK="validar()" VALUE="Enviar"> </FORM> </BODY> </HTML>

En este problema debemos observar que cuando ingresamos caracteres dentro del campo

de edición sólo vemos asteriscos, pero realmente en memoria se almacenan los caracteres

tipeados. Si queremos mostrar los caracteres ingresados debemos acceder a:

document.form1.text1.value

Normalmente, a este valor no lo mostraremos dentro de la página, sino se perdería el

objetivo de este control (ocultar los caracteres tipeados). Si necesitamos saber la cantidad

de caracteres que tiene un string accedemos a la propiedad length que retorna la cantidad

de caracteres.

if (document.form1.text1.value.length<5)

Control SELECT Este otro objeto visual que podemos disponer en un FORM permite realizar la selección de

un string de una lista y tener asociado al mismo un valor no visible. El objetivo

fundamental en JavaScript es determinar qué elemento está seleccionado y qué valor

tiene asociado. Esto lo hacemos cuando ocurre el evento OnChange.

Para determinar la posición del índice seleccionado en la lista:

document.form1.select1.selectedIndex

Considerando que el objeto SELECT se llama select1 accedemos a la propiedad

selectedIndex (almacena la posición del string seleccionado de la lista, numerando a partir

de cero). Para determinar el string seleccionado:

document.form1.select1.options[document.form1.select1.selectedIndex].text

Page 87: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Es decir que el objeto select1 tiene otra propiedad llamada options, a la que accedemos

por medio de un subíndice, al string de una determinada posición. Hay problemas en los

que solamente necesitaremos el string almacenado en el objeto SELECT y no el valor

asociado (no es obligatorio asociar un valor a cada string).Y por último con esta expresión

accedemos al valor asociado al string:

document.form1.select1.options[document.form1.select1.selectedIndex].value

Un ejemplo completo que muestra el empleo de un control SELECT es:

<html> <head> </head> <body> <script language="JavaScript"> function cambiarColor() { document.form1.text1.value = document.form1.select1.selectedIndex; document.form1.text2.value = document.form1.select1.options[document.form1.select1.selectedIndex].text; document.form1.text3.value = document.form1.select1.options [document.form1.select1.selectedIndex].value; } </script> <form name="form1"> <select size="1" name="select1" ONCHANGE="cambiarColor()"> <option value="0xff0000">Rojo</option> <option value="0x00ff00">Verde</option> <option value="0x0000ff">Azul</option> </select></p> <br> Número de índice seleccionado del objeto SELECT:<input type="text" name="text1"><br> Texto seleccionado:<input type="text" name="text2"><br> Valor asociado:<input type="text" name="text3"><br> </form> </body> </html> Se debe analizar en profundidad este problema para comprender primeramente la

creación del objeto SELECT en HTML, y cómo acceder luego a sus valores desde JavaScript.

Es importante para el objeto SELECT definir qué función llamar cuando ocurra un cambio:

onChange="cambiarColor()". Por cada opción del objeto SELECT tenemos una línea:

Page 88: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Rojo

Donde Rojo es el string que se visualiza en el objeto SELECT y value es el valor asociado a

dicho string. Analizando la función cambiarColor() podemos ver cómo obtenemos los

valores fundamentales del objeto SELECT.

Control CHECKBOX El control CHECKBOX es el cuadradito que puede tener dos estados (seleccionado o no

seleccionado).Para conocer su funcionamiento y ver como podemos acceder a su estado

desde JavaScript haremos un pequeña página.

Ejemplo: Confeccionar una página que muestre 4 lenguajes de programación que el

usuario puede seleccionar si los conoce. Luego mostrar un mensaje indicando la cantidad

de lenguajes que ha seleccionado el operador.

<html> <head> </head> <body> <script language="JavaScript"> function contarSeleccionados() { var cant=0; if (document.form1.lenguaje1.checked) cant++; if (document.form1.lenguaje2.checked) cant++; if (document.form1.lenguaje3.checked) cant++; if (document.form1.lenguaje4.checked) cant++; alert('Conoce ' + cant + ' lenguajes'); } </script> <form name="form1"> <input type="checkbox" name="lenguaje1">JavaScript <br> <input type="checkbox" name="lenguaje2">PHP <br> <input type="checkbox" name="lenguaje3">JSP <br> <input type="checkbox" name="lenguaje4">VB.Net <br> <input type="button" value="Mostrar" onClick="contarSeleccionados()">

Page 89: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

</form> </body> </html> Cuando se presiona el botón se llama a la función JavaScript contarSeleccionados(). En la

misma verificamos uno a uno cada control checkbox accediendo a la propiedad checked

que almacena true o false según esté o no seleccionado el control.Disponemos un 'if' para

cada checkbox:

if (document.form1.lenguaje1.checked)

cant++;

Al contador 'cant' lo definimos e inicializamos en cero previo a los cuatro if. Mostramos

finalmente el resultado final.

Control RADIO Los objetos RADIO tienen sentido cuando disponemos varios elementos. Sólo uno puede

estar seleccionado del conjunto.

Ejemplo: Mostrar cuatro objetos de tipo RADIO que permitan seleccionar los estudios que

tiene un usuario:

<html> <head> </head> <body> <script language="JavaScript"> function mostrarSeleccionado() { if (document.form1.estudios[0].checked) alert('no tienes estudios'); if (document.form1.estudios[1].checked) alert('tienes estudios primarios'); if (document.form1.estudios[2].checked) alert('tienes estudios secundarios'); if (document.form1.estudios[3].checked) alert('tienes estudios universitarios'); } </script> <form name="form1"> <input type="radio" name="estudios" value="sin estudios">Sin estudios <br>

Page 90: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

<input type="radio" name="estudios">Primarios <br> <input type="radio" name="estudios">Secundarios <br> <input type="radio" name="estudios">Universitarios <br> <input type="button" value="Mostrar" onClick="mostrarSeleccionado()"> </form> </body> </html> Es importante notar que todos los objetos de tipo RADIO tienen el mismo name. Luego

podemos acceder a cada elemento por medio de un subíndice:

if (document.form1.estudios[0].checked)

alert('no tienes estudios');

Igual que el checkbox, la propiedad checked retorna true o false, según esté o no

seleccionado el control radio.

Control TEXTAREA Este control es similar al control TEXT, salvo que permite el ingreso de muchas líneas de

texto. La marca TEXTAREA en HTML tiene dos propiedades: rows y cols que nos permiten

indicar la cantidad de filas y columnas a mostrar en pantalla.

Ejemplo: Solicitar la carga del mail y el curriculum de una persona. Mostrar un mensaje si

el curriculum supera los 2000 caracteres.

<html> <head> </head> <body> <script language="JavaScript"> function controlarCaracteres() { if (document.form1.curriculum.value.length>2000) alert('curriculum muy largo'); else alert('datos correctos'); } </script> <form name="form1"> &lt;textarea name=&quot;curriculum&quot; rows="10" cols="50"

Page 91: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

&gt;&lt;/textarea&gt; <br> <input type="button" value="Mostrar" onClick="controlarCaracteres()"> </form> </body> </html>

Para saber el largo de la cadena cargada:

if (document.form1.curriculum.value.length>2000)

EJERCICIOS PROPUESTOS EJERCICIO 1

Confeccionar una función que solicite la carga de 5 valores por teclado y retorne su suma.

EJERCICIO 2

Desarrollar un programa que permita ingresar un vector de 8 elementos, e informe:

El valor acumulado de todos los elementos del vector.

El valor acumulado de los elementos del vector que sean mayores a 36.

Cantidad de valores mayores a 50

EJERCICIO 3

Ingresar una palabra o texto por teclado y determinar si es o no una palabra palíndromo.

(Palabra que se lee de igual manera de adelante hacia atrás, que de atrás hacia delante).

EJERCICIO 4

a) Cargar un String por teclado e implementar los siguientes métodos:

b) Imprimir la primera mitad de los caracteres de la cadena.

c) Imprimir el último caracter.

d) Imprimirlo en forma inversa.

e) Imprimir cada caracter del String separado con un guión.

f) Imprimir la cantidad de vocales almacenadas

EJERCICIO 5

Codifique un programa que permita cargar una oración por teclado, luego mostrar cada

palabra ingresada en una línea distinta.

Por ejemplo si cargo:

Page 92: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

La mañana está fría.

Debe aparecer:

La

mañana

está

fría.

EJERCICIO 6

Cargar un nombre y un apellido en sendos text. Al presionar un botón, concatenarlos y

mostrarlos en un tercer text (Tener en cuenta que podemos modificar la propiedad value

de un objeto TEXT cuando ocurre un evento).

Disponer dos campos de texto tipo password. Cuando se presione un botón mostrar si las

dos claves ingresadas son iguales o no (es muy común solicitar al operador el ingreso de

dos veces de su clave para validar si la tipeó correctamente, esto se hace cuando se crea

una password para el ingreso a un sitio o para el cambio de una existente).

Tener en cuenta que podemos emplear el operador == para ver si dos string son iguales.

EJERCICIO 7

Generar un presupuesto de un equipo de computación a partir de tres objetos de tipo

SELECT que nos permiten seleccionar:

Procesador (Pentium III - $400, Pentium IV $500).

Monitor (Samsung 14' - $250, Samsung 15' - $350, Samsung 17' - $550)

Disco Duro(80 Gb - $300, 240 Gb - $440, 800 Gb - $500)

Para cada característica indicamos string a mostrar (Ej. Pentium III) y el valor asociado a

dicho string (Ej. 400).

Al presionar un botón "Calcular" mostrar el presupuesto en un objeto de tipo TEXT.

EJERCICIO 8

Page 93: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Confeccionar una página que permita seleccionar una pizza y la cantidad de unidades.

Luego al presionar un botón calcular el importe a pagar.

Utilizar un objeto de la clase SELECT para la selección de la pizza, pudiendo ser:

Queso: $ 4.

Jamón y queso: $ 6.

Especial: $ 10.

A la cantidad de pizzas cargarla en un objeto de la clase TEXT y en otro objeto de la clase

TEXT mostrar el importe total a abonar.

EJERCICIO 9

Confeccionar una página de visitas a un sitio, solicitar ingresar el nombre de una persona,

su mail y los comentarios (TEXTAREA). Mostrar luego llamando a la función alert los datos

ingresados.

Tener en cuenta que para acceder a las cadenas cargadas haremos:

alert(document.form1.comentarios.value).

TALLERES EJERCICIO 1

Elaborar una función a la cual le enviemos tres enteros y muestre el menor.

EJERCICIO 2

Confeccionar una función a la cual le envíe tres enteros y los muestre ordenados de

menor a mayor.

EJERCICIO 3

Confeccionar una función a la cual le envíe tres enteros y retorne el mayor de ellos.

EJERCICIO 4

Page 94: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Elaborar una función a la cual le envíe el valor del lado de un cuadrado y me retorne su

perímetro.

EJERCICIO 5

Desarrollar una función que retorne la cantidad de dígitos que tiene una variable entera

positiva.

EJERCICIO 6

Elaborar una función que reciba tres enteros y retorne el promedio.

EJERCICIO 9

Realizar un programa que pida la carga de dos vectores numéricos. Obtener la suma de los

dos vectores, dicho resultado guardarlo en un tercer vector del mismo tamaño. Sumar

componente a componente.El tamaño del vector es a elección.

EJERCICIO 10

Ingresar una serie de nombres por teclado hasta que se digite la palabra Fin, y mostrar

cuántos nombres se ingresaron.

EJERCICIO 11

Igual al anterior, pero que termine la aplicación sin contemplar mayúsculas ni minúsculas.

Es decir que para salir se pueda teclear fin, Fin o FIN.

EJERCICIO 12

Realizar la búsqueda de un string clave en un string fuente. Se deberá ingresar una frase o

texto (fuente) y luego la clave a buscar. En caso de encontrarla, imprimir la posición, de lo

contrario una leyenda.

EJERCICIO 13

Realizar un programa que permita cargar una dirección de mail e implementar una

función que verifique si el String tiene cargado el caracter @.

EJERCICIO 14

Page 95: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Codifique un programa que permita cargar una oración por teclado, luego mostrar cada

palabra ingresada en una línea distinta.

Por ejemplo si cargo:

La mañana está fría.

Debe aparecer:

La

mañana

está

fría.

EJERCICIO 15

Crear un formulario con tres botones con las leyendas "1", "2" y "3". Mostrar un mensaje

indicando qué botón se presionó.

EJERCICIO 16

Crear un programa que permita cargar un entero en un text y al presionar un botón nos

muestre dicho valor elevado al cubo (emplear la función alert).

EJERCICIO 17

Cargar dos números en objetos de tipo text y al presionar un botón, mostrar el mayor.

EJERCICIO 18

Confeccionar una página que muestre un objeto SELECT con distintos tipos de pizzas

(Jamón y Queso, Muzzarella, Morrones). Al seleccionar una, mostrar en un objeto de tipo

TEXT el precio de la misma.

EJERCICIO 19

Confeccionar una página que permita seleccionar una pizza y la cantidad de unidades.

Luego al presionar un botón calcular el importe a pagar.

Utilizar un objeto de la clase SELECT para la selección de la pizza, pudiendo ser:

Queso: $ 4.

Page 96: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Jamón y queso: $ 6.

Especial: $ 10.

A la cantidad de pizzas cargarla en un objeto de la clase TEXT y en otro objeto de la clase

TEXT mostrar el importe total a abonar.

EJERCICIO 20

Confeccionar una página que permita tomar un examen múltiple choice. Se debe mostrar

una pregunta y seguidamente un objeto SELECT con las respuestas posibles. Al presionar

un botón mostrar la cantidad de respuestas correctas e incorrectas (Disponer 4 preguntas

y sus respectivos controles SELECT).

EJERCICIO 21

Confeccionar una página que muestre tres checkbox que permitan seleccionar los

deportes que practica el usuario (Futbol, Basket, Tennis) Mostrar al presionar un botón los

deportes que a elegido.

EJERCICIO 22

Confeccionar una página que muestre dos objetos de la clase RADIO solicitando que

seleccione si es mayor de 18 años o no. Al presionar un botón mostrar que radio está

seleccionado.

Page 97: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

LOGROS DE APRENDIZAJE

1. Conoce las estructuras básicas del lenguaje de programación.

2. Codifica ejercicios básicos lineales (E/S) de manera lógica y ordenada

3. Aplica correctamente las funciones básicas de entrada y salida y sus respectivos

formatos en la codificación de ejercicios.

4. Conoce y aplica las funciones matemáticas y de manejo de cadenas.

5. Soluciona y codifica ejercicios prácticos, aplicando estructuras condicionales.

6. Soluciona y codifica ejercicios prácticos, aplicando ciclos repetitivos.

7. Genera programas modulares utilizando de manera eficiente y práctica la

potencialidad de las funciones en el lenguaje.

8. Diseña y desarrolla soluciones informáticas con programación orientada a objeto.

LOGROS DE COMPRETENCIAS

1. Desarrollar el sistema de información que cumpla con los requerimientos de la

solución informática

Eventos onFocus y onBlur El evento onFocus se dispara cuando el objeto toma foco y el evento onBlur cuando el

objeto pierde el foco.

Ejemplo: Implementar un formulario que solicite la carga del nombre y la edad de una

persona. Cuando el control tome foco borrar el contenido actual, al abandonar el mismo,

mostrar un mensaje de alerta si el mismo está vacío.

<html> <head></head> <body> <script language="JavaScript"> function vaciar(control) { control.value=''; } function verificarEntrada(control) { if (control.value=='') alert('Debe ingresar datos'); } </script> <form name="form1"> Ingrese su nombre:

Page 98: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

<input type="text" name="nombre" onFocus="vaciar(this)" onBlur="verificarEntrada(this)"><br> Ingrese su edad: <input type="text" name="edad" onFocus="vaciar(this)" onBlur="verificarEntrada(this)"><br> <input type="button" value="Confirmar"> </form> </body> </html> A cada control de tipo TEXT le inicializamos los eventos onFocus y onBlur. Le indicamos,

para el evento onFocus la función vaciar, pasando como parámetro la palabra clave this

que significa la dirección del objeto que emitió el evento. En la función propiamente dicha,

accedemos a la propiedad value y borramos su contenido.

De forma similar, para el evento onBlur llamamos a la función verificarEntrada donde

analizamos si se ha ingresado algún valor dentro del control, en caso de tener un string

vacío procedemos a mostrar una ventana de alerta.

Eventos onMouseOver y onMouseOut El evento onMouseOver se ejecuta cuando pasamos la flecha del mouse sobre un

hipervínculo y el evento onMouseOut cuando la flecha abandona el mismo. Para probar

estos eventos implementaremos una página que cambie el color de fondo del documento.

Implementaremos una función que cambie el color con un valor que llegue como

parámetro. Cuando retiramos la flecha del mouse volvemos a pintar de blanco el fondo

del documento.

Ejemplo: <html> <head></head> <body> <script language="JavaScript"> function pintar(col) { document.bgColor=col; } </script> <a href="pagina1.html" onMouseOver="pintar('#ff0000')" onMouseOut="pintar('#ffffff')">Rojo</a> - <a href="pagina1.html" onMouseOver="pintar('#00ff00')" onMouseOut="pintar('#ffffff')">Verde</a>

Page 99: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

- <a href="pagina1.html" onMouseOver="pintar('#0000ff')" onMouseOut="pintar('#ffffff')">Azul</a> <br> <br> <br> <a href="pagina2.html">ver segundo problema</a> </body> </html>

Las llamadas a las funciones las hacemos inicializando las propiedades onMouseOver y

onMouseOut:

<a href="pagina1.html" onMouseOver="pintar('#ff0000')"

onMouseOut="pintar('#ffffff')">Rojo</a>

La función 'pintar' recibe el color e inicializa la propiedad bgColor del objeto document.

function pintar(col) { document.bgColor=col; } El segundo ejemplo pinta de color el interior de una casilla de una tabla y lo regresa a su

color original cuando salimos de la misma:

<html> <head></head> <body> <script language="JavaScript"> function pintar(objeto,col) { objeto.bgColor=col; } </script> <table border="1"> <tr> <td onMouseOver="pintar(this,'#ff0000')" onMouseOut="pintar(this,'#ffffff')">rojo</td> <td onMouseOver="pintar(this,'#00ff00')" onMouseOut="pintar(this,'#ffffff')">verde</td> <td onMouseOver="pintar(this,'#0000ff')" onMouseOut="pintar(this,'#ffffff')">azul</td> </tr> </table> </body>

Page 100: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

</html> La lógica es bastante parecida a la del primer problema, pero en éste, le pasamos como

parámetro a la función, la referencia a la casilla que queremos que se coloree (this):

<td onMouseOver="pintar(this,'#ff0000')" onMouseOut="pintar(this,'#ffffff')">rojo</td>

Evento onLoad El evento onLoad se ejecuta cuando cargamos una página en el navegador. Uno de los

usos más frecuentes es para fijar el foco en algún control de un formulario, para que el

operador no tenga que activar con el mouse dicho control. Este evento está asociado a la

marca body.

El ejemplo con la página completa es:

<html> <head></head> <body onLoad="activarPrimerControl()"> <script language="JavaScript"> function activarPrimerControl() { document.form1.nombre.focus(); } </script> <form name="form1"> Ingrese su nombre: <input type="text" name="nombre"><br> Ingrese su edad: <input type="text" name="edad"><br> <input type="button" value="Confirmar"> </form> </body> </html>

En la marca body inicializamos el evento onLoad con la llamada a la función

activarPrimerControl:

<body onLoad="activarPrimerControl()">

La función da el foco al control text donde se cargará el nombre:

function activarPrimerControl()

{

Page 101: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

document.form1.nombre.focus();

}

El objeto window. Al objeto window lo hemos estado usando constantemente. Representa la ventana del

navegador. window es un objeto global y tiene los siguienes métodos:

alert: Muestra un diálogo de alerta con un mensaje (a esta responsabilidad la hemos

utilizado desde los primeros temas)

prompt: Muestra un diálogo para la entrada de un valor de tipo string (utilizado desde el

primer momento)

confirm: Muestra un diálogo de confirmación con los botones Confirmar y Cancelar.

open y close: abre o cierra una ventana del navegador. Podemos especificar el tamaño de

la ventana, su contenido, etc.

[Variable=][window.]open(URL, nombre, propiedades)

Permite crear (y abrir) una nueva ventana. Si queremos tener acceso a ella desde la

ventana donde la creamos, deberemos asignarle una variable, sino simplemente

invocamos el método: el navegador automáticamente sabrá que pertenece al objeto

window.

El parámetro URL es una cadena que contendrá la dirección de la ventana que estamos

abriendo: si está en blanco, la ventana se abrirá con una página en blanco.

Las propiedades son una lista, separada por comas, de algunos de los siguientes

elementos:

• toolbar[=yes|no]

• location[=yes|no]

• directories[=yes|no]

• status[=yes|no]

• menubar[=yes|no]

• scrollbars[=yes|no]

• resizable[=yes|no]

Page 102: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

• width=pixels

• height=pixels

Es bueno hacer notar que a todas estas funciones las podemos llamar anteponiéndole el

nombre del objeto window, seguida del método o en forma resumida indicando

solamente el nombre del método (como lo hemos estado haciendo), esto es posible ya

que el objeto window es el objeto de máximo nivel.

Ejemplo:

valor=window.prompt("Ingrese valor","");

o

valor=prompt("Ingrese valor","");

Para reducir la cantidad de caracteres que se tipean normalmente encontraremos los

programas tipeados de la segunda forma.

El siguiente ejemplo de programa muestra varios de los métodos disponibles del objeto

window:

<HTML> <HEAD> <SCRIPT LANGUAGE="JavaScript"> function cerrar() { close(); // podemos escribir window.close(); } function abrir() { var ventana=open(); ventana.document.write("Estoy escribiendo en la nueva ventana<br>"); ventana.document.write("Segunda linea"); } function abrirParametros() { var ventana=open('','','status=yes,width=400,height=250,menubar=yes'); ventana.document.write("Esto es lo primero que aparece<br>"); } function mostrarAlerta()

Page 103: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

{ alert("Esta ventana de alerta ya la utilizamos en otros problemas."); } function confirmar() { var respuesta=confirm("Presione alguno de los dos botones"); if (respuesta==true) alert("presionó aceptar"); else alert("presionó cancelar"); } function cargarCadena() { var cad=prompt("cargue una cadena:",""); alert("Usted ingreso "+cad); } </SCRIPT> </HEAD> <BODY> Este programa permite analizar la llamada a distintas responsabilidades del objeto

window.<br>

<FORM> <input type="button" value="close()" onClick="cerrar()"> <br><br> <input type="button" value="open()" onClick="abrir()"> <br><br> <input type="button" value="open con parámetros" onClick="abrirParametros()" > <br><br> <input type="button" value="alert" onClick="mostrarAlerta()"> <br><br> <input type="button" value="confirm" onClick="confirmar()"> <br><br> <input type="button" value="prompt" onClick="cargarCadena()"> </FORM> </BODY> </HTML>

Page 104: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Propiedad location del objeto window El objeto location colabora directamente con el objeto window:

Cuando le asignamos una nueva dirección a la propiedad location del objeto window, el

navegador redirecciona a dicha página.

Ejemplo:

Implementaremos un pequeño ejemplo para ver la utilidad de esta propiedad:

Supongamos que tenemos un hipervínculo que al ser presionado muestre una vetana de

confirmación, si queremos ingresar a un sitio para mayores. En caso que el visitante

presione el botón afirmativo, redireccionamos a otra página, en caso contrario mostramos

un mensaje:

<html> <head> </head> <body> <script language="javascript"> function verificarMayorEdad() { if (window.confirm('Es mayor de edad?'))

Page 105: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

window.location='pagina2.html'; else window.alert('Cuando sea mayor de edad podrá ingresar'); } </script> <a href="javascript:verificarMayorEdad()">Ingresar al sitio para mayores</a> </body> </html>

Lo primero que tenemos que indicar es que para llamar a una función de javascript desde

un hipervínculo debemos anteceder la palabra javascript seguida de dos puntos y por

último, el nombre de la función:

<a href="javascript:verificarMayorEdad()">

La función verificarMayorEdad muestra la ventana con los botones confirmar y cancelar

(recordar que el método confirm del objeto window hace esto en forma automática).

Si se presiona el botón confirmar, la función confirm retorna true y por lo tanto se ejecuta

el verdadero del if:

if (window.confirm('Es mayor de edad?'))

window.location='pagina2.html';

else

window.alert('Cuando sea mayor de edad podrá ingresar');

Recordar que anteceder la palabra window a estas funciones y propiedades es opcional.

Por último la página que se redirecciona es:

<html> <head> <title>Problema</title> </head> <body> Bienvenido al sitio para adultos. </body> </html>

Page 106: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Propiedad history del objeto window

El objeto history colabora directamente con el objeto window:

El objeto history almacena todas las páginas que visitamos. Luego, con una serie de

funciones, podemos extraer de la memoria de la computadora las páginas ya visitadas, sin

tener que pedirlas nuevamente al servidor. Cuenta con las siguientes funciones:

window.history.back(); //Retrocede a la página anterior

window.history.forward(); //Avanza a la página siguiente almacenada en la

cache de la máquina.

window.history.go(); //Avanza o retrocede en la lista de páginas visitadas.

Llamar a la función back, tiene el mismo comportamiento que presionar el botón "Atrás"

del navegador.

El siguiente ejemplo nos permite cargar una segunda página y luego retroceder a la

primera página sin tener que solicitarla nuevamente al servidor:

Page 107: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

<html> <head> <title>Problema</title> <script language="javascript"> function avanzar() { window.history.go(1); } </script> </head> <body> <a href="pagina2.html">Ir a la página 2</a> <br> <br> <a href="javascript:avanzar()">Extraer del cache la segunda página</a> </body> </html> En esta primera página, la primera vez, debemos cargar la segunda página seleccionando

el hipervínculo pagina2. La segunda página:

<html> <head> <title>Problema</title> <script languge="javascript"> function retornar() { window.history.go(-1); } </script> </head> <body> <a href="javascript:retornar()">Retornar</a> </body> </html>

En la segunda página, mediante el método go y pasándole un valor negativo,

retrocedemos a la primera página sin tener la necesidad de recargarla. Podemos mejorar

el ejemplo accediendo al atributo length (almacena la cantidad de páginas de la lista) del

objeto history:

if (window.history.length>0)

Page 108: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

window.history.go(1);

else

alert('no hay otra página en la cache hacia adelante');

Propiedad screen del objeto window El objeto screen colabora directamente con el objeto window:

El objeto screen ofrece información acerca del monitor donde se está ejecutando el

navegador. La propiedades principales del objeto screen son:

availHeight : El alto de la pantalla en pixeles disponible para el navegador.

availWidth : El ancho de la pantalla en pixeles disponible para el navegador.

colorDepth : Representa el número de bits usados para representar los colores.

height : El alto de la pantalla en pixeles.

width : El ancho de la pantalla en pixeles.

El siguiente ejemplo de programa muestra el valor almacenado en las cinco propiedades

que tiene el objeto screen:

Page 109: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

<html> <head> <title>Problema</title> </head> <body> <script language="javascript"> document.write('Valores de las propiedades del objeto screen:<br>'); document.write('availHeight :' + screen.availHeight + '<br>'); document.write('availWidth :' + screen.availWidth + '<br>'); document.write('height :' + screen.height + '<br>'); document.write('width :' + screen.width + '<br>'); document.write('colorDepth :' + screen.colorDepth); </script> </body> </html> No olvidar que el objeto screen es una propiedad del objeto window, por lo que haber

dispuesto la sintaxis: window.screen.width etc. es la forma más completa, pero más

tediosa de escribir (recordar que el objeto window es el principal y lo podemos obviar

cuando accedemos a sus propiedades o métodos).

Propiedad navigator del objeto window Contiene información sobre el navegador web. La implementación de este objeto varía

entre navegadores (IExplorer, FireFox, Opera, etc.) Las propiedades comunes a estos

navegadores son:

appName : almacena el nombre oficial del navegador.

appVersion : almacena la versión del navegador.

cookieEnabled : almacena si las cookies están activas en el navegador.

platform : almacena la plataforma donde el navegador se está ejecutando.

plugins : almacena un array de los plugin cargados en el navegador.

Este pequeño ejemplo programa muestra los valores de las propiedades antes

anunciadas:

<html> <head> <title>Problema</title>

Page 110: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

</head> <body> <script language="javascript"> document.write('Valores de las propiedades del objeto navigator:<br>'); document.write('appName :' + navigator.appName + '<br>'); document.write('appVersion :' + navigator.appVersion + '<br>'); document.write('cookieEnabled :' + navigator.cookieEnabled + '<br>'); document.write('plugins :' + navigator.plugins.length + '<br>'); </script> </body> </html>

Archivo JavaScript externo (*.js) El lenguaje JavaScript permite agrupar funciones y disponerlas en un archivo separado a la

página HTML. Esto trae muchos beneficios: - Reutilización de funciones en muchos

archivos. No tenemos que copiar y pegar sucesivamente las funciones en las páginas en

las que necesitamos.

Facilita el mantenimiento de las funciones al encontrarse en archivos separados. - Nos

obliga a ser más ordenados. La mecánica para implementar estos archivos externos en

JavaScript es:

Ejemplo:

1 - Crear un archivo con extensión *.js y tipear las funciones en la misma:

function retornarFecha() { var fecha fecha=new Date(); var cadena=fecha.getDate()+'/'+(fecha.getMonth()+1)+'/'+fecha.getYear(); return cadena; } function retornarHora() { var fecha fecha=new Date(); var cadena=fecha.getHours()+':'+fecha.getMinutes()+':'+fecha.getSeconds(); return cadena; }

2 - Creamos un archivo html que utilizará las funciones contenidas en el archivo *.js:

Page 111: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

<html> <head> <title>Problema</title> <script language="javascript" type="text/javascript" src="pagina2.js"></script> </head> <body> <script language="javascript"> document.write('La fecha de hoy es:'+retornarFecha()); document.write('<br>'); document.write('La hora es:'+retornarHora()); </script> </body> </html> Es decir debemos disponer el siguiente código para importar el archivo *.js:

<script language="javascript" type="text/javascript" src="pagina2.js"></script>

Mediante la propiedad src indicamos el nombre del archivo a importar. Luego, podemos

llamar dentro de la página HTML, a las funciones que contiene el archivo externo *.js; en

nuestro ejemplo llamamos a las funciones retornarFecha() y retornarHora(). Como

podemos ver, el archivo html queda mucho más limpio.

Programación orientada a objetos en JavaScript. El lenguaje JavaScript no es un lenguaje orientado a objetos completo, pero permite

definir clases con sus atributos y responsabilidades. Finalmente nos permite definir

objetos de estas clases. Pero el otro pilar de la programación orientada a objetos, es decir

la herencia, no está implementada en el lenguaje. Veremos la sintaxis para la declaración

de una clase y la posterior definición de objetos de la misma.

Ejemplo: Desarrollaremos una clase que represente un cliente de un banco.

La clase cliente tiene como atributos:

nombre

saldo

y las responsabilidades o métodos de la clase son:

Constructor (inicializamos los atributos del objeto)

depositar

extraer

Page 112: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Para acostumbrarnos a trabajar en un archivo separado, implementamos 'pagina2.js' que

contiene la clase cliente con sus métodos (funciones) y sus atributos (variables):

function cliente(nombre,saldo) { this.nombre=nombre; this.saldo=saldo; this.depositar=depositar; this.extraer=extraer; } function depositar(dinero) { this.saldo=this.saldo+dinero; } function extraer(dinero) { this.saldo=this.saldo-dinero; } El nombre de la clase coincide con el nombre de la función principal que implementamos

(también llamado constructor de la clase):

function cliente(nombre,saldo) { this.nombre=nombre; this.saldo=saldo; this.depositar=depositar; this.extraer=extraer; } A esta función llegan como parámetro los valores con que queremos inicializar los

atributos. Con la palabra clave 'this' diferenciamos los atributos de los parámetros (los

atributos deben llevar la palabra clave this)

this.nombre=nombre;

this.saldo=saldo;

También en el constructor inicializamos la referencia a todos los métodos que contendrá

la clase:

this.depositar=depositar;

Page 113: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

this.extraer=extraer; Por último, implementamos todos los métodos de la clase: function depositar(dinero) { this.saldo=this.saldo+dinero; } function extraer(dinero) { this.saldo=this.saldo-dinero; } De nuevo recordemos que diferenciamos los atributos de la clase por la palabra clave this.

Ahora veamos el archivo HTML que incorpora el archivo JS y define un objeto de la clase

planteada:

<html> <head> <title>Problema</title> <script language="javascript" src="pagina2.js" type="text/javascript"> </script> </head> <body> <script language="javascript"> var cliente1; cliente1=new cliente('diego',1200); document.write('Nombre del cliente:'+cliente1.nombre+'<br>'); document.write('Saldo actual:'+cliente1.saldo+'<br>'); cliente1.depositar(120); document.write('Saldo luego de depositar $120---->'+cliente1.saldo+'<br>'); cliente1.extraer(1000); document.write('Saldo luego de extraer $1000---->'+cliente1.saldo+'<br>'); </script> </body> </html> Recordemos que lo primero que hacemos, según lo visto en conceptos anteriores, es

importar el archivo *.js:

<script language="javascript" src="pagina2.js" type="text/javascript">

Luego, la sintaxis para la creación de un objeto de la clase cliente es:

var cliente1;

Page 114: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

cliente1=new cliente('diego',1200);

Similar a conceptos anteriores cuando definiamos objetos de la clase Date o Array. Con el

operador new se crea un objeto de la clase cliente y se llama inmediatamente el

constructor de la clase. El constructor retorna una referencia del objeto que se almacena

en la variable cliente1. De ahí en más podemos acceder a los atributos y llamar a los

métodos del objeto cliente1 de la clase cliente:

document.write('Nombre del cliente:'+cliente1.nombre+'<br>');

document.write('Saldo actual:'+cliente1.saldo+'<br>');

cliente1.depositar(120);

document.write('Saldo luego de depositar $120---->'+cliente1.saldo+'<br>');

cliente1.extraer(1000);

document.write('Saldo luego de extraer $1000---->'+cliente1.saldo+'<br>');

Podemos decir que la ventaja que podemos obtener con el planteo de clases es hacer

nuestros programas mucho más organizados, entendibles y fundamentalmente, poder

reutilizar clases en distintos proyectos.

Definición de varias clases. En JavaScript podemos definir varias clases en un mismo archivo *.js. Vamos a desarrollar

un programa que contenga dos clases.

Ejemplo: Plantearemos una clase numeroquiniela que representa una persona que elige

un número de quiniela y además registra su nombre, la clase tiene por objetivo la carga

por el teclado del número deseado. Por otra parte crearemos una clase bolillero que

sortee un valor aleatorio entre 0 y 9 (que representa el valor extraido del bolillero).

La codificación de las dos clases es:

//clase numeroquiniela ************************************************

function numeroquiniela(nombre) { this.nombre=nombre; this.cargarnumero=cargarnumero; } function cargarnumero() {

Page 115: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

this.numero=prompt("Que número de quiniela quiere?",""); } function verificarsigano(num) { if (this.numero==num) return true; else return false; } //clase bolillero ************************************************ function bolillero() { this.numero=-1; } function sortear() { this.numero=Math.random()*11; } Al constructor de la clase numeroquiniela llega como parámetro el nombre de la persona

que la compra (podíamos cargarlo por teclado al nombre también). Al número que

selecciona lo cargamos por teclado. La clase numeroquiniela además tiene otra

responsabilidad, que es avisarnos si a ganado según el número sorteado.

Por otro lado en la página html definimos dos objetos de la clase numeroquiniela y uno de

la clase bolillero:

<html> <head> <title>Problema</title> <script language="javascript" src="pagina2.js" type="text/javascript"> </script> </head> <body> <script language="javascript"> var numeroquiniela1; numeroquiniela1=new numeroquiniela("juan"); numeroquiniela1.cargarnumero(); var numeroquiniela2; numeroquiniela2=new numeroquiniela("ana"); numeroquiniela2.cargarnumero(); var bolillero; bolillero=new bolillero(); bolillero.sortear();

Page 116: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

document.write('Numero sorteado:' + bolillero.numero + '<br>'); document.write(numeroquiniela1.nombre + ' eligió ' + numeroquiniela1.numero +'<br>'); document.write(numeroquiniela2.nombre + ' eligió ' + numeroquiniela2.numero +'<br>'); if (numeroquiniela1.numero==bolillero.numero) document.write(numeroquiniela1.nombre + ' a ganado <br>'); if (numeroquiniela2.numero==bolillero.numero) document.write(numeroquiniela2.nombre + ' a ganado <br>'); </script> </body> </html>

Vectores con componentes de tipo objeto. Podemos crear vectores con componente de tipo objeto.

Con un ejemplo veremos la sintaxis para trabajar con los mismos. Desarrollaremos una

clase que represente un hipervínculo y luego definiremos un vector con componentes de

tipo hipervinculo.

La clase hipervínculo es:

function hipervinculo(direccion,titulo) { this.direccion=direccion; this.titulo=titulo; this.retornarhipervinculo=retornarhipervinculo; } function retornarhipervinculo() { var cadena; cadena='<a href=' + this.direccion + '>' + this.titulo + '</a>'; return cadena; } Luego el archivo html que hace uso de la clase hipervínculo es:

<html> <head> <title>Problema</title> <script language="javascript" src="pagina2.js" type="text/javascript"></script> </head>

Page 117: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

<body> <script language="javascript"> var vector=new Array(); vector[0]=new hipervinculo('http://www.google.com','google'); vector[1]=new hipervinculo('http://www.msn.com','msn'); vector[2]=new hipervinculo('http://www.yahoo.com','yahoo'); for(f=0;f<vector.length;f++) { document.write(vector[f].retornarhipervinculo()); document.write('<br>'); } </script> </body> </html>

Creamos un objeto de la clase Array y luego guardamos en cada componente un objeto de

la clase hipervínculo (pasándole como parámetros al constructor, la dirección del sitio y el

texto a mostrar en la página. Luego recorremos con un 'for' las componentes del vector e

imprimimos en la página cada hipervínculo.

EJERCICIOS PROPUESTOS

EJERCICIO 1

Solicitar que se ingrese el nombre y la clave de un usuario. Mostrar una ventana de alerta

si en la clave se ingresan menos de 7 caracteres o más de 20.

EJERCICIO 2

Confeccionar tres páginas. Disponer tres hipervínculos, uno en cada página. Configurar el

primer hipervínculo con la dirección de la segunda página, el hipervínculo de la segunda

página debe cargar la tercera página y por último, la tercera página debe retroceder a la

primera página mediante el método go del objeto history (pasándole un número negativo

como parámetro).

EJERCICIO 3

Confeccionar un programa que cuando muestre la página, redimensione la ventana del

navegador y la centre en la pantalla dejando 50 pixeles arriba, abajo, izquierda y derecha.

Page 118: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Aca también tenemos que utilizar otra función del objeto window llamada moveTo

(desplaza la ventana del navegador a una determinada fila y columna de la pantalla):

function redimensionar() { window.moveTo(50,50); window.resizeTo(window.screen.width - ? ,window.screen.height - ?); } Qué valor debemos disponer en los signos de interrogación ?

EJERCICIO 4

Pintar el fondo del navegador de rojo si el navegador es el Internet Explorer.

Para cambiar el color de fondo debemos acceder a la propiedad bgColor del objeto

document:

document.bgColor='#ff0000';

EJERCICIO 5

Plantear una clase persona (que permita cargar por teclado su nombre y edad).

Por otro lado crear una clase empresa que tenga como atributos el nombre y la edad tope

para que una persona pueda ingresar como trabajador en la misma.

Confeccionar en la página HTML un pequeño programa en JavaScript que defina 3 objetos

de la clase persona y 1 de la clase empresa. Mostrar cuántas de esas personas están

inhabilitadas para ingresar como trabajadores.

Page 119: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

TALLERES

EJERCICIO 1

Confeccionar una función que mueva la ventana a la coordenada (20,20) cuando se cargue

la página (la función que desplaza la ventana del navegador a una determinada

coordenada se llama moveTo y tiene dos parámetros que indican la columna y la fila en

pixeles.

EJERCICIO 2

Confeccionar una página que permita abrir otra ventana cuando se presiona un botón.

Dicha ventana debe tener como ancho 600 pixeles y alto 300 pixeles, y debe mostrar el

menú y su barra de herramientas.

EJERCICIO 3

Confeccionar un programa que agrande el tamaño de la ventana del navegador y ocupe

toda la pantalla.

Ayuda: Confeccionar una función que se dispare para el evento onLoad de la marca Body:

<body onLoad="redimensionar()">

La función redimensionar debe llamar a la función resizeTo del objeto window:

window.resizeTo(640,480);

Si ejecutamos esto, el tamaño de la ventana del navegador se redimensionará tomando

como ancho el valor 640 y como alto 480.

EJERCICIO 4

Pintar el fondo del navegador de rojo si el navegador es el Internet Explorer.

Para cambiar el color de fondo debemos acceder a la propiedad bgColor del objeto

document:

document.bgColor='#ff0000';

EJERCICIO 5

Confeccionar una funcion en un archivo externo (*.js) que solicite la carga del nombre de

un usuario y lo retorne.

Page 120: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Luego, otra función que permita ingresar una clave y la muestre en la página.

EJERCICIO 6

Confeccionar una clase llamada suma, que contenga dos atributos (valor1, valor2) y tres

métodos: cargarvalor1, cargarvalor2 y retornar resultado. Implementar la clase suma en

un archivo separado.

La definición de un objeto de la clase que deben plantear es:

var s=new suma();

s.primervalor(10);

s.segundovalor(20);

document.write('La suma de los dos valores es:'+s.retornarresultado());

EJERCICIO 7

Confeccionar una clase persona que permita almacenar el nombre y la edad. Luego definir

un vector de 4 componentes de tipo persona. Imprimir el nombre de la persona de mayor

edad; decir también si hay más de una persona con la edad mayor

Page 121: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

BIBLIOGRAFIA

CASO PARRA. ASTOR. Javascript. Edición 2010. 1ª edición. ANAYA MULTIMEDIA. 336.

SAWYER MCFARLAND. DAVID. Javascript. 1ª edición. ANAYA MULTIMEDIA.656.

JOSÉ MANUEL ALARCÓN. Programación En Javascript (actualizada A Javascript 1.3 Y Jscript 5). 1ª

edición. ANAYA MULTIMEDIA. 320.

OROS, J.C. Diseño De Páginas Web Con Xhtml, Javascript Y Css (navegar En Internet). Editorial Ra-

ma.368

FRANCISCO JAVIER CEBALLOS SIERRA. Enciclopedia. Lenguaje C++ 2ª edición. Ra-Ma. 899

MOLDES F JAVIER. Lenguaje C (2006) Guias Practicas. 1ª edición. ANAYA MULTIMEDIA

VV.AA. Programacion en C. 2ª edición. MCGRAW-HILL/INTERAMERICANA DE ESPAÑA S.A.

Page 122: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

GLOSARIO Array: arreglo

Avail: disponible

Back: atrás de

Blur: indefinido

Border: borde

Break: rotura

Button: boton

Case: caso

Checkbox: casilla de verificación

Cookie: galleta

Date: fecha

Default: por defecto

Do: haga

Else: distinto o sino

Enabled: habilitado

False: falso

Focus: foco

For: Para

Form: forma o formulario

Forward: delante

Full: completo

Function: funcion

Get: leer o recibir

Page 123: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Height: altura

Hidden: oculto

If: si condicional

Input: entrada

Load: cargar

Location: localización

Lower: minuscula

Math: matematicas

Option: opcion

Out: hacia fuera

Over: sobre

Parseint: función para convertir a parte numérica entera

Password: contraseña

Pixel: abreviatura de picture element. Único punto en una imagen grafica

Plugins: conectar

Prompt: aviso

Reset: reajuste o reiniciar

Resizable: dimensionar

Return: retornar o volver

Screen: pantalla

Script: escritura

Scrollbar: barra de desplazamiento

Select: seleccionar

Set: sistema

Page 124: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

Status: estado

Stirling: cadena de caracteres

Submit: someter

Switch: interruptor

Table: recuadro rectangular

Text: texto

Toolbar: barra de herramientas

True: verdad

Type: tipo

Upper: majuscules

Value: valor

While: mientras que

Width: anchura

Window: ventana

Write: escribir

Page 125: Contenido - institutobritanico.edu.co · Vectores y matrices. Estructuras ( Struct ) Conceptos básicos de Funciones. Ciclos repetitivos. Transferencias de control condicional. Manejo

vcv