Cours gratuit: Source du langage C

Sommaire: Source du langage C

1. Algorithmes(22)
2. Conversion(5)
3. Gestion des dates et du temps(9)
4. GTK+(5)
5. Jeux(4)
6. Les structures de données(10)
7. Manipulation de fichier(10)
8. Manipulation des chaînes de caractères(14)
9. Manipulation des bits(3)
10. Mathématiques(5)
11. Saisie utilisateur(1)
12. Gestion dynamique de la mémoire(2)
13. Linux(5)
14. Divers(11)

Extrait du cours source du langage C

Algorithmes
Déterminer la parité d’un char
La parité consiste à calculer le nombre de bits d’une variable (ici un unsigned char) égaux à 1 et si cette somme est paire,la parité de cette variable le sera aussi, sinon elle sera impaire.
intparite_paire (unsigned charnombre)
{
intret = 0;
while(nombre)
{
ret ^=nombre & 1;
nombre >>= 1;
}
returnret;
}
Cryptage selon la méthode de César
voidcesar (char *str, intdecalage)
{
if(str)
{
const charalphabet[] = {‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’, ‘h’, ‘i’, ‘j’,
‘k’, ‘l’, ‘m’, ‘n’, ‘o’, ‘p’, ‘q’, ‘r’, ‘s’, ‘t’,
‘u’, ‘v’, ‘w’, ‘x’, ‘y’, ‘z’};
intmaj = 0;
while(*str)
{
inti;
maj =isupper (*str);
*str =tolower (*str);
for(i = 0; i < 26; i++)
{
if(alphabet[i] == *str)
{
*str =alphabet[(i+decalage)%26];
if(maj)
{
*str =toupper (*str);
}
break;
}
}
str++;
}
}
Tri rapide d’un tableau
Cette fonction est une version simplifiée de la fonction de la bibliothèque standard qsort.
voidechange (int *tab, inti, intj)
{
inttampon =tab[i];
tab[i] =tab[j];
tab[j] =tampon;
}
voidtrirapide (int *tab, intG, intD)
{
intg, d;
intval;
if(D <=G)
{
return;
}
val =tab[D];
g =G;
d =D – 1;
do
{
while((tab[g] <val))
{
g++;
}
while((tab[d] >val) &&(d>G))
{
d–;
}
if(g <d)
{
echange (tab, g, d);
}
} while(g <d);
echange (tab, g, D);
trirapide (tab, G, g – 1);
trirapide (tab, g + 1, D);
}
Conversion
Conversion binaire -> ASCII
La fonction get_char_from_binpermet de convertir une représentation binaire en nombre.
unsigned char get_char_from_bin (const char *bin)
{
int i;
int d;
unsigned char res;
res = 0;
i =strlen(bin)-1;
for (d = 1; (d <= 128) &&(i>=0) ; d*=2, i–)
{
if (bin[i] == ‘1’)
res +=d;
}
return (res);
}
Obtenir la représentation en base N d’un entier
La fonction itoaretourne la représentation en base radix(entre 2 et 36) de l’entier value, sous forme d’une chaîne de caractères.
La chaîne de caractères string doit être assez grande pour contenir la représentation.
char *itoa (int value, char *string, int radix)
{
char tmp[32];
char *tp =tmp;
int i;
unsigned v;
int sign;
char *sp;
if (radix > 36 ||radix <= 1)
{
return 0;
}
sign =(radix == 10 &&value < 0);
if (sign)
{
v = -value;
}
else
{
v =(unsigned)value;
}
while (v ||tp ==tmp)
{
i =v %radix;
v =v /radix;

………

Si le lien ne fonctionne pas correctement, veuillez nous contacter (mentionner le lien dans votre message)
Cours gratuit: Source du langage C (666 KO) (Cours PDF)
Source du langage C

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *