Autor Tema: programa en C volumen esfera Variables printf scanf datos en lenguajeC CU00527F  (Leído 4859 veces)

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Buenas noches.

Dejo una posible solución del ejercicio CU00527F del curso lenguajeC desde cero.

Citar
EJERCICIO

Crea un programa que pida al usuario el radio de una esfera y muestre por pantalla el volumen de la esfera. Si no conoces la fórmula de cálculo, busca información al respecto en internet.

Fórmula del el volumen de la esfera:

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

int main() {
    double V, R;
    const double Pi = 3.141593;

    //Datos
    printf("Introduce el radio de la esfera: ");
    scanf("%lf", &R);

    //Cálculo
    V = 1.33*Pi*pow(R, 3);

    printf("El volumen de la esfera es: %lf, metros c%cbicos", V, 163);

    return 0;
}

Gracias.
« Última modificación: 08 de Julio 2016, 18:52 por Ogramar »

Pandemia

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 255
    • Ver Perfil
Re:CU00527F Variables, printf, scanf, datos en lenguajeC
« Respuesta #1 en: 03 de Julio 2016, 21:02 »
Todo bien; pero te aconsejo que inicialices las variables por ejemplo:

duoble v = 0;
double r = 0;

Así le das mas sentido a tu programa.

Saludos   ;D

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Re:CU00527F Variables, printf, scanf, datos en lenguajeC
« Respuesta #2 en: 04 de Julio 2016, 10:13 »
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.
« Última modificación: 04 de Julio 2016, 10:15 por dimiste »

Pandemia

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 255
    • Ver Perfil
Re:CU00527F Variables, printf, scanf, datos en lenguajeC
« Respuesta #3 en: 05 de Julio 2016, 20:21 »
Buenas tardes dimiste, no son estrictamente obligatorias inicializarlas, pero sí es aconsejable   queda a gusto del programador, así como por ejemplo los contadores no son necesarios inicializarlos.

Saludos.   ;D

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Re:CU00527F Variables, printf, scanf, datos en lenguajeC
« Respuesta #4 en: 06 de Julio 2016, 11:42 »
Buenos días, Pandemia.

Programo de esta manera para ir acorde con el estilo de enseñanza de los cursos de aprenderaprogramar.com. Vi que el profesor lo programaba así, como por ejemplo en la entrega CU00539F (entre otras):

Citar
EJERCICIO Nº1: SOLUCIÓN

Vamos a suponer que el archivo caudal.dat se encuentra en la unidad de disco C:, y que el valor de caudal disponible en litros por minuto que proporciona es 112. Antes de ejecutar el programa habremos creado este archivo. Tener en cuenta que para especificar la ruta tendremos que poner c:\\caudal.dat usando una doble barra porque \ es un carácter especial que se usa para insertar ciertos códigos de control como cuando escribimos \n y para que se interprete como un carácter de la cadena c:\caudal.dat hemos de escribir el carácter de escape, que es precisamente \, de ahí que se escriba duplicado.

 

Código:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
// Ejercicios resueltos de programación en C aprenderaprogramar.com
int main() {
    const double Pi = 3.141592654;     double D, R, H, V, Vlitros, tminutos, Q;
    puts ("Tiempo de llenado para un deposito cilindrico\n");
    printf ("Introduzca el diametro del deposito en metros: ");  scanf ("%lf", &D);
    printf ("Introduzca la altura del deposito en metros: "); scanf ("%lf", &H);

    //Extracción de dato de caudal del archivo
    FILE* fichero;     fichero = fopen("c:\\caudal.dat", "rt");
    fscanf (fichero, "%lf", &Q );
    fclose(fichero);

    //Cálculos y resultados
    printf ("\nDato de caudal extraido de fichero vale:  %lf \n", Q);
    R = D / 2;     V = Pi * pow (R, 2) * H;     Vlitros = V * 1000;     tminutos = Vlitros / Q;
    printf ("El tiempo que transcurrira hasta el llenado del deposito es de %lf minutos \n", tminutos );
    return 0;
}

Si te fijas en este ejemplo, las variables D, R, H, V, Vlitros, tminutos, Q, solamente están definidas, pero no inicializadas.

Pero lo dicho, gracias por tus consejos, lo tendré en cuenta. Al fin y al cabo lo que quiero es mejor como programador y agradezco todos los consejos por vuestra parte. Gracias.

Saludos.

Pandemia

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 255
    • Ver Perfil
Re:CU00527F Variables, printf, scanf, datos en lenguajeC
« Respuesta #5 en: 06 de Julio 2016, 20:47 »
Buenas tardes Dimiste, en es te ejemplo tienes razón, pero si te fijas todas son del mismo tipo  double, en casos así vale la pena porque te ahorras varias líneas de código, pero de todos modos va a gusto del programador, mi consejo es solo para la cuestión de estructuración del programa, así se ven mejor los errores.

Saludos.   ;D

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Buenas en general se considera una buena práctica de programación (y recomendable) inicializar las variables. En algunos lenguajes forma parte de la propia estructura habitual de la programación (por ejemplo en Java al crear un objeto usamos un constructor y en ese constructor normalmente inicializamos todos los atributos aunque no sea algo obligatorio, pero lo hacemos por norma). No inicializar una variable puede suponer un riesgo, de ahí que sea recomendable (aunque a veces ciertamente no se haga. En ese caso la variable tendrá un valor de defecto definido por el compilador, o quizás tenga un contenido nulo).

Salu2

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Buenas, Ogramar.

Gracias por tu aportación también. Ok, me ha quedado claro que tengo que declarar (evidentemente) y inicializar todas las variabes/atributos.

Gracias a tí y a Pandemia por la aportación en este hilo.

Saludos.

 

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