Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Axurino en 2 Agosto 2021, 01:06 am



Título: Estructura FOR
Publicado por: Axurino en 2 Agosto 2021, 01:06 am
Estoy haciendo una tarea sobre programación en c con estructura for, y una de las actividades es la siguiente:
"Un curso tiene 30 alumnos identificados con números del 1 al 30 por
cada alumno se ingresan las notas correspondientes a 10 materias, calcular el promedio por cada alumno y el promedio general del curso."
Deduzco que debo utilizar 2 for, pero realmente soy muy nuevo con el lenguaje c y no encuentro tutoriales respecto al tema xD.



Título: Re: Estructura FOR
Publicado por: BloodSharp en 2 Agosto 2021, 01:16 am
Deduzco que debo utilizar 2 for, pero realmente soy muy nuevo con el lenguaje c y no encuentro tutoriales respecto al tema xD.
Yo diría que en total necesitarías mínimo 4 for (1 de ellos dentro de al menos un for). Tutoriales del ciclo for hay de todos los lenguajes y de a montones, solamente te tenés que fijar en youtube y saltan varios.


B#


Título: Re: Estructura FOR
Publicado por: Axurino en 2 Agosto 2021, 02:29 am
Yo diría que en total necesitarías mínimo 4 for (1 de ellos dentro de al menos un for). Tutoriales del ciclo for hay de todos los lenguajes y de a montones, solamente te tenés que fijar en youtube y saltan varios.


B#
Mirá, logré hacer un programa que "funciona" (pidiendo el numero de alumnos y de notas).
El problema es que, cuando me muestra el promedio de cada alumno se va sumando al anterior ¿Como hago para que eso no pase?

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

int main()
{
    int promedio=0, prom_alum=0, alumnos=0, notas=0, I=0, note=0, suma=0, J=0, otro_prom=0, promedio2=0;
printf("Ingrese el numero de alumnos: ");
        scanf("%d", &alumnos);
printf("Ingrese la cantidad de notas: ");
        scanf("%d", &notas);
            system ("cls");
            for (I=0;I<alumnos;I++) {
            printf("Alumno nro%d : \n",I+1);
            for (J=0;J<notas;J++){
            printf(" La nota nro%d del alumno es: ",J+1);
            scanf("%d", &note);
            otro_prom=otro_prom+note;

            }
            promedio2=otro_prom/notas;
            printf("El promedio del alumno es: %d \n",promedio2);
            prom_alum=prom_alum+promedio2;
            }
        promedio=prom_alum/alumnos;
        printf("La nota promedio es: \n%d\n", promedio);

}


Título: Re: Estructura FOR
Publicado por: BloodSharp en 2 Agosto 2021, 03:26 am
Mirá, logré hacer un programa que "funciona" (pidiendo el numero de alumnos y de notas).
No tenés que pedir el número de cantidad de alumnos, ese dato te lo dá.
Un curso tiene 30 alumnos identificados con números del 1 al 30

El problema es que, cuando me muestra el promedio de cada alumno se va sumando al anterior ¿Como hago para que eso no pase?
Cuando termines de ingresar todas las notas por cada alumno tenés que calcular el promedio dividiendo por 10 materias y luego el promedio de promedio de todos los alumnos...
cada alumno se ingresan las notas correspondientes a 10 materias, calcular el promedio por cada alumno y el promedio general del curso."

Te voy a dar una pista de lo que tenés que tener:
Código
  1. #define CANTIDAD_ALUMNOS 30
  2. #define CANTIDAD_MATERIAS 10
  3.  
  4. int iNotasDeAlumnos[CANTIDAD_ALUMNOS][CANTIDAD_MATERIAS];
  5. int iPromedioDeAlumnos[CANTIDAD_ALUMNOS];


B#


Título: Re: Estructura FOR
Publicado por: Axurino en 2 Agosto 2021, 03:39 am
No tenés que pedir el número de cantidad de alumnos, ese dato te lo dá.
Cuando termines de ingresar todas las notas por cada alumno tenés que calcular el promedio dividiendo por 10 materias y luego el promedio de promedio de todos los alumnos...
Te voy a dar una pista de lo que tenés que tener:
Código
  1. #define CANTIDAD_ALUMNOS 30
  2. #define CANTIDAD_MATERIAS 10
  3.  
  4. int iNotasDeAlumnos[CANTIDAD_ALUMNOS][CANTIDAD_MATERIAS];
  5. int iPromedioDeAlumnos[CANTIDAD_ALUMNOS];


B#

O sea, entiendo tu punto, simplemente cambió los números por los ya dados, pero aún así, el promedio sigue sumándose al anterior (?

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.    int promedio=0, prom_alum=0, I=0, note=0, J=0, otro_prom=0, promedio2=0;
  7.            system ("cls");
  8.            for (I=0;I<30;I++) {
  9.            printf("Alumno nro%d : \n",I+1);
  10.            for (J=0;J<10;J++){
  11.            printf(" La nota nro%d del alumno es: ",J+1);
  12.            scanf("%d", &note);
  13.            otro_prom=otro_prom+note;
  14.            }
  15.            promedio2=otro_prom/10;
  16.            printf("El promedio del alumno es: %d \n",promedio2);
  17.            prom_alum=prom_alum+promedio2;
  18.            }
  19.        promedio=prom_alum/30;
  20.        printf("La nota promedio es: \n%d\n", promedio);
  21.  
  22. }
  23.  


Título: Re: Estructura FOR
Publicado por: BloodSharp en 2 Agosto 2021, 04:34 am
O sea, entiendo tu punto, simplemente cambió los números por los ya dados, pero aún así, el promedio sigue sumándose al anterior (?

No creo que hayas entendido bien la pista que te dejé, este es un ejercicio de matrices y vectores que se necesita si o si almacenar todas las notas de los 10 materias de los 30 alumnos. Te dejo un pseudo código a ver si lo resolvés:

Código
  1. #define CANTIDAD_ALUMNOS 30
  2. #define CANTIDAD_MATERIAS 10
  3.  
  4. int iNotasDeAlumnos[CANTIDAD_ALUMNOS][CANTIDAD_MATERIAS];
  5. int iPromedioDeAlumnos[CANTIDAD_ALUMNOS];
  6.  
  7. for(recorrer alumnos)
  8. {
  9. promedio_de_alumno_actual = 0
  10. for(recorrer materias)
  11. {
  12. ingresar nota para alumno actual
  13. promedio_de_alumno_actual += nota ingresada
  14. }
  15. promedio_de_alumno_actual /= CANTIDAD_MATERIAS
  16. }
  17.  
  18. promedio_total_del_curso = 0
  19. for(recorrer alumnos)
  20. {
  21. promedio_total_del_curso += promedio_de_alumno_actual
  22. }
  23.  
  24. promedio_total_del_curso /= CANTIDAD_ALUMNOS
  25.  
  26. for (recorrer alumnos)
  27. {
  28. imprimir el promedio_de_alumno_actual
  29. }
  30.  
  31. imprimir promedio_total_del_curso


B#


Título: Re: Estructura FOR
Publicado por: Axurino en 2 Agosto 2021, 06:34 am
No creo que hayas entendido bien la pista que te dejé, este es un ejercicio de matrices y vectores que se necesita si o si almacenar todas las notas de los 10 materias de los 30 alumnos. Te dejo un pseudo código a ver si lo resolvés:
B#

MUCHAS GRACIASSS.
Después de darle un par de vueltas logre hacer que el programa funcionara correctamente, el "pseudocódigo" me ayudó bastante, tenia un error muy básico, pero al final por suerte me di cuenta xD