Vous êtes sur la page 1sur 7

LTF FES 1er BTS-SE Electronique

III- Langage de programmation C :

/*exemple de programme*/ // les commentaires sont écrit /* et */ ou après //


#include <exemple.h> // inclusion des entêtes de bibliothèques
#define M 5 // définition des équivalences ici M sera remplacé par 5

char s[]={0x81,0xC3,0xE7,0xFF,0x00}; // déclaration des variables globales

char sequence(char i) ; // déclaration des entêtes des fonctions

void main(){
char n ; // déclaration des variables locales
// code du programme principale
TRISB=0 ;
while (1) {
for(n=0 ; n<M ; n++) {
PORTB= sequence(n) ; // ou bien PORTB=s[n] ;
Delay_ms(1000) ;
}
}
}

char sequence(char i) { // Implémentation des fonctions


switch(i) {
case 0 : return 0x81 ;
case 1 : return 0xC3 ;
case 2 : return 0xE7 ;
case 3 : return 0xFF ;
case 4 : return 0x00 ;
default : return 0 ;
}
}

char n ; // n est une variable de type char (8bit)


char n=10 ; // la variable n est déclarée et initialisée par 10.

const char n=10 ; // la constante n initialisée par 10.


// par la suite on peut pas changer la valeur de n.

Présenté par Mr AZOUGAGH Page 1


LTF FES 1er BTS-SE Electronique

Type SignificationTaille Taille Taille Pour PIC


C sous DOS C sous Windows mikroC
char Caractère 8 bit 8 bit 8 bit
short Entier 16 bit 16 bit 8 bit
int Entier 16 bit 32 bit 16 bit
long Entier long 32 bit 32 bit 32 bit
float Réel 32 bit 32 bit 32 bit
double réel en double précis 64 bit 64 bit 32 bit

char n ; // n peut être initialisé par les valeurs limites -128 et 127
unsigned char n ; // n peut être initialisé par les valeurs limites 0 et 255

Opérateurs arithmétiques :
+ , - , * , /

Opérateurs conditionnels
< , > , <= , >=
== , !=

Opérateurs logiques sur des expressions

!
&& , ||

Opérateurs logiques sur des bits

~
& , | , ^
>> , <<

Opérateurs d’affectation
=
+= , -= , *= , /= , %=
&= , |= , ^= , >>= , <<= i+=k; est equivalent à i=i+k;

L’incrémentation et la décrémentation (++ et -- )


++ , -- i++; équivalent à i=i+1;

i=5 ;
n= ++i - 5; //on affecte d’abord la valeur 6 à i puis la valeur 1 à n.
n= i++ - 5; //on affecte d’abord la valeur 0 à n puis la valeur 6 à i.

Présenté par Mr AZOUGAGH Page 2


LTF FES 1er BTS-SE Electronique

Conversion de type explicite (cast)

float x=1.5f ;
int i = (int) x;

Priorité des opérateurs :

Opérateurs
1 !  ++ -- droite à gauche
2 * / % gauche à droite
3 + - gauche à droite
4 << >> gauche à droite
5 < <= > >= gauche à droite
6 == != gauche à droite
7 & gauche à droite
8 ^ gauche à droite
9 | gauche à droite
10 && gauche à droite
11 || gauche à droite
12 = += -= /= *= … droite à gauche

Structure de Choix (Structure alternative) :

Si condition alors if (condition){


traitement1 NON traitement1
Condition
Sinon }
traitement2 OUI else{
FinSi Traitement1 Traitement2
traitement2
}

if (a<b) { max= a ;}
else { max=b ; }

if (a<b) max= a ; else max=b ;

condition ? exp1 : exp2 ;


max = a<b ? a : b ;

Structure de Choix multiple :

Selon expression switch (expression) {


valeur1 : traitement1 case valeur0 : traitement1
valeur2 : traitement2 break ;
… case valeur1 : traitement2
Sinon : traitementn break ;
FinSelon …
default: traitement_par_defaut
}

Présenté par Mr AZOUGAGH Page 3


LTF FES 1er BTS-SE Electronique

Structure Itérative :

TANTQUE condition FAIRE while (condition)


Traitement NON {
FinTANTQUE Condition traitement
}
OUI
Traitement

FAIRE do {
Traitement Traitement traitement
TANTQUE condition } while (condition)
OUI
Condition

NON

POUR for(init; condition; modification)


Compteur=Val_Initiale Init Compteur {
A Val_finale par Pas traitement
FAIRE }
NON
Traitement Condition
FINPOUR
OUI
Traitement

Modif Compteur

Présenté par Mr AZOUGAGH Page 4


LTF FES 1er BTS-SE Electronique

Type_retour Nom_fonction (type nom_param1, type nom_param2, … ) ;

Type_retour Nom_fonction (type nom_param1, type nom_param2, … ) {


… // déclarations des variables et des constantes locales.
… // les instructions du sous-programme
return … ; // retour d’une valeur
}

variable = Nom_fonction (valeur1, valeur2, … ) ;

type_des_éléments Nom_tableau[taille] ;

int t[20] ;

short t[7] = { 2, 4, 8, 5, 3, 9, 6};

Présenté par Mr AZOUGAGH Page 5


LTF FES 1er BTS-SE Electronique

t &t[0]

t[0] 2
t[1] 4
t[2] 8
t[3] 5
t[4] 3
t[5] 9
t[6] 6

type_des_éléments Nom_tableau[taille_ligne][taille_colonne] ;

short t[3][2] = { {1, 2} , {3, 4} , {5, 6} };

1 2
3 4
5 6

type_des_éléments Nom_tableau [taille1][taille2] … [taillen] ;

float t[20][20][20] ;

char s[20]="SALUT"; //déclaration et initialisation d’une chaîne de caractère

‘S’ ‘A’ ‘L’ ‘U’ ‘T’ 0


s[0] s[1] s[2] s[3] s[4] s[5] s[6] ....


strcpy(s, "SALUT"); // fonction qui affecte s par "SALUT"

Présenté par Mr AZOUGAGH Page 6


LTF FES 1er BTS-SE Electronique

char s[]= "SALUT" ;


char *p= "SALUT" ;

Les fonctions de la bibliothèque <string.h> :


strlen(s) :
strcpy(s1,s2) :
strcat(s1,s2) :
strcmp(s1,s2) :
strncpy(s1,s2,n) :
strncat(s1,s2,n) :

char s[3][10] = { Mohamed , Ali , Hicham };

S[0] ‘M’ ‘o’ ‘h’ ‘a’ ‘m’ ‘e’ ‘d’ 0


S[1] ‘A’ ‘l’ ‘i’ 0
S[2] ‘H’ ‘i’ ‘c’ ‘h’ ‘a’ ‘m’ 0

type_de_la_variable *nom_pointeur ;

&
Nom_pointeur = & variable ;

Nom_pointeur = NULL ;

int a = 10; /* variable de type entier initialisé à 10 */


int *p ; /* pointeur sur une variable de type entier */
p = &a ; /* p reçoit l’adresse de la variable entière a */
printf ("%d \n", *p); /* affiche le contenu de a */

0x 0045F870. p

0x 0045F870 10 a

Présenté par Mr AZOUGAGH Page 7

Vous aimerez peut-être aussi