1- Les commentaires
- En langage C
- les commentaires sont placés entre /* et */
void main(void)
{
/* commentaire : ce programme affiche BONJOUR */
printf("BONJOUR\n");
}
- En langage C++
- les commentaires sont placés entre /* et */ ou après le symbole //
#include "eleve.h"
// définition de la calsse eleve
int eleve::nb_eleves=0;
void eleve::Init(int n,chaine c)
{
int i;
numero=n; /* ceci est un autre commentaire
- En langage Visual Basic
- les commentaires sont placés après le mot clé : Rem
ou après le symbole '
Private Sub Form_Load()
Rem ceci est un commentaire
' un autre commentaire
...
- En langage Active server Page (ASP)
- les commentaires sont placés après le mot clé : Rem
ou après le symbole '
<?%
debut=1 ' on peut insérer des commentaires ici
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open Session("ConnectionString")
...
- En langage PHP et PHP5
- les commentaires sont placés entre /* et */
<?php
// auteur : Rakib Najib premier commentaire
/* date de dernier maj : 05/10/2007 un autre commentaire*/
require_once('class_internet.php');
class Logic_internet
{
...
2. Déclarations de variables
- En C et C++
- Une variable doit être déclarée avant son utilisation.
void main(void)
{
int ii, jj; // déclaration des entiers
int a=123;
long lg1; // entier long
float xx; /* réel simple précision */
char rep1; // un caractère
double zz; /* réel double précision */
int *ptrn1; /* un pointeur vers un entier */
int **ptrn2; /* un poiteur vers un autre pointeur d'entier */
int *tabptr[4]; /* un tableau de pointeurs vers un entier */
char *mois[3] /* un tableau de pointeurs vers un caractère */
char *ptrnom[2];
char *ptr1; /* un pointeur vers un caratcère */
char **ptr2; /* un poiteur vers un autre pointeur de caratère */
//------------déclaration d'une classe pour C++
class eleve
{
char nom[30];
float note_ecrit;
float note_oral;
static int nb_eleves;
public :
void Init(chaine,float,float);
void AfficheElements();
};
...
3. Initialisation de variables
- En C/C++
- On a la possibilité de déclarer et initialiser les variables.
void main(void)
{
int a=5, b, c; /* seul a est initialisée
float x = 2.6,
float x = 3.2e-4; /* représentation scientifique
char car =’B’ ;
val1 = '\x65', /* valeur hexadécimale
val2 = '\150'; /* valeur octale
long l2 = 123L; /* 123 représenté dans format long
double z = .2E5;
....
- En Visual basic, Asp, Php et Ph5
- Il n'ya pas la notion de l'initialisation puisque on peut pas les déclarer en Asp et php/5. Lorsqu'on déclare en Visual Basic une variable on ne peut pas donner lui donner une valeur initiale.
4. Assignations
- En C et C++
- L'assignation c'est l'opération qui consiste à donner une valeur à une variable.
Toutes les variables de l'exemple sont déclarées plus haut.
//---- Assignation par des valeurs statiques --------
...
ii=l; jj= 2; // affection des entiers
Xx 2.3; // un réel
rep1 ='B'; // un caratctère
lg1 214L; // un entier long
zz = 3.5E5; // un réel double précision
...
//--- Assignation des pointeurs par des adresses des variables -----------
.... divers exemple d'affectation
ptr1=chaine;
ptr1 = ptrnom[0];
ptr2=&mois[0];
ptrn1=&a;
ptrn2=&tabptr[0];
ptrn2=&ptrn1;
ptrn1=&tab_int[0];
.....
//-------Assignation par des valeurs dynamique ( la saisie) --------
.....
for( i=0;i<2;i++)
{
cout << "nom ";
// saisie depuis le clavier
cin >> nom[i];
// mettre l'adresse de la chaine dans le tableau de pointeur
ptrnom[i] = nom[i];
}
...
struct enr data;
cout << "Saisir code stagiaire " ; cin >> data.code;
cout << "Saisir code matière " ; cin >> data.matiere;
cout << "Saisir date " ; cin >> data.date;
cout << "Saisir note " ; cin >> data.note;
...
5. Les affichages
- En langage C++
- la fonction d'affichage du langage est cout ( console output), sortie écran.
- Il y'a une grande difference en C et C++, lorsqu'il s'agit de fonctions d'affichage et de saisie.
Voici un exemple complet qui regroupe la déclaration, l'initialisation, l'affectation et l'affichage.
#include <iostream.h>
#include <conio.h>
struct enr {
char code[20];
char matiere[30];
char date[10];
float note;
};
struct enr tableleve[10] // tableau de structures
struct enr data;
void main(void)
{
int ii, ij;
long lg1;
float xx, val;
double dd;
char rep1;
int i,j;
//-------------------------------------------------------------------
char chaine[10]={"bonjour"};
char nom[2][10];
char *mois[3]={"Janvier","fevrier","mars"};
char *ptrnom[2];
char *ptr1;
char **ptr2;
//-------------------------------------------------------------------
int a=123;
int tab_int[4]={1,2,3,4};
int vente [2][3]={{1,2,3},{4,5,6}};
int *tabptr[4];
int *ptrn1;
int **ptrn2;
rep1 ='B'; // un caratctère
clrscr();
//-------- Affectation des valeurs ----------------------------------
ii=l; = 2;
xx 2.3;
rep1 ='B';
lg1 214L;
//--------------------------------------------------------------
for(i=0;i<3;i++) cout<< mois[i] <<" "; cout << "\n";
// affichage Janvier fevrier mars
//------ affectation par la saisie ---------------------------------
for( i=0;i<2;i++)
{
cout << "nom "; cin >> nom[i];
ptrnom[i] = nom[i];
}
for(i=0;i<2;i++) cout << nom[i] << " " ; cout << "\n";
// affichage rakib najib
for( i=0;i<2;i++) cout << ptrnom[i] << " "; cout << "\n";
// affichage rakib najib
ptr1=chaine;
cout << ptr1 << "\n";
// affichage bonjour
cout << *ptr1 << "\n";
// affichage b
ptr1 = ptrnom[0];
cout << ptr1 << "\n";
// affichage rakib
cout << *ptr1 << "\n";
//affichage r
ptr2=&mois[0];
for(i=0;i<3;i++) cout << *ptr2++ << " "; cout << "\n";
// affichage Janvier fevrier mars
//-------------- affichage 1 2 3
for(i=0;i<4;i++) cout << tab_int[i] << " " ; cout << "\n";
// affichage 1 2 3
for(i=0;i<2;i++)
{
for(j=0;j<3;j++) cout << vente[i][j] << " ";
// affichage 1 2 3 4 5 6
}
cout << "\n"; ptrn1=&a;
cout << *ptrn1 << "\n";
// valeur pointe par ptrn1 :affichage 123
cout << ptrn1 << "\n";
// adresse contenue dans ptr :affichage 0x23750fe4
cout << &ptrn1 << "\n";
// adresse de ptrn1 :affichage 0x23750fe0 par exemple
cout << &a << "\n";
// adresse de a :affichage 0x23750fe4 par exemple
ptrn1=&tab_int[0];
for( i=0;i<4;i++) cout << *ptrn1++ << " "; cout << "\n";
// affichage 1 2 3 4
ptrn2=&tabptr[0];
for( i=0;i<4;i++) tabptr[i]= &tab_int[i];
for( i=0;i<4;i++) cout << **ptrn2++ << " " ; cout << "\n";
//affichage 1 2 3 4
ptrn2=&ptrn1;
ptrn1=&tab_int[0];
for(i=0;i<4;i++) cout<< *(*ptrn2)++ << " " ; cout << "\n";
//affichage 1 2 3 4
ptrn1=&tab_int[0];
for(i=0;i<4;i++) cout << *(ptrn1+i) << " "; cout << "\n";
//affichage 1 2 3 4
val = xx / 5;
cout.precision(2);
cout << "affichage avec précision" << val << "\n";
//------------- saisie d'une structure
cout << "Saisir code stagiaire " ; cin >> data.code;
cout << "Saisir code matière " ; cin >> data.matiere;
cout << "Saisir date " ; cin >> data.date;
cout << "Saisir note " ; cin >> data.note;
...
strcpy(tableleve[0].code,data.code);
tableleve[0].note = data.note;
....
//------------- Affichage d'une structure
cout << data.code << "\n";
cout << data.matiere << "\n";
cout << data.date << "\n";
cout << data.note << "\n";
// affichage de tableau de structure
for( i=0;i< 10; i++)
{
cout << tableleve[i].code << " " << tableleve[i].cle << "\n";
}
}
- En langage C
- la fonction d'affichage en C est printf( format, var1, var2,...).
#include < conio.h>
void main(void)
{
float xx;
char rep1='A';
int a=122;
char chaine[10]={"bonjour"};
/*------------------------- Affichage version C
Avec printf, on doit préciser le format d'affichage et les variables.
Format utilisé par printf:
O octal
X hexadécimal
u un entier non signé (unsigned)
c caractère
s chaine de caractères (string)
e sous la forme m.nnnExx
f sous la forme mm.nn
exemple:
*/
printf("%c ",rep1); /* afficher un caractère */
printf("%x ",rep1); /* afficher un caractère sous forme hexadécimal */
/* afficher un entier, un réel et une chaine */
printf("%d %f %s ", a, xx,chaine);
printf("%4.2f ", xx);
printf("GUILLEMETS: \" \n"); /* affiche " */
printf("POURCENTS: %% \n"); /* afiiche % */
}
6. Saisie de données
- En langage C
- La fonction scanf est l'analogue de printf en entrée. Si scanf est simple à utiliser, il doit néanmoins être proscrit de tout programme "professionnel".
#include <float.h>
void main(void)
{
int i; float x;
char nomm[50];
char tampon[20];
int age;
struct enr data;
printf("i ? \n"); scanf("%d", &i);
printf ("x ?\n"); scanf("%f", &x); // attention on donne l'adresse de &x
printf("i = %d \nx = %f \n", i, x);
scanf("%s",nomm); // saisie d'une chaine de caractères
printf("%s \n",nomm);
/*
-- une autre fonction de saisie en C "gets", mieux que "scanf"
printf("\t\t nom "); gets(nom);
printf("\t\t votre age "); gets(tampon);
age = atoi(tampon); // conversion chaine de caractère vers un entier
*/
}
- En langage C++
- la fonction de saisie est cin ( console input) entrée clavier
#include <float.h>
void main(void)
{
char nomm[20];
int age;
cout << "Tapez votre nom: ";
cin >> nomme; // saisie d'une chaine de caractère
cout << "Tapez votre age: ";
cin >> age; // saisie d'un entier
cout << "votre nom est: " << name
char one_char;
cout << "\nEnterez u caratère: ";
cin >> one_char;
}
7. Opérations arithmétiques
- En langage C/C++
- Les opérateurs arithmétiques traditionnels sont: + - * / et % reste de la division entière .
#include
void main(void
{
int i = 10, j = 4, k; float x;
k = i + j
X = i;
X = i/j;
x = (float) i/j;
k = i%j; // reste de la division entière
// % ne s'applique pas aux float et aux double.
X = 1.5; i=5;
k = i-j;
....
8. Opérations +=, -=, *=, /=
- En langage C et C++
- Pour faciliter l'écriture du code
Au lieu d'écrire y = y + 20;
on peut écrire y += 20;
De même,
jj=jj+k; peut s'écrire jj += k;
ii = 3*ii; ii *= 3;
etc...
9. Opérateurs logiques
- en langage C et C++
-
> >= < <= tests de supériorité et d'infériorité
== et != tests d'égalité et d'inégalité
&& et || ET et OU logiques
#include <conio.h>
void main(void)
{
int x,y;
printf("x et \n"); scanf("%d %d", &x, &y);
if (x==y) printf("égalité entre x et y \n");
if (x!=y) printf("x différent de y \n");
if (x>y) printf("x plus grand que y \n");
if (x>=y) printf("x plus grand ou égal à y \n");
if (x>=2 && x<=10) printf("x entre 2 et 10 inclus \n");
/*
pour afficher en C++, utiliser cout
exemple
if (x==y) cout << "égalité entre x et y \n";
if (x!=y) cout << "x différent de y \n";
....
*/
}