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.


Mensajes - Dimitar Stefanov

Páginas: 1 ... 6 7 8 9 10 [11] 12 13 14 15 16 ... 30
201
Buenas, Pedro.

Antes que nada, gracias por tu tiempo dedicado y por corregir el ejercicio.

Sinceramente, me costó mucho aprender los arrays tipo: "$indice => $valor". Y tienes razón es mucho más legible y ordenado como lo haces tu, porque realmente, en el ejemplo:

Código: [Seleccionar]
foreach($equipo as $pais => $team){
echo "En ".$pais;
foreach($equipo[$pais] as $team => $posicion){
echo " en el: ".$team." equipo juega como: <br>";
foreach($equipo[$pais][$team] as $posicion => $juador){
echo $posicion." - ".$juador.", <br>";
}
echo "<br>";
}
echo "<br><br>";
}

"$team" = "$equipo[$pais]".

Sobre el apartado c) del ejercicio 2, no es que nos de un error, sino una "notice". Exactamente me pone esto:

Citar
Notice: Use of undefined constant portero - assumed 'portero' in C:\xampp\htdocs\programacion\aprenderaprogramar\PHP\CU00826B(02).php on line 2

pero porque tengo configurado el servidor que me de tanto los errores como las noticias. Creo que esto depende de los ajustes del servidor.

Gracias y saludos :)

202
Buenas, Agente_007.

Yo no te recomendaría que dajaras el curso aquí, puesto que ya que has llegado hasta aquí vale la pena seguirlo. Pero, también, es cierto que si te sientes inseguro en tus conocimientos mejor es repasar conceptos básicos anes de continuar con ese curso.

Yo empecé por el principio, primero hice el curso HTML desde cero, luego CSS desde cero, luego JavaScript desde cero y Java desde cero a la vez y ahora estoy haciendo PHP desde cero. Cuando lo acabe pienso hacer el Java I nivel avanzado. Pero cada uno decide por su mismo conforme vaya avanzando con sus conocimientos.

Sí te podría recomendar que cada entrega que hagas que la entiendas del todo antes de pasar a la siguiente, más que nada porque cada siguiente tiene que ver algo con la anterior. Además, así estarás seguro que lo que has estudiado y lo has entendido.

También, es verdad que a veces algún concepto no lo acabamos de entender del todo, pero mirando ejemplos de otros compañeros y con preguntar a los moderadores o a los usuarios, se nos aclara.

Si quieres, puedes visitar este enlace de aprenderaprogramar.com y desde allí podrás obtener una idea de qué pasos tienes que seguir:

https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=38&Itemid=78

Un saludo.

203
Buenas noches. Aquí dejo una posible solución del ejercicio CU00832B del curso PHP desde cero.

Citar
EJERCICIO

Crea un archivo HTML que contenga un formulario que contenga un checkbox (¿Desea recibir factura?), dos input radio (Varón/Mujer), tres input tipo texto (Nombre, Dirección, Email) y un combobox para forma de envío (normal, por avión o urgente), junto con un botón de envío. Establece como url de envío la dirección recibe.php y método de envío get y comprueba que se recuperan los datos enviados correctamente a través de la url.

Código: [Seleccionar]
<?php 

echo '<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ejemplo aprenderaprogramar</title>
<style type="text/css">
div{
text-align: center;
}
</style>
</head>
<body>
<div>
<form action="recibe.php" method="get">
<label><span>¿Desea recibir factura?</span><input type="checkbox" name="factura"></label><br><br>
<label><span>Varón</span><input type="radio" name="sexo" value="varon"></label>
<label><span>Mujer</span><input type="radio" name="sexo" value="mujer"></label><br><br>
<label><span>Nombre: <input type="text" name="nombre" id="nombre"></span></label><br><br>
<label><span>Dirección: <input type="text" name="direccion" id="direccion"></span></label><br><br>
<label><span>Email: <input type="text" name="correo" id="correo"></span></label><br><br>
<label>
<select>
<option value="">Forma de envío</option>
<option value="normal">Normal</option>
<option value="porAvion">Por avión</option>
<option value="urgente">Urgente</option>
</select>
</label><br><br>
<label><input type="submit" value="Enviar"></label>
</form>
</div>
</body>
</html>'
;

?>

En el servidor local me funciona, se envían los datos en la url (utilizo XAMPP), pero en el servidor remoto no.

Gracias.

204
Buenas tardes. Expongo una posible solución de los ejercicios de la entrega CU00831B del curso PHP desde cero.

Citar
EJERCICIO 1

Crea una función php de nombre mostrarDiasMes que reciba como argumentos un mes (valor numérico de 1 a 12) y un año (valor numérico de 4 dígitos) y muestre por pantalla el texto “extendido” correspondiente a la fecha en idioma español. Por ejemplo mostrarDiasMes(1, 2089) deberá devolver: 1 de enero de 2089, 2 de enero de 2089, 3 de enero de 2089, 4 de enero de 2089… hasta 31 de enero de 2089”.

Código: [Seleccionar]
<meta charset="utf-8" />
<?php 

function mostrarDiasMes($mes$anyo){
$miFecha gmmktime(12,0,0,$mes,15,$anyo);
setlocale(LC_TIME"es_ES.UTF-8");
//date_default_timezone_set("Europe/Madrir");
echo strftime("%d de %B de %Y %H:%M"$miFecha);
}

mostrarDiasMes(6,2018);

?>

Citar
EJERCICIO 2

Repite el ejercicio anterior, pero en esta ocasión mostrando la fecha en formato de hora tal y como se usa en Holanda y en idioma holandés.

Código: [Seleccionar]
<meta charset="utf-8" />
<?php 

function mostrarDiasMes($mes$anyo){
setlocale(LC_TIME"nl_NL.UTF-8");
date_default_timezone_set("Europe/Amsterdam");
$miFecha gmmktime(12,0,0,$mes,15,$anyo);
echo strftime("%d de %B de %Y %H:%M"$miFecha);
}

mostrarDiasMes(6,2018);

?>

Cuál es la diferencia entre la función nativa "date()" y "strftime()" ?

Por lo que he entendido de esta entrega del curso, el método "setlocale()" sóo sirve para cambiar la lengua en la que mostraremos la fecha y la hora, en cambio, el método "setlocale()" ajusta la hora local. Lo tengo bien entendido?

Gracias.

205
Buenas tardes, expongo una posible solución del ejercicio CU00830B del curso PHP desde cero.

Citar
EJERCICIO

Crea un documento HTML que conste de un título h1 con el texto <<Calendario>>. En la página deberá mostrarse el mes y año actuales (en el momento en que hagas el ejercicio) y para cada día del mes, indicar si es lunes, martes, miércoles, jueves, viernes, sábado o domingo.

Ejemplo: suponiendo que hagas el ejercicio en mayo de 2050, debería mostrarse:

Día 1: Domingo, Día 2: Lunes, Día 3: Martes, Día 4: Miércoles, … etc. hasta Día 31: Martes.

Ampliación voluntaria del ejercicio: si tienes conocimiento de maquetación con HTML y CSS te proponemos que cambies el aspecto para que en lugar de mostrarse como texto, el calendario se muestre con aspecto de calendario habitual. Para la maquetación puedes usar una tabla de 7 columnas por 7 filas (total 49 celdas) con ancho de tabla 300 píxeles y tamaño de fuente en la tabla 24 píxeles. La primera columna corresponderá a lunes y la última a domingo como mostramos en el siguiente ejemplo.

Código: [Seleccionar]
<?php 

$time time();
$primerDiaDelMes $time - ((date("j",$time)-1)*24*60*60);
$primerDeLaSemana date("N"$primerDiaDelMes);
$unDiaContiene 24*60*60;
$diasDeLaSemana = ["Lu""Ma""Mi""Ju""Vi""Sa""Do"];
$mesesDelAnyo = ["Enero""Febrero""Marzo""Abril""Mayo""Junio""Julio""Agosto""Septiembre""Octubre""Noviembre""Diciembre"];

echo "<br>";
echo "<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<title>Document</title>
<style type='text/css'>
div{
text-align: center;
}
table{
text-align: center;
margin-left: 41%;
}
</style>
</head>
<body>
<div>
<h1>"
.$mesesDelAnyo[(date("n"$time)-1)]." de ".date("Y"$time)."</h1>
<table style='font-size: 1.5em;'>
<tr>
<th>Lu</th>
<th>Ma</th>
<th>Mi</th>
<th>Ju</th>
<th>Vi</th>
<th>Sa</th>
<th>Do</th>
</tr>"
;
for($i 0$i<$primerDeLaSemana-1$i++){
if($i == 0){
echo "<tr><td></td>";
}else{
echo "<td></td>";
}
};

for($j 0$j date("t"$time); $j++){
if(date("N"$primerDiaDelMes+($unDiaContiene*$j)) == 7){
echo "<td>".date("d",$primerDiaDelMes+($unDiaContiene*$j))."</td></tr>";
}else if(date("N"$primerDiaDelMes+($unDiaContiene*$j)) == 1){
echo "<tr><td>".date("d",$primerDiaDelMes+($unDiaContiene*$j))."</td>";
}else{
echo "<td>".date("d",$primerDiaDelMes+($unDiaContiene*$j))."</td>";
}
};
echo "</tr>
</table>
</div>
</body>
</html>"
?>

Gracias.

206
Hola, DRANXZ88.

Veo el ejercicio muy bien resuelto. Sólo, creo, que te ha faltado un poquito más a la hora de comentar las clases.

Creo que sería mejor dejar las clases comentadas de la siguiente manera:

Clase "EntradaDeTeclado":

Código: [Seleccionar]
/**
 *
 * @author:DRANXZ88
 * @version:09052016
 *
 */
import java.util.Scanner;

public class EntradaDeTeclado {
    //Campos de la clase

    private String entradaTeclado;
    Scanner sc = new Scanner(System.in);

    /**
     * Constructor para entrada del teclado
     */
    public EntradaDeTeclado() {
        entradaTeclado = "";
    }
   
    /**
     *Metodo para agregar numero con el teclado
     *@return Devuelve la entrada por teclado
     */
    public String AgregarNumero() {
        entradaTeclado = sc.nextLine();
        return entradaTeclado;
    }

}

Clase: "miniCalculadoraEjemplo"

Código: [Seleccionar]
import java.lang.Math;

/**
 *
 * @author:DRANXZ88
 * @version:09052016
 *
 */

public class miniCalculadoraEjemplo {
   
    private double valor;

    /**
     *contructor vacio para la clase miniCalculadoraEjemplo
     */
    public miniCalculadoraEjemplo() {
    }
   
    /*
     *Metodo que recibe un numero de tipo double y devuelve el valor adsoluto
     *@param valorDoubleA El parámetro valorDoubleA será el número al que se le devuelva su valor absoluto
     */
    public void valorAbsoluto(double valorDoubleA) {
        valor = Math.abs(valorDoubleA);
        System.out.println("El valor absoluto es :" + valor);
    }
   
    /*
     *Metodo que recibe un numero de tipo double y que devuelve su raiz cuadrada
     *@param valorDoubleR El parámetro valorDoubleR será el número al que se le devuelva su raíz cuadrada
     */

    public void raizCuadrada(double valorDoubleR) {
        valor = Math.sqrt(valorDoubleR);
        System.out.println("La raiz cuadrada es :" + valor);
    }//cierre del metodo

}

Clase: "EjerciciosCu00680B"

Código: [Seleccionar]
/**
 * Esta es clase principal main del ejercicios cu00680B de aprender a programar
 *@see <a href="https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=646:documentar-proyectos-java-con-javadoc-comentarios-simbolos-tags-deprecated-param-etc-cu00680b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188">
 *Aprender a programar</a>
 */

/**
 *
 * @author:DRANXZ88
 * @version:09052016
 *
 */
public class EjerciciosCu00680B {

    /**
     * Este método crea los objetos de las otras clases y ejecuta el programa
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // Los codigo que son llamados de la otra clase
        EntradaDeTeclado agregar = new EntradaDeTeclado();
        miniCalculadoraEjemplo calculadora = new miniCalculadoraEjemplo();
        System.out.println("ingrese un valor con decimal.");
        double valorDoubleA = Double.valueOf(agregar.AgregarNumero());
        calculadora.valorAbsoluto(valorDoubleA);
        System.out.println("igrese un valor con decimal.");
        double valorDoubleR = Double.valueOf(agregar.AgregarNumero());
        calculadora.raizCuadrada(valorDoubleR);
    }

}

Las variables de las clases que no son "main" mejor declararlas fuera de cualquier método. La declaración de los métodos normalmente se hace empezando con letra en minúscula de esta forma:

Código: [Seleccionar]
public String agregarNumero() {
        entradaTeclado = sc.nextLine();
        return entradaTeclado;
    }

y no de esta:

Código: [Seleccionar]
public String AgregarNumero() {
        entradaTeclado = sc.nextLine();
        return entradaTeclado;
    }

Nada más que comentar. El programa funciona a la perfección.

207
Buenos días, DRANXZ88.

El ejercicio lo veo del todo correcto.

Saludos.


208
Buenas noches. Os expongo una posible solución del ejercicio CU00829B del curso PHP desde cero:

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.

Código: [Seleccionar]
<?php 

$cadena1 "aprender";
$cadena2 "aprende";

function rellenar($cadena){
echo str_pad($cadena, (strlen($cadena)+10) , "*"STR_PAD_BOTH);
}

echo rellenar($cadena1);
echo "<br><br><br>";
echo rellenar($cadena2);

?>

No entiendo por qué así:

Código: [Seleccionar]
<?php 

$cadena1 "aprender";
$cadena2 "aprende";

function rellenar($cadena){
echo str_pad($cadena, (strlen($cadena)+10) , "*"STR_PAD_BOTH);
}

echo rellenar($cadena1)."<br><br><br>".rellenar($cadena2);

?>

no se imprimen por pantalla los saltos de carro.

Citar
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ódigo: [Seleccionar]
<?php 

$cadena1 "aprender";
$cadena2 "aprende";

if(strncmp($cadena1$cadena23)==0){
echo "Las primeras 3 lestras de: '".$cadena1."' y '".$cadena2." son iguales";
}else{
echo "Las primeras 3 lestras de: '".$cadena1."' y '".$cadena2." NO son iguales";
}

?>

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

Código: [Seleccionar]
<?php 

$cadena "ApRendEr A proGraMar.cOm";
$cadena strtolower($cadena);

if((strlen($cadena)%2)==0){
echo str_pad($cadenastrlen($cadena)+strlen($cadena)/2"*"STR_PAD_BOTH);
}else{
echo str_pad($cadenastrlen($cadena)+((strlen($cadena)/2)+1), "*"STR_PAD_BOTH);
}

?>

Gracias.


209
Buenas noches. Dejo una posible solución del ejercicio CU00828B del curso PHP desde cero.

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.

Código: [Seleccionar]
<?php 

$cadena01 "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso";
$cadenaMinusculas strtolower($cadena01);
$subcadena01 substr_count($cadenaMinusculas"a");
$subcadena02 substr_count($cadenaMinusculas"e");
$subcadena03 substr_count($cadenaMinusculas"i");
$subcadena04 substr_count($cadenaMinusculas"o");
$subcadena05 substr_count($cadenaMinusculas"u");
echo "En la cadena: '".$cadena01."' se reptines: <br>".$subcadena01." veces la letra 'a'<br>".$subcadena02." veces la letra 'e'<br>".$subcadena03." veces la letra 'i'<br>".$subcadena04." veces la letra 'o'<br>".$subcadena05." veces la letra 'u'";

?>

Citar
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ódigo: [Seleccionar]
<?php 

$cadena01 "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso";
$cadenaMinusculas strtolower($cadena01);
$reemplazarA str_replace("a"""$cadenaMinusculas);
$reemplazarE str_replace("e"""$reemplazarA);
$reemplazarO str_replace("o"""$reemplazarE);
$reemplazarU str_replace("u"""$reemplazarO);
$reemplazarI str_replace("i"""$reemplazarU);
$reemplazarEspacio str_replace(" """$reemplazarI);
$miArray count_chars($reemplazarEspacio1);
foreach($miArray as $indiceNum => $veces){
echo "La consonante: '".chr($indiceNum)."' se repite: ".$veces." veces<br>";
}
?>

Citar
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…>>

Código: [Seleccionar]
<?php 

$cadena01 "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso";
$cadena02 str_replace("a""*"$cadena01);
echo "Cadena original: ".$cadena01."<br>Cadena modificada: ".$cadena02;

?>

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

Código: [Seleccionar]
<?php 

$cadena01 "El abecedario completo es algo largo y detallarlo exhaustivamente es costoso";
$cadena02 strstr($cadena01"es"false);
echo $cadena02;

?>

Gracias.

210
Buenas tardes.

Aquí dejo una posible solución del ejercicio CU00827B del curso PHP desde cero.

Citar
EJERCICIO

Crear las siguientes funciones en PHP y código para comprobar su funcionamiento:

a) Una función que reciba cinco números enteros como parámetros y muestre por pantalla el resultado de sumar los cinco números (tipo procedimiento, no hay valor devuelto).

b) Una función que reciba cinco números enteros como parámetros y devuelva el resultado de sumar los cinco números (tipo función, hay un valor devuelto). Asigna el resultado de una invocación a la función con los números 2, 5, 1, 8, 10 a una variable de nombre $tmp y muestra por pantalla el valor de la variable.

c) Una función que reciba como parámetros el valor del radio de la base y la altura de un cilindro y devuelva el volumen del cilindro, teniendo en cuenta que el volumen de un cilindro se calcula como Volumen = númeroPi * radio * radio * Altura siendo númeroPi = 3.1416 aproximadamente.

Código: [Seleccionar]
<?php

function 
operaciones00($a$b$c$d$e){
echo $a+$b+$c+$d+$e;
};

operaciones00(12345);

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

function operaciones01($a$b$c$d$e){
return  $a $b $c $d $e;
};

$tmp operaciones01(251810);
echo $tmp;

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

function operaciones02($radio$altura){
$pi 3.1416;
return $pi $radio $radio $altura;

}

echo "El volumes = ".operaciones02(25);
?>

Gracias

211
Buenas, César.

Gracias por tu aportación. Pero cómo tengo que ponerlo? así:

Código: [Seleccionar]
<?php 
$cad "Didáctica y divulgación de la programación";
$sub1 substr($cad010);
$sub2 substr($cad111);
$sub3 substr($cad1312);
$sub4 substr($cad262);
$sub5 substr($cad292);
$sub6 substr($cad3213);
echo "<meta charset='utf-8'/>";
echo "Las palabras primera, tercera y sexta son: ".$sub1.", ".$sub3.", ".$sub6."<br>";
echo "La palabra primera es ".$sub1." y tiene ".(strlen($sub1)-1)." caracteres, la palabra tercera es ".$sub3." y tiene ".(strlen($sub3)-1)." caracteres. La palabra sexta es ".$sub6." y tiene ".(strlen($sub6)-1)." caracteres";
?>

o así:

Código: [Seleccionar]
<?php 
$cad "Didáctica y divulgación de la programación";
$sub1 substr($cad010);
$sub2 substr($cad111);
$sub3 substr($cad1312);
$sub4 substr($cad262);
$sub5 substr($cad292);
$sub6 substr($cad3213);
echo "<!DOCTYPE html><html><head><meta charset='utf-8'/></head><body>";
echo "Las palabras primera, tercera y sexta son: ".$sub1.", ".$sub3.", ".$sub6."<br>";
echo "La palabra primera es ".$sub1." y tiene ".(strlen($sub1)-1)." caracteres, la palabra tercera es ".$sub3." y tiene ".(strlen($sub3)-1)." caracteres. La palabra sexta es ".$sub6." y tiene ".(strlen($sub6)-1)." caracteres</body></html>";
?>

Gracias.

212
Buenas noches, Pedro.

Gracias por corregirme el ejercicio. A ver, a ver, q soy impaciente, jejeje :)

Saludos.

213
Te lo decía, más que nada, que si pasas un parámetro al método que no lo cambies luego porque no te funcionará.

Da lo mismo poner:

Código: [Seleccionar]
public void setCocinaCasa(CocinaCasa valorCocina){cocina=valorCocina;}
o poner:

Código: [Seleccionar]
public void setCocinaCasa(CocinaCasa valorCocinaCasa){cocina=valorCocinaCasa;}
de las dos formas creas una variable nueva. Pero si te va mejor poner:

Código: [Seleccionar]
public void setCocinaCasa(CocinaCasa valorCocina){cocina=valorCocina;}
no hay ningún problema.

Sobre si es correcto, tu puedes definir el constructor de un objeto como quieras (pasándole o no parámetros). Pero después, haciendo el constructor de un objeto que utiliza como propiedades otros objetos, ese nuevo objeto lo tienes que crear de acuerdo con su contructor. Es decir, cuando defines el constructor del objeto "Casa", si incluyes en él un objeto de tipo "SalonCasa", ese objeto lo tienes que hacer igual como lo tienes es ese objeto (en este caso, como lo tienes en el objeto "SalonCasa"). Y si para contruir el objeto "SalonCasa" necesitas pasarle 2 parámetros (porque tienes así definido su contructor), se los pasas.

Sobre la "notación de puntos" tienes la definición en la entrega CU00632B del curso Java desde cero. Aquí te la dejo:

Citar
En el caso de un objeto Taxi, una invocación de un método podría ser taxi1.getDistrito(). Esta invocación devuelve una cadena, por lo que podríamos escribir: System.out.println (“El distrito del taxi 1 es “ + taxi1.getDistrito() );

 

Esta forma de invocar los métodos se denomina “notación de punto” porque se basa en escribir el nombre del objeto seguido de un punto y el nombre del método con los parámetros que procedan. La notación de punto es un aspecto básico de Java y otros lenguajes de programación.

Aplicado al nuestro caso, cuando hacemos el contructor del objeto "Casa" así:

Código: [Seleccionar]
public Casa(double valorSuperficie,String valorDirección,SalonCasa valorSalonCasa,CocinaCasa valorCocina){
        superficie=valorSuperficie;
        dirección=valorDirección;
        salonCasa=new SalonCasa(valorSalonCasa.getNumeroDeTelevisores(),valorSalonCasa.getTipoSalon());
        cocina=new CocinaCasa(valorCocina.getEsIndependiente(),valorCocina.getNumeroDeFuegos());
    }

Lo que hacemos realmente aquí es decir que la variable "salonCasa" referenciará a un nuevo objeto de tipo "SalonCasa" y que ese objeto lo haremos mediante su constructor que necesita 2 parámetros. El primer parámetro lo haces invocando el método "getNumeroDeTelevisores()" sobre la variable "valorSalonCasa" que es de tipo "SalonCasa" y el segundo lo haces invocando "getTipoSalon()" sobre la variable "valorSalonCasa" que es de tipo "SalonCasa". Estos dos métodos lo que hacen es recuperar los valores de las propiedades del objeto "SalonCasa" cuando lo creaste. Por lo tanto, si pones en práctica esos objetos, antes de crear el objeto "Casa" tenías que haber creado el objeto "SalonCasa", porque si no, no podrás crear el objeto "Casa" porque no podrás crear el objeto "SalonCasa" dentro del objeto "Casa" puesto que no podrás pasarle los parámetros que necesita el objeto "SalonCasa" para su creación.

No te entiendo con lo qué quieres decir si un objeto se puede tratar como si fuera un tipo primitivo. En qué caso? Allí, por donde has visto la solución de este ejercicio habrá una constestación de algún moderador o un usuario colaborador que habrá comentado si hay errores.

No sé si te ha quedado claro. Cualquier duda, pregunta y con mucho gusto te contestaré (si lo sé, jejeje).

Saludos :)

214
Ya te digo, el ejercicio está bien, sólo quería comentarte eso. Piensa que en un código más grande cuanto menos variables tienes más rápido será el código a la hora de ejecutarse. Los programaticos dicen que se tienen que utilizar las variables imprescindibles.

Pero eso te lo digo para que lo sepas, no que en este ejercicio esta cuestión es de gran importancia.

215
 Buenas tardes. Dejo una posible solución de los ejercicios de la entrega CU00826B del curso PHP desde cero.

Citar
EJERCICIO 1

Crea un array con nombre paisLimitrofe donde los elementos del array serán cadenas de texto con los países limítrofes (con frontera) con el tuyo. Por ejemplo si vivimos en Perú tenemos como países limítrofes  Ecuador, Colombia, Brasil, Bolivia y Chile.

a) Utilizando un bucle for, muestra por pantalla los países limítrofes.

b) Utilizando un bucle for each, muestra por pantalla los países limítrofes.

Código: [Seleccionar]
<?php 
$paisLimitrofe = array("Portugal""Andorra""Francia");

echo "Los países limítrofes son: ";
for($i 0$i count($paisLimitrofe); $i++){
echo $paisLimitrofe[$i].", ";
}

echo "<br><br><br>Los países limítrofes son: ";
foreach($paisLimitrofe as $pais){
echo $pais.", ";
}
?>

Citar
EJERCICIO 2

Escribe y ejecuta el siguiente código y responde a las siguientes preguntas:

Código: [Seleccionar]
$equipo = array(portero=>'Casillas', defensa=>'Hierro', medio=>'Ces', delantero=>'Ronaldo');

 

foreach($equipo as $posicion=>$jugador) {

    echo "El " . $posicion . " es " . $jugador;

    }

Citar
a) ¿$equipo es una variable normal, un array tradicional ó un array asociativo?

Es un array asociativo.

Citar
b) ¿portero es un índice de un array, un contenido de un elemento de un array o un contenido de una variable simple?

Es un índice asociativo de un array.

Citar
c) ¿Al ejecutar el código obtienes un resultado por pantalla u obtienes un error? ¿Qué es lo que hace el código?

El error que se obtiene es el siguiente: " Use of undefined constant portero - assumed 'portero'". Aquí, lo que hace el intérprete es como "portero" no está definido como una variable, ni tampoco como una cadena de texto, lo asume, automáticamente, como una cadena de texto.

Citar
EJERCICIO 3

Supón que quieres representar lo siguiente: hay 2 equipos españoles, en el primero el portero es Frank, el defensa Pepe, el medio Luis y el delantero Raul. En el segundo, el portero es Tiger, el defensa Mourin, el medio Katz y el delantero Alberto. Hay 1 equipo mexicano, donde el portero es Suarez, el defensa Koltz, el medio Fernandez y el delantero Ramirez. Hay 2 equipos argentinos. En el primero el portero es Higuita, el defensa Mel, el medio Rubens y el delantero Messi. En el segundo el portero es Kostenmeiner, el defensa Lenkins, el medio Marash y el delantero Juanes.

a) Representa los datos usando un array de tres dimensiones con índices numéricos donde el primer índice indica el país, el segundo el equipo y el tercero la posición del jugador. Presenta la información del país, equipo, posiciones y jugadores de cada equipo usando un bucle for.

Código: [Seleccionar]
<?php 
$equipo[0][0][0] = "Fran"
$equipo[0][0][1] = "Pepe";
$equipo[0][0][2] = "Luis";
$equipo[0][0][3] = "Raul";
$equipo[0][1][0] = "Tiger";
$equipo[0][1][1] = "Mourin";
$equipo[0][1][2] = "Katz";
$equipo[0][1][3] = "Alberto";

$equipo[1][0][0] = "Suarez"
$equipo[1][0][1] = "Koltz";
$equipo[1][0][2] = "Fernadez";
$equipo[1][0][3] = "Ramirez";

$equipo[2][0][0] = "Higuita"
$equipo[2][0][1] = "Mel";
$equipo[2][0][2] = "Rubens";
$equipo[2][0][3] = "Messi";
$equipo[2][1][0] = "Kostenmeiner";
$equipo[2][1][1] = "Lenkins";
$equipo[2][1][2] = "Marash";
$equipo[2][1][3] = "Juanes";

for($i 0$i count($equipo); $i++){
echo "<br>En el país: ".($i+1).", ";
for($j 0$j count($equipo[$i]); $j++){
echo "en el equipo: ".($j+1).", <br>";
for($k 0$k count($equipo[$i][$j]); $k++){
echo "en la posición: ".($k+1)." juega: ".$equipo[$i][$j][$k]."<br>";
}
}
}

?>

Citar
b) Representa los datos usando un array de tres dimensiones con índices numéricos donde el primer índice indica el país, el segundo el equipo y el tercero la posición del jugador. Presenta la información del país, equipo, posiciones y jugadores de cada equipo usando un bucle for each.

Código: [Seleccionar]
<?php 
$equipo[0][0][0] = "Fran"
$equipo[0][0][1] = "Pepe";
$equipo[0][0][2] = "Luis";
$equipo[0][0][3] = "Raul";
$equipo[0][1][0] = "Tiger";
$equipo[0][1][1] = "Mourin";
$equipo[0][1][2] = "Katz";
$equipo[0][1][3] = "Alberto";

$equipo[1][0][0] = "Suarez"
$equipo[1][0][1] = "Koltz";
$equipo[1][0][2] = "Fernadez";
$equipo[1][0][3] = "Ramirez";

$equipo[2][0][0] = "Higuita"
$equipo[2][0][1] = "Mel";
$equipo[2][0][2] = "Rubens";
$equipo[2][0][3] = "Messi";
$equipo[2][1][0] = "Kostenmeiner";
$equipo[2][1][1] = "Lenkins";
$equipo[2][1][2] = "Marash";
$equipo[2][1][3] = "Juanes";

$i 0;
$j 0;
$k 0;

foreach($equipo as $pais => $team){
echo "<br>En el país: ".($pais+1).", ";

foreach($equipo[$pais] as $team => $posicion){
echo "en el equipo: ".($team+1).", <br>";

foreach($equipo[$pais][$team] as $posicion => $jugador){
echo "en la posición: ".($posicion+1)." juega: ".$jugador."<br>";
};
};
}

?>

Citar
c) Representa los datos usando arrays arrays asociativos donde el primer índice indica el país, el segundo el equipo y el tercero la posición del jugador (un ejemplo de cómo declarar un elemento sería por ejemplo: $equipos['Mexico']['Equipo1']['defensa']="koltz";). A continuación usando un bucle foreach recorre los elementos del array mostrando la información del país, equipo, posiciones y jugadores de cada equipo.

Código: [Seleccionar]
<?php 
$equipo["España"]["Equipo1"]["portero"] = "Fran";
$equipo["España"]["Equipo1"]["defensa"] = "Pepe";
$equipo["España"]["Equipo1"]["medio"] = "Luis";
$equipo["España"]["Equipo1"]["delantero"] = "Raul";
$equipo["España"]["Equipo2"]["portero"] = "Tiger";
$equipo["España"]["Equipo2"]["defensa"] = "Mourin";
$equipo["España"]["Equipo2"]["medio"] = "Katz";
$equipo["España"]["Equipo2"]["delantero"] = "Alberto";

$equipo["México"]["Equipo1"]["portero"] = "Suarez";
$equipo["México"]["Equipo1"]["defensa"] = "Koltz";
$equipo["México"]["Equipo1"]["medio"] = "Fernandez";
$equipo["México"]["Equipo1"]["delantero"] = "Ramirez";

$equipo["Argentina"]["Equipo1"]["portero"] = "Higuita";
$equipo["Argentina"]["Equipo1"]["defensa"] = "Mel";
$equipo["Argentina"]["Equipo1"]["medio"] = "Rubens";
$equipo["Argentina"]["Equipo1"]["delantero"] = "Messi";
$equipo["Argentina"]["Equipo2"]["portero"] = "Kostenmeiner";
$equipo["Argentina"]["Equipo2"]["defensa"] = "Lenkins";
$equipo["Argentina"]["Equipo2"]["medio"] = "Marash";
$equipo["Argentina"]["Equipo2"]["delantero"] = "Juanes";

foreach($equipo as $pais => $team){
echo "En ".$pais;
foreach($equipo[$pais] as $team => $posicion){
echo " en el: ".$team." equipo juega como: <br>";
foreach($equipo[$pais][$team] as $posicion => $juador){
echo $posicion." - ".$juador.", <br>";
}
echo "<br>";
}
echo "<br><br>";
}

?>

Gracias

216
Buenas tardes, DRANXZ88.

Creo que no has cumplido con esta parte del ejercicio:

Citar
a) Declarar un ArrayList de objetos de tipo Set.

b) Crear un objeto de tipo HashSet para contener Strings...

c) Crear un objeto TreeSet para contener Integers...

Además, por crear todo el objeto en una clase que no contien "main", creo que mejor síntaxis sería esta:

Código: [Seleccionar]
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.TreeSet;
import java.util.Set;

public class MiLista {

    private ArrayList<Set> listas;
    private HashSet<String> listaHashSet;
    private TreeSet<Integer> listaTreeSet;

    public MiLista() {
        listas = new ArrayList<Set>();
        listaHashSet = new HashSet<String>();
        listaTreeSet = new TreeSet<Integer>();
    }
   
    public void addListaHashset(){
        listaHashSet.add("sol");
        listaHashSet.add("luna");
        listaHashSet.add("saturno");
    }
   
    public void addListaTreeSet(){
        listaTreeSet.add(8);
        listaTreeSet.add(5);
        listaTreeSet.add(2);
    }
   
    public void addMiLista(){
        listas.add(listaHashSet);
        listas.add(listaTreeSet);
    }

    public void Listar() {
        Iterator it = listas.iterator();
        while (it.hasNext()) {
            System.out.println(it.next());
        }
        //System.out.println("HOla");
    }

}

Así vemos cada método que hace. Un constructor es sólo para construir el objeto, no para añadir atributos en él. Por supuesto, ya que hemos definido el objeto de tal manera en el "main" tienes que invocar todos los métodos necesarios del objeto "MiLista". El main quedará así:

Código: [Seleccionar]
public class EjerciciosC00678B {

    public static void main(String[] args) {

        MiLista lista = new MiLista();
        lista.addListaHashset();
        lista.addListaTreeSet();
        lista.addMiLista();
        lista.Listar();
    }

}

Saludos :)

217
Hola, Pedro.

Tienes razón, en la siguiente entrega nos lo explicaban, aunque no exactamente de la forma de síntaxis que me has puesto tú. Y yo buscaba lo que me explicas tú. Con lo cual, me lo apunto en el cuaderno donde me apunto todo lo que no sé y a consultarlo cuando lo necesite.

Saludos :)

218
Buenas, Pedro.

Graicas por corregirme el ejercicio.

Jolines, ya podían haber hecho todos los lenguajes de la misma síntaxis. Es más, podrían haber hecho un lenguaje de programación universal, jejeje.

Un saludo :)

PD: La palabra "jolines" en España se utiliza sin ningún índole ofensivo (lo aclaro para la gente que no vive en España).

219
Buenas, Pedro.

Como siempre, un placer que me hayas corregido los ejercicios.

Corrección del ejercicio 4:

Código: [Seleccionar]
<?php 
for(
$i 50$i <= 500$i += 25){
echo "$i, ";
};
echo "<br><br>";

for($j 100$j 600$j += 100){
echo $j 20.;
echo ", ";
}
?>

Al principio no entendía lo que me querías decir sobre la línea, pero luego, cuando lo apliqué al código lo entendí. Es decir, en vez de:

Código: [Seleccionar]
while ($contador >= 40){
echo "$contador, ";
$contador--;
};

que quede así:

Código: [Seleccionar]
while ($contador >= 40){
echo $contador--.", ";
};

Es verdad, porque así muestra el valor de la variable y luego le resta una unidad. No había caído.

Saludos :)


220
Buenas tardes, aquí dejo una posible solución del ejercicio CU00825B del curso PHP desde cero.

Citar
EJERCICIO

Crea el código PHP de dos archivos que den respuesta al siguiente planteamiento:

Queremos almacenar en una matriz el número de alumnos con el que cuenta una academia, ordenados en función del nivel y del idioma que se estudia. Tendremos 3 niveles: Nivel básico, medio y de perfeccionamiento, que se corresponden con las filas de la matriz, y 4 idiomas (Inglés, Francés, Alemán y Ruso), que se corresponden con las columnas de la matriz. Se pide realizar la declaración de la matriz y asignarle los valores indicados en la siguiente imagen cumpliendo con:




Citar
a) Con una sintaxis ejemplo de uso de arrays asociativos donde el primer índice del array (niveles) es un número y el segundo un texto indicativo del idioma. Se debe mostrar por pantalla los alumnos que existen en cada nivel e idioma. Ejemplo: numeroAlumnos[0]['frances'] representará el número de alumnos que existen en el nivel básico, idioma francés.

b) Con una sintaxis ejemplo de uso de arrays asociativos donde tanto el primer índice del array (niveles) como el segundo (idiomas) sea un texto indicativo. Se debe mostrar por pantalla los alumnos que existen en cada nivel e idioma. Ejemplo: numeroAlumnos['basico']['frances'] representará el número de alumnos que existen en el nivel básico, idioma francés.

Código: [Seleccionar]
<?php 
$numeroAlumnos = array(
array(
"inglés" => 1,
"francés" => 14,
"alemán" => 8,
"ruso" => 3,
),
array(
"inglés" => 6,
"francés" => 19,
"alemán" => 7,
"ruso" => 2,
),
array(
"inglés" => 3,
"francés" => 13,
"alemán" => 4,
"ruso" => 1,
),
);
echo "En el nivel básico de inglés hay: ".$numeroAlumnos[0]["inglés"]." alumnos. <br>";
echo "En el nivel básico de francés hay: ".$numeroAlumnos[0]["francés"]." alumnos. <br>";
echo "En el nivel básico de alemán hay: ".$numeroAlumnos[0]["alemán"]." alumnos. <br>";
echo "En el nivel básico de ruso hay: ".$numeroAlumnos[0]["ruso"]." alumnos. <br><br><br>";
echo "En el nivel medio de inglés hay: ".$numeroAlumnos[1]["inglés"]." alumnos. <br>";
echo "En el nivel medio de francés hay: ".$numeroAlumnos[1]["francés"]." alumnos. <br>";
echo "En el nivel medio de alemán hay: ".$numeroAlumnos[1]["alemán"]." alumnos. <br>";
echo "En el nivel medio de ruso hay: ".$numeroAlumnos[1]["ruso"]." alumnos. <br><br><br>";
echo "En el nivel perfeccionamiento de inglés hay: ".$numeroAlumnos[2]["inglés"]." alumnos. <br>";
echo "En el nivel perfeccionamiento de francés hay: ".$numeroAlumnos[2]["francés"]." alumnos. <br>";
echo "En el nivel perfeccionamiento de alemán hay: ".$numeroAlumnos[2]["alemán"]." alumnos. <br>";
echo "En el nivel perfeccionamiento de ruso hay: ".$numeroAlumnos[2]["ruso"]." alumnos. <br><br><br>";
?>


<?php 
echo 
"<br><br><br>";
$numeroAlumnos["básico"] = array(
"inglés" => 1,
"francés" => 14,
"alemán" => 8,
"ruso" => 3,
);
$numeroAlumnos["medio"] = array(
"inglés" => 6,
"francés" => 19,
"alemán" => 7,
"ruso" => 2,
);
$numeroAlumnos["perfeccionamiento"] = array(
"inglés" => 3,
"francés" => 13,
"alemán" => 4,
"ruso" => 1,
);
echo "En el nivel básico de inglés hay: ".$numeroAlumnos["básico"]["inglés"]." alumnos. <br>";
echo "En el nivel básico de francés hay: ".$numeroAlumnos["básico"]["francés"]." alumnos. <br>";
echo "En el nivel básico de alemán hay: ".$numeroAlumnos["básico"]["alemán"]." alumnos. <br>";
echo "En el nivel básico de ruso hay: ".$numeroAlumnos["básico"]["ruso"]." alumnos. <br><br><br>";
echo "En el nivel medio de inglés hay: ".$numeroAlumnos["medio"]["inglés"]." alumnos. <br>";
echo "En el nivel medio de francés hay: ".$numeroAlumnos["medio"]["francés"]." alumnos. <br>";
echo "En el nivel medio de alemán hay: ".$numeroAlumnos["medio"]["alemán"]." alumnos. <br>";
echo "En el nivel medio de ruso hay: ".$numeroAlumnos["medio"]["ruso"]." alumnos. <br><br><br>";
echo "En el nivel perfeccionamiento de inglés hay: ".$numeroAlumnos["perfeccionamiento"]["inglés"]." alumnos. <br>";
echo "En el nivel perfeccionamiento de francés hay: ".$numeroAlumnos["perfeccionamiento"]["francés"]." alumnos. <br>";
echo "En el nivel perfeccionamiento de alemán hay: ".$numeroAlumnos["perfeccionamiento"]["alemán"]." alumnos. <br>";
echo "En el nivel perfeccionamiento de ruso hay: ".$numeroAlumnos["perfeccionamiento"]["ruso"]." alumnos. <br><br><br>";
?>

Comentar que es un poco incómodo trabajar con arrays asociativos porque no les podemos meter en un bucle tradiconal, por no llevar orden numérico, sino asociativo. Quizás en un bucle foreach.

Gracias.

Páginas: 1 ... 6 7 8 9 10 [11] 12 13 14 15 16 ... 30

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