Capitulo 11 Objetos 2

download Capitulo 11 Objetos 2

of 22

description

objetos

Transcript of 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.