Cours:TpiiChenillardEntassement : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
(Page créée avec « {{RetourVers/TpII}} {{rouge|D'autres solutions à venir !!}} =boucle while= Une solution un peu complexe mais générant un code assez optimisé : <source lang=c> #inc... »)
 
m
Ligne 25 : Ligne 25 :
 
   //device=openParPort("/dev/parport0");
 
   //device=openParPort("/dev/parport0");
 
   unsigned char i,a,cpt=0;
 
   unsigned char i,a,cpt=0;
   while (cpt<3)
+
   do
 
   {
 
   {
 
     cpt++;
 
     cpt++;
Ligne 42 : Ligne 42 :
 
       a=a>>1;
 
       a=a>>1;
 
     }while (a);
 
     }while (a);
   }
+
   }while (cpt<3);
 
   //closeParPort(device);
 
   //closeParPort(device);
 
}
 
}
 +
 
</source>
 
</source>
  
  
 
{{RetourVers/TpII}}
 
{{RetourVers/TpII}}

Version du 20 décembre 2012 à 22:43

retour vers la page des Tps II

D'autres solutions à venir !!

boucle while

Une solution un peu complexe mais générant un code assez optimisé :

#include <sys/io.h>
#include <stdio.h>
#include <stdlib.h>

#define PORT 0x378

void printbits(unsigned char n)
{
  int i;
  for (i=7;i>=0;i--)  printf("%d", (n >> i ) & 1);
}

int main()
{
  int device;
  //device=openParPort("/dev/parport0");
  unsigned char i,a,cpt=0;
  do
  {
    cpt++;
    a=0xFF;
    do
    {
      i=1;
      do
      {      
      //ecrireParPort(device,i|~a);
	printbits(i|~a);
	printf("\n");
	i=i<<1;
	//usleep(100000);
      }while((i&a));
      a=a>>1;
    }while (a);
  }while (cpt<3);
  //closeParPort(device);
}


retour vers la page des Tps II