Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - Cabanota

Páginas: [1]
1
Hola colegas. Aquí hago entrega de los ejercicios referente a este tema. Esta fue la solución que plantee. Si no esta correcta espero recibir sugerencias o mejoras. De antemano muchas gracias.

Citar
EJERCICIO

Crea el siguiente código PHP:

a) Una función (tipo procedimiento, no hay valor devuelto) denominada escribirNumerosMod que reciba dos parámetros: un array de valores enteros y una cadena de texto que puede ser "sobreescribir" ó "ampliar". La función debe proceder a: escribir cada uno de los números que forman el contenido del array en una línea de un archivo datosEjercicio.txt usando el modo de operación que se indique con el otro parámetro. Si el archivo no existe, debe crearlo.

Ejemplo: El array que se pasa es $numeros = array(5, 9, 3, 22); y la invocación que se utiliza es escribirNumerosMod($numeros, "sobreescribir"); En este caso, se debe eliminar el contenido que existiera previamente en el archivo y escribir en él 4 líneas, cada una de las cuales contendrá los números 5, 9, 3 y 22.

b) Una función (tipo procedimiento, no hay valor devuelto) denominada leerContenidoFichero que reciba como parámetro la ruta del fichero y muestre por pantalla el contenido de cada una de las líneas del fichero.

c) Crea código php donde a través de la función escribirNumerosMod escribas en el fichero los números 2, 8, 14. Luego, mediante la función leerContenidoFichero muestra el contenido del fichero. Ahora con la función escribirNumerosMod amplía el contenido del fichero y añádele los números 33, 11 y 16. Muestra nuevamente el contenido del fichero por pantalla. Finalmente, escribe el fichero pasándole un array con los número 4, 99, 12 y parámetro <<sobreescribir>> para eliminar los datos que existieran previamente. Muestra el contenido del fichero por pantalla y un mensaje de despedida.

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
</head>
<body>
<?php
function escribirNumerosMod($numeros ,$valor)
{
if (strcmp($valor"sobreescribir") == 0) {
$fp fopen("crearArchivo.txt""w");
for ($i=0$i count($numeros); $i++) { 
fwrite($fp$numeros[$i] . PHP_EOL);
}
fclose($fp);
echo "Se ha sobreescribido correctamente.<br/>";

}else if (strcmp($valor"ampliar") == 0) {
$fp fopen("crearArchivo.txt""a");
for ($i=0$i count($numeros); $i++) { 
fwrite($fp$numeros[$i] . PHP_EOL);
}
fclose($fp);
echo "Se ha ampliado correctamente.<br/>";
}else{
echo "Ha escrito un valor que no es correcto.<br/>";
}
}

function leerContenidoFichero($ruta)
{
$fp fopen($ruta"r");
while (!feof($fp)) {
$resul fgets($fp);
echo $resul "<br/>";
}
}

escribirNumerosMod(array(2814), "sobreescribir");
echo "<br/> CONTENIDO DEL FICHERO: <br/>";
leerContenidoFichero("crearArchivo.txt");

echo "<br/><br/>";

escribirNumerosMod(array(331116), "ampliar");
echo "<br/> CONTENIDO DEL FICHERO: <br/>";
leerContenidoFichero("crearArchivo.txt");

echo "<br/><br/>";

escribirNumerosMod(array(49912), "sobreescribir");
echo "<br/> CONTENIDO DEL FICHERO: <br/>";
leerContenidoFichero("crearArchivo.txt");

echo "<br/><br/>";
echo "Esto fue todo amigos. ¡Hasta pronto!";
?>

</body>
</html>

2
Hola colegas. No se si esta bien mi solución para el ejercicio CU00836B del curso de programación web con PHP. Espero sus comentarios. Gracias.

Citar
EJERCICIO

Crea las siguientes funciones en PHP:

a) Una función (tipo procedimiento, no hay valor devuelto) denominada escribirTresNumeros que reciba tres números enteros como parámetros y proceda a escribir dichos números en tres líneas en un archivo denominado datosEjercicio.txt. Si el archivo no existe, debe crearlo.

b) Una función denominada obtenerSuma (tipo función, devolverá un valor numérico) que reciba una ruta de archivo como parámetro, lea los números existentes en cada línea del archivo, y devuelva la suma de todos esos números.

c) Una función denominada obtenerArrNum (tipo función, devolverá un array de valores numéricos) que reciba una ruta de archivo como parámetro, lea los números existentes en cada línea del archivo, y devuelva un array cuyo índice 0 contendrá el número existente en la primera línea, cuyo índice 1 contendrá el número existente en la segunda línea y así sucesivamente.

d) Crea código php donde a través de la función escribirTresNumeros escribas en el fichero los números 2, 8, 14. Luego, mediante la función obtenerSuma muestra por pantalla el resultado de sumar los números existentes en el archivo. Finalmente, mediante la función obtenerArrNum obtén el array, recórrelo y muestra cada uno de los elementos del array.

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
</head>
<body>
<?php
function escribirTresNumeros($num1$num2$num3)
{
$fp fopen("fichero.txt""w");
fputs($fp$num1 "\n" $num2 "\n" $num3 "\n");
fclose($fp);
}

function obtenerSuma($ruta)
{
$resul 0;
$aux 0;
$linea = array();
$fp fopen($ruta"r");

while (!feof($fp)) {
$linea[$aux] = fgets($fp);
$aux++;
}
for ($i=0$i count($linea); $i++) { 
$resul $resul $linea[$i];
}
fclose($fp);
return $resul;
}

function obtenerArrNum($ruta)
{
$array = array();
$cont 0;
$fp fopen($ruta"r");
while (!feof($fp)) {
$array[$cont] = fgets($fp);
$cont++;
}

for ($i=0$i count($array) - 1$i++) { 
echo $array[$i] . ", ";
}
fclose($fp);
}

escribirTresNumeros(2814);
echo "Suma: " obtenerSuma("fichero.txt");
echo "<br/>";
obtenerArrNum("fichero.txt");
?>

</body>
</html>

3
Hola compañeros. Aquí planteo una posible solución a los ejercicios de este tema. Espero me digan si tengo falencias y me digan de que manera puedo optimizar el código. De ante mano, muchas gracias.

Citar
EJERCICIO

Crear archivos php que ejecuten la tarea indicada:

a) Dadas las cadenas "aprender" y "aprende", mostrar por pantalla la cadena rellena con * a derecha e izquierda en un número de asteriscos que será siempre 5 a cada lado aunque se cambien las cadenas.

b) Dadas las cadenas "aprender" y "aprende", mostrar por pantalla si sus tres primeros caracteres son iguales o no usando una función de comparación de subcadenas.

c) Dada la cadena "ApRendEr A proGraMar.cOm" transformar la cadena a minúsculas y rellenarla a derecha e izquierda con una longitud de asteriscos igual a la mitad de su longitud si es par ó igual a la mitad de (su longitud más 1) si es impar. Mostrar por pantalla la cadena en minúsculas y con el relleno indicado.

NOTA: El punto "c" no estoy seguro si esta bueno, porque cuando la cadena es impar le quedan mas asteriscos del lado derecho que del izquierdo y creo que ese no es el objetivo. me gustaría saber si entendí bien el ejercicio o que. Gracias.

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
</head>
<body>
<?php
$cadena1 "aprender";
$cadena2 "aprende";
$cadena3 "ApRendEr A proGraMar.cOm";

//punto a.
echo str_pad($cadena1, (strlen($cadena1)+10), "*"STR_PAD_BOTH). "<br/>";
echo str_pad($cadena2, (strlen($cadena2)+10), "*"STR_PAD_BOTH). "<br/>";

echo "-----------------------------------------<br/>";

//punto b.

for ($i=0$i 3$i++) { 
$aux1 substr($cadena1$i1);
$aux2 substr($cadena2$i1);
if (strcmp($aux1$aux2) == 0) {
echo "\"" $aux1 "\" es igual a \"" $aux2 "\".<br/>";
}else{
echo "\"" $aux1 "\" es diferente de \"" $aux2 "\".<br/>";
}
}

echo "-----------------------------------------<br/>";

//punto c.

$tranosformada strtolower($cadena3);
$resul = (strlen($tranosformada) % 2);
$aux strlen($tranosformada);

if ($resul == 0) {
$longitud $aux + ($aux 2);
echo "Resul: " str_pad($tranosformada$longitud,"*" STR_PAD_BOTH);

}else{
$longitud $aux + (($aux 2) + 1);
echo "Resul: " str_pad($tranosformada, ($longitud),"*" STR_PAD_BOTH);
}
?>

</body>
</html>

4
Hola colegas. Aquí traigo mi posible solución del punto a, b, c y d, de este tema Solo que quería saber si así como lo realice esta bien, y en el caso de que lo este, me gustaría saber de que forma puedo mejorar y optimizar.. Estaré agradecido con ustedes. Muchas gracias.

Citar
EJERCICIO

Crear archivos php que ejecuten la tarea indicada:

a) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso", indicar cuántas veces aparece cada vocal usando funciones para cadenas PHP.

b) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso", indicar qué consonantes son las que aparecen y cuántas veces aparecen usando funciones para cadenas PHP.

c) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso", mostrar la cadena donde todas las a hayan sido sustituídas por el símbolo *. Por ejemplo en lugar de <<El abecedario…>> se habrá de mostrar <<El *beced*rio…>>

d) Dada la cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso", mostrar la subcadena desde la primera aparición de <<completo>> excluyendo completo, es decir, deberá mostrarse << es algo largo y detallarlo exhaustivamente es costoso>>. Para ello usa una o varias funciones para cadenas PHP.

POSIBLE SOLUCION:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
</head>
<body>
<?php
$consonantes = array("b""d""f""g""h""j""k""l""m""n""ñ""p""q""r""s""t""v""x""y""z");
$cadena "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso";

echo "<br/> APARTADO A) <br/>";

$resul count_chars($cadena1);

foreach ($resul as $key => $value) {
echo chr($key)  . " -> " $value "<br/>";
}

echo "<br/> APARTADO B) <br/>";

for ($i=0$i strlen($cadena); $i++) { 
$subcadenitas substr($cadena$i1);

for ($j=0$j count($consonantes); $j++) { 
if ($subcadenitas ==  $consonantes[$j]) {
$agregando $agregando $subcadenitas;
break;
}
}
}
$resul2 count_chars($agregando1);

foreach ($resul2 as $key => $value) {
echo chr($key) . " -> " $value "<br/>";
}

echo "<br/> APARTADO C) <br/>";

$resul3 str_replace("a""*"$cadena);
echo "Resultado: " $resul3;

echo "<br/><br/>APARTADO D) <br/>";

$cortar strstr($cadena"completo"false);
$resul4 trim($cortar"completo");
echo $resul4;
?>

</body>
</html>

5
Buenas tardes colegas. aquí dejo una posible solución a este ejercicio. Espero me puedan dar mejoras. De antemano, muchas gracias.

Citar
EJERCICIO

Crea una página web donde inicialmente exista un div con borde solid y ancho delimitado con el texto “Curso JavaScript aprenderaprogramar.com”. Debajo del div deben mostrarse dos botones o pulsadores. Un botón debe indicar “Añadir al final” y otro “Anidar”. Cuando se pulse el botón “Añadir al final”, debe añadirse un div al final de la página con el texto “Nodo creado 1” (o Nodo creado 2, 3, 4… según corresponda). Cuando se pulse el botón “Anidar” debe añadirse un div dentro del div inicial con el texto “Nodo creado 5” (o Nodo creado 6, 7, 8… según corresponda). La numeración será única, es decir, podremos saber en qué orden han sido creados los div estén dentro o fuera del div inicial.
Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="UTF-8">
<style type="text/css">
div{
border-style: solid;
text-align: center;
padding: 5 px;
width: 350px;
margin-bottom: 20px;
}
</style>
<script type="text/javascript">
var cont = 1;
var insertarElemento2;
function inicio () {
insertarElemento1 = document.getElementById("body");
insertarElemento2 = document.getElementById("divInicial");
}

function anidarElemento0 () {
var nodoHijo = document.createElement("div");
var textNodoHijo = document.createTextNode("Nodo creado " + cont);
nodoHijo.style.width = "150px";
nodoHijo.style.textAlign = "center";
nodoHijo.appendChild(textNodoHijo);
insertarElemento1.appendChild(nodoHijo);
cont++;
}
function anidarElemento () {
var nodoHijo = document.createElement("div");
var textNodoHijo = document.createTextNode("Nodo creado " + cont);
nodoHijo.style.width = "150px";
nodoHijo.style.margin = "0px auto";
nodoHijo.style.textAlign = "center";
nodoHijo.appendChild(textNodoHijo);
insertarElemento2.appendChild(nodoHijo);
cont++;
}
</script>
</head>
<body id="body">
<div id="divInicial">Curso JavaScript aprenderaprogramar.com</div>
<input type="button" value="Añadir al final" onclick="anidarElemento0()"/>
<input type="button" value="Anidar" id="btnAnidar" onclick="anidarElemento()" />

<script type="text/javascript">
inicio();
</script>
</body>
</html>

6
Hola colega. aquí traigo una posible solución del ejercicio de este tema, cualquier falla o recomendacion bienvenida sea.

Citar
EJERCICIO

Crea un documento html con div central (“el cuadrado principal”) que contenga a su vez cuatro divs (los cuadrados secundarios).  Debajo del cuadrado principal debe aparecer un botón con el texto “Avanzar”. Inicialmente los cuatro cuadrados tendrán fondo blanco y un signo ? de gran tamaño. Al pulsar en el botón por primera vez, el cuadrado superior izquierdo debe aparecer con fondo negro, texto blanco, y tener como texto “El”. Al pulsar de nuevo el botón, el cuadrado superior derecho debe aparecer con fondo blanco y texto negro y tener como texto “poder”. Al pulsar de nuevo el botón el cuadrado inferior izquierdo debe aparecer con fondo blanco y texto negro y tener como texto “de”. Al pulsar de nuevo el botón el cuadrado inferior derecho debe aparecer con fondo amarillo y texto negro y tener como texto “JavaScript”. Si se pulsa nuevamente el botón avanzar debe mostrarse un mensaje que indique “No es posible avanzar más”.

Código:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
   <title></title>
   <meta charset="UTF-8"/>
   <style type="text/css">
      body{
         margin: 0 auto;
      }
      #container{
         border: none;
         width: 205px;
         height: 205px;
         overflow: hidden;
      }
      div{
         width: 100px;
         height: 100px;
         text-align: center;
         line-height: 100px;
         float: left;
         /*margin: 1px;*/
      }
      div#uno, div#dos, div#tres, div#cuatro{
         border: 1px solid black;
      }
      input{
         display: block;
         clear: both;
         margin-left: 70px;
      }
   </style>
   <script type="text/javascript">
      var cont = 0;

      function inicio () {
         var uno = document.getElementById("uno");
         var dos = document.getElementById("dos");
         var tres = document.getElementById("tres");
         var cuatro = document.getElementById("cuatro");

         var boton = document.getElementById("botonUnico");
         boton.addEventListener("click", function(){
            cont++;

            if (cont == 1) {
               uno.innerHTML = "<div style='background-color:black; width:100px; height:100px; color:white'>El<div/>";
            };
            if (cont == 2) {
               dos.textContent = "poder";   
            };
            if (cont == 3) {
               tres.textContent = "de";
            };
            if (cont == 4) {
               cuatro.innerHTML = "<div style=' background-color:yellow'>JavaScript<div/>";
            };
            if (cont > 4) {
               alert("No es posible avanzar más.");
            };
         });
      }
   </script>
</head>
<body>
   <div id="container">
      <div id="uno">?</div>
      <div id="dos">?</div>
      <div id="tres">?</div>
      <div id="cuatro">?</div>
   </div>
   <input type="button" value="Avanzar" id="botonUnico"/>
   <script type="text/javascript">
      inicio();
   </script>
</body>
</html>

7
Hola colegas. Aquí traje una posible solución al ejercicio CU01135E del tutorial JavaScript con ejercicios resueltos de aprenderaprogramar.

Lo modifiqué un poco a mi gusto con el fin de retar mis propios conocimiento e ir practicando de lo que he aprendiendo hasta ahora, pero sin perder el enfoque de su tema principal que es: for in.

Espero sus opiniones para saber que debo ir mejorando o ir haciendo. De ante mano muchas gracias.

Citar
1) Genera un script que pida cinco números al usuario usando un bucle for normal (usa prompt para pedir los datos y conviértelos a valor numérico posteriormente). Almacena los números introducidos por el usuario en un array. A continuación usando un for in que recorra el array, muestra un mensaje informando del resultado de multiplicar cada uno de los números por 3. Ejemplo:

Se pedirán al usuario cinco números, supongamos que introduce 1, 3, 9, 10 y 7

A continuación se mostrará el mensaje:

Multiplicamos por 5 los números introducidos: 1*5 = 5, 3*5 = 15, 9*5 = 45, 10*5 = 50 y 7*5 =35.


Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
   <title></title>
   <meta charset="UTF-8">
   <style type="text/css">
      div#salida{
         width: 100%;
         border: 1px solid black;
         height: 20px;
      }
      #vaMostrando{
         width: 20%;
         margin: 10px 0px 20px 0px;
         padding: 3px;
      }
      h2{
         margin: 0;
      }
   </style>
   <script type="text/javascript">
      var datoEntrada, datoBoton, datoSalida, iteractivo;
      var arreglo = new Array();
      var cont = 0;

      function capturaDeDatos() {   
         datoEntrada = document.getElementById("entrada");
         iteractivo = document.getElementById("vaMostrando");
         if (cont < 5) {
            arreglo[cont] = datoEntrada.value;
            iteractivo.childNodes[1].nodeValue = arreglo[cont];
         }else{
            alert("Ya se sobrepaso de datos.");
         }
         cont++;
         if (cont == 5) {
            var resul = "Multiplicamos por 5 los números introducidos: ";

            datoSalida = document.getElementById("salida");
            for (i in arreglo) {
               resul = resul + arreglo[i] + "*5 = " + (arreglo[i] * 5) + ", ";
            };
            datoSalida.childNodes[0].nodeValue = resul;
            iteractivo.childNodes[1].nodeValue =  "Finish";
         };
      }
     
      function resetMen() {
         var resetCaja = document.getElementById("salida").childNodes[0].nodeValue = "";
         var resetCaja2 = document.getElementById("vaMostrando").childNodes[1].nodeValue = "";
         cont = 0;   
      }
   </script>
</head>
<body>
   <form>
      <h2>Ingrese 5 numeros solamente.</h2>
      <input id="entrada" type="text"/>
      <input id="boton" type="reset" value="Acept" onclick="capturaDeDatos()" />
      <input id="reseteo" type="button" value="Limpar cajas" onclick="resetMen()" />
      <div id="vaMostrando" style="font-size: 20px;"><span style="font-size: 15px">Ingreso el numero: </span> </div>
      <span>Resultado:</span>
      <div id="salida"> <div>
   </form>
</body>
</html> 

8
Hola gente. Aquí traje una posible solución al ejercicio CU01134E del curso JavaScript desde cero de aprenderaprogramar, que dice:
 
Citar
1) Modifica el código del ejemplo de la calculadora JavaScript para que además de tener dos botones que permitan marcar números y operadores con distintos colores tenga:

a) Un botón que permita marcar la tecla C con color rojo fuerte y símbolo C en blanco.

b) Un botón que permita marcar la tecla con el punto con color violeta fuerte y símbolo . en blanco.

c) Un botón que permita marcar la pantalla visor de la calculadora en azul oscuro.

d) Un botón que permita limpiar todo lo que se haya marcado y volver a la situación original (es decir, que la calculadora se vea tal y como se veía inicialmente).

el apartado d) fue el que me ha dado mas lata porque sinceramente la forma como lo realice no me hace sentir satisfecho.. Me gustaría saber si hay alguna manera mas sencilla, rápida y corta de hacer un reseteo a todos los nodos sin necesidad de hacerlo nodo por nodo y que quede tal cual como es la pag en realidad..  sinceramente me gustaria que me dieran oopciones para inganar e informarme. De ante mano, muchas gracias. Aqui dejo el codigo.

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="UTF-8">
<style type="text/css">
body{
font-family: sans-serif;
text-align: center;
}
#calculadora{
font: bold 14px Arial, sans-serif;
background-color: #9DD2EA;
margin: 0 auto;
padding: 20px 20px 9px;
width: 286px;
border-radius: 3px;
/*height: auto;*/
}
.parteSuperior, .teclas{
overflow: hidden;
}
div.parteSuperior div.pantalla{
background-color: rgba(0, 0, 0, 0.2);
color: #FFF;
float: right;
width: 180px;
height: 40px;
font-size: 17px;
border-radius: 3px;
padding: 0 10px;
text-align: right;
letter-spacing: 1px;/*espaciado entre caractere*/
line-height: 40px;
}
.parteSuperior span.limpiar, .teclas span, #modificado span{
background-color: #FFFFFF;
color: #888888;
cursor: pointer;
float: left;
border-radius: 3px;
height: 36px;
width: 66px;
margin: 0 7px 11px 0;
line-height: 36px;
text-align: center;
transition: all 0.4s ease 0s;
}
.parteSuperior span.limpiar{
background-color: #FF7C87;
}
.teclas span.operador/*, #modificado span#reset*/{
margin-right: 0;
background-color: #FFDAB9;
}
.teclas span.igual{
background-color: #F1FF92;
color:  #888E5F;
}
.parteSuperior span.limpiar:hover, .teclas span:hover, #modificado span:hover{
background-color: #9C89F6;
color: #FFFFFF;

header{
-webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
width: 326px;
margin: 0 auto;
border-radius: 3px;
}
header h2, header h3{
margin: 0;
padding: 5px;
}
header h3{
background-color: #E59DEA;
}
header h2{
background-color: #FFBBF6;
}
.teclas span#probandoAndo{
width: 100%;
}
#contenedor div#marcaNumeros, #contenedor div#marcaOperadores{
transition: all 0.4s ease 0s;
width: 140px;
display: inline-block;
height: 36px;
border-radius: 3px;
line-height: 36px;
margin: 0px;
background: rgb(202, 60, 60);
cursor: pointer;
color: white;
}
#contenedor div#marcaNumeros{
margin-left: -2px;
}
#contenedor div#marcaNumeros:hover, #contenedor div#marcaOperadores:hover{
background: rgb(66, 184, 221)
}
#modificado{
padding: 0 0 0 5px;
height: 46px;
background-color: white;
border-radius: 3px;
border: none;
}
#modificado span{
margin: 5px 4px 11px 0;
background: rgb(202, 60, 60);
color: white;
}
</style>
<script type="text/javascript">
var listaNodoPantalla, listaNodoNumero, listaNumeroOperador;
function pulsada(tecla) {
listaNodoPantalla = document.getElementsByClassName("pantalla");
var nodoTextoPantalla = listaNodoPantalla[0].childNodes[0];//Segunda opcion: listaNodoPantalla[0].firstChild
switch(tecla){
case "C":
nodoTextoPantalla.nodeValue = "";
break;

case "=":
var resultado = eval(nodoTextoPantalla.nodeValue);
nodoTextoPantalla.nodeValue = resultado;
break;

default:
nodoTextoPantalla.nodeValue = nodoTextoPantalla.nodeValue + tecla;
}
}
// dos manera de editar el css de nuestra pag web.
//por medio de la funcion: querySelectorAll() o getElementsByClassName();
function marcaDeNumeros(){
listaNodoNumero = document.getElementsByClassName("numero");

for (var i = 0; i < listaNodoNumero.length; i++) {
listaNodoNumero[i].style.backgroundColor = "black";
listaNodoNumero[i].style.color = "white";
};
}
function marcaDeOperadores() {
listaNumeroOperador = document.querySelectorAll("#calculadora .teclas span.operador, #calculadora .teclas span.igual");
for (var i = 0; i < listaNumeroOperador.length; i++) {
listaNumeroOperador[i].style.backgroundColor = "yellow";
listaNumeroOperador[i].style.color = "red";
}
}
function modificacion (valor) {
var valorStyle;
if (valor == "la_C") {
valorStyle = document.querySelectorAll("#calculadora span.limpiar");
valorStyle[0].style.backgroundColor = "red";
valorStyle[0].style.color = "white";
}else if(valor == "punto"){
valorStyle = document.querySelectorAll(".teclas span.punto");
valorStyle[0].style.backgroundColor = "#8B008B";
valorStyle[0].style.color = "white";
}else if(valor == "pant"){
valorStyle = document.querySelectorAll("#calculadora div.pantalla");
valorStyle[0].style.backgroundColor = "#00008B";
}
}

function resetGeneral () {

var numeroStyle = document.querySelectorAll("#calculadora .teclas span.numero, #calculadora .teclas span.punto");
for (var i = 0; i < numeroStyle.length; i++) {
numeroStyle[i].style.backgroundColor = "#FFFFFF";
numeroStyle[i].style.color = "#888888";
};
var operadoresStyle = document.querySelectorAll("#calculadora .teclas span.operador");
for (var i = 0; i < operadoresStyle.length; i++) {
operadoresStyle[i].style.backgroundColor = "#FFDAB9";
operadoresStyle[i].style.color = "#888888";
};
var pantallaStyle = document.querySelectorAll("#calculadora .parteSuperior div.pantalla");
pantallaStyle[0].style.backgroundColor = "rgba(0, 0, 0, 0.2)";
var limpiarStyle = document.querySelectorAll("#calculadora .teclas span.igual");
limpiarStyle[0].style.backgroundColor = "#F1FF92";
limpiarStyle[0].style.color = "#888888";
var limpiarStyle = document.querySelectorAll("#calculadora .parteSuperior span.limpiar");
limpiarStyle[0].style.backgroundColor = "#FF7C87";
limpiarStyle[0].style.color = "#888888";
}
</script>
</head>
<body>
<header id="cabecera">
<h2>Cursos aprenderaprogramar.com</h2>
<h3>Ejemplo calculadora JavaScript</h3>
</header>
<div id="calculadora">
     <!-- pantalla y tecla limpiar -->
        <div class="parteSuperior">
            <span class="limpiar" onclick="pulsada('C')">C</span>
            <div class="pantalla"> </div> <!--Ojo tenemos un espacio para que exista nodeValue-->
  </div>     
        <div class="teclas">
            <!-- operadores y otras teclas -->
            <span class = "numero" onclick="pulsada('7')">7</span>
            <span class = "numero" onclick="pulsada('8')">8</span>
            <span class = "numero" onclick="pulsada('9')">9</span>
            <span class="operador" onclick="pulsada('+')">+</span>
            <span class = "numero" onclick="pulsada('4')">4</span>
            <span class = "numero" onclick="pulsada('5')">5</span>
            <span class = "numero" onclick="pulsada('6')">6</span>
            <span class="operador" onclick="pulsada('-')">-</span>
            <span class = "numero" onclick="pulsada('1')">1</span>
            <span class = "numero" onclick="pulsada('2')">2</span>
            <span class = "numero" onclick="pulsada('3')">3</span>
            <span class="operador" onclick="pulsada('/')">÷</span>
            <span class = "numero" onclick="pulsada('0')">0</span>
            <span class ="punto" onclick="pulsada('.')">.</span>
            <span class="igual" onclick="pulsada('=')">=</span>
            <span class="operador" onclick="pulsada('*')">x</span>
        </div>
        <div id="modificado">
        <span onclick="modificacion('la_C')">La C</span>
        <span onclick="modificacion('punto')">punto</span>
        <span onclick="modificacion('pant')">Pant</span>
        <span onclick="resetGeneral()">Reset</span>
        </div>
         <div id="contenedor">
        <div id="marcaNumeros" onclick="marcaDeNumeros()"> Marca numeros</div>
        <div id="marcaOperadores" onclick="marcaDeOperadores()">Marca operadores</div>
        </div>
       
</div>
</body>
</html>

9
Hola compañeros. Aquí traigo resuelto el punto 2 del ejercicio de este tema CU01133E del tutorial JavaScript de aprenderaprogramar.

Citar
2) Utilizando el ejemplo de código que usa la función eval en la función <<function componer(sentido)>> que hemos visto dentro del código de los ejemplos,

 function componer(sentido) {
var accion = 'mover';
var sobreElemento = 'Imagen';
var haciaDonde = sentido;
var llamada = accion + sobreElemento+'(\''+haciaDonde+'\')';
alert ('La unión del texto genera ' + llamada);
var tmpFunc = new Function(llamada);
tmpFunc();
}

crea una página web donde existan dos botones que pongan “Adelante” y “Atrás”, de modo que cuando se pulsen den lugar a que se llame la función componer(sentido). En esta función, a través de la función eval se ejecutará moverImagen('adelante') ó moverImagen('atras') según el parámetro recibido. La función moverImagen(sentido) puede contener un simple mensaje indicando el valor del parámetro <<sentido>> recibido.


Espero que lo haya entendido bien y que así sea lo que se esta pidiendo, en caso contrario me gustaría entonces que me explicaran bien. De ante mano, muchas gracias.


Código respuesta ejercicio:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="UTF-8">
<style type="text/css">
#caja{
text-align: center;
font-size: 30px;
border: 1px solid black;
width: 200px;
height: 30px;
padding-bottom: 8px;
}
</style>
<script type="text/javascript">
var lado;
function componer(sentido) {
var accion = 'mover';
var sobreElemento = 'Imagen';
var haciaDonde = sentido;
var llamada = accion + sobreElemento+'(\''+haciaDonde+'\')';
// alert ('La unión del texto genera ' + llamada);
eval(llamada);
}

function moverImagen(sentido) {
lado = document.getElementById("caja");
var haciaDonde = lado.childNodes[0];

if (sentido == "adelante") {
haciaDonde.nodeValue = sentido;

} else if (sentido == "atras") {
haciaDonde.nodeValue = sentido;
};
}
</script>
</head>
<body>
<div id="caja"> </div>
<input id="botonAdelante" type="button" value="Adelante" onclick="componer('adelante')" />
<input id="botonAtras" type="button" value="Atras" onclick="componer('atras')" />
</body>
</html>

10
Buenas tardes colegas. Aquí traigo solución a los dos puntos dejados en este tema. Espero que si pueden ayudarme a mejorar el código y hacerlo mucho mas fácil, estaría agradecido.Gracias de ante mano.

Citar
1) Crea una función que pida una palabra al usuario y usando un bucle for y el método charAt, muestre cada una de las letras que componen la entrada. Por ejemplo si se introduce “ave” debe mostrar:

Letra 1: a

Letra 2: v

Letra 3: e
Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
<script type="text/javascript">
var palabra, insertar;

function inicio() {
var resul = "";
palabra = document.getElementById("caja").value;

for (var i = 0; i < palabra.length; i++) {
resul += "Letra " + (i + 1)+ ": " + palabra.charAt(i) + "\n\n";
};
mostrar.innerText = "\n" + resul;
}
</script>
</head>
<body>

<h1>Retando mis conocimientos.</h1>
<label>Palabra a evaluar: </label><input type="text" id="caja" />
<brs>
<label>Resultado: </label>
<div id="mostrar"></div>
<input type="button" id="boton" value="Acep" onclick="inicio()">
</body>
</html>
Citar
2) Crea una función denominada mostrarContParrafos, que utilizando el acceso a los nodos del DOM de tipo párrafo, muestre el texto que contienen. Por ejemplo para el código de ejemplo visto anteriormente el resultado debería ser: Párrafo 1 contiene: manzana; Párrafo 2 contiene: pera. Párrafo 3 contiene: fresa. Párrafo 4 contiene … (etc., hasta que no haya más párrafos).
Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style type="text/css">
div{
border: 1px solid black;
float: left;
width: 500px;
margin-bottom: 30px;
text-align: center;
}
#caja2{
border: 1px solid black;
width: 240px;
height: 290px;
position: absolute;
left: 530px;
text-align: left;
padding: 5px;
}
body{
background-color: white;
font-family: sans-serif;
}
p{
float: left;
font-size:24px;
color: maroon;
margin: 10px;
border: solid black;
padding: 10px;
}
.boton{
padding: 15px;
width: 350px;
text-align: center;
clear: both;
color: white;
border-radius:40px;
background: rgb(202, 60, 60);
}
.boton2{
padding: 15px;
width: 230px;
text-align: center;
color: white;
border-radius:40px;
background: rgb(202, 60, 60);
margin-left: 515px;
margin-top: -70px;
}
.boton:hover, .boton2:hover{
background: rgb(66, 184, 221);
}
</style>
<script type="text/javascript">
var izda_dcha = true;
var elementos;

function inicio() {
elementos = document.getElementsByTagName("p");
}

function cambiarColores (elemento) {
var color = ['#FF6633', '#FF9933', '#FFCC33', 'yellow'];

  if (izda_dcha) {
for (var i = 0; i < elementos.length; i++) {
elementos[i].style.backgroundColor = color[i%4];
}
}else{
for (var i = elementos.length - 1; i >= 0; i--) {
elementos[i].style.backgroundColor = color[(i+3)%4];
}
}
if (izda_dcha) {
izda_dcha = false;
}else{
izda_dcha = true;
}
}

function mostrarContParrafos() {
var resul = "";
for (var i = 0; i < elementos.length; i++) {
resul += "Parrafo " + (i+1) + " contiene: " + elementos[i].childNodes[0].nodeValue + "." +"\n";
};
caja2.innerText = resul;
}
</script>
</head>
<body>
<h1>Ing. Javier Cabana Padilla.</h1>
<h2>Aprendiendo a programar.</h2>
<div>
<p>Manzana</p><p>Pera</p><P>Fresa</p><p>Ciruela</p>
<p>Naranja</p><p>Kiwi</p><p>Pomelo</p><p>Melón</p>
<p>Sandía</p><p>Mango</p><p>Papaya</p><p>Cereza</p>
<p>Nectarina</p><p>Frambuesa</p>
</div>
<div id="caja2"> </div>
<h3 class="boton" onclick="cambiarColores()">Pulse para cambiar colores</h3>
<h3 class="boton2" onclick="mostrarContParrafos()">Nombre frutas</h3>
<script type="text/javascript">
inicio();
</script>
</body>
</html>

11
Buenas tardes colegas. Quería compartirles otra manera diferente de hacer el ejercicio de la clase:

Citar
getElementsByName JavaScript. onsubmit al enviar formulario form con input type submit. Ejemplo (CU01130E)

 ...Siento yo que lo hice de una manera un poco mas avanzadita, Lo que hice fue que el ejemplo de la clase lo copie y pegue para ejecutarlo en el navegador y fijarme en el resultado, despues quise hacerlo a mi manera y cuando termine de hacerlo, compare y siempre es bastante diferente. Me gustaría leer opiniones de como puedo mejorar y acortar mucho mas mi código, que es mi objetivo. De ante mano muchas gracias. Aquí les dejo mi manera de realizar este ejemplo de esta clase:

Código: [Seleccionar]

<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
<style type="text/css">
label{
display: inline-block;
padding: 5px;
}
</style>
</head>
<body>
<div id="cabecera">
<h1>Portal web aprenderaprogramar.com</h1>
<h2>Didactica y divulgacion de la programacion</h2>
</div>
<div>
<form name="formularioContacto" class="formularioTipo1" method="get" action="http://aprenderaprogramar.com" onsubmit="informarElegido('animal')">
<p>Si quieres contactar con nosotros enianos este formulario relleno:</p>
<label for="nombre"> <span>Nombre: </span><input id="nombre" type="text" name="nombre"/></label>
<label for="apellidos"><span>Apellidos: </span><input id="apellidos" type="text" name="apellidos"/></label>
<p>Elige los animales que te gusten:</p>
<input type="checkbox" name="animal" id="leon" value="Leon" /><label for="leon">Leon</label>
<input type="checkbox" name="animal" id="tigre" value="Tigre" /><label for="tigre">Tigre</label>
<input type="checkbox" name="animal" id="gepardo" value="Gepardo"/><label for="gepardo">Gepardo</label>
<input type="checkbox" name="animal" id="jaguar" value="Jaguar" /><label for="jaguar">Jaguar</label>

<label>
<input type="submit" value="ENVIAR" />
<input type="reset" value="CANCELAR" />
</label>
</form>
</div>
<script type="text/javascript">
function informarElegido (elemento) {
var elegido = 0;
var elementosObtenidos = document.getElementsByName(elemento);
var cont = "Animales que ha elegido que le gustan incluye: ";

for (var i = 0; i < elementosObtenidos.length; i++) {
if (elementosObtenidos[i].checked == true){
cont += elementosObtenidos[i].value + ", ";
elegido++;
}
};
cont = cont.substring(0, cont.length - 2); //Esto simplemente lo quise colocar porque no me gustaba que al final del cont quedara una ","
if (elegido) {
alert(cont);
}else{
alert("¡No ha elegido ningún animal!");
}
}
</script>
</body>
</html>


12
Buenas tardes colegas. Aquí quiero hacer entrega del ejercicio propuesto por este tema. Lo hice y la verdad me a ido muy bien(o eso creo) porque me dio el resultado esperado. Lo posteo con la intención de saber y existe una manera aun mas fácil y corta de realizarlo. Estare muy agradecido con sus respuestas. De ante mano muchas gracias..

Citar
Modifica el código anterior para introducir div que simule un botón con el texto “Cambiar a Inglés” y otro div simulando un botón “Cambiar a español”. Al pulsar sobre el botón cambiar a inglés, debes acceder a los nodos del DOM de tipo label y usando relaciones de parentesco entre nodos acceder a aquellos nodos cuyo nodeValue es Nombre:, Apellidos:, y Correo electrónico: y cambiar su nodeValue por Name:, Surname: y e-mail:.

Código: [Seleccionar]

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title></title>
<style type="text/css">
label{
color: maroon;
display: block;
padding: 5px;
}
body{
background-color: white;
font-family: sans-serif;
}
#idioma{
display: inline-block;
padding: 5px;
}
</style>

</head>
<body>
<div id="cabecera">
<h1>Portal web aprendiendoaprogramar.com</h1>
<h2>Didactica y divulgacionde la programacion</h2>
</div>
<!--Formularion del contacto-->
<div style="width:450px; border: 1px solid black; padding: 0px 4px">
<form name="formularioContacto" class="formularioTipo1" method="get" action="accion.html" onclick="cambiarAspecto('label')">
<p>Si quieres contactar con nosotros envianos este formulario relleno:</p>
<label for="nombre"><span>Nombre: </span><input id="nombre" type="text" name="nombre" /></label>
<label for="apellidos"><span>Apellidos: </span><input id="apellidos" type="text" name="apellidos" /></label>
<label for="email"><span>Correo electronico: </span><input id="email" type="text" name="email" /></label>
<label>
<input type="submit" value="Enviar" />
<input type="reset" value="Cancelar" />
</label>
<div id="idioma">
<div style="width: 130px; height: 20px; border: 1px solid black; display: inline-block" onclick="ingles()">Cambiar a ingles</div>
<div style="width: 137px; height: 20px; border: 1px solid black; display: inline-block" onclick="español()">Cambiar a Español</div>
</div>
</form>
<script type="text/javascript">
function cambiarAspecto (elemento) {
var elementosObtenidos = document.getElementsByTagName(elemento);
elementosObtenidos[0].style.backgroundColor = "#FF6633";
elementosObtenidos[1].style.backgroundColor = "#FF9933";
elementosObtenidos[2].style.backgroundColor = "#FFCC33";
}
function español () {
var esp = document.getElementsByTagName("span");
esp[0].childNodes[0].nodeValue = "Nombre: ";
esp[1].childNodes[0].nodeValue = "Apellidos: ";
esp[2].childNodes[0].nodeValue = "Correo electronico: ";
}
function ingles () {
var eng = document.getElementsByTagName("span");
eng[0].childNodes[0].nodeValue = "Name: ";
eng[1].childNodes[0].nodeValue = "Surname: ";
eng[2].childNodes[0].nodeValue = "E-mail: ";
}
</script>
</div>
</body>
</html>

13
Hola amigos. Aquí entrego la solución a este ejercicio. Este ejercicio lo quise hacer un poco diferente como venia haciendo los demás (cumpliendo los requerimientos de su enunciado), espero lo miren, prueben y me digan que puedo mejorar. Estaría bastante agradecido.
Aquí dejo los códigos:

Clase como los métodos
Código: [Seleccionar]
import java.util.*;
/**
 * Write a description of class ListaCantantesFamosos here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class ListaCantantesFamosos{
    private Scanner sc = new Scanner(System.in);
    private ArrayList<String> nombreCantantes;
   
    public ListaCantantesFamosos(){
        nombreCantantes = new ArrayList<String>();
        nombreCantantes.add("Joe Arroyo");
        nombreCantantes.add("Hector Lavoe");
        nombreCantantes.add("Grupo niche");
    }
   
    public void addCantante(){
        System.out.print("Ingrese su Cantante famoso: ");
        String nom2 = sc.nextLine();
        nombreCantantes.add(nom2);
    }   
   
    public void getListaActualizada(){
        System.out.println("Lista actualizada: ");
        for(String i: nombreCantantes){
            System.out.println(i);
        }
    }
   
    public void continuidad(){
        boolean aux = true;
        while(aux == true){
            System.out.print("Presione \"S\" si desea continuar. Presione \"N\" si desea salir del sistema: ");   
            String res = sc.nextLine();
           
            if(res.equalsIgnoreCase("s")){
                addCantante();
                getListaActualizada();
                aux = true;
            }else if(res.equalsIgnoreCase("n")){   
                aux = false;
            }
        }
    }
}
.

Clase con metodo main.
Código: [Seleccionar]

/**
 * Write a description of class TestListaCantantesFamosos here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class TestListaCantantesFamosos{
   
    public TestListaCantantesFamosos(){
    }
   
    public static void main(String[] args){
        ListaCantantesFamosos list = new ListaCantantesFamosos();
       
        list.getListaActualizada();   
        list.addCantante();
        list.getListaActualizada();
        list.continuidad();
    }
}

Yo lo había hecho de una forma tradicional pero cuando lo estaba haciendo caí en cuenta que había que reutilizar varias veces el mismo código, por esa razón quise hacerlo en métodos para así solo invocar el método y todo se viera mas bonito y mas corto jejeje.. Esperare sus correcciones o sus recomendaciones que son las que me ayudaran a crecer en este proceso. De ante mano, muchas gracias.
Saludos.

14
Esta fue la solución que le di al ejercicio CU00665B del curso de programación básico en Java:

Clase con sus respectivos métodos.

Código: [Seleccionar]

import java.util.*;

public class ListaCantantesFamosos{
    private ArrayList<String> nombreCantantes;
   
    public ListaCantantesFamosos(){
        nombreCantantes = new ArrayList<String>();
        nombreCantantes.add("Joe Arroyo");
        nombreCantantes.add("Hector Lavoe");
        nombreCantantes.add("Grupo niche");
    }
   
    public ArrayList<String> getNombreCantantes(){
        return nombreCantantes;
    }
   
    public int getTamaño(){
        return nombreCantantes.size();
    }
   
    public void addNombre(String nombre){
        nombreCantantes.add(nombre);
    }
}

Clase con el método main.
Código: [Seleccionar]
import java.util.*;

public class TestListaCantantesFamosos{
   
    public TestListaCantantesFamosos(){
    }
   
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        ListaCantantesFamosos list = new ListaCantantesFamosos();
       
        System.out.print("Ingrese el primer Cantante famoso: ");
        String nom1 = sc.nextLine();
        list.addNombre(nom1);
       
        System.out.print("Ingrese el segundo Cantante famoso: ");
        String nom2 = sc.nextLine();
        list.addNombre(nom2);
       
        System.out.println(); //Lo puse para dejar un espacio.
       
        System.out.println("Contenido de la lista en fila: " + list.getNombreCantantes());
       
        System.out.println(); //Lo puse para dejar un espacio.
       
        System.out.println("Contenido de la lista en columna: ");
        for(int i = 0; i < list.getTamaño();i++){
             System.out.println(list.getNombreCantantes().get(i));
        }
    }
}

Si encuentran mejoras que puedo hacer en el código o si no entendí bien el enunciado del ejercicio, estaría muy agradecidos con ustedes por leerlas.

De antemano, muchas gracias.

Saludos.

15
Hola colegas. Estaba practicando sobre los ArrayList. Reutilice código para experimentar, para ver como funcionaban los métodos de la clase ArrayList y para hacer algo mas o menos diferente. Cree una clase donde tengo los métodos y otra donde esta el método main, que son las siguientes:

Clase con métodos.
Código: [Seleccionar]
import java.util.*;
/**
 * Write a description of class ListaNombres here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class ListaNombres{
    private String nombreDeLaLista;
    private ArrayList<String> listaDeNombres;
   
    public ListaNombres(String nombreDeLaLista){
        this.nombreDeLaLista = nombreDeLaLista;
        listaDeNombres = new ArrayList<String>();
    }
   
    public void addNombre(String nombre){
        listaDeNombres.add(nombre);
    }
   
    public String getNombreABuscar(int i){
        if(i >= 0 && i < listaDeNombres.size()){
            return listaDeNombres.get(i);
        }else{
            return "No se encuentra el nombre";
        }
    }
   
    public int getTamaño(){
        return listaDeNombres.size();
    }
   
    public void removerNombre(int i){
        if(i >= 0 && i < listaDeNombres.size()){
            listaDeNombres.remove(i);
        }else{
            System.out.println("Este nombre no existe.");
        }
    }
   
    public ArrayList<String> getListaDeNombres(){
        return listaDeNombres;
    }
}

Metodo main.
Código: [Seleccionar]
import java.util.*;
/**
 * Write a description of class TestListaNombres here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class TestListaNombres{
   
    public TestListaNombres(){
    }
   
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        ListaNombres listNombres = new ListaNombres("Amigos");
       
        System.out.print("¿Cuantos nombres desea ingresar?: ");
        int numIngresos = sc.nextInt();
       
        for(int i = 0; i < numIngresos; i++){
            System.out.print("Ingresas nombre numero " + (i+1) + ": ");
            String nom = sc.nextLine();
            listNombres.addNombre(nom);
        }
       
        System.out.println("En estos momentos en tamaño de su lista de nombre es de: " + listNombres.getTamaño());
       
   System.out.print(listNombres.getListaDeNombres());
    }
}

En la clase: TestListaNombres. Mi intención era agregar mas cosas, con la intención de utilizar todos los métodos de la otra clase, pero a medida que voy creando lo que hago lo voy probando. Y aquí es donde viene mi duda. Resulta, que en el programa, yo le pregunto al usuario cuantos nombres deseea agregar, haasta ahi todo bien. La cuestion viene despues, que cuando el programa entra en el for, para agregar nombre por nombre sucede algo extraño, que es esto:

Prueba de escritorio.

¿Cuantos nombres desea ingresar?: 3
Ingresas nombre numero 1: Ingresas nombre numero 2: nombre1
Ingresas nombre numero 3: nombre1
En estos momentos en tamaño de su lista de nombre es de: 3
[, nombre1, nombre1]


Cuando el usuario ingresa la cantidad de nombres (en este caso 3), cuando el programa procede a ingresar los nombres a guardar el la lista, no me deja ingresar el nombre numero 1, si no que de una me imprime para ingresar el nombre numero 2. y asi sucesivamente. Hice una prueba para que me mostrata por consola los nombre que tengo en mi lista. y preciso, en la lista, en mi posicion numero 0 (get(0)) aparece el dato como vacio y las otras posiciones si almacena su dato normalmente.

Intente arreglarlo de varias maneras, busque como solucionarlo y me di por vencido. Por eso recurro a ustedes, para ver si puede ayudarme, ya que no quiero quedar con la duda y la incertidumbre del por que ocurre esto.
Espero y me haya sabido explicar y puedan ayudarme. Estaría muy agradecido. De ante mano  muchas gracias.

16
Hola comunidad.
Esta fue la solución que pude darle al ejercicio de este tema. Fue la manera como pude solucionar, cualquier sugerencia estaría dispuesto a leerla y aprender mas de ustedes.
aquí mi solución al ejercicio:
Código: [Seleccionar]
import java.util.Scanner;
/**
 * Write a description of class TestComparacionLetra here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class TestComparacionLetra{
   
    public TestComparacionLetra(){
    }
   
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
       
        System.out.print("Primera palabra: ");
        String p1 = sc.nextLine();
        System.out.print("Segunda palabra: ");
        String p2 = sc.nextLine();
       
        if(p1.length() >= p2.length()){
            int aux = 0;
           
            while(aux < p2.length()){
               if(p1.substring(aux, aux+1).equals(p2.substring(aux, aux+1))){
                    System.out.println("¿Letra " + (aux+1) + " es igual en las dos palabras?: True");
               }else{
                    System.out.println("¿Letra " + (aux+1) + " es igual en las dos palabras?: False");
               }
               aux++;
            }
           
            while(aux < p1.length()){
            System.out.println("¿Letra " + (aux+1) + " es igual en las dos palabras?: La palabra 2 no tiene letra " + (aux+1));
            aux++;
           }
        }else{
            int aux = 0;
           
            while(aux < p1.length()){
               if(p1.substring(aux, aux+1).equals(p2.substring(aux, aux+1))){
                    System.out.println("¿Letra " + (aux+1) + " es igual en las dos palabras?: True");
               }else{
                    System.out.println("¿Letra " + (aux+1) + " es igual en las dos palabras?: False");
               }
               aux++;
            }
           
            while(aux < p2.length()){
            System.out.println("¿Letra " + (aux+1) + " es igual en las dos palabras?: La palabra 1 no tiene letra " + (aux+1));
            aux++;
           }
        }
    }
}

El ejemplo que colocan muestra que la primera palabra a ingresar es: avispa y la segunda es: ave. Quiere decir que la palabra 1 tiene mayor longitud que la palabra 2. Ahora, y si la palabra 2 tiene mayor longitud como seria? Bueno, yo también le di solución a eso. No se si el ejercicio lo pide, pero quise hacerlo que el usuario ingrese las cadenas de la longitud que desee en cualquiera de las dos. Espero y me este haciendo entender. jejeje.. Es que de pronto a su parecer pueden encontrar unos if de mas y me quise tomar el trabajo de explicar esa parte jeje.. Aquí les dejare una muestra de la prueba de escritorio, dándome a entender un poco mas acerca de esto:


Primera palabra: avispa
Segunda palabra: ave
¿Letra 1 es igual en las dos palabras?: True
¿Letra 2 es igual en las dos palabras?: True
¿Letra 3 es igual en las dos palabras?: False
¿Letra 4 es igual en las dos palabras?: La palabra 2 no tiene letra 4
¿Letra 5 es igual en las dos palabras?: La palabra 2 no tiene letra 5
¿Letra 6 es igual en las dos palabras?: La palabra 2 no tiene letra 6
Primera palabra: ave
Segunda palabra: avispa
¿Letra 1 es igual en las dos palabras?: True
¿Letra 2 es igual en las dos palabras?: True
¿Letra 3 es igual en las dos palabras?: False
¿Letra 4 es igual en las dos palabras?: La palabra 1 no tiene letra 4
¿Letra 5 es igual en las dos palabras?: La palabra 1 no tiene letra 5
¿Letra 6 es igual en las dos palabras?: La palabra 1 no tiene letra 6

17
Hola. :) Esta fue mi solución al ejercicio planteado en este tema. Cualquier sugerencia es bienvenida para mi. Quiero aprender y cualquier sugerencia o cualquier comentario sera recibido de gran manera. De ante mano, muchas gracias.

Código: [Seleccionar]
import java.util.Scanner;
/**
 * Write a description of class TextFor here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class TextFor{
   
    public TextFor(){
    }
   
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.print("Inserte su cadena de texto: ");
        String texto = sc.nextLine();
       
        for(int i = 0; i < texto.length(); i++){
            System.out.println("Letra "+ (i+1) +": " + texto.substring(i,i+1));
        }
       
    }
}

Saludos.

18
Buenas.
Esta fue mi solución a este ejercicio. Estuve mirando algunos métodos de la clase String y quise aplicarlos. Espero sugerencias. De ante mano, muchas gracias.


Código: [Seleccionar]
import java.util.Scanner;
/**
 * Write a description of class TestDeposito here.
 *
 * @author (your name)
 * @version (a version number or a date)
 */
public class TestDeposito{
   
    public TestDeposito(){
    }

    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.print("Digite su texto: ");
        String texto = sc.nextLine();
       
        if (texto.length() > 4 && texto.length() < 16){
            if(texto.substring(0,1).equalsIgnoreCase("a")){
                System.out.println("La cadena introducida tiene entre 5 y 15 caracteres y comienza por a");
            }else{
                System.out.println("La cadena introducida tiene entre 5 y 15 caracteres y no comienza por a");
            }
        }else{
            if(texto.substring(0,1).equalsIgnoreCase("a")){
                System.out.println("La cadena introducida no esta entre 5 y 15 caracteres y comienza por a");
            }else{
                System.out.println("La cadena introducida no esta entre 5 y 15 caracteres y no comienza por a");
            }
        }
    }
}

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".