Cours:TpiiChenillardEntassement : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
m
Ligne 3 : Ligne 3 :
 
{{rouge|D'autres solutions à venir !!}}
 
{{rouge|D'autres solutions à venir !!}}
  
=boucle while=
+
={{bleu|boucle for}}=
 +
 
 +
<source lang=c>
 +
#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);
 +
}
 +
</source>
 +
 
 +
={{bleu|boucle while}}=
  
 
Une solution un peu complexe mais générant un code assez optimisé :
 
Une solution un peu complexe mais générant un code assez optimisé :

Version du 20 décembre 2012 à 22:49

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