Exercices et cours c++
je suis etudiante en informatique de gestion en 3eme anne
je veux avoir des cours sur le c++ et des exercices avec solution
merci d'avance de votre reponse
imen.d
30 réponses
La problématique centrale consiste à obtenir des cours sur le C++ et des exercices avec solutions destinés à des étudiants en informatique de gestion, afin de maîtriser le langage. Des ressources variées sont recommandées, telles que des cours et tutoriels C/C++, des guides explicatifs et des exercices avec corrections, accessibles en ligne pour une progression à son rythme. En pratique, les sources citées couvrent le C++, le C et des tutoriels complémentaires, avec des liens vers des sites dédiés qui proposent des exercices progressifs et des exemples de code. D'autres indications utiles précisent que les ressources couvrent des bases en programmation orientée objet, des notions de pointeurs et de gestion mémoire, ainsi que des exercices corrigés et des projets guidés.
-
EprouvéBonjour,
Des exercices et des cours en C, C++ et autres, sont disponibles sur www.developpez.com .
Eprouvé. -
elattmpje vous invite a voir c très intéressant http://coursuniversite.com/cours-c-c.html
cours et exercices en POO et le Langage C++ et C
source :http://coursuniversite.com/ -
Ju_ju_12Salut Fall !
pour tes études de génie info il y a plein de bonnes tutorials C sur le net. Ici j'ai trouvé plein de cours accessibles directement
http://www.jecompile.com
bon courage!! -
fallBonjour, je suis étudiante en deuxième année en génie informatique et je veux avoir des cours et exercices en langage c.
merci d'avance -
kamel03s v p envoyer votre email à mon email pour recevoir les cours
bon courrage -
jihelgeHomme de peu de fois !
Apprend le C et tu saura le C++
C++ est l'élévation du C qui est l'élévation de l'assembleur
Une vu simpliste de l'univers de la donnée.
Je sais on pourrait considérer ce post du niveau du "café" mais pour moi programmer est une Religion
si tu ne connais pas les bases tu ne peu pas aller au dessus!
ou alors il te manquera toujours quelque chose
éventuellement apprendre le C++ en s'en servant comme le C dans un premier temps, puis passer à des niveaux plus élevés de la programmmation.
La programmation objet requière un certains nombre de consepts souvent mals compris de la part des programmeurs qui ont un une Ferrari à disposition et un permis depuis 18 mois !!!!!!!!!
On peut faire le mieux et surtout le pire. on le disait déjà de C dans les années 80 , j'ai entendus cela pour la C++ dans les années 90........ et rien n'a changé!!!
-
-
jihelge@GouseTu as raison il faut toujours essayer de courir avant d'apprendre à marcher comme ça à la première chute on se calme un peu.
Et c'est très révélateur des extraits de codes qu'on lit, des fautes qu'ils contiennent et des erreurs d'interprétation et de compréhension.
Pour apprendre
1- avoir une base mathématique suffisante (pas forcément costaud)
2- apprendre l'algorithmique et l'analyse
3- apprendre les diffrents types de programmation (client serveur, événementielle, ...)
5- s'interesser enfin à un langage ou plusieurs pour appliquer les préceptes précédents
Dire d'apprendre les choses par le début ne me semble pas délirant et ne me semble pas le pires des conseils qu'il soit.
penser en C++ c'est bien, c'est vrai que la POO est une forme de pensée particulière (à peine) mais on peut l'amener avec intelligence.
Même à SUPINFO qui n'est pas la meilleure des écoles de programmation on commence ainsi (j'y ai été prof, aujourd'hui j'enseigne en BTS et en Université, s'il le faut certains d'entre vous m'ont en cours). -
Cyrix@jihelgeQu'est ce qui te dit qu'il à pas déjà fait son apprentissage d'un langage procédural, comme le Pascal par exemple ?
Pour faire un apprentissage du langage procédural le mieux c'est le Pascal, et surtout pas le C
Donc non il ne faut surtout pas apprendre le C avec le C++, il faut apprendre le C++ directement
Le fait que tu dise travailler à supinfo ca ne va pas relever l'opinion qu'on peu avoir de cette lamentable école...
Tu leur fait une vrai contre publicité en écrivant de telles bétises sur le net
Si tu était vraiment compétent tu serais chef de projet en grande entreprise et pas petit prof dans une école minable. -
jihelge@CyrixOups il y a eu une inversion de sujet sur deux fenêtres !
désolé effectivement elle à peut être déjà fait son apprentissage procédural.
Nota j'ai été à SUPINFO mais j'en suis parti car pas d'accord avec leurs méthodes (la connâître de l'extérieur est une chose voir de l'intérieur en est une autre).
Attention à la façon dont tu t'exprime, cette école pourrait se trouver offensée de tes propos et je sais que beaucoup d'étudiant de cette école passe dans ce forum.
Ne t'imagine le roi du monde derrière ton clavier. maintenant cher Cyrix quand on a quelque chose à dire ce n'est pas nécessaire d'être insultant. Je ne sais pas qui tu es et je ne fais aucun commentaire sur ta réponse même si je juge à la limite (basse) de la compétence.
Je suis compétentet rien à prouver à personne certainement pas à un jeune coq hurlant qui pense tout connaitre.
J'ai mon entreprise, elle marche très bien merci, la programmation est un passe temps, les cours et l'assistance un loisir. Des gens comme toi j'en embauche mais ne restent généralement pas longtemp, après ils repartent à leur seule compétence : ranger les boites de conserve au supermarché le jour et geek la nuit.
Pour revenir à nos moutons et sans confondre les sujets traités, Est que notre questionneur à fait une première approche des notions de POO ?
si non il faut commencer par là.
-
-
jihelgeLa BIBLE s'appelle :
le langage C (C ansi)
de B.W. Kernigham & D.M. Ritchie
2éme édition
Pentice hall
Masson
on n'a jamais fait mieux.
essayez aussi d'avoir en même temps :
Le système UNIX
de Steve BOURNE
Interéditions
Avec cela vous comprendrez toutes les bases essentielles. Ils les ont créée ! ils les ont écrites !-
BarthSalut,
Ca c'est pour le C, hors le sujet parle de C++ ce qui est un autre langage...
Il y à un nouveau vrai cours C++ sur le Web, qui est en fait un livre reconnu, la traduction en Français de cet excellent livre pour le C++ : "Penser en C++" est désormais disponible gratuitement sur le Web, à cette adresse : https://bruce-eckel.developpez.com/livres/cpp/traduction/ticpp2vol1/
-
-
helloALLEZ VOIR WWW.DEVELOPPEZ.COM ET ENTREZ DANS LA RUBRIQUE C++, VOUS ALLEZ TROUVER UN TAS DE COURS EN C/C++.
AMUSEZ VOUS BIEN -
deogratisasmerci
-
ssyyrrsalut
merci a lebell pour ce cour -
charliebon, que dire après ce cours... magistral.
En tout cas, tu pourra trouver d'autres exercices (et leurs corrigés) ici : http://tibo.lelore.free.fr/IRIS/ -
lebelle35CHAPITRE 2
SAISIE DE NOMBRES ET DE CARACTERES AU CLAVIER
LA FONCTION GETCH
La fonction getch, appartenant à la bibliothèque conio.h permet la saisie clavier d' un caractère alphanumérique, sans écho écran. La saisie s'arrête dès que le caractère a été frappé.
La fonction getch n'est pas définie dans la norme ANSI mais elle peut exister dans la bibliothèque d'autres compilateurs.
On peut utiliser getch de deux façons:
- sans retour de variable au programme:
Exemple: printf("POUR CONTINUER FRAPPER UNE TOUCHE ");
getch();
- avec retour de variable au programme:
Exemple: char alpha;
printf("ENTRER UN CARACTERE (ATTENTION PAS DE RETURN) ");
alpha = getch();
printf("\nVOICI CE CARACTERE: %c",alpha);
Les parenthèses vides de getch() signifient qu'aucun paramètre n'est passé à cette fonction par le programme.
LA FONCTION SCANF
La fonction scanf, appartenant à la bibliothèque stdio.h, permet la saisie clavier de n'importe quel type de variable.
Les variables à saisir sont formatées, le nom de la variable est précédé du symbole & désignant l'adresse de la variable (On reverra ce symbole dans le chapitre sur les pointeurs).
La saisie s'arrête avec "RETURN" (c'est à dire LF), les éléments saisis s'affichent à l'écran (saisie avec écho écran).
Tous les éléments saisis après un caractère d'espacement (espace, tabulation) sont ignorés.
Exemples: char alpha;
int i;
float r;
scanf("%c",&alpha); /* saisie d'un caractère */
scanf("%d",&i); /* saisie d'un nombre entier en décimal */
scanf("%x",&i); /* saisie d'un nombre entier en hexadécimal*/
scanf("%f",&r); /* saisie d'un nombre réel */
Remarque: Si l'utilisateur ne respecte pas le format indiqué dans scanf, la saisie est ignorée. Aucune erreur n'est générée.
Exemple: char alpha;
scanf("%d",&alpha);
Si l'utilisateur saisie 97 tout va bien, alpha devient le caractère dont le code ASCII vaut 97.
Si l'utilisateur saisie a, sa saisie est ignorée.
Exercice II_1:
Saisir un caractère au clavier, afficher son code ASCII à l'écran. Soigner l'affichage.
Exercice II_2: Saisir un nombre entier en décimal au clavier, l'afficher en hexadécimal à l'écran. Soigner l'affichage.
Exercice II_3:
Que va-t-il se passer lors de l'exécution du programme suivant, si l'utilisateur saisit 67?
#include <stdio.h>
#include <conio.h>
void main()
{
char c;
printf("ENTRER UN CARACTERE: ");
scanf("%c",&c);
printf("VOICI SON CODE ASCII: %d\n",c);
printf("POUR CONTINUER FRAPPER UNE TOUCHE ");
getch();
}
NOTION DE FLUX D'ENTREE
Lorsque l'on saisit au clavier une suite de caractères terminés par "RETURN" ces caractères sont rangés dans un tampon (ou buffer) de type FIFO (First In/First Out), le dernier caractère rangé dans le tampon est LF (code ASCII 0x0A).
Cette suite de caractères est appelée flux d'entrée.
La taille du tampon dépend de la machine et du compilateur utilisés. Sur un PC et en TURBOC, la taille du tampon est de 127 caractères.
Une compilation du programme vide le tampon.
LA FONCTION SCANF
DEUXIEME APPROCHE
La fonction scanf ne se comporte pas tout à fait comme décrit plus haut. Si le tampon est vide, tout se passe comme précédemment décrit.
Au contraire, si le tampon n'est pas vide, la fonction scanf en teste le premier élément, s'il correspond au format de la variable invoquée, le tampon perd cet élément et la variable en prend la valeur.
Tout caractère ou nombre saisi au clavier et non pris en compte par la fonction scanf est rangé dans le tampon.
Exemple et Exercice II-4:
#include <stdio.h>
#include <conio.h>
void main()
{
char c1,c2;
printf("ENTRER UN CARACTERE: ");
scanf("%c",&c1);
printf("VOICI SON CODE ASCII EN HEXADECIMAL: %x\n",c1);
printf("ENTRER UN AUTRE CARACTERE: ");
scanf("%c",&c2);
printf("VOICI SON CODE ASCII EN HEXADECIMAL: %x\n",c2);
printf("POUR CONTINUER FRAPPER UNE TOUCHE ");
getch();
}
Si l'utilisateur saisit K pour c1, le programme donnera l'écran d'exécution suivant:
ENTRER UN CARACTERE: K
VOICI SON CODE ASCII EN HEXADECIMAL: 4b
ENTRER UN AUTRE CARACTERE: VOICI SON CODE ASCII EN HEXADECIMAL: a
Lors de la saisie de K, le caractere LF est rangé dans le tampon. Lors du deuxième appel à scanf, le tampon n'est pas vide, l'utilisateur ne peut effectuer sa saisie clavier, le code ascii de LF est affiché à l'écran.
A l'issue de l'exécution, le tampon est vide.
Exercice II_5: Le programme suivant s'exécute-t-il "correctement" ? Que contient le tampon à l'issue de l'exécution ?
#include <stdio.h>
#include <conio.h>
void main()
{
char c;
int i;
printf("ENTRER UN CARACTERE: ");
scanf("%c",&c);
printf("VOICI SON CODE ASCII EN HEXADECIMAL: %x\n",c);
printf("ENTRER UN NOMBRE: ");
scanf("%d",&i);
printf("VOICI CE NOMBRE EN HEXADECIMAL: %x\n",i);
printf("POUR CONTINUER FRAPPER UNE TOUCHE ");
getch();
}
Exercice II_6: Le programme suivant s'exécute-t-il "correctement" ? Que contient le tampon à l'issue de l'exécution ?
#include <stdio.h>
#include <conio.h>
void main()
{
char c;
int i;
printf("ENTRER UN NOMBRE: ");
scanf("%d",&i);
printf("VOICI CE NOMBRE EN HEXADECIMAL: %x\n",i);
printf("ENTRER UN CARACTERE: ");
scanf("%c",&c);
printf("VOICI SON CODE ASCII EN HEXADECIMAL: %x\n",c);
printf("POUR CONTINUER FRAPPER UNE TOUCHE ");
getch();
}
Exercice II_7: Dans l'exercice II_4 que se passe-t-il si, lors de la première saisie, l'utilisateur tape 67 ?
Remarque: En TURBOC la fonction flushall() permet de vider le tampon d'entrée. En l'invoquant après un appel à scanf, on se débarrasse des problèmes de flux d'entrée.
LA FONCTION GETCHAR
La fonction getchar pemet la saisie d'un caractère (char). Elle appartient à la bibliothèque stdio.h. Les 2 écritures suivantes sont équivalentes:
char c; char c;
printf("ENTRER UN CARACTERE: "); printf("ENTRER UN CARACTERE: ");
scanf("%c",&c); c = getchar();
Non formatée, la fonction getchar est moins gourmande en place mémoire que scanf. Il vaut mieux l'utiliser quand cela est possible; getchar utilise le flux d'entrée exactement comme scanf.
CORRIGE DES EXERCICES
Exercice II_1:
#include <stdio.h>
#include <conio.h>
void main()
{
char c;
printf("ENTRER UN CARACTERE: ");
scanf("%c",&c);
printf("VOICI SON CODE ASCII EN DECIMAL: %d\n",c);
puts("Pour continuer frapper une touche...");
getch();
}
Exercice II_2:
#include <stdio.h>
#include <conio.h>
void main()
{
int nombre;
printf("ENTRER UN NOMBRE ENTIER: ");
scanf("%d",&nombre);
printf("VOICI CE NOMBRE EN HEXADECIMAL: %x\n",nombre);
printf("POUR CONTINUER FRAPPER UNE TOUCHE ");
getch();
}
Exercice II_3: Seul le caractère 6 est pris en compte. L'affichage suivant la saisie donnera 54, c'est à dire le code ASCII de 6.
Exercice II_5: Oui car lors du deuxième appel à scanf, le programme attend un entier(int), alors que le tampon ne contient qu'un caractère (char).
A l'issue de l'exécution le tampon contient les deux caractères LF.
Exercice II_6: Non car à l'issue de la première saisie, le tampon contient le caractère LF qui sera lu lors du deuxième appel à scanf. Apres exécution du programme, le tampon est vide.
Exercice II_7: L'affichage de c1 en hexadécimal donne 36 c'est à dire le code ASCII de 6, l'utilisateur ne peut saisir c2, l'affichage de c2 en hexadécimal donne 37 c'est à dire le code ASCII de 7. -
lebelle35CHAPITRE 1
ELEMENTS DE LANGAGE C
Une disquette contenant les programmes (développés sous Borland C++) de ce polycopié est disponible, en évitant la saisie.
Le corrigé des exercices et le listing de ces programmes se trouvent à la fin de chaque chapitre.
INTRODUCTION
Le langage C est un langage évolué et structuré, assez proche du langage machine destiné à des applications de contrôle de processus (gestion d'entrées/sorties, applications temps réel ...). Les compilateurs C possèdent les taux d'expansion les plus faibles de tous les langages évolués (rapport entre la quantité de codes machine générée par le compilateur et la quantité de codes machine générée par l'assembleur et ce pour une même application);
Le langage C possède assez peu d'instructions, il fait par contre appel à des bibliothèques, fournies en plus ou moins grand nombre avec le compilateur.
exemples: math.h : bibliothèque de fonctions mathématiques
stdio.h : bibliothèque d'entrées/sorties standard
On ne saurait développer un programme en C sans se munir de la documentation concernant ces bibliothèques.
Les compilateurs C sont remplacés petit à petit par des compilateurs C++.
Un programme écrit en C est en principe compris par un compilateur C++.
Le cours qui suit est un cours ce langage C écrit dans un contexte C++.
ETAPES PERMETTANT L'EDITION, LA MISE AU POINT,
L'EXECUTION D'UN PROGRAMME
1- Edition du programme source, à l'aide d'un éditeur (traitement de textes). Le nom du fichier contient l'extension .CPP, exemple: EXI_1.CPP (menu « edit »).
2- Compilation du programme source, c'est à dire création des codes machine destinés au microprocesseur utilisé. Le compilateur indique les erreurs de syntaxe mais ignore les fonctions-bibliothèque appelées par le programme.
Le compilateur génère un fichier binaire, non listable, appelé fichier objet: EXI_1.OBJ (commande « compile »).
3- Editions de liens: Le code machine des fonctions-bibliothèque est chargé, création d'un fichier binaire, non listable, appelé fichier executable: EXI_1.EXE (commande « build all »).
4- Exécution du programme (commande « flèche jaune »).
Les compilateurs permettent en général de construire des programmes composés de plusieurs fichiers sources, d'ajouter à un programme des unités déjà compilées ...
Exercice I-1: Editer (EXI_1.CPP), compiler et exécuter le programme suivant:
#include <stdio.h> /* bibliotheque d'entrees-sorties standard */#include <conio.h>void main(){puts("BONJOUR"); /* utilisation d'une fonction-bibliotheque */puts("Pour continuer frapper une touche...");getch(); /* Attente d'une saisie clavier */}
Le langage C distingue les minuscules, des majuscules. Les mots réservés du langage C doivent être écrits en minuscules.
On a introduit dans ce programme la notion d’interface homme/machine (IHM).
- L’utilisateur visualise une information sur l’écran,
- L’utilisateur, par une action sur le clavier, fournit une information au programme.
Modifier le programme comme ci-dessous, puis le tester :
#include <stdio.h> /* bibliotheque d'entrees-sorties standard */#include <conio.h>void main(){
int a, b, somme ; /* déclaration de 3 variables */puts("BONJOUR"); /* utilisation d'une fonction-bibliotheque */
a = 10 ; /* affectation* /
b = 50 ; /* affectation */
somme = (a + b)*2 ; /* affectation et opérateurs */
printf(« Voici le resultat : %d\n », somme) ;puts("Pour continuer frapper une touche...");getch(); /* Attente d'une saisie clavier */}
Dans ce programme, on introduit 3 nouveaux concepts :
- La notion de déclaration de variables : les variables sont les données que manipulera le programme lors de son exécution. Ces variables sont rangées dans la mémoire vive de l’ordinateur. Elle doivent être déclarées au début du programme.
- La notion d’affectation, symbolisée par le signe =.
- La notion d’opération.
LES DIFFERENTS TYPES DE VARIABLES
1- Les entiers
Le langage C distingue plusieurs types d'entiers:
___________________________________________________________
TYPE DESCRIPTION TAILLE MEMOIRE
___________________________________________________________
int entier standard signé 4 octets: - 231 = n =231-1
unsigned int entier positif 4 octets: 0 = n = 232
short entier court signé 2 octets: - 215 = n = 215-1
unsigned short entier court non signé 2 octets: 0 ≤=n = 216
char caractère signé 1 octet : - 27 ≤=n = 27-1
unsigned char caractère non signé 1 octet : 0 =n = 28
_____________________________________________________________
Numération: En décimal les nombres s'écrivent tels que, précédés de 0x en hexadécimal.
exemple: 127 en décimal s'écrit 0x7f en hexadécimal.
Remarque: En langage C, le type char est un cas particulier du type entier:
un caractère est un entier de 8 bits
Exemples:
Les caractères alphanumériques s'écrivent entre ‘ ‘
Le caractère 'b' a pour valeur 98 (son code ASCII).
Le caractère 22 a pour valeur 22.
Le caractère 127 a pour valeur 127.
Le caractère 257 a pour valeur 1 (ce nombre s'écrit sur 9 bits, le bit de poids fort est perdu).
Quelques constantes caractères:
________________________________________________________________
CARACTERE VALEUR (code ASCII) NOM ASCII
________________________________________________________________
'\n' interligne 0x0a LF
'\t' tabulation horizontale 0x09 HT
'\v' tabulation verticale 0x0b VT
'\r' retour charriot 0x0d CR
'\f' saut de page 0x0c FF
'\\' backslash 0x5c \
'\'' cote 0x2c '
'\"' guillemets 0x22 "
_______________________________________________________________
Modifier ainsi le programme et le tester :
#include <stdio.h> /* bibliotheque d'entrees-sorties standard */#include <conio.h>void main(){
int a, b, calcul ; /* déclaration de 3 variables */
char u, v;puts("BONJOUR"); /* utilisation d'une fonction-bibliotheque */
a = 10 ; /* affectation* /
b = 50 ; /* affectation */
u = 65 ;
v = ‘A’ ;
calcul = (a + b)*2 ; /* affectation et opérateurs */
printf(« Voici le resultat : %d\n », calcul) ;
printf(« 1er affichage de u : %d\n »,u) ;
printf(« 2ème affichage de v : %c\n »,u) ; printf(« 1er affichage de u: %d\n »,v) ;
printf(« 2éme affichage de v: %c\n »,v) ;puts("Pour continuer frapper une touche...");getch(); /* Attente d'une saisie clavier */}
2- Les réels
Un réel est composé - d'un signe - d'une mantisse - d'un exposant
Un nombre de bits est réservé en mémoire pour chaque élément.
Le langage C distingue 2 types de réels:
_________________________________________________________
TYPE DESCRIPTION TAILLE MEMOIRE
_________________________________________________________
float réel standard 4 octets
double réel double précision 8 octets
__________________________________________________________
LES INITIALISATIONS
Le langage C permet l'initialisation des variables dans la zône des déclarations:
char c; est équivalent à char c = 'A';
c = 'A';
int i; est équivalent à int i = 50;
i = 50;
Cette règle s'applique à tous les nombres, char, int, float ...
SORTIES DE NOMBRES OU DE TEXTE A L'ECRAN
LA FONCTION PRINTF
Ce n'est pas une instruction du langage C, mais une fonction de la bibliothèque stdio.h.
Exemple: affichage d'un texte:
printf("BONJOUR"); /* pas de retour à la ligne du curseur apres l'affichage, */
printf("BONJOUR\n"); /* affichage du texte, puis retour à la ligne du curseur. */
Exercice I-2: Tester le programme suivant et conclure.
#include <stdio.h>
#include <conio.h>
void main(){printf("BONJOUR ");printf("IL FAIT BEAU\n"); /* equivalent à puts("BONJOUR"; */printf("BONNES VACANCES");puts("Pour continuer frapper une touche...");getch(); /* Attente d'une saisie clavier */}
La fonction printf exige l'utilisation de formats de sortie, avec la structure suivante:
printf("%format",nom_de_variable);
Exercice I-3: Affichage d'une variable de type char:
Tester le programe suivant et conclure.
Dans un deuxième temps, le modifier ce programme pour améliorer l’interface utilisateur.
#include <stdio.h>
#include <conio.h>
void main()
{
char c;
c =66; /* c est le caractere alphanumerique A */
printf("%d\n",c); /* affichage du code ASCII en decimal */
/* et retour … à la ligne */
printf("%o\n",c); /* affichage du code ASCII en base huit
/* et retour … à la ligne */
printf("%x\n",c); /* affichage du code ASCII en hexadecimal
/* et retour … à la ligne */
printf("%c\n",c); /* affichage du caractère */
/* et retour à la ligne */
puts("Pour continuer frapper une touche...");
getch(); /* Attente d'une saisie clavier */
}
Exercice I-4: Affichage multiple de structure:
printf("format1 format2 .... formatn",variable1,variable2, .......,variablen);
Tester le programe suivant et conclure:
#include <stdio.h>
#include <conio.h>
void main(){char c;c ='A'; /* c est le caractere alphanumerique A */printf("decimal = %d ASCII = %c\n",c,c);puts("Pour continuer frapper une touche...");getch(); /* Attente d'une saisie clavier */}
Formats de sortie pour les entiers:
%d affichage en décimal (entiers de type int),
%x affichage en hexadécimal (entiers de type int),
%u affichage en décimal (entiers de type unsigned int),
D'autres formats existent, consulter une documentation constructeur.
Exercice I-5:
a et b sont des entiers, a = -21430 b = 4782, calculer et afficher a+b, a-b, a*b, a/b, a%b en format décimal, et en soignant l’interface homme/machine.
a/b donne le quotient de la division, a%b donne le reste de la division.
Exercice I-6:
Que va-t-il se produire, à l'affichage, lors de l'exécution du programme suivant ?
#include <stdio.h> /* ex I_6 */
#include <conio.h>void main(){char a = 0x80;unsigned char b = 0x80;
clrscr();printf("a en decimal vaut: %d\n",a);printf("b en decimal vaut: %d\n",b);puts("Pour continuer frapper une touche...");getch(); /* Attente d'une saisie clavier */}
Exercice I-7:
En C standard, la taille des entiers est de 32 bits;
Que va-t-il se passer, à l'affichage, lors de l'exécution du programme suivant ?
#include <stdio.h> /* ex I_7.C */#include <conio.h>
void main(){int a = 12345000, b = 60000000, somme;
somme=a*b;printf("a*b = %d\n",somme);printf("a*b (en hexa) = %x\n",somme);puts("Pour continuer frapper une touche...");getch(); /* Attente d'une saisie clavier */}
Format de sortie pour les réels: %f
Exercice I-8:
a et b sont des réels, a = -21,43 b = 4,782, calculer et afficher a+b, a-b, a*b, a/b, en soignant l’interface homme/machine.
AUTRES FONCTIONS DE SORTIES
Affichage d'un caractère: La fonction putchar permet d'afficher un caractère:
c étant une variable de type char, l'écriture putchar(c); est équivalente à printf("%c\n",c);
Affichage d'un texte: La fonction puts permet d'afficher un texte:
l'écriture puts("bonjour"); est équivalente à printf("bonjour\n");
Il vaut mieux utiliser puts et putchar si cela est possible, ces fonctions, non formatées, sont d'exécution plus rapide, et nécessitent moins de place en mémoire lors de leur chargement.
LES OPERATEURS
Opérateurs arithmétiques sur les réels: + - * / avec la hiérarchie habituelle.
Opérateurs arithmétiques sur les entiers: + - * / (quotient de la division) % (reste de la division) avec la hiérarchie habituelle.
Exemple particulier: char c,d;
c = 'G';
d = c+'a'-'A';
Les caractères sont des entiers sur 8 bits, on peut donc effectuer des opérations. Sur cet exemple, on transforme la lettre majuscule G en la lettre minuscule g.
Opérateurs logiques sur les entiers:
& ET | OU ^ OU EXCLUSIF ~ COMPLEMENT A UN « DECALAGE A GAUCHE
» DECALAGE A DROITE.
Exemples: p = n « 3; /* p est égale à n décalé de 3 bits à gauche */
p = n » 3; /* p est égale à n décalé de 3 bits à droite */
L'opérateur sizeof(type) renvoie le nombre d'octets réservés en mémoire pour chaque type d'objet.
Exemple: n = sizeof(char); /* n vaut 1 */
Exercice I-9: n est un entier (n = 0x1234567a), p est un entier (p = 4). Ecrire un programme qui met à 0 les p bits de poids faibles de n.
Exercice I-10: Quels nombres va renvoyer le programme suivant ?
#include <stdio.h>#include <conio.h>
void main(){
printf("TAILLE D'UN CARACTERE:%d\n",sizeof(char));printf("TAILLE D'UN ENTIER:%d\n",sizeof(int));printf("TAILLE D'UN REEL:%d\n",sizeof(float));printf("TAILLE D'UN DOUBLE:%d\n",sizeof(double));puts("Pour continuer frapper une touche...");getch(); /* Attente d'une saisie clavier */}
INCREMENTATION - DECREMENTATION
Le langage C autorise des écritures simplifiées pour l'incrémentation et la décrémentation de variables:
i = i+1; est équivalent à i++;
i = i-1; est équivalent à i--;
OPERATEURS COMBINES
Le langage C autorise des écritures simplifiées lorsqu'une même variable est utilisée de chaque côté du signe = d'une affectation. Ces écritures sont à éviter lorsque l'on débute l'étude du langage C car elles nuisent à la lisibilité du programme.
a = a+b; est équivalent à a+= b;
a = a-b; est équivalent à a-= b;
a = a & b; est équivalent à a&= b;
LES DECLARATIONS DE CONSTANTES
Le langage C autorise 2 méthodes pour définir des constantes.
1ere méthode: déclaration d'une variable, dont la valeur sera constante pour tout le programme:
Exemple: void main()
{
const float PI = 3.14159;
float perimetre,rayon = 8.7;
perimetre = 2*rayon*PI;
....
}
Dans ce cas, le compilateur réserve de la place en mémoire (ici 4 octets), pour la variable pi, mais dont on ne peut changer la valeur.
2eme méthode: définition d'un symbole à l'aide de la directive de compilation #define.
Exemple: #define PI = 3.14159;
void main()
{
float perimetre,rayon = 8.7;
perimetre = 2*rayon*PI;
....
}
Le compilateur ne réserve pas de place en mémoire. Les constantes déclarées par #define s'écrivent traditionnellement en majuscules, mais ce n'est pas une obligation.
LES CONVERSIONS DE TYPES
Le langage C permet d'effectuer des opérations de conversion de type: On utilise pour cela l'opérateur de "cast" ().
Exemple et exercice I-11:
#include <stdio.h>
#include <conio.h>
void main()
{
int i=0x1234,j;
char d,e;
float r=89.67,s;
j = (int)r;
s = (float)i;
d = (char)i;
e = (char)r;
printf("Conversion float -> int: %5.2f -> %d\n",r,j);
printf("Conversion int -> float: %d -> %5.2f\n",i,s);
printf("Conversion int -> char: %x -> %x\n",i,d);
printf("Conversion float -> char: %5.2f -> %d\n",r,e);
printf("Pour sortir frapper une touche ");getch();
}
CORRIGE DES EXERCICES
Exercice I-5:
#include <stdio.h>
#include <conio.h>
void main(){int a,b;
a= -21430;b= 4782;printf("A + B = %d\n",a+b);printf("A - B = %d\n",a-b);printf("A x B = %d\n",a*b);printf("A sur B = %d\n",a/b);printf("A mod B = %d\n",a%b);puts("Pour continuer frapper une touche...");getch(); /* Attente d'une saisie clavier */}
Exercice I-6:
a en décimal vaut -128 b en décimal vaut 128
Rques:
En C, le type char désigne un entier codé sur 8 bits.
-128 <= char <=+127 0<= unsigned char <= 255
Exercice I-8:
#include <stdio.h> /* EXI_8*/#include <conio.h>
void main(){float a,b;
a= -21.43;b= 4.782;printf("A + B = %f\n",a+b);printf("A - B = %f\n",a-b);printf("A x B = %f\n",a*b);printf("A sur B = %f\n",a/b);puts("Pour continuer frapper une touche...");getch(); /* Attente d'une saisie clavier */}
Exercice I-9:
#include <stdio.h>
#include <conio.h>
main()
{
int n,p,masque;
clrscr();
n = 45;
p = 4;
printf("valeur de n avant modification:%x\n",n);
masque = ~0; /* que des 1 */
masque = masque « p;
n = n & masque;
printf("n modifié vaut:%x\n",n);
}
Exercice I-10:
En C standard: sizeof(char) vaut 1 sizeof(int) vaut 4 sizeof(float) vaut 4 sizeof(double) vaut 8. -
-
ssyyrrVOUS POUVEZ VOIR LES TUTORIELS DE COMMENT CA MARCHE
https://c.developpez.com/cours/bernard-cassagne/
BON CHANCE -
liliana19bonjours/bonsoir,
je vous pris de m'aider , je suis étudiante en tssri 1ère année, s'il vous plais je veus que vous me donniez des sites concernés par c++[cours et exerciceset leurs solutuions],configuration et administration d'un poste de travail[cours et modèles d'ivaluations de fin de modul] s'il vous plais , et je n'oublierais jamais votre aide .
voici mes e-mails :: Adresses supprimées Modération CCM
merci .
de liliana19 -
in4matiqueSlt voici un site www.in4matique.c.la qui contient des cours et des exercices en cpp, Java, HTML, et Bureautique....
www.in4matique.c.la -
Utilisateur anonymesalut , https://openclassrooms.com/fr/courses
tu aura du mal a trouver cour plus clairs et compréhensible (bien qu'ils ne soient pas aussi complets que certains) -
fhjhCorps du message vide
-
ratrBonjour,
j ai besoin des cours php -
- 1
- 2
Suivant