Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Consulta de macros, como realizar el prototipo?

Estas en el tema de Consulta de macros, como realizar el prototipo? en el foro de C/C++ en Foros del Web. Buenas noches, esta vez mi consulta esta mas preparada. Espero que se logre entender!! jeje En el programa que hice, le falta hacer una macro ...
  #1 (permalink)  
Antiguo 18/02/2015, 18:17
Avatar de ElenaJuarez  
Fecha de Ingreso: febrero-2015
Ubicación: Buenos Aires
Mensajes: 8
Antigüedad: 9 años, 2 meses
Puntos: 0
Pregunta Consulta de macros, como realizar el prototipo?

Buenas noches, esta vez mi consulta esta mas preparada. Espero que se logre entender!! jeje
En el programa que hice, le falta hacer una macro para "poner" lo que marque en la función main. De paso puse el enunciado completo, por si ven alguna irregularidad o algo mal, aparte de no saber como tendría que trabajar con la macro y los ports. Desde ya muchas gracias.

Código C:
Ver original
  1. /*  ENUNCIADO:
  2.     Se desea realizar una estadistica con los 200 alumnos de la carrera ingenieria
  3.     electrónica de la facultad. Para ello inicialmente se debera cargar una base
  4.     de datos con los siguientes datos: Nombre(cadena de 30 caracteres), legajo(entero entre 0 y 250)
  5.     edad,sexo. Por los puertos 0x300 y 0x301 vendran los datos con la siguente estructura..
  6.     Los datos seran validos cuando el bit S cambie de 0 a 1. Asimismo en el puerto 0x400
  7.     se encontrara el legajo del alumno cuya nota se informa;
  8.     Se solicita realizar la carga de la base de datos. Luego realizar la lectura de las notas
  9.     a traves de los ports hasta que se ingresa el legajo 255;
  10.     una vez finalizada la carga se debe imprimir un listado ordenado por promedio
  11.     de los alumnos de mayor a menor, para eso utilizar la funcion que ordene un vector de punteros
  12.     Se solicita utilizart una macro para la lectura de ports. Una vez impreso el listado brindar la posibidad
  13.     de ingresar un promedio e informar cuantos alunos superaron el vslor brindado*/
  14.    
  15.  
  16.  
  17. #include<stdio.h>
  18. #include<sys/io.h>
  19. #define MAX 200
  20. struct DATOS{
  21.    
  22.     char nombre[30];
  23.     int nota;
  24.     int leg;
  25.     int materia;
  26.     int edad;
  27.     char sexo;
  28. };
  29.  
  30. struct PLACA{
  31.    
  32.    
  33.     int legajo:8;
  34.     int s:1;
  35.     int nota:4;
  36.     int materia:6;
  37.    
  38. };
  39.  
  40. union UN {
  41.    
  42.     struct placa pl;
  43.     unsigned char vector[3];
  44.    
  45. };
  46. void ingreso(struct DATOS [],struct DATOS *[], int );
  47. void mostrar(struct DATOS * [], int );
  48. void ordenar(struct DATOS * [], int L);
  49. int buscar(struct DATOS *[], int , int);
  50.  
  51.  
  52. void main(){
  53.    
  54.     struct DATOS vec[MAX], *punt[MAX];
  55.     union UN U;
  56.    
  57.     int i,k,prome,canti,legajo;
  58.    
  59.     ingreso(vec,punt,MAX);
  60.     //a partir de aca tendría que comezar lo que va en la macro
  61.    
  62.     ioperm(0x400,1,1);
  63.     ioperm(0x300,2,1);
  64.    
  65.     while(legajo!=255){
  66.        
  67.         do{
  68.            
  69.             U.vector[0]=inb(0x400);
  70.             U.vector[1]=inb(0x300);
  71.             U.vector[2]=inb(0x301);
  72.            
  73.         }while((U.vector[1]&0x01)==0);
  74.        
  75.         legajo=U.pl.legajo;
  76.         vec[legajo].nota=U.pl.nota;
  77.         vec[legajo].materia=U.pl.materia;
  78.        
  79.         do{
  80.            
  81.             U.vector[0]=inb(0x400);
  82.             U.vector[1]=inb(0x300);
  83.             U.vector[2]=inb(0x301);
  84.            
  85.         } while((U.vector[1]&0x01)==1);
  86.     }
  87.    
  88.     ioperm(0x400,1,0);
  89.     ioperm(0x300,2,0);
  90.    
  91.     //fin de lo que iria en la macroo
  92.    
  93.     ordenar(punt,MAX)   ;
  94.     mostrar(punt,MAX);
  95.    
  96.     printf("\nIngrese promedio a buscar: ");
  97.     scanf("%d",&prome);
  98.     canti=buscar(punt,MAX,prome);
  99.     if(canti==0){
  100.         printf("\nNo existen alumnos con promedio superior al ingresado.");
  101.     }
  102.     else{
  103.         printf("La cantidad de alumnos con promedio mayor a: %d es de %d.", prome,canti);
  104.     }  
  105. }//fin del main
  106.  
  107. //ordenamiento
  108. void ordenar (struct DATOS *p[], int L){
  109.     struct DATOS *aux;
  110.     int i,j;
  111.    
  112.     for(i=0;i<L;i++)
  113. {
  114.     for(j=0;j<L-i-1;j++){
  115.        
  116.         if(p[j]->nota<p[j+1]->nota){
  117.            
  118.             aux=p[j];
  119.             p[j]=p[j+1];
  120.             p[j+1]=aux;
  121.            
  122.         }
  123.     }
  124. }  
  125. }
  126.  
  127. //ingreso de datos
  128. void ingreso(struct DATOS v[],struct DATOS *p[], int L){
  129.    
  130.     int i;
  131.    
  132.     for(i=0;i<L;i++){
  133.             p[i]=&v[i];
  134.         printf("\nIngrese nombre: ");
  135.         gets(v[i].nombre);
  136.         printf("\nIngrese nota: ");
  137.         scanf("%d", &v[i].nota);
  138.         /*
  139.         .
  140.         .
  141.         .
  142.         */
  143.         getchar();
  144.     }
  145.    
  146. }
  147.  
  148. //imprimir en pantalla
  149. void mostrar(struct DATOS *p[], int L){
  150.    
  151.     struct DATOS *aux;
  152.     int i;
  153.    
  154.     for(i=0;i<L;i++){
  155.        
  156.         printf("\nNombre: %s",p[i]->nombre);
  157.         printf("\nNota: %d",p[i]->nota);
  158.    
  159.     /*
  160.     .
  161.     .
  162.     .
  163.     */
  164.    
  165.     }
  166.    
  167. }
  168.  
  169.  
  170. int buscar(struct DATOS *p[],int L,int x){
  171.    
  172.     int i,cont=0;
  173.    
  174.     for(i=0;i<L;i++){
  175.        
  176.         if(p[i]->nota>x){
  177.             cont++;
  178.         }
  179.     }
  180.    
  181.     return cont;
  182. }
  #2 (permalink)  
Antiguo 18/02/2015, 23:47
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años
Puntos: 1360
Respuesta: Consulta de macros, como realizar el prototipo?

No, esto es un descaro, un atropello a la comunidad.

He estado borrando y cerrando temas sobre "hey haganme la tarea". Principalmente por 2 razones:

1. La comunidad no es tu ejercito personal.
2. No son preguntas reales o concretas.

Etiquetas: macros, punteros, vector
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 22:19.