Notions de base de programmation en langage C, le syntaxe, les opérateurs, l'affichage et le saisie, les structures de contrôle, les boucles.
cours par Benouini Rachid.
Notions de base de programmation en langage C, le syntaxe, les opérateurs, l'affichage et le saisie, les structures de contrôle, les boucles.
cours par Benouini Rachid.
Cette diapositive présente l'essentiel de langage C# pour des personnes qui'ont deja des notions en POO, dans cette présentation on traite les bases de C# comme les variables, les boucles, les classes, les exception, et aussi on traite des concepts avancés comme les delegates et les événements.
Cours en C++ de la programmation procédurale à la POO.
Partie 1: La Programmation Procédurale.
Partie 2: La Programmation Orientée Objet.
Partie 3: Les Exceptions, Entrées/Sorties, Structures, Unions, Énumérations…
Partie 4: Les interfaces Graphiques avec Qt.
Si vous avez des remarques ou des suggestions afin d'améliorer ce support du cours merci de me contacter via pr.azizdarouichi@gmail.com
Voici le chapitre sur les fonctions en C++.
La nouvelle version 2019 est par là:
https://fr.slideshare.net/AzizDarouichi/chapitre2fonctionscppv2019
Si vous avez des remarques ou suggestions afin de le parfaire.
N’hésitez pas à me contacter via mon email:
pr.azizdarouichi@gmail.com.
Voici le chapitre sur les pointeurs et les références en C++.
Si vous avez des remarques ou suggestions afin de le parfaire.
N’hésitez pas à me contacter via mon email:
pr.azizdarouichi@gmail.com.
Bonne lecture.
Voici la nouvelle version 2019 du chapitre sur les fonctions en C++:
https://fr.slideshare.net/AzizDarouichi/chap2fonctionscpp
Si vous avez des remarques ou suggestions afin de le parfaire.
N’hésitez pas à me contacter via mon email:
pr.azizdarouichi@gmail.com.
C'est le premier chapitre du cours en C++ de la programmation procédurale à la POO.
Partie 1: La Programmation Procédurale.
Partie 2: La Programmation Orientée Objet.
Partie 3: Les Exceptions, Entrées/Sorties, Structures, Unions, Énumérations…
Partie 4: Les interfaces Graphiques avec Qt.
C'est la version 2019 du chapitre 1 sur C++:
https://fr.slideshare.net/AzizDarouichi/chap1-cours-en-c
Si vous avez des remarques ou des suggestions afin d'améliorer ce support du cours merci de me contacter via pr.azizdarouichi@gmail.com
Bonne lecture
Voici le chapitre 6 sur les classes et les interfaces en Java.
Si vous avez des remarques ou suggestions afin de le parfaire.
N’hésitez pas à me contacter via mon email:
pr.azizdarouichi@gmail.com.
Bonne lecture.
Chapitre 11: Expression Lambda et Référence de méthode en JavaAziz Darouichi
Voici le chapitre 11 sur les expressions lambda et les références de méthodes en Java.
Si vous avez des remarques ou suggestions afin de le parfaire.
N’hésitez pas à me contacter via mon email:
pr.azizdarouichi@gmail.com.
Bonne lecture.
Comme des millions de développeurs, vous utilisez C# quotidiennement … mais en maitrisez-vous les subtilités ? Cette session ludique vous plongera au cœur de votre langage de prédilection au travers programmes et exemples de code qui ne cesseront de vous surprendre. Avec en prime quelques (petits) lots à gagner pour les développeurs les plus perspicaces !
Cette diapositive présente l'essentiel de langage C# pour des personnes qui'ont deja des notions en POO, dans cette présentation on traite les bases de C# comme les variables, les boucles, les classes, les exception, et aussi on traite des concepts avancés comme les delegates et les événements.
Cours en C++ de la programmation procédurale à la POO.
Partie 1: La Programmation Procédurale.
Partie 2: La Programmation Orientée Objet.
Partie 3: Les Exceptions, Entrées/Sorties, Structures, Unions, Énumérations…
Partie 4: Les interfaces Graphiques avec Qt.
Si vous avez des remarques ou des suggestions afin d'améliorer ce support du cours merci de me contacter via pr.azizdarouichi@gmail.com
Voici le chapitre sur les fonctions en C++.
La nouvelle version 2019 est par là:
https://fr.slideshare.net/AzizDarouichi/chapitre2fonctionscppv2019
Si vous avez des remarques ou suggestions afin de le parfaire.
N’hésitez pas à me contacter via mon email:
pr.azizdarouichi@gmail.com.
Voici le chapitre sur les pointeurs et les références en C++.
Si vous avez des remarques ou suggestions afin de le parfaire.
N’hésitez pas à me contacter via mon email:
pr.azizdarouichi@gmail.com.
Bonne lecture.
Voici la nouvelle version 2019 du chapitre sur les fonctions en C++:
https://fr.slideshare.net/AzizDarouichi/chap2fonctionscpp
Si vous avez des remarques ou suggestions afin de le parfaire.
N’hésitez pas à me contacter via mon email:
pr.azizdarouichi@gmail.com.
C'est le premier chapitre du cours en C++ de la programmation procédurale à la POO.
Partie 1: La Programmation Procédurale.
Partie 2: La Programmation Orientée Objet.
Partie 3: Les Exceptions, Entrées/Sorties, Structures, Unions, Énumérations…
Partie 4: Les interfaces Graphiques avec Qt.
C'est la version 2019 du chapitre 1 sur C++:
https://fr.slideshare.net/AzizDarouichi/chap1-cours-en-c
Si vous avez des remarques ou des suggestions afin d'améliorer ce support du cours merci de me contacter via pr.azizdarouichi@gmail.com
Bonne lecture
Voici le chapitre 6 sur les classes et les interfaces en Java.
Si vous avez des remarques ou suggestions afin de le parfaire.
N’hésitez pas à me contacter via mon email:
pr.azizdarouichi@gmail.com.
Bonne lecture.
Chapitre 11: Expression Lambda et Référence de méthode en JavaAziz Darouichi
Voici le chapitre 11 sur les expressions lambda et les références de méthodes en Java.
Si vous avez des remarques ou suggestions afin de le parfaire.
N’hésitez pas à me contacter via mon email:
pr.azizdarouichi@gmail.com.
Bonne lecture.
Comme des millions de développeurs, vous utilisez C# quotidiennement … mais en maitrisez-vous les subtilités ? Cette session ludique vous plongera au cœur de votre langage de prédilection au travers programmes et exemples de code qui ne cesseront de vous surprendre. Avec en prime quelques (petits) lots à gagner pour les développeurs les plus perspicaces !
5 Tips for Cultivating Emotional Intelligence in the WorkplaceChristina Aldan
Learning to manage our state of mind in the workplace is an acquired skill. While stress in the workplace in unavoidable, it is possible to cultivate Emotional Intelligence (EQ) to manage our state of mind. Practicing EQ helps us identify and eliminate stressors in our lives. Awareness of self and awareness of others strengthens personal and professional relationships. When we understand the motivations of ourselves and the perspectives of others we form deeper connections. In this presentation, learn five tips for cultivating Emotional Intelligence in the workplace.
Emotional Intelligence changing human resource functionalitySheetal Wagh
Emotional Intelligence changing human resource functionality - Presentation encompassing the importance of emotional intelligence than intelligence quotient
Being a small web team or a web team of one has unique challenges and benefits. Particularly with budget pressures looming, we need strategies to help us to do more with less. Drawing on over 15 years of experience as a single-person web team, Eric will present techniques to help you maximize your impact as a small team.
El documento resume conceptos clave sobre las propiedades de la materia, incluyendo las fases físicas, masa, átomo, diferencia entre masa y peso, y propiedades intensivas y extensivas. También describe conceptos de mecánica como elasticidad, esfuerzo de tensión, deformación unitaria longitudinal y la ley de Hooke. Finalmente, presenta propiedades de los líquidos como compresión, expansión, viscosidad y tensión superficial.
Un grupo de excompañeras de colegio se reunió después de 30 años para recordar su época escolar, incluyendo los bailes, amigos, travesuras y cambios que ocurrieron. Ahora, como adultas, tienen diferentes roles como abuelas, madres o tías, pero pudieron revivir aquellos dulces recuerdos de su juventud en la reunión.
Curso técnico de cálculo, diseño y simulación de plantas solares termoeléctricasCenproexFormacion
El documento presenta un curso técnico sobre el cálculo, diseño y simulación de plantas solares termoeléctricas. El curso tiene como objetivos capacitar a los alumnos en los principios físicos, tecnologías, legislación, ventajas económicas y medioambientales de esta fuente renovable de energía. El curso cubre temas como los fundamentos termodinámicos, tipos de concentradores solares, seguimiento solar, almacenamiento térmico, conversión eléctrica, análisis termodinámic
Este documento describe las herramientas de comunicación Skype y YouTube. Explica que Skype permite llamadas de voz y video gratuitas entre usuarios y llamadas a teléfonos convencionales a bajas tarifas. YouTube es un sitio donde los usuarios pueden subir y compartir videos de diferentes tipos. Ambas herramientas permiten comunicación en tiempo real y comparten videos respectivamente. El documento también destaca la importancia de que los estudiantes aprendan a usar estas herramientas para comunicarse y ampliar sus conocimientos.
Técnico en contaminación por residuos sólidos urbanos, industriales y especialesCenproexFormacion
Este documento presenta un curso sobre técnico en contaminación por residuos sólidos urbanos, industriales y especiales. El curso cubre conceptos técnicos sobre generación de residuos y métodos para reducir la contaminación, así como procesos administrativos para gestionar expedientes ante la administración. El contenido incluye módulos sobre procedimientos administrativos, contaminación por residuos, y autorización ambiental integrada. Al completar el curso, los estudiantes reciben un diploma que acredita su especialización.
2012 La Cronicidad en los servicios de drogodependencias. Nuevos retos. BizitegiBizitegi Bizitegi
Este documento resume los resultados de un análisis de cinco años de datos de personas atendidas en el programa de drogodependencias de la Asociación Bizitegi. Los principales hallazgos son: 1) La mayoría de las personas tienen entre 30-45 años y más de 10 años de consumo, indicando problemas arraigados. 2) Más del 70% permanecen en el programa por más de 4 meses, con algunos por más de 2 años, sugiriendo necesidades complejas. 3) Cerca del 60% han tenido tratamientos previos, principalmente experiencias hospitalarias en lugar de
Este documento describe diferentes herramientas informáticas para almacenar, procesar y comunicar información. Explica dispositivos de almacenamiento como unidades de disco, RAM y ROM, así como archivos y carpetas. También describe diferentes tipos de dispositivos de almacenamiento como los de medio magnético (como discos duros), ópticos (como CDs y DVDs) y electrónicos (como memorias USB). Por último, resume dos servicios web para guardar contenidos de la web: Evernote y Delicious.
A la fin de ce chapitre, vous serez en mesure de :
• Créer un projet java sous Intellij IDEA
• Créer des applications Java en mode console en respectant les bonnes pratiques en programmation
• Déclarer une variable en Java
• Comprendre le mécanisme d’initialisation des variables en Java
• Analyser et exécuter une instruction en Java
• Comprendre le mécanisme d’affectation en Java
• Apprendre l'affichage, la saisie des données et la lecture des différents types
• Utiliser les fonctions prédéfinis de la classe Math
• Distinguer entre l’usage des deux structures : if et switch
• Ecrire des programmes en java avec les structures de contrôle : condition et boucles
• Déclarer des variables de type tableau
Chapitre 7 - Les instructions de contrôle.pdfShiniGami0o0
In mathematics and computer science, an algorithm is a finite sequence of rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for performing calculations and data processing.
Ce premier cours avancé sur Python concerne les deux structures de données avancées que sont les ensembles et les dictionnaires. Ces derniers sont notamment utilisés pour construire des bases de données orientées document.
1. Introduction au Langage C
Début du programme
Inclusion de la bibliothèque
#include <stdio.h>
contenant la fonction printf
void main() Point d'entré du programme
{
printf("Bonjour!n"); première
instruction
}
Fin du programme
2
2. Introduction au Langage C
Définition d'une variable
nom:
Unique pour chaque variable
Commence toujours par une lettre
Différenciation minuscule-majuscule
type:
Conditionne le format de la variable en mémoire
Peut être soit un type standard ou un type utilisateur
valeur:
Peut évoluer pendant l'exécution
initialisation grâce à l'opérateur d'affectation
3
3. Introduction au Langage C
Types de variable
charcaractères [..] signifie facultatif
int entiers
short [int] entiers courts
long [int] entiers longs
float nombres décimaux
double nombres décimaux de précision
supérieure
long double nombres décimaux encore plus
précis
unsigned int entier non signé
4
4. Introduction au Langage C
Déclaration d'une variable
Type nom_de_la_variable [= valeur]
Exemple:
int nb;
float pi = 3.14;
char c = 'a';
long i,j,k;
double r = 6.2879821365;
5
5. Introduction au Langage C
Affichage de la valeur d'une variable
en C
printf("format de l'affichage", variables)
Exemple
int i =8;int j = 10;
printf("i vaut: %d j vaut: %d n",i,j);
float r = 6.28;
printf("le rayon = %f n",r);
Autres formats:
%c caractère
%lf double
%s chaîne de caractères
%e réel en notation scientifique
6
6. Introduction au Langage C
Affichage de la valeur d'une variable
en C++
cout <<chaîne 1 <<variable 1<<chaîne 2 <<variable 2;
Exemple
int i =8;int j = 10;
cout <<"i vaut:" << i <<"j vaut:"<<j <<'n';
float r = 6.28;
cout<<"le rayon = "<< r <<'n';
7
7. Introduction au Langage C
Instructions de base
opérateurs de base
+,-,*, / opérateurs arithmétique de base
% reste d'une division entière
== test d'égalité
!= test de différence
<, >, <=, >= test de comparaison
! négation
|| ou logique pour évaluer une expression
&& et logique pour évaluer une expression
8
8. Introduction au Langage C
Instructions de base
opérateurs de base
a = 2+3 valeur de a: 5
r = 3%2 valeur de a: 1
a = (3==3) valeur de a: 1
a = (6==5) valeur de a: 0
a = (2!=3) valeur de a: 1
a = (6<=3) valeur de a: 0
a = !1 valeur de a: 0
a =((3==3) || (6<=3)) valeur de a: 1
a =((3==3) && (6<=3)) valeur de a: 0
9
9. Introduction au Langage C
Instructions de base
boucle pour
for(expr1;expr2;expr3)
{
instructions
}
expr1: évaluée 1 seule fois en début de boucle
expr2: évaluée avant chaque itération. Si vrai alors
les instructions de la boucle sont exécutées sinon
la boucle est terminée
expr3: évaluée à la fin de chaque itération
10
10. Introduction au Langage C
Instructions de base
boucle pour
exemple
// somme des 100 premiers entiers
int i,s;
s= 0
for(i=0;i<=100;i = i+1)
{
s = s+i; / / ou s+=i;
}
cout <<"s = "<<s<<'n';
11
11. Introduction au Langage C
Instructions de base
boucle tant que
while (expression)
{
instructions;
}
expression est évaluée avant chaque itération. Si le
résultat est vrai alors les instructions sont exécutées
sinon on sort de la boucle
exemple
i =0;
n = 20;
while (i<n)
{
i++;
}
12
12. Introduction au Langage C
Instructions de base
boucle répéter
do
{
instructions;
} while (expression)
expression est évaluée après chaque itération. Si le
résultat est vrai alors les instructions sont exécutées
sinon on sort de la boucle
exemple
i =0;
n = 20;
do
{
i++;
} while(i<n)
13
13. Introduction au Langage C
Instructions de base
instruction conditionnelle simple si alors
if (expression)
{
instructions;
}
expression est évaluée après chaque itération. Si le
résultat est vrai alors les instructions sont exécutées
sinon on sort de la boucle.
exemple
int i =5;
int n;
if (i<=20)
{
n =0;
}
14
14. Introduction au Langage C
Instructions de base
instruction conditionnelle simple si alors sinon
if (expression)
{
instructions1;
} sinon
{
instrutions2;
}
expression est évaluée après chaque itération. Si le
résultat est vrai alors les instructions1 sont
exécutées sinon on exécute l'ensemble instructions2
exemple
int i =5;int n;
if (i<=20)
n =0;
else
n=5; 15
15. Introduction au Langage C
Instructions de base
instruction conditionnelle multiple
switch (expression)
{
case valeur1:
instructions1;break;
case valeur2:
instructions2;break;
.
.
.
case valeur3:
instruction3;break;
default:
instruction4;break;
}
expression est évaluée. Si le résultat vaut valeur1, alors
instruction1 est exécutée et on quitte le switch, sinon
si expression vaut valeur2, ……, sinon on va dans
default pour exécuter instruction4. 16
16. Introduction au Langage C
Instructions de base
instruction conditionnelle multiple
exemple
int c='a';
switch (c)
{
case 'a':
file();break;
case 'b':
save();break;
case 'q':
quitter();break;
default:
beep();break;
}
17
17. Introduction au Langage C
Instructions de base
l'instruction break
permet d'interrompre prématurément une
boucle et de se brancher vers la première
instruction n'appartenant pas à la boucle
exemple:
int i;int n=20;
for (i=0;i<10;i++) Quand n vaut
{ 31 alors la
if (n==31) break; boucle est
interrompue
n=n+2;
}
cout <<n<<'n';
18
18. Introduction au Langage C
Les Pointeurs
Deux manières d'utiliser une variable
Par son nom adressage direct
compilateur réserve de la mémoire pour la variable
exemple:
int x =17;
19
19. Introduction au Langage C
Les Pointeurs
Par son adresse adressage indirect
une variable de type pointeur contient l'adresse
d'une autre variable
Le lien entre pointeur et la variable pointée est
géré par le programmeur
exemple:
int x =17; px pointe
int * px = &x; vers x
20
20. Introduction au Langage C
Les Pointeurs
déclaration d'un pointeur
type * nom_du_pointeur
exemples
char *buffer;
int *pf;
float *ppi;
C'est au programmeur d'initialiser le pointeur
21
21. Introduction au Langage C
Les Pointeurs
initialisation d'un pointeur
Il faut lui fournir l'adresse d'une variable existant en
mémoire
Il doit pointer vers une zone mémoire réservée par le
compilateur comme étant une variable
utilisation de l'opérateur d'adressage &
int f; création du
int *pf,*pg; lien entre le
pointeur et la
pf = &f; variable allocation
dynamique
d'une variable
pg =(int*)malloc(sizeof(int)); de type int
création du .
lien entre pg
et l'espace . libération de
mémoire free(gf); l'espace
réservé réservé 22
22. Introduction au Langage C
Les tableaux statiques à 1 dimension
définition
Ensemble de variables de même type, de
même nom caractérisées par un index.
déclaration
type nom_tableau[dimension]
exemples:
char buffer[80]; doit être
une
int mat[10]; constante
23
23. Introduction au Langage C
Les tableaux statiques à 1 dimension
accès aux éléments du tableau
Nom_tableau[indice]
exemples:
buffer[5] = 'c';
mat[6] = 10;
le premier élément commence à l'indice 0 !!
Les valeurs ne sont pas initialisées !!
Les débordements ne sont pas vérifiés
24
24. Introduction au Langage C
Les tableaux statiques à 2 dimensions et
plus
définition
Il s'agit d'un tableau de tableaux
déclaration
type nom_tableau[dim1][dim2]…[dimn]
exemples:
char buffer[20][80];
int mat[6][10];
char livres[100][60][80];
25
25. Introduction au Langage C
Les tableaux statiques à 2 dimensions
et plus
accès aux éléments
nom_tableau[ind1][ind2]…[indn]
exemples:
livre[30][15][20] = 'c';
mat[5][6] =13;
cout << mat[5][6]<<'n';
26
26. Introduction au Langage C
Lien entre le nom d'un tableau à 1
dimension et les pointeurs
Nom du tableau = adresse du premier élément
du tableau
nom_tableau[i] peut s'écrire *(nom_tableau+i)
exemples:
char buffer[80];
*buffer = 'C'; accès au premier caractère
*(buffer + 5) = 'V'; accès au 6 ème caractère
27
27. Introduction au Langage C
Lien entre le nom d'un tableau à 2
dimension et les pointeurs
un tableau 2d est un tableau de tableau de
dimension 1
On peut donc dire que le nom d'un tableau 2d est
l'adresse d'un tableau d'adresse de tableaux de
dimension 1
On dit aussi qu'il s'agit d'un pointeur de pointeur
exemple:
int TAB[6][7];
int **p; déclaration d'un pointeur de pointeur
p = TAB; initialisation du pointeur de pointeur
28
28. Introduction au Langage C
Lien entre le nom d'un tableau à 2
dimension et les pointeurs
TAB
tableaux d'entiers
0 1 2 3 4 5 6
0
1
tableaux de pointeurs
vers des tableaux 2
d'entiers
3
4
5
29
29. Introduction au Langage C
Initialisation dynamique d'un tableau
Tableau une dimension
int * t;
t = (int*)malloc(20*sizeof(int)); fonction de
calcul
automatique
de la taille
nom du d'un entier
tableau en octet
fonction
nombre
d'allocation
d'éléments
dynamique de
dans le
la mémoire
tableau
30
30. Introduction au Langage C
Initialisation dynamique d'un tableau
Tableau à deux dimensions n*m
déclaration dynamique du tableau de n
pointeurs et des n tableaux à une dimension
de m éléments
quelques lignes de code sont nécessaires
31
31. Introduction au Langage C
Initialisation dynamique d'un tableau
Tableau à deux dimensions n*m
int **TAB,l;
TAB = (int**)malloc(n*sizeof(int*));
for (l=0;l<n;l++)
{
TAB[l] = (int*)malloc(m*sizeof(int));
}
//désallocation:
for (l=0;l<n;l++)
free(TAB[l]);
free(TAB);
32
32. Introduction au Langage C
Les structures de données
intérêt
Rassembler des données hétérogènes
caractérisant une entité pour en faire un
type utilisateur.
exemple:
point dans l'espace 3 entiers
nœud d'un arbre binaire 2 adresses vers les
fils, 3 entiers pour les données du nœud
noms et références des pièces mécaniques
constituant une voiture
600 tableaux de caractères + 600 entiers pour
la référence
33
33. Introduction au Langage C
Les structures de données
déclaration
struct nom_structure
{
type1 nomchamps1;
type2 nomchamps2;
.
.
.
typeN nomchampsN;
};
34
34. Introduction au Langage C
Les structures de données
exemple et utilisation
struct pt
{
int x;
int y;
int z;
char nom;
};
main()
{
struct pt p;
} 35
35. Introduction au Langage C
Les structures de données
simplification de l'écriture typedef struct pt
struct pt
{ {
int x; Notations int x;
int y; équivalentes int y;
int z; int z;
char nom;
char nom; } point;
};
typedef struct pt point;
main()
{
point p;
} 36
36. Introduction au Langage C
Les structures de données
accès aux données
Deux cas de figure
On dispose du nom de la variable
Accès par: NomVariable.NomChamps
exemple
main()
{
point p1;
p1.x = 8; p1.y = 9; p1.z = 10;
cout <<p1.x<<p1.y<<p1.z<<'n';
} 37
37. Introduction au Langage C
Les structures de données
accès aux données
Deux cas de figure
On dispose de l'adresse de la variable (pointeur)
Accès par: NomVariable->NomChamps
exemple
main()
{
point *pp1, p1;
pp1 = &p1;
pp1->x = 8; pp1->y = 9; pp1->z = 10;
cout <<pp1->x<<pp1->y<<pp1->z<<'n';
}
38
38. Introduction au Langage C
Les fonctions
définition
Ensemble d'instructions pouvant être
appelés de manière répétitive par un nom
déclaration
type arg_ret nom_f( type arg1,type arg2, …type argn)
{
ensemble instructions
}
- arg_ret est l'argument renvoyé par la fonction (instruction
return
- nom_f est le nom de la fonction
- arg1 …argn sont les arguments envoyés à la fonction
39
39. Introduction au Langage C
Les fonctions
règles d'utilisation
L'ordre, le type et le nombre des arguments
doivent être respectés lors de l'appel de la
fonction
L'appel d'une fonction doit être située après
sa déclaration ou celle de son prototype
(voir exemple transp suivant)
Si la fonction ne renvoie rien alors préciser
le type void
40
40. Introduction au Langage C
Prototype de
Les fonctions la fonction
min
exemple:
int min(int a, int b);
Programme
void main() principal
{
cout <<min(a,b)<<'';
}
int min(int a, int b)
Fonction min
{ et son bloc
if (a <b) return a; d'instruction
else return b; s
} 41
41. Introduction au Langage C
Les fonctions
Les paramètres se passent par valeur
Recopie en mémoire des paramètres dans
des paramètres temporaires.
Toute modification des paramètres dans la
fonction est sans effet sur les paramètres
originelles
Quand on quitte la fonction, les paramètres
temporaires sont effacés de la mémoire
Recopie dans le sous programme appelant de la
valeur du paramètre retourné par la fonction
return.
42
42. Introduction au Langage C
Les fonctions
exemple:
void permutter(int a, int b)
{ Aucune
int temp; action sur
temp = a; les paramètres
a = b;
b= temp; x et y
}
void main()
{
int x=3;int y =5;
permutter(x,y);
cout << "x="<<x<<" y="<<y<<'n'; x=3 y=5
}
43
43. Introduction au Langage C
Les fonctions
Passage d'arguments par adresse
On passe non pas la valeur de la variable
mais son adresse
Il est donc possible par les pointeurs de
modifier le contenu de l'adresse, donc la
variable originelle
Permet de modifier plusieurs arguments à
la fois dans une fonction
Permet de passer des tableaux en
argument
44
44. Introduction au Langage C
Les fonctions
exemple:
void permutter(int *pa, int *pb)
{ Action sur
int temp;
temp = *pa; les paramètres
*pa = *pb; x et y
*pb= temp;
}
void main()
{
int x=3;int y =5;
permutter(&x,&y);
cout << "x="<<x<<" y="<<y<<'n'; x=5 y=3
}
45
45. Introduction au Langage C
Les Fichiers
Les fichiers sont soit:
binaires (un float sera stocké comme il est codé en mémoire
, d'où gain de place mais incompatibilité entre logiciels)
formaté ASCII (un float binaire sera transformé en
décimal puis on écrira le caractère correspondant à chaque
chiffre).
Pour accéder aux données, on le fait
soit:
De manière séquentielle (on accède au contenu dans l'ordre
du stockage)
Par un accès direct (on peut directement accéder à
n'importe quel endroit du fichier) 46
46. Introduction au Langage C
Les Fichiers
Les Fonctions
Prototypées dans stdio.h, io.h, fcntl.h
Ouverture d’un fichier
handle = open(char *nomfic, int mode);
nomfic: pointeur vers une chaîne de caractère contenant le
chemin, le nom du fichier et l’extension du fichier
mode: variable entière dont chaque bit possède une signification
particulière. Utilisation de constantes prédéfinies
O_RDONLY Ouverture pour lecture seule
O_WRONLY Ouverture pour écriture seule
O_RDWR Ouverture pour lecture et écriture
O_APPEND Ajout des données à la fin du fichier
O_CREAT Crée le fichier s’il n’existe pas
O_BINARY Ouvre le fichier en mode Binaire
(Stockage de l’info comme elle est stockée dans la mémoire de
l’ordinateur)
O_TEXT Ouvre le fichier en mode Texte. (On
mémorise le code ASCII de chaque nombre ou caractère)
47
47. Introduction au Langage C
Les Fichiers
Les Fonctions
Écriture dans un fichier
int write(int handle, void *bloc, unsigned taille);
Handle: numéro entier caractérisant le fichier (renvoyé lors de
l’ouverture du fichier avec la fonction open)
Bloc: pointeur vers le bloc de données
Taille: taille en octet de ce bloc
Lecture dans un fichier (idem écriture avec fonction
read)
int read(int handle, void *bloc, unsigned taille);
Fermeture d’un fichier
int close(int handle)
48
48. Introduction au Langage C
Les Fichiers
Exemple
// inclusion des entêtes des fonctions
#include <io.h>
#include <fcntl.h>
#include <string.h>
main()
{
int handle; // numéro caractérisant le fichier
char string[40]; // tableau de caractères
int length; // Variable mémorisant la taille du bloc de données
int x=40; // entier x valant 40
int y=102; // entier y valant 102
// ouverture du fichier Monfichier.txt avec création s'il n'existe pas
// Fichier ouvert en écriture en mode texte
handle = open("c:Monfichi.txt",O_CREAT |O_RDWR |O_APPEND);
// Fonction (idem à printf) qui écrit un message formaté dans un tableau
// de caractères (printf l'écrit vers l'écran)
length=sprintf(string,"valeur de x=%d valeur de y=%d n",x,y);
// Ecriture de la chaîne de caractères dans le fichier
write(handle,string,length);
// Fermeture du fichier
close(handle);
}
49