Cours:TpiiChenillardEntassement

De troyesGEII
Aller à : navigation, rechercher

retour vers la page des Tps II

D'autres solutions à venir !!

boucle for

#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,j,cpt;
  for (cpt=0;cpt<3;cpt++)
    for (i=8;i>0;i--)
      for (j=0;j<i;j++)
      {      
      //ecrireParPort(device,1<<j|(0xFF<<i);
	printbits(1<<j|(0xFF<<i)); printf("\n");
	//usleep(100000);
      }
  //closeParPort(device);
}

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