Cours:TpiiChenillardEntassement : Différence entre versions
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 à 21: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);
}