miércoles, 2 de noviembre de 2011

22. 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.


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


PROBLEMAS

 
1 – Ingresar una serie de nombres por teclado hasta que se digite la palabra Fin, y mostrar cuántos nombres se ingresaron.



2 – 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.  



3 – 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.



4 – 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).



5 – 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 @. 



6 - Cargar un String por teclado e implementar los siguientes métodos: 

a) Imprimir la primera mitad de los caracteres de la cadena.

b) Imprimir el último caracter.

c) Imprimirlo en forma inversa.

d) Imprimir cada caracter del String separado con un guión.

e) Imprimir la cantidad de vocales almacenadas.
 
7 – 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.

21. Clase Math

Esta clase no está construido 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
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;
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).