Cours:TpiiChenillardEntassement : Différence entre versions
(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 | + | #include "commcarte.h" |
− | |||
− | |||
− | |||
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; | ||
− | + | 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);
}