Foros del Web » Programación para mayores de 30 ;) » Programación General »

¿Mi programacion es "chafa"?

Estas en el tema de ¿Mi programacion es "chafa"? en el foro de Programación General en Foros del Web. La verdad no se programar, al menos no como yo quisiera, ni siquiera programo visual , todo "arcaico" para linea de comandos. Quiero que me ...
  #1 (permalink)  
Antiguo 03/11/2005, 15:52
Avatar de Shion  
Fecha de Ingreso: noviembre-2004
Mensajes: 100
Antigüedad: 19 años, 5 meses
Puntos: 0
¿Mi programacion es "chafa"?

La verdad no se programar, al menos no como yo quisiera, ni siquiera programo visual , todo "arcaico" para linea de comandos.

Quiero que me den su opinion de si por lo menos tengo una buena logica de programacion. El siguiente programa trata de lo siguiente: Se ingresaran datos de peso y talla de alumnos de 10 facultades y se tiene que obtener una tabla con el promedio de peso y talla por facultad (ya se que esta bien chafa pero mi profra. tambien lo es )

Código:
#include <stdio.h>
#include <conio.h>

int idFac[20], datosTalla[20], datosPeso[20], NoRegistro;

void promediar()
{
    int acumulaTalla=0, acumulaPeso=0, facultad=1, contador=0;
       for(facultad=1;facultad<=10;facultad++)
       {
          acumulaTalla=0;
          acumulaPeso=0;
          for(contador=0;contador<=NoRegistro;contador++)
          {
	     if(idFac[contador]==facultad)
             {
                acumulaTalla=datosTalla[contador];
	        acumulaPeso=datosPeso[contador];
             } 
	   }
	   if(acumulaTalla==0&&acumulaPeso==0)
	     printf("\nNo existen datos para la facultad %d", facultad);
	   else
	   {
	       acumulaTalla=acumulaTalla/NoRegistro;
               acumulaPeso=acumulaPeso/NoRegistro;
               printf("El promedio de Peso en la Facultad %d es %d y de Talla es %d\n", facultad, acumulaPeso, acumulaTalla);
	   }
       }
}

void crearRegistro()
{
     do
     {
       printf("¿A que facultad pertences?\n\n 1(FCA) 2(FI) 3(FD) 4(FQ) 5(FFyL) 6(FC) 7(FCPyS) 8(FE) 9(FA) 10(FM) " );
       scanf("%d", &idFac[NoRegistro]);
       if(idFac[NoRegistro]<1||idFac[NoRegistro]>10)
       {
	 printf("\nLa facultad no existe");
	 getch();
         clrscr();
       }
     }
     while(idFac[NoRegistro]<1||idFac[NoRegistro]>10);
     printf("\nEscribe la talla en cm: ");
     scanf("%d", &datosTalla[NoRegistro]);
     printf("\nEscribe el peso en Kg: ");
     scanf("%d", &datosPeso[NoRegistro]);
     NoRegistro++;
} 

void main()
{
     int opcion;
     do
     {
       printf("Menu\n\n 1. Registro\n 2. Promediar\n 3. Salir\n\n");
       do
       {
	 scanf("%d", &opcion);
	 switch(opcion)
	 {
	       case 1:
		      clrscr();
		      if (NoRegistro>=20)
			 printf("\nLos registros se han completado");
                      else
		         crearRegistro();
	       break;
	       case 2: clrscr(); promediar(); break;
	       case 3: clrscr(); printf("Ha decidido terminar la aplicación, presione cualquier tecla para salir.\n"); break;
	       default: clrscr(); printf("Opcion no valida\n"); 
         }
       }
       while(opcion<1||opcion>3);
       getch();
       clrscr();
     }
     while(opcion!=3);
}
  #2 (permalink)  
Antiguo 03/11/2005, 16:10
Avatar de Linterns
Colaborador
 
Fecha de Ingreso: diciembre-2001
Mensajes: 2.799
Antigüedad: 22 años, 4 meses
Puntos: 11
Pues la logica no esta mal....
__________________
Bien se puede recibir una puñalada sin adulación,
pero rara vez se recibe una adulación sin puñalada
** ***
  #3 (permalink)  
Antiguo 03/11/2005, 16:23
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
A simple vista la logica parece valida, supongo que dara los resultados correctos. Un par de cosas para apuntar, usas variables globales y funciones no standard (clrscr).

En cuanto a la programacion "arcaica" como le decis te comento que hay muchisimas cosas que se hacen sin interfaz grafica y son MUCHO pero MUCHO mas avanzadas. Sin ir mas lejos hay una gran cantidad de software cuya interfaz grafica se hace en un lenguaje visual y se lo enlaza con componentes hechos en C/C++.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #4 (permalink)  
Antiguo 10/11/2005, 15:48
Avatar de webbeginner  
Fecha de Ingreso: noviembre-2004
Mensajes: 241
Antigüedad: 19 años, 5 meses
Puntos: 2
Yo soy principiante, pero quisiera saber a que te refieres(Eternal Idol) con :

Cita:
funciones no standard (clrscr)

cual sería la alternativa correcta para Limpiar pantalla??

Gracias
__________________
************************
"La bondad es simple; la maldad, múltiple"
  #5 (permalink)  
Antiguo 11/11/2005, 00:34
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Cita:
Iniciado por webbeginner
Yo soy principiante, pero quisiera saber a que te refieres(Eternal Idol) con :
Me refiero a funciones que no cumplen los standares de C o C++, ANSI/ISO para C y ISO/IEC 14822 [ISO98] para C++.
Que sea standard implica que todas las versiones COMPATIBLES con el standard soportaran una determinada funcionalidad. En este caso esa funcion no se encuentra en casi ningun compilador de C/C++ ...


Cita:
Iniciado por webbeginner
cual sería la alternativa correcta para Limpiar pantalla??
No hay, que yo sepa, no existe una funcion standard para hacerlo.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:43.