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
 
(2 révisions intermédiaires par le même utilisateur non affichées)
Ligne 3 : Ligne 3 :
 
{{rouge|D'autres solutions à venir !!}}
 
{{rouge|D'autres solutions à venir !!}}
  
=boucle while=
+
={{bleu|boucle for}}=
 +
 
 +
<source lang=c>
 +
#include "commcarte.h"
 +
 
 +
 
 +
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é :
  
 
<source lang=c>
 
<source lang=c>
#include <sys/io.h>
+
#include "commcarte.h"
#include <stdio.h>
 
#include <stdlib.h>
 
  
#define PORT 0x378
 
  
 
void printbits(unsigned char n)
 
void printbits(unsigned char n)
Ligne 25 : Ligne 51 :
 
   //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 68 :
 
       a=a>>1;
 
       a=a>>1;
 
     }while (a);
 
     }while (a);
   }
+
   }while (cpt<3);
 
   //closeParPort(device);
 
   //closeParPort(device);
 
}
 
}

Version actuelle datée du 20 décembre 2012 à 22:02

retour vers la page des Tps II

D'autres solutions à venir !!

boucle for

#include "commcarte.h"


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 "commcarte.h"


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