Resumen: Entrega nº51 del tutorial "Curso básico de programación en lenguaje C desde cero".
Codificación aprenderaprogramar.com: CU00551F

 

 

EJERCICIO RESUELTO Nº1: ENUNCIADO

Desarrollar el código C para un programa que calcule la superficie de un terreno que le corresponde a un heredero después de n generaciones, partiendo de una superficie inicial en la generación cero. Se supone que hay división a partes iguales entre herederos y que el número máximo de generaciones con que trabajará el programa es 50. Los datos de superficie inicial, número de generaciones y número de herederos por generación se deben solicitar al usuario del programa.

logo lenguaje programacion C

 

EJERCICIO RESUELTO Nº1: SOLUCIÓN

#include <stdio.h>
#include <stdlib.h>

#define MAXGENERACIONES 50

int main() {
    int hGen[MAXGENERACIONES]; int n = 0; int i=0;
    double supin = 0.0; double toca = 0.0;
    printf("***Calculo superficie herederos***\n\n");
    printf("Indique el numero de generaciones: ");
    scanf("%d", &n);
    printf("Indique la superficie inicial: ");
    scanf("%lf", &supin);
    toca = supin;
    for (i=1; i<=n; i++) {
        printf("Indique el numero de herederos de la generacion %d: ", i);
        scanf("%d", &hGen[i]);
        toca = toca/hGen[i];
    }
    printf("Al heredero actual le corresponde una superficie de %.2lf m2\n", toca);
    return 0; // Ejercicios resueltos aprenderaprogramar.com
}

 

 

Comentarios: para la generación 1, 2, 3,... el número de herederos correspondiente se almacena en el vector hGen, que se declara con un tamaño máximo de 50, aunque parte de él no sea utilizado. Un resultado de ejecución posible podría ser el siguiente:

***Calculo superficie herederos***

Indique el numero de generaciones: 3

Indique la superficie inicial: 20000

Indique el numero de herederos de la generacion 1: 4

Indique el numero de herederos de la generacion 2: 2

Indique el numero de herederos de la generacion 3: 5

Al heredero actual le corresponde una superficie de 500.00 m2

 

 

EJERCICIO RESUELTO Nº2: ENUNCIADO

En un fichero tenemos las notas de un grupo de alumnos de una clase con valores Nota(1), Nota(2), ..., Nota(n – 1), establecidas entre 0 y 10. El último dato es un señalero con valor – 50. El número de notas que contiene el fichero no se conoce, pero se sabe que el mínimo número de alumnos en la clase es 1 y el máximo 100. Se desea crear un programa que determine la nota media.

 

 

EJERCICIO RESUELTO Nº2: SOLUCIÓN

#include <stdio.h>
#include <stdlib.h>

#define NMAXALUMNOS 100

int main() {
    int i=0; double nota[NMAXALUMNOS];     double suma=0.0; double media=0.0;
    FILE* fichero; // Ejercicios resueltos aprenderaprogramar.com
    fichero = fopen("notas.dat", "rt");
    fscanf (fichero, "%lf", &nota[i]);
    do {         suma = suma + nota[i];
               i = i+1; //Valor final de i será el número de alumnos
               fscanf (fichero, "%lf", &nota[i]);
    } while (nota[i]!=-50);
    fclose(fichero);
    media = suma/i;
    printf ("La media es %lf", media);
    return 0;
}

 

 

Si el fichero notas.dat contuviera los siguientes datos (un dato en cada línea): 5, 7, 2, 3, 9, 5, 6, 8, - 50

El resultado obtenido sería: La nota media de la clase es 5.625000

 

 

EJERCICIO

Crea un programa en C que pida una cadena al usuario y muestre por pantalla la cadena invertida.

Por ejemplo, si la cadena introducida es calor, deberá mostrarse por pantalla rolac. Si la cadena introducida es aprenderaprogramar.com deberá mostrarse por pantalla moc.ramargorparednerpa

 

Para comprobar si tus respuestas son correctas puedes consultar en los foros aprenderaprogramar.com.

 

 

 

 

 

 

Para acceder a la información general sobre este curso y al listado completo de entregas pulsa en este link:  Ver curso completo.

 

Para  hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.

 

Descargar archivo: