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 2 3 4 [5] 6 7 8 9 10 ... 30
81
Buenos días. Expongo una posible solución del ejercicio CU00531F del curso lenguajeC desde cero.

Citar
EJERCICIO

Responde a las siguientes cuestiones:

a) Usando la macro __LINE__ crea un programa que muestre el mensaje “La línea actual es: nLinea” donde nLinea será el valor de línea correspondiente. Por ejemplo “La línea actual es: 5”

b) Sabiendo que la macro __FILE__ devuelve una cadena de caracteres con la ruta del fichero compilado, ampliar el programa anterior para que además de la línea nos muestre la ruta del fichero con un mensaje del tipo “La línea actual es: nLinea y la ruta del fichero es rutaFich” donde nLinea y rutaFich deberán ser reemplazados por los valores correspondientes.

La solución:

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>

int main() {
    printf("La l%cnea actual es: %d\ y la ruta del fichero es: %s\n", 161, __LINE__, __FILE__);

    return 0;
}

Gracias.

82
Buenos días. Dejo una posible solución del ejercicio CU00530F del curso lenguajeC desde cero.

Citar
EJERCICIO

Un else puede ir seguido de un if dando lugar a lo que se conoce como una estructura else if. Un if seguido de if else equivale a decir “Si ocurre esto … haz esto … y si no comprueba si ocurre esto otro … Se pueden añadir tantos else if como se desee (y finalmente puede haber un else para contemplar el caso de que no se cumpla ninguna de las condiciones). Estudia este código y responde a las cuestiones indicadas más abajo:

Código: [Seleccionar]
#include <stdio.h>
// Ejercicios aprenderaprogramar.com
int main () {
   /* local variable definition */
   int a = 100;
   if( a == 10 ) {
      printf("Value of a is 10\n" );
   }
   else if( a == 20 ) {
      printf("Value of a is 20\n" );
   }
   else if( a == 30 ) {
      printf("Value of a is 30\n" );
   }
   else {
      printf("None of the values is matching\n" );
   }
   printf("Exact value of a is: %d\n", a );
   return 0;
}

Citar
a) Describe qué es lo que hace este programa detalladamente.

1. Incluimos la clase "stdio.h"
2. Abrimos el método main
3. Definimos y inicializamos la variable "a" con un valor 100.
4. Comprobamos si la variable "a" es igual a 10
5. En caso de que se cumpliera esta condición definimos que se imprima: "Value of a is 10"
6. Comprobamos si la variable "a" es igual a 20
7. En caso de que se cumpliera esta condición definimos que se imprima: "Value of a is 20"
8. Comprobamos si la variable "a" es igual a 30
9. En caso de que se cumpliera esta condición definimos que se imprima: "Value of a is 30"
10. Si no se cumpliera ninguna de las condiciones anteriores definimos que se imprima: "None of the values is matching"
11. En cualquier caso definimos que se imprima: "Exact value of a is: 100"
12. Para que el método sea una función definimos un valor de retorno que en nuestro caso sería 0. (return 0).

Citar
b) ¿Cuál es el resultado si definimos a con valor 20? ¿Cuál es el resultado si definimos a con valor 30? ¿Cuál es el resultado si definimos a con valor 40?

1. Si definimos a con valor 20 se imprimirá: "Value of a is 20"
2. Si definimos a con valor 30 se imprimirá: "Value of a is 30"
3. Si definimos a con valor 40 se imprimirá: "None of the values is matching"

Citar
c) Elimina el último else que aparece en el código. ¿Cuál es el resultado ahora si definimos a con valor 20? ¿Cuál es el resultado ahora si definimos a con valor 30? ¿Cuál es el resultado ahora si definimos a con valor 40? ¿Por qué obtenemos ahora estos resultados?

1. Si definimos a con valor 20 se imprimirá: "Value of a is 20"
2. Si definimos a con valor 30 se imprimirá: "Value of a is 30"
3. Si definimos a con valor 40 no se imprimirá nada.

Obtenemos estos resultados porque hemos eliminado la instrucción por defecto que estaba declarada con la instrucción "else". Es decir, se imprimirán sólo los mensajes relacionados con las condiciones contempladas, pero no existe una condición por defecto para imprimir un mensaje si no se cumpliera ninguna de las condiciones definidas.

* En todos los casos se imprimirán los mensajes que he dicho más la instrucción final del método main que es: "Exact value of a is: 100".

Gracias.

83
Buenos días, Edu.

Todo excelente. Con el temor de decirme que soy pesado te diría algo que ya te había dicho (creo), podrías haber declarado la instrucción de impresión así:

Código: [Seleccionar]
System.out.println ("Elemento " + (i +1)+ ": " + listaCantantes.getNombreCantante(i) );
en la clase "TestListaCantantes". Creo que sabes qué diferencia hay entre esta instrucción y la que habías establecido tú.

Quería aprovechar la oportunidad para decirte que tus ejercicios son muy ordenados. Incluyes tanto el enunciado del ejercicio como todas las clases. Da gusto corregir ejercicios tan bien estructurados. Lo estás haciendo muy bien. Sigue así.

Saludos.

84
Buenos días, geoman777.

Te has descuidado y no has incluido todos los atributos del objeto. Te falta la variable "especialidad". 

Tal y como está planteado el ejercicio la  instrucción para que se muestre por consola un mensaje informando del cambio tiene que estar en los métodos setter y no en get.

Revísate otra vez el ejercicio.

Un saludo.

85
Ah, ok.

Es que al ver que habías utilizado la definición con la palabra clave "static" pensaba que sabías por qué la ponías. Por eso te aconsejé que lo explicaras para los demás. Pero si no es así, tranquilo, ya llegarás a la entrega que lo explique.

Saludos.

86
Tanto el setter, como cualquier método de un objeto.

No hay de que Edu. Estamos aquí para eso. Si te ha quedado alguna duda más no dudes en preguntar.

Saludos.

87
Buenos días, Pandemia.

Primero que nada, gracias por tu corrección y por el tiempo implicado.

Realmente hace falta inicializar las variables si una de ellas la tiene que entrar el usuario y la otra es un cálculo?

Es más, las variables se inicializan, pero no en la misma línea en su definición. La "R" se inicializa con el valor dado por el usuario y la "V" a través de la fórmula.

Saludos.

88
Buenos días, Pandemia.

Gracias por tu corrección y por tu tiempo.

Saludos.

89
Buenas tardes.

Mediante la presente expongo una posible solución del ejercicio CU00529F del curso tutorial de programación en C, lenguajeC desde cero.

Citar
EJERCICIO

Crea un programa que declare tres variables de tipo entero con valores A = 5, B = 3, C = -12 y muestre si se cumplen o no las siguientes condiciones usando if else:

a) A > 3                                 b) A > C                                 c) B != C                                 d) A == 3

e) A * B == 15                       f) C / B < A                             g) C / B == -10                 

h) A + B + C == 5

i) (A+B == 8 ) && (A-B == 2)                                       

j) (A+B == 8 ) || (A-B == 6)

o) A > 3 && B > 3 && C < 3                       

 

Ejemplo. Hay que evaluar si A es mayor que tres. Si se cumple esa condición debe mostrarse el mensaje “A es mayor que 3” y en caso contrario debe mostrarse el mensaje “A no es mayor que 3”. Proceder de la misma manera con el resto de condiciones.

El código:

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>

int main() {
    int A = 5;
    int B = 3;
    int C = -12;

    if(A > 3){
        printf("A es mayor que 3\n");
    }else{
        printf("A no es mayor que 3\n");
    }

    if(A > C){
        printf("A es mayor que C\n");
    }else{
        printf("A no es mayor que C\n");
    }

    if(B != C){
        printf("B no es igual que C\n");
    }else{
        printf("B es igual que C\n");
    }

    if(A == 3){
        printf("A es igual a 3\n");
    }else{
        printf("A no es igual a 3\n");
    }

    if(A * B == 15){
        printf("A * B es igual a 15\n");
    }else{
        printf("A * B no es igual a 15\n");
    }

    if(C / B < A){
        printf("C entre B es menor que A\n");
    }else{
        printf("C entre B no es menor que A\n");
    }

    if(C / B == -10){
        printf("C entre B es igual a -10\n");
    }else{
        printf("C entre B no es igual a -10\n");
    }

    if(A + B + C == 15){
        printf("A m%cs B m%cs C es igual a 15\n", 160, 160);
    }else{
        printf("A m%cs B m%cs C no es igual a 15\n", 160, 160);
    }

    if((A + B) == 8 && (A - B) == 2){
        printf("A m%cs B es igual a 8 y A menos B es igual a 2\n", 160);
    }else{
        printf("A m%cs B no es igual a 8 y/o A menos B no es igual a 2\n", 160);
    }

    if(A + B == 8 || A - B == 6){
        printf("O A m%cs B es igual a 8 ó A menos B es igual a 6 o las dos condiciones son ciertas\n", 160);
    }else{
        printf("A m%cs B no es igual a 8 y A menos B no es igual a 6\n", 160);
    }

    if(A > 3 && B > 3 && C > 3){
        printf("A es mayor que 3 y B es mayor que 3 y C es mayor que 3\n");
    }else{
        printf("O A no es mayor que 3 ó B no es mayor que 3 ó C no es mayor que 3\n");
    }
}

Gracias.

90
Buenas tardes, Edu.

Todas las respuestas son correctas. (Te he contestado a la duda que tenías en la entrega CU00652B).

Saludos.

91
Buenas tardes, Edu.

Un pensamiento muy interesante. Si no existiera ningún depósito o si su diametro tuviera valor 0 lógicamente no tedría mucho sentido el resultado. Pero tal y como está establecida la condicional se podría producir el caso. Por lo tanto, llego a la misma conclusión que tú, tendría que haberse utilizado el operador lógico or y no and.

Sobre la segunda cuestión. Si estás hablando de la condicional en el método setter tendría sentido la condicional, porque al invocar dicho método se podrían poner parámetros "0". En cambio, si estás refiriéndote a la condicional en el constructor, también tiene sentido porque se podrían poner como parámetros "0" al crear el objeto (por ejemplo en el método main).

No sé si he podido contestarte bien a tu duda y si la he entendido bien.

Saludos.

92
Buenas, Edu.

Ejercicio correcto.

Saludos.

93
Hola, Edu.

Primero, tienes el ejercicio bien resuelto.

El recuento de las posiciones de los carácteres empieza de "0". Es decir, la palabra "hamburger" se contaría así:

h = posición 0;
a = posición 1;
m = posición 2;
b = posición 3;
u = posición 4;
etc.

Por lo tanto, cuando invocas el método "substring(par1, par2)" sobre la cadena de texto "humburger" y estableces como parámetros "4,8" te devolverá "urge". La posición 4 corresponde a la letra "u" y la posición 8 corresponderá a la letra "r" que quedará excluida.

Espero que te haya servido mi explicación.

Saludos.

94
Hola, Edu.

Otro ejercicio hecho de manera correcta.

Sobre tu duda, tengo entendido que hay una práctica aceptada por los programadores para que las clases se definan con mayúscula. Creo que aquí se trata de un simple descuido. Pero sobre esta cuestión el que mejor te podría contestar es Alex Rogríguez.

Saludos.

95
Hola, Edu.

Ejercicio resuelto satisfactoriamente.

Saludos.

96
Buenas, Edu.

Respuesta A) Correcta.

Respuesta B)

Citar
Podemos decir que existe una identidad en null (situación especial). Conviene tener cuidado con esta respuesta.

null significa alguna de estas cosas: objeto declarado pero no inicializado, condición de terminación de una serie de objetos, el objeto no existe, el objeto no tiene un contenido definido, el contenido del objeto ha sido eliminado explícitamente estableciéndose a null.

En Java se cumple lo siguiente: null == null (en otros lenguajes no es así).

Por tanto si no se han inicializado piloto == copiloto1 resulta true y copiloto1 == copiloto2 también es true, y si consideramos que toda comparación con == que devuelve true implica una relación de identidad, sí habría relación de identidad. La identidad consistiría en "los tres objetos son el mismo objeto: null".

Hay que considerar null una situación especial de un objeto.

Explicación hecha por el experto y moderador global César Krall, puedes encontrarla aquí: https://www.aprenderaprogramar.com/foros/index.php?topic=1964.msg9837#msg9837

Respuesta C) Correcta.

Saludos.

97
Buenas tardes, Edu.

Un ejercicio excelente. Bravo.

Saludos :)

98
Hola, Edu.

Otro ejercicio correcto. Felicidades. Sigue así.

Saludos.

99
Buenas tardes, Edu.

Ejercicio bien resuelto. He visto que has utilizado el tipo de impresión: "Letra " + i + ": "", empezando el bucle desde: "int i=1" tal y como habías aconsejado a un compañero nuestro. Bien hecho. Así los demás ven también otra manera de hacer las cosas :)

También he observado que has declarado el método main con la palabra clave "static". Es una cuestión que se explica en la entrega CU00673B de este mismo curso. Pero, sinceramente, por como construyes los códigos, explicas las formas y lo demás, está claro que tienes unos conocimientos de programación avanzados.

Desde mi punto de vista personal, si utilizas prácticas que aún no están estudiadas sería conveniente explicarlas, más que nada, para que los demás compañeros que no saben lo sepan.

Saludos :)

100
Buenas tardes, Mario.

Gracias por corregirme este ejercicio también.

Gracias a vosotros por darnos la oportunidad a nosotros aprender con tan buenas explicaciones y casos prácticos.

Me gusta mucho como habéis estructurada la página y la manera de corregirnos unos a los otros. En un comentario tuyo me comentaste que a parte de aprender de esta manera, corregiendo ejercicios a nuestros compañeros que ya habíamos estudiado es una forma de repasar los temas pasados. Totalmente de acuedo. Así repasamos materia ya estudiada y entendemos detalles que, puede ser, anteriormenete no lo habíamos entendido tan bien.

Sois los mejores! Gracias.

Ahora, a por otro curso más que voy :)

Saludos.

Páginas: 1 2 3 4 [5] 6 7 8 9 10 ... 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".