Download - Capitulo 11 Objetos 2
-
Captulo 11. Los Objetos
Qu se ha estudiado hasta ahora? Los pasos a seguir para crear un programa.
Caractersticas generales de javascript y tres maneras escribir instrucciones javascript -
en documentos HTML- para que stos sean ejecutados por el computador. Reglas para
la creacin de variables (identificadores), declaracin, inicializacin y uso de diferentes
tipos de dato. Utilizacin de una ventana emergente para la presentacin mensajes y
valores de variables (salida, resultados). Uso de diferentes operadores y manejo de varias
operaciones.
Queda utilizar varias funciones matemticas y clculos trigonomtricos, as como el
manejo de cierto tipo de datos como son las cadenas de caracteres, para lo que se
necesitan utilizar funciones, las cuales las encontramos en los elementos bsicos de la
programacin javascript, como son los objetos, utilizando sus propiedades y mtodos.
Programacin Orientada a Objetos
La programacin orientada a objetos (POO) -en ingls OOP (Oriented Objetc
Programing)- utiliza para el diseo de programas objetos. Se puede decir que los objetos
son las instancias bsicas en la creacin de programas, los cuales estn formadas por
datos y procedimientos. Esta es una gran diferencien entre la programacin estructurada,
donde estos estn separados y sin relacin.
-
270 Captulo 11. Los Objetos
Para que un lenguaje se considere orientado a objetos, tiene que cumplir con una serie
de caractersticas tales como:
Herencia
Encapsulamiento
Abstraccin
Polimorfismo
Como ejemplo de lenguajes orientado a objetos, en el cuadro 11.1 se mencionan algunos.
Cuadro 11.1 Lenguajes orientados a objetos (fuente: http://es.wikipedia.org/wiki/Programacn_orientada_a_objetos)
ActionScript Ada C++
C# Clarion Clipper
D Object Pascal (Delphi) Gambas
Fortran 90/95 Java Objective-C
PHP PowerBuilder Python
Ruby VB.NET Visual FoxPro7
Visual Basic 6.0 Visual DataFlex Visual Objects
XBase++ Lenguaje DRP Scala8
Javascript no cumple a cabalidad con las caractersticas de la POO, ya que la herencia
se realiza a travs de la programacin basada en prototipos. Ac los objetos no son
creados por instanciacin de clases, sino mediante de la clonacin de otros objetos
(prototipos). Por lo que javascript es un lenguaje de programacin basado en prototipos.
Como ejemplos de stos, se muestran algunos en el cuadro 11.2.
Cuadro 11.2 Lenguajes de programacin basado en prototipos (fuente: http://es.wikipedia.org/wiki/Programacin_basada_en_prototipos)
Selft Javascript
Pauscal Cecil
NwetonScript Io
MOO REBOL
Squeak
-
Captulo 11. Funciones 271
Qu son los objetos?
Cuando creamos un objeto, en realidad estamos creando un 'molde', que recibe el
nombre de clase, y propiamente hablando en javascript, no sera clases sino prototipos,
en el que especificamos todo lo que se puede hacer con los objetos (ahora s) que utilicen
ese molde. Es decir, en realidad lo que uno hace es crear una clase. Cuando va a
utilizarla, crea instancias de la clase, y a estas instancias es a lo que se le llama objeto.
En la programacin orientada a objetos, un objeto es una instancia abstracta, son
elementos de informacin, los cuales estn definidos fundamentalmente por varios
conceptos:
Atributos
Mtodos
Los cuales estn definidos por su clase.
Los Atributos o lo que es lo mismo, sus propiedades o caractersticas intrnsecas de los
objetos, son los datos que caracterizan al objeto. Son variables que almacenan datos
relacionados al estado de un objeto.
Mtodos (usualmente llamados funciones) son los que caracterizan el comportamiento,
es decir, son todas las acciones (denominadas operaciones) que el objeto puede realizar
por s mismo. Estas operaciones hacen posible que el objeto responda a las solicitudes
externas (o que acte sobre otros objetos). Adems, las operaciones estn estrechamente
ligadas a los atributos, ya que sus acciones pueden depender de, o modificar, los valores
de un atributo.
En casi todos los lenguajes de programacin orientados a objeto, el operador "punto" (.)
es usado para referirse o "llamar" a un mtodo particular de un objeto. Por ejemplo, en
javascript para poner en maysculas todas las letras de una variable llamada nombre
(cadena de caracteres) se utiliza el mtodo toUpperCase(), escribindose de la siguiente
forma:
nombre.toUpperCase();
-
272 Captulo 11. Los Objetos
Objetos Math
Formalmente no existen funciones matemticas, lo que existen son mtodos asociados
al objeto Math. Pero como el objeto Math es un objeto esttico, es decir que a partir de
l no se genera ningn otro tipo de objeto Math, podemos pensar que sus mtodos son
nicos.
As como hay operadores matemticos hay funciones matemticas. Que se pueden
definir como palabras que tienen una funcin definida dentro de las matemticas.
Para utilizar una propiedad o un mtodo de cualquier objeto hay que escribir primero el
nombre del mtodo luego un punto y a continuacin el nombre del mtodo (funcin), as:
Math.nombre
Propiedades y Mtodos
A continuacin se muestran, en la tabla 11.1, algunos de los mtodos (funciones)
correspondientes a este objeto.
Tabla 11.1 Mtodos del objeto MATH
No. Nombre Descripcin Ejemplo
1 abs(x) Devuelve el valor absoluto de un nmero.
alert ("El valor absoluto de "+ x + " es = " + Math.abs(x)) ;
2 acos(x)
Devuelve el arcocoseno de x. Si el valor de x est entre -1 y 1, devuelve un valor entre 0 y PI radianaes, en caso contrario devuelve NaN. Si se quiere en grados se multiplica por PI/180
alert ("El arcocoseno de "+ x + " es = " + Math.acos(x) + " radianes" ) ;
3 asin(x)
Devuelve el arcoseno de x. Si el valor de x est entre -1 y 1, devuelve un valor entre -PI/2 y PI/2 radianaes, en caso contrario devuelve NaN. Si se quiere en grados se multiplica por PI/180
alert ("El arcoseno de "+ x + " es = " +Math.asin(x) + " radianes" ) ;
-
Captulo 11. Funciones 273
4 atan(x)
El arcotangente de x, devuelve un valor entre -PI/2 y PI/2 radianaes, en caso contrario de estar vacio, devuelve NaN. Si se quiere en grados se multiaplica por PI/180
alert ("El arcotangente de "+ x + " es = " + Math.atan(x) + " radianes" ) ;
5 ceil(x)
Redondea el valor real x a un nmero entero MAYOR ms cercano. El resultado es un valor entero
alert ("El valor de "+ x + " redondeado al entero mayor es = " + Math.ceil(x) ) ;
6 cos(x)
El coseno de un ngulo x (en radianes) devuelve un valor entre -1 y 1. En caso de estar vacio, devuelve NaN.
alert ("El coseno de "+ x + " es = " +Math.cos(x) );
7 exp(x) Devuelve el valor real de elevar la constante de Euler e (2.7183), a un expoente x.
alert ("La constnte de Euler e (2.7183) elevada a la "+ x + " es = " +Math.exp(x) );
8 floor(x)
Redondea el valor real x a un nmero entero MENOR ms cercano. El resultado es un valor entero
alert ("El valor de "+ x + " redondeado al entero menor es = " + Math.floor(x)) ;
9 log(x)
Devuelve el logaritmo natural (base e), de un valor x positivo. Si x es cero, devuelve -Infinity y si es negativo (o vaco), devuelve NaN.
alert ("El logaritmo natural de "+ x + " es = " + Math.log(x) );
10 pow(x,y) Potenciacin. Eleva un valor real x a un exponente real y.
alert ("Elevar "+ x + " a la " + y + " es = " + Math.pow(x,y) );
11 round(x) Redondea x al entero ms cercano. El resultado es entero.
alert ("Redondear "+ x + " = " +Math.round(x) );
12 sin(x)
El seno de un ngulo x (en radianes) devuelve un valor entre -1 y 1. En caso de estar vacio, devuelve NaN.
alert ("El seno de "+ x + " es = " +Math.sin(x) );
13 sqrt(x)
Raz cuadrada. Calcular la raz cuadrada de un valor real x. Si x es negativo o vaco, se devuelve NaN.
alert ("Raz cuadrada de " + x + " es = " + Math.sqrt(x));
14 tan(x) La taqngente de un ngulo x (en radianes) devuelve un valor entre
alert ("La tangente de "+ x + " es = " +Math.tan(x) );
-
274 Captulo 11. Los Objetos
-1 y 1. En caso de estar vacio, devuelve NaN.
Tabla 11.3 Propiedades del objeto MATH
No. Nombre Descripcin Ejemplo
1 E Devuelve el valor de la constante de Euler: 2.7183
alert ("El valor de de la constante de Euler e es = " + Math.E ) ;
2 PI Devuelve el valor de la constante pi : 3.14159
alert ("El valor de de la constante pi es = " + Math.PI ) ;
Ejemplo 11.1
Se leen cuatro valores reales, disear una aplicacin javascript que realice lo siguiente:
1. Sumar los valores absolutos de todos
2. Multiplicar solo las partes enteras de los valores ledos
3. Si los valores representaran las pendientes de 4 lneas rectas, calcular el ngulo
de inclinacin en grados-, de las dos primeras, respecto al eje de las abscisas.
4. Si el tercer y cuarto valor representan los galones de pintura que se necesitan para
pintar un tanque, determinar exactamente, cuntos galones se tienen que comprar
en la ferretera.
5. Sumar la raz cuadrada del primero, ms la raz cbica del segundo, y restarle el
cubo de la suma del tercer ms el cuarto valor, y redondear el resultado al entero
mayor.
Solucin
Anlisis
Datos: a, b, c, d
Respuestas: Son seis respuestas
-
Captulo 11. Funciones 275
Clculos: Sumar, valor absoluto, elevar una base a un exponente real
Raz cuadrada, constante pi, arco seno, coseno o tangente.
No se va a realizar el pseudocdigo, ya que las instrucciones son bastante fcil de seguir.
Se codificar directamente en javascript.
Codificacin. Recuerden que la codificacin debe realizarse por partes. Se sugiere
primero hacer la declaracin de las variables y la lectura de datos. Compilar, ejecutar
revisar y corregir si es necesario. Y as sucesivamente. Ac se presenta la codificacin
completa.
// Objeto Math. Mtodos y propiedades // Delcaracin de varialbes var a, b, c, d, aa, ba, ca, da, sva, pea, peb, pec, ped, ppe ; var inag, inbg, gc, gd, r2a, r3b, s1 ; // Constantes pi = Math.PI ; // Lectura de los datos a = parseFloat ( prompt ("Dar un valor entero a = " , "") ) ; b = parseFloat ( prompt ("Dar un valor entero b = " , "") ) ; c = parseFloat ( prompt ("Dar un valor entero c = " , "") ) ; d = parseFloat ( prompt ("Dar un valor entero d = " , "") ) ; // 1) Suma valores absolutos aa = Math.abs(a) ; ba = Math.abs(b) ; ca = Math.abs(c) ; da = Math.abs(d) ; sva = aa + ba + ca + da ; alert ("1) Suma de todos los valores absolutos = " + sva ) ; // 2) Producto de partes enteras pea = parseInt (a) ; peb = parseInt (b) ; pec = parseInt (c) ; ped = parseInt (d) ; ppe = pea * peb * pec * ped ; alert ("2) Producto de partes enteras de todos los valores = " + ppe ) ;
-
276 Captulo 11. Los Objetos
// 3) ngulos de innacin en grados: 1 y 2 inag = Math.atan (a) * 180 / pi ; inbg = Math.atan (b) * 180 / pi ; alert ("3a) Inclinacin, en grados, de la recta 1 : " + inag ) ; alert ("3b) Inclinacin, en grados, de la recta 2 : " + inbg ) ; // 4) Galones de pintura gc = Math.ceil (c); gd = Math.ceil (d); alert ("4a) Hay que comprar " + gc + " galones de pintura de c " ) ; alert ("4b) Hay que comprar " + gd + " galones de pintura de d " ) ; // 5) Clculos varios r2a = Math.sqrt (a) ; r3b = Math.pow (b,1/3) ; s1 = r2a + r3b; cub = Math.pow (c + d , 3) ; op = s1 - cub; opr = Math.round (op) ; alert ("5a) Clcuos sin redondera = " + op ) ; alert ("5b) Clcuos redondeados = " + opr ) ;
Ejecucin
La ejecucin inicia con la solicitud de todos los cuatro valores reales, como se ve en la
figura 11.1
-
Captulo 11. Funciones 277
Figura 11.1 Introduccin de datos para la aplicacin
Las respuestas se muestran en la figura 11.2
-
278 Captulo 11. Los Objetos
Figura 11.2 Respuestas de la aplicacin
Luego de mostrar todas las respuestas, se tiene que ver el archivo html base (figura 11.3).
En caso que una de las respuestas no aparezca, tiene que presionarse la secuencia de
teclas Shift+Ctrl+j para mostrar los errores javascript y corregirlos.
Figura 11.3 La interfaz, correspondiente al hipertexto bsico. Se muestra hasta el final, luego que todas
las respuestas han salido.
Objetos String
Los objetos para utilizar en el tratamiento de cadena de caractres.
Funciones y propiedades para cadena de caracteres
-
Captulo 11. Funciones 279
Cada vez que se asigna un valor string (cadena de caracteres) a una variable, se crea un
objeto de la clase string. Al asignar un string a una variable no se usa el operador new.
Propiedades y Mtodos
Mtodos
Los mtodos manipulan la apariencia de la cadena (color, tamao, etc.). Suponiendo que
la variable cadena es un objeto de la clase string, el uso de los mtodos se realiza de la
siguiente manera:
cadena.metodo( );
La sintaxis muy parecida a la de las propiedades, con la diferencia que al final hay que
colocar un parntesis, el cual ya explicaremos ms adelante. Se van a utilizar dos tipos
de mtodos:
Mtodos sobre el contenido
Mtodos sobre la apariencia
Mtodos sobre el contenido
Recordar que las string tienen como base de ndices el cero. Es decir que el primer
carcter de la cadena ocupa el puesto cero.
En el cuadro 11.3 se resumen los mtodos sobre el contenido.
Cuadro 11.3 Mtodos de cadenas de caracteres sobre el contenido
Nombre Descripcin Ejemplo Resultado
-
280 Captulo 11. Los Objetos
charAt(indice)
Muestra el carcter que ocupa la posicin indice en la cadena.
nombre=Universidad; c = nombre.charAt(3);
alert ( c ); V
indexOf(carcter)
Muestra el primer ndice del carcter. Es decir, la primera posicin donde se consiga el carcter indicado.
nombre=Universidad; c = nombre.indexOf(i);
alert ( c ); 2
lastIndexOf(carcter)
Muestra el ltimo ndice del carcter. Al contrario del anterior, muestra la ltima posicin del carcter.
nombre=Universidad; c = nombre.lastIndexOf(i);
alert ( c ); 7
Cuadro 11.3 (cont.) Mtodos de cadenas de caracteres sobre el contenido
Nombre Descripcin Ejemplo Resultado
substring(primerindice, ultimoindice)
Muestra la cadena de caracteres que hay entre el primer ndice (incluido) y ltimo indice (no incluido).
nombre=Universidad; c = nombre.substring(1,4);
alert ( c ); niv
substring(primerindice)
Muestra la cadena de caracteres que hay desde el primer ndice (incluido) hasta el ltimo indice (incluido).
nombre=Universidad; c = nombre.substring(1);
alert ( c ); niversidad
substring(indice_negativo)
Muestra la cadena de caracteres que hay desde el ndice cero hasta el ltimo indice (incluido).
nombre=Universidad; c = nombre.substring(-2);
alert ( c ); Universidad
toLowerCase()
Muestra todos los caracteres de la cadena en minsculas.
nombre=LaUrA; c = nombre.toLowerCase();
alert ( c ); laura
toUpperCase()
Muestra todos los caracteres de la cadena en maysculas.
nombre=LaUrA; c = nombre.toUpperCase();
alert ( c ); LAURA
-
Captulo 11. Funciones 281
A continuacin se muestran, en la tabla 11.3, algunos de los mtodos (funciones)
correspondientes a este objeto. En la tabla 11.4 se muestra la propiedad ms utilizada.
Tabla 11.3 Mtodos del objeto STRING
No. Nombre Descripcin Ejemplo
1 substr(x)
Extrae los caracteres de una cadena a partir de su posicin x hasta el final de la misma; x es un valor entero. La primera posicin en una cadena es 0. Si la posicin es -1, devuelve el ltimo caracter.
alert ("Extrae los caracteres de la cadena "+ nom + " a partir de la posicin 2 : " +cc.substr(x));
2 substring(inicio,fin)
Extrae los caracteres de una cadena a partir de su posicin de inicio -valor entero-, hasta la posicin fin -valor entero-. El caracter de inicio se toma y el caracter fin, no se toma.
Si solo se utiliza un parametro, el inicio, extrae la cadena a partir del inicio, hasta el final.
alert ("Extrae los caracteres de la cadena "+ nom + " a partir de la posicin inicial a la final : " + cc.substr(x));
3 toLowerCase() Coloca todos los caracteres en minscula.
alert ("Colocar en mincula "+ nom + " = " + nom.toLowerCase() ) ;
4 toUpperCase() Coloca todos los caracteres en mayscula.
alert ("Colocar en maycula "+ nom + " = " + nom.toUpperCase() ) ;
Tabla 11.4 Propiedades del objeto STRING
No. Nombre Descripcin Ejemplo
-
282 Captulo 11. Los Objetos
1 length
Devuelve la cantidad de caracteres de la cadena. Ejemplo. Si cc="Hola", cc.length, devolver: 4, valor entero
alert ("La cantidad de caracteres del nombre " + nom + " es : " + nom.length ) ;
Ejemplo 11.2
Leer el nombre y apellido de una persona y escribir su nombre completo, indicar cuntos
caracteres tiene el nombre y cuntos el apellido y sumar la cantidad de caracteres del
nombre ms las del apellido.
Solucin
Anlisis
Datos: dos
Respuestas: tres
Clculos: para contar la cantidad de letras utilizar propiedad length.
No se va a realizar el pseudocdigo, ya que no tenemos una funcin en pseudocdigo
para contar el nmero de letras de una cadena.
Codificacin. La codificacin muestra en la figura 11.4
-
Captulo 11. Funciones 283
Figura 11.4 Propiedad length para cadena de caracteres. Codificacin ejemplo 11.2
Ejecucin
Los datos se muestran en la figura 11.5.
Figura 24. Resultado de las propiedades de alto nivel en ejemplo 8
-
284 Captulo 11. Los Objetos
Luego de introducir los datos, que son dos, la aplicacin comienza a mostrar las
respuestas, que se ven en la figura 11.6.
Figura 11.6 Respuestas del ejemplo 11.2
Ejemplo 11.3
En una seccin de matemtica, al final del semestre, quedan slo 4 estudiantes, de los
cuales se conocen los siguientes datos: nombre, apellido, cdula y las notas de los cuatro
parciales. Sabiendo que los parciales tienen el mismo porcentaje, disear una aplicacin
en javascript para el profesor, que realice lo siguiente:
1. Mostrar el apellido y la previa de cada estudiante
2. Calcular la nota promedio de los segundos parciales
3. Escribir todos los nombres completos de los estudiantes. Colocar los apellidos en
mayscula y los nombres en minscula, separados por una coma.
4. Sumar los primeros dgitos de las cdulas de los dos primeros estudiantes
-
Captulo 11. Funciones 285
5. Obtener una palabra con las dos ltimas letras de los apellidos de los ltimos 3
estudiantes.
Solucin
Anlisis
Datos: 4 apellidos y 4 nombres (cadena de caracteres)
4 cdulas (cadena de caracteres) y
16 notas de parciales (numrico entero). Cuatro por cada parcial
Respuestas: pregunta 1: 4 nombres y notas
Pregunta 2: 1 nota promedio
Pregunta 3: 4 nombres completos
Pregunta 4: Un valor entero
Pregunta 5: Una palabra (cadena de caracteres)
Clculos: Vamos a utilizar mtodos y propiedades de los objetos MATH y STRING.
Codificacin. A continuacin se muestra la codificacin completa de la aplicacin. En
ella se muestra todo el archivo txt, tanto la codificacin html, como la de javascript
integrada en la pgina base.
Objeto String // Objeto String. Mtodos y propiedades // Delcaracin de varialbes var a1, n1, ci1, p11, p12, p31, p41, prev1, a2, n1, ci1, p11, p12, p31, p41, prev2 ;
-
286 Captulo 11. Los Objetos
var a3, n3, ci3, p13, p13, p33, p43, prev3, a4, n4, ci4, p14, p14, p34, p44, prev4 ; var prev1, prev2, prev3, prev4, prom2 ; var di1, di2, di1n, di2n, sdig,long2, long3, long4, letras2, letras3, letras4, palabra ; // Constantes pi = Math.PI ; // Lectura de los datos // Alumno 1 a1 = prompt ("Apellido de alumno No. 1 " , "") ; n1 = prompt ("Nombre de alumno No. 1 " , "") ; ci1 = prompt ("Cdula de alumno No. 1 " , "") ; p11 = parseInt ( prompt ("Nota parcial 1 del alumno No. 1 (entero) = " , "") ) ; p21 = parseInt ( prompt ("Nota parcial 2 del alumno No. 1 (entero) = " , "") ) ; p31 = parseInt ( prompt ("Nota parcial 3 del alumno No. 1 (entero) = " , "") ) ; p41 = parseInt ( prompt ("Nota parcial 4 del alumno No. 1 (entero) = " , "") ) ; // Alumno 2 a2 = prompt ("Apellido de alumno No. 2 " , "") ; n2 = prompt ("Nombre de alumno No. 2" , "") ; ci2 = prompt ("Cdula de alumno No. 2 " , "") ; p12 = parseInt ( prompt ("Nota parcial 1 del alumno No. 2 (entero) = " , "") ) ; p22 = parseInt ( prompt ("Nota parcial 2 del alumno No. 2 (entero) = " , "") ) ; p32 = parseInt ( prompt ("Nota parcial 3 del alumno No. 2 (entero) = " , "") ) ; p42 = parseInt ( prompt ("Nota parcial 4 del alumno No. 2 (entero) = " , "") ) ; // Alumno 3 a3 = prompt ("Apellido de alumno No. 3 " , "") ; n3 = prompt ("Nombre de alumno No. 3" , "") ; ci3 = prompt ("Cdula de alumno No. 3" , "") ; p13 = parseInt ( prompt ("Nota parcial 1 del alumno No. 3 (entero) = " , "") ) ; p23 = parseInt ( prompt ("Nota parcial 2 del alumno No. 3 (entero) = " , "") ) ; p33 = parseInt ( prompt ("Nota parcial 3 del alumno No. 3 (entero) = " , "") ) ; p43 = parseInt ( prompt ("Nota parcial 4 del alumno No. 3 (entero) = " , "") ) ; // Alumno 4 a4 = prompt ("Apellido de alumno No. 4 " , "") ; n4 = prompt ("Nombre de alumno No. 4" , "") ; ci4 = prompt ("Cdula de alumno No. 4 " , "") ; p14 = parseInt ( prompt ("Nota parcial 1 del alumno No. 4 (entero) = " , "") ) ; p24 = parseInt ( prompt ("Nota parcial 2 del alumno No. 4 (entero) = " , "") ) ; p34 = parseInt ( prompt ("Nota parcial 3 del alumno No. 4 (entero) = " , "") ) ; p44 = parseInt ( prompt ("Nota parcial 4 del alumno No. 4 (entero) = " , "") ) ; // 1) Apellidos y previas de todos los alumnos prev1 = (p11 + p21 + p31 + p41)/4 * 0.70 ; prev2 = (p12 + p22 + p32 + p42)/4 * 0.70 ;
-
Captulo 11. Funciones 287
prev3 = (p13 + p23 + p33 + p43)/4 * 0.70 ; prev4 = (p14 + p24 + p34 + p44)/4 * 0.70 ; alert ("1a) " + a1 + " tiene previa = " + prev1 ) ; alert ("1b) " + a2 + " tiene previa = " + prev2 ) ; alert ("1c) " + a3 + " tiene previa = " + prev3 ) ; alert ("1d) " + a4 + " tiene previa = " + prev4 ) ; // 2) Promedio de segundos parciales prom2 = (p21 + p22 + p23 + p24)/4 ; alert ("2) El promedio de los segundos parciales es : " + prom2 ) ; // 3) Nombres completos de todos los estudiantes alert ("3a) " + a1.toUpperCase() + ", " + n1.toLowerCase() ) ; alert ("3b) " + a2.toUpperCase() + ", " + n2.toLowerCase() ) ; alert ("3c) " + a3.toUpperCase() + ", " + n3.toLowerCase() ) ; alert ("3d) " + a4.toUpperCase() + ", " + n4.toLowerCase() ) ; /* 4) Sumar primeros dgitos de 2 primeras cdulas Como las cdulas se han ledo como cadena de caracteres, se les pueden aplicar los mtodos y propiedades string. Una vez se obtenga el primer dgito (tipo cadena), se convertir a valor numrico entero. */ // Obteniendo primeros dgitos de cdulas 1 y 2 di1 = ci1.substring(0,1); di2 = ci2.substring(0,1); // Convieriendo primeros dgitos tipo cadena a valores numricos enteros di1n = parseInt (di1); di2n = parseInt (di2); sdig = di1n + di2n ; alert ("4) Suma primeros dgistos de cdulas 1 y 2 = " + sdig ) ; // 5) Formar palabra con ltimas 2 letras de los ltimos 3 apellidos // Determinar cantidad de caracteres de cada apellido long2 = a2.length; long3 = a3.length; long4 = a4.length; // Obtener ltimas 2 letras de cada apellido letras2 = a2.substr(long2-2); letras3 = a3.substr(long3-2); letras4 = a4.substr(long4-2); // Palabra formada palabra = letras2 + letras3 + letras4; alert ("5) La palabra con las ltimas 2 letras de los ltimos 3 apellidos : " + palabra ) ;
-
288 Captulo 11. Los Objetos
PLC, 02 de mayo de 2015 Objeto String. Operaciones com mtodos En una seccin de matemtica, al final del semestre, quedan slo 4 estudiantes, de los cuales se conocen los siguientes datos: nombre, apellido, cdula y las notas de los cuatro parciales. Sabiendo que los parciales tienen el mismo porcentaje, disear una aplicacin en javascript para el profesor, que realice lo siguiente: Mostrar el apellido y la previa de cada estudiante Calcular la nota promedio de los segundos parciales Escribir todos los nombres completos de los estudiantes. Colocar los apellidos en mayscula y los nombres en minscula, separados por una coma. Sumar los primeros dgitos de las cdulas de los dos primeros estudiantes Obtener una palabra con las dos ltimas letras de los apellidos de los ltimos 3 estudiantes. prof. gImery seccin 00
Ejecucin
Los datos son los siguientes:
No. Apellido Nombre CI P1 P2 P3 P4
1 Montalvo Claudia 85123114 3 9 5 6
2 Guzzardi Laura 86125556 4 2 8 9
3 Figueroa Patricia 20366598 2 8 7 7
4 Herrera Elizabeth 20850259 3 2 10 9
Las respuestas de la aplicacin para los datos anteriores se muestran en la figura 11.7.
Respuestas para la primera pregunta:
-
Captulo 11. Funciones 289
La respuesta de la segunda pregunta
Las cuatro respuestas de la pregunta tres:
Respuestas de preguntas 4 y 5.
-
290 Captulo 11. Los Objetos
Hoja base hipertexto.