Sei sulla pagina 1di 22

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

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

abs(x)

Devuelve el valor absoluto de un


nmero.

alert ("El valor


absoluto de "+ x + " es
= " + Math.abs(x)) ;

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" ) ;

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

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" ) ;

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) ) ;

cos(x)

El coseno de un ngulo x (en


radianes) devuelve un valor entre alert ("El coseno de "+ x
-1 y 1. En caso de estar vacio,
+ " es = " +Math.cos(x) );
devuelve NaN.

exp(x)

alert ("La constnte de


Devuelve el valor real de elevar
Euler e (2.7183) elevada
la constante de Euler e (2.7183),
a la "+ x + " es = "
a un expoente x.
+Math.exp(x) );

floor(x)

Redondea el valor real x a un


nmero entero MENOR ms
cercano. El resultado es un valor
entero

log(x)

Devuelve el logaritmo natural


(base e), de un valor x positivo. alert ("El logaritmo
Si x es cero, devuelve -Infinity y natural de "+ x + " es = "
si es negativo (o vaco),
+ Math.log(x) );
devuelve NaN.

alert ("El valor de "+ x + "


redondeado al entero
menor es = "
+ Math.floor(x)) ;

10 pow(x,y)

alert ("Elevar "+ x + " a la


Potenciacin. Eleva un valor real
" + y + " es = "
x a un exponente real y.
+ Math.pow(x,y) );

11 round(x)

Redondea x al entero ms
cercano. El resultado es entero.

12 sin(x)

El seno de un ngulo x (en


radianes) devuelve un valor entre alert ("El seno de "+ x + "
-1 y 1. En caso de estar vacio,
es = " +Math.sin(x) );
devuelve NaN.

13 sqrt(x)

Raz cuadrada. Calcular la raz


cuadrada de un valor real x. Si x
es negativo o vaco, se
devuelve NaN.

14 tan(x)

alert ("La tangente de "+


La taqngente de un ngulo x (en
x + " es = "
radianes) devuelve un valor entre
+Math.tan(x) );

alert ("Redondear "+ x + "


= " +Math.round(x) );

alert ("Raz cuadrada de "


+ x + " es = "
+ Math.sqrt(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

Devuelve el valor de la
constante de Euler: 2.7183

alert ("El valor de de la


constante de Euler e es = "
+ Math.E ) ;

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)

indexOf(carcter)

lastIndexOf(carcter)

Muestra el carcter que


ocupa la posicin indice en la
cadena.

nombre=Universidad;
c = nombre.charAt(3);
alert ( c );

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 );

Muestra el ltimo ndice del


carcter. Al contrario del
anterior, muestra la ltima
posicin del carcter.

nombre=Universidad;
c = nombre.lastIndexOf(i);
alert ( c );

Cuadro 11.3 (cont.) Mtodos de cadenas de caracteres sobre el contenido

Nombre

Descripcin

toLowerCase()

Muestra la cadena de
caracteres que hay entre
el primer ndice (incluido)
y ltimo indice (no
incluido).
Muestra la cadena de
caracteres
que
hay
desde el primer ndice
(incluido) hasta el ltimo
indice (incluido).
Muestra la cadena de
caracteres
que
hay
desde el ndice cero
hasta el ltimo indice
(incluido).
Muestra
todos
los
caracteres de la cadena
en minsculas.

toUpperCase()

Muestra
todos
los
caracteres de la cadena
en maysculas.

substring(primerindice,
ultimoindice)

substring(primerindice)

substring(indice_negativo)

Ejemplo

Resultado

nombre=Universidad;
c = nombre.substring(1,4);
alert ( c );

niv

nombre=Universidad;
c = nombre.substring(1);
alert ( c );

niversidad

nombre=Universidad;
c = nombre.substring(-2);
alert ( c );

Universidad

nombre=LaUrA;
c = nombre.toLowerCase();
alert ( c );

laura

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

substr(x)

substring(inicio,fin)

Descripcin

Ejemplo

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));

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));

toLowerCase()

Coloca todos los caracteres


en minscula.

alert ("Colocar en
mincula "+ nom + " = "
+ nom.toLowerCase() )
;

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

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.
<html>
<head>
<title>Objeto String</title>
<script>
// 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

</script>
</head>
<body>
<h5 align="right">PLC, 02 de mayo de 2015</h5>
<h2 align="center">Objeto String. Operaciones com mtodos</h2>
<p>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:</p>
<ol>
<li>Mostrar el apellido y la previa de cada estudiante</li>
<li>Calcular la nota promedio de los segundos parciales</li>
<li>Escribir todos los nombres completos de los estudiantes.
Colocar los apellidos en mayscula y los nombres en minscula,
separados por una coma.</li>
<li>Sumar los primeros dgitos de las cdulas de los dos primeros estudiantes</li>
<li>Obtener una palabra con las dos ltimas letras de los apellidos de los ltimos
3 estudiantes.</li>
</ol>
<h4 align="right">prof. gImery</h4>
<h5 align="right">seccin 00</h5>
</body>
</html>

Ejecucin

Los datos son los siguientes:


No.
1
2
3
4

Apellido
Montalvo
Guzzardi
Figueroa
Herrera

Nombre
Claudia
Laura
Patricia
Elizabeth

CI
85123114
86125556
20366598
20850259

P1
3
4
2
3

P2
9
2
8
2

P3
5
8
7
10

P4
6
9
7
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.

Potrebbero piacerti anche