C++ : PROPRIETES DES FONCTIONS MEMBRES (Cours et exercices corrigés)
Monday, June 6, 2011     17:19
  • Mon @ IP: 54.145.118.24



retour

Poster un commentaire ou une réponse

PROPRIETES DES FONCTIONS MEMBRES (Cours et exercices corrigés)

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:03:15

I- SURDEFINITION DES FONCTIONS MEMBRES

En utilisant la propriété de surdéfinition des fonctions du C++, on peut définir plusieurs constructeurs, ou bien plusieurs fonctions membres, différentes, mais portant le même nom.

Exemple (à tester) et exercice III-1: Définition de plusieurs constructeurs:

#include <iostream.h> // Surdefinition de fonctions
#include <conio.h>

class point
{
int x,y;
public: point(); // constructeur 1
point(int);// constructeur 2
point(int,int);// constructeur 3
void affiche();
};

point::point() // constructeur 1
{x=0;y=0;}

point::point(int abs) // constructeur 2
{x = abs; y = abs;}

point::point(int abs,int ord) // constructeur 3
{x = abs; y = ord;}

void point::affiche()
{gotoxy(x,y);cout<<"Je suis en "<<x<<" "<<y<<"\n";}

void main()
{
clrscr();
point a,b(5);
a.affiche();
b.affiche();
point c(3,12);
c.affiche();
getch() ;}

Exercice III-2: Surdéfinition d’une fonction membre
Ecrire une deuxième fonction affiche de prototype void point::affiche(char *message)
Cette fonction donne la possibilité à l’utilisateur d’ajouter, à la position du point, un message sur l’écran.

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:03:33

II- FONCTIONS MEMBRES « EN LIGNE »

Le langage C++ autorise la description des fonctions membres dès leur déclaration dans la classe. On dit que l’on écrit une fonction « inline ».
Il s’agit alors d’une « macrofonction »: A chaque appel, il y a génération du code de la fonction et non appel à un sous-programme.
Les appels sont donc plus rapides mais cette méthode génère davantage de code.

Exemple (à tester) et exercice III-3:
Comparer la taille des fichiers exIII_1.obj et exIII_3.obj

#include <iostream.h> // Surdefinition de fonctions
#include <conio.h>

class point
{
int x,y;
public: point(){x=0;y=0;} // constructeur 1
point(int abs){x=abs;y=abs;}// constructeur 2
point(int abs,int ord){x=abs;y=ord;}// constructeur 3
void affiche();
};

void point::affiche()
{gotoxy(x,y);cout<<"Je suis en "<<x<<" "<<y<<"\n";}

void main()
{
point a,b(5);
a.affiche();
b.affiche();
point c(3,12);
c.affiche();
getch() ;
}


III- INITIALISATION DES PARAMETRES PAR DEFAUT

Exemple (à tester) et exercice III-4:

#include <iostream.h> // Fonctions membres « en ligne »
#include <conio.h>

class point
{
int x,y;
public: point(int abs=0,int ord=2){x=abs;y=ord;}// constructeur
void affiche(char* = "Position du point"); // argument par defaut
};

void point::affiche(char *message)
{gotoxy(x,y-1);cout<<message;
gotoxy(x,y);cout<<"Je suis en "<<x<<" "<<y<<"\n";}

void main()
{
point a,b(40);
a.affiche();
b.affiche("Point b");
char texte[10]="Bonjour";
point c(3,12);
c.affiche(texte);
getch() ;
}

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:03:45

IV- OBJETS TRANSMIS EN ARGUMENT D’UNE FONCTION MEMBRE

Quand on passe comme paramètre à une fonction membre ... un objet de la classe à laquelle appartient cette fonction:

1- Passage par valeur

Exemple (à tester) et exercice III-5:

#include <iostream.h>
#include <conio.h>// objets transmis en argument d'une fonction membre

class point
{
int x,y;
public: point(int abs = 0,int ord = 2){x=abs;y=ord;}// constructeur
int coincide(point);
};

int point::coincide(point pt)
{if ((pt.x == x) && (pt.y == y)) return(1);else return(0);}
// noter la dissymetrie des notations pt.x et x

void main()
{
int test1,test2;
point a,b(1),c(0,2);
test1 = a.coincide(b);
test2 = b.coincide(a);
cout<<"a et b:"<<test1<<" ou "<<test2<<"\n";
test1 = a.coincide(c);
test2 = c.coincide(a);
cout<<"a et c:"<<test1<<" ou "<<test2<<"\n";
getch() ;
}

Noter que l’on rencontre la notation « pt.x » ou « pt.y » pour la première fois. Elle n’est autorisée qu’à l’intérieur d’une fonction membre (x et y membres privés de la classe).

On verra plus tard que le passage d’un objet par valeur pose problème si certains membres de la classe sont des pointeurs. Il faudra alors prévoir une allocation dynamique de mémoire via un constructeur.

2- Passage par adresse

Exercice III-6: Modifier la fonction membre coincide de l’exercice prcédent de sorte que son prototype devienne int point::coincide(point *adpt). Ré-écrire le programme principal en conséquence.

3- Passage par référence

Exercice III-7: Modifier à nouveau la fonction membre coincide de sorte que son prototype devienne int point::coincide(point &pt). Ré-écrire le programme principal en conséquence.

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:04:03

V- EXERCICES RECAPITULATIFS

On définit la classe vecteur comme ci-dessous:

class vecteur
{float x,y;
public: vecteur(float,float);
void homotethie(float);
void affiche();
};

vecteur::vecteur(float abs =0.,float ord = 0.)
{x=abs;y=ord;}

void vecteur::homotethie(float val)
{x = x*val; y = y*val;}

void vecteur::affiche()
{cout<<"x = "<<x<<" y = "<<y<<"\n";}
Exercice III-8: La mettre en oeuvre dans void main(), en ajoutant une fonction membre float det(vecteur) qui retourne le déterminant des deux vecteurs (celui passé en paramètre et celui de l’objet).

Exercice III-9: Modifier la fonction déterminant de sorte de passer le paramètre par adresse.

Exercice III-10: Modifier la fonction déterminant de sorte de passer le paramètre par référence.


VI- OBJET RETOURNE PAR UNE FONCTION MEMBRE

Que se passe-t-il lorsqu’une fonction membre retourne elle-même un objet ?

1- Retour par valeur

Exemple (à tester) et exercice III-11: (la fonction concernée est la fonction symetrique)

#include <iostream.h>
#include <conio.h>

// La valeur de retour d'une fonction est un objet
// Transmission par valeur

class point
{
int x,y;
public: point(int abs = 0,int ord = 0){x=abs;y=ord;}// constructeur
point symetrique();
void affiche();
};

point point::symetrique()
{point res;
res.x = -x; res.y = -y;
return res;
}

void point::affiche()
{cout<<"Je suis en "<<x<<" "<<" "<<y<<"\n";}

void main()
{point a,b(1,6);
a=b.symetrique();a.affiche();b.affiche();
getch() ;}

2- Retour par adresse (***)


Publicité

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:04:22

Exemple (à tester) et exercice III-12:
#include <iostream.h>
#include <conio.h>

// La valeur de retour d'une fonction est un objet
// Transmission par adresse

class point
{
int x,y;
public: point(int abs = 0,int ord = 0){x=abs;y=ord;}// constructeur
point *symetrique();
void affiche();
};

point *point::symetrique()
{point *res;
res = new point;
res->x = -x; res->y = -y;
return res;
}

void point::affiche()
{cout<<"Je suis en "<<x<<" "<<y<<"\n";}

void main()
{
point a,b(1,6);
a = *b.symetrique();a.affiche();b.affiche();
getch() ;}

3- Retour par référence (***)

La valeur retournée l’est par référence. On en verra l’usage dans un prochain chapitre.

Exemple (à tester) et exercice III-13:

#include <iostream.h>
#include <conio.h>

// La valeur de retour d'une fonction est un objet
// Transmission par reference

class point
{
int x,y;
public: point(int abs = 0,int ord = 0){x=abs;y=ord;}// constructeur
point &symetrique();
void affiche();
};
point &point::symetrique() // La variable res est obligatoirement static
{static point res; // Pour passer par reference
res.x = -x; res.y = -y;
return res;
}

void point::affiche()
{cout<<"Je suis en "<<x<<" "<<y<<"\n";}

void main()
{
point a,b(1,6);
a=b.symetrique();a.affiche();b.affiche();
getch() ;}

Remarque: « res » et « b.symetrique »occupent le même emplacement mémoire (car « res » est une référence à « b.symetrique ». On déclare donc « res » comme variable static, sinon, cet objet n’existerait plus après être sorti de la fonction.

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:04:36

VII- EXERCICES RECAPITULATIFS

Exercice III-14: Reprendre la classe vecteur. Modifier la fonction homotéthie, qui retourne le vecteur modifié. (prototype: vecteur vecteur::homotethie(float val)).

Exercice III-15 (***): Même exercice, le retour se fait par adresse.

Exercice III-16 (***): Même exercice, le retour se fait par référence.


VIII- LE MOT CLE « THIS »

Ce mot désigne l’adresse de l’objet invoqué. Il est utilisable uniquement au sein d’une fonction membre.

Exemple (à tester) et exercice III-17:

#include <conio.h>// le mot cle THIS: pointeur sur l'objet l'ayant appel
#include <iostream.h>// utilisable uniquement dans une fonction membre

class point
{int x,y;
public:
point(int abs=0,int ord=0) // constructeur en ligne
{x=abs;y=ord;}
void affiche();
};
void point::affiche()
{cout<<"Adresse: "<<this<<" - Coordonnees: "<<x<<" "<<y<<"\n";}

void main()
{point a(5),b(3,15);
a.affiche();b.affiche();
getch() ;}

Exercice III-18: Remplacer, dans l’exercice III-6, la fonction coincide par la fonction suivante:

int point::coincide(point *adpt)
{if ((this->x == adpt->x) && (this->y == adpt->y))
return(1);else return(0);}

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:04:51

IX- EXERCICE RECAPITULATIF

Exercice III-19: Reprendre la classe vecteur, munie du constructeur et de la fonction d’affichage. Ajouter
- Une fonction membre float vecteur::prod_scal(vecteur) qui retourne le produit scalaire des 2 vecteurs.
- Une fonction membre vecteur vecteur::somme(vecteur) qui retourne la somme des 2 vecteurs.

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:05:09

XI- CORRIGE DES EXERCICES

Exercice III-2:

#include <iostream.h> // Surdefinition de fonctions
#include <conio.h>

class point
{
int x,y;
public: point(); // constructeur 1
point(int);// constructeur 2
point(int,int);// constructeur 3
void affiche();
void affiche(char *); // argument de type chaine
};

point::point() // constructeur 1
{x=0;y=0;}

point::point(int abs) // constructeur 2
{x=y=abs;}

point::point(int abs,int ord) // constructeur 3
{x = abs; y = ord;}

void point::affiche() // affiche 1
{gotoxy(x,y);cout<<"Je suis en "<<x<<" "<<y<<"\n";}

void point::affiche(char *message) // affiche 2
{gotoxy(x,y-1);cout<<message;
gotoxy(x,y);cout<<"Je suis en "<<x<<" "<<y<<"\n";}

void main()
{point a,b(5);
a.affiche();
b.affiche("Point b:");
point c(3,12);
char texte[10] = "Bonjour";
c.affiche(texte);
getch() ;}

Exercice III-6:

#include <iostream.h>
#include <conio.h>

// objets transmis en argument d'une fonction membre - transmission de l'adresse

class point
{
int x,y;
public: point(int abs = 0,int ord = 2){x=abs;y=ord;}// constructeur
int coincide(point *);
};

int point::coincide(point *adpt)
{if ((adpt->x == x) && (adpt->y == y)) return(1);else return(0);}
// noter la dissymetrie des notations pt->x et x

void main()
{point a,b(1),c(0,2);
int test1,test2;
test1 = a.coincide(&b);
test2 = b.coincide(&a);
cout<<"a et b:"<<test1<<" ou "<<test2<<"\n";
test1 = a.coincide(&c);
test2 = c.coincide(&a);
cout<<"a et c:"<<test1<<" ou "<<test2<<"\n";
getch() ;}

Exercice III-7:

#include <iostream.h>
#include <conio.h>

// objets transmis en argument d'une fonction membre - transmission par reference

class point
{
int x,y;
public: point(int abs = 0,int ord = 2){x=abs;y=ord;}// constructeur
int coincide(point &);
};

int point::coincide(point &pt)
{if ((pt.x == x) && (pt.y == y)) return(1);else return(0);}
// noter la dissymetrie des notations pt.x et x

void main()
{point a,b(1),c(0,2);
int test1,test2;
test1 = a.coincide(b);
test2 = b.coincide(a);
cout<<"a et b:"<<test1<<" ou "<<test2<<"\n";
test1 = a.coincide(c);
test2 = c.coincide(a);
cout<<"a et c:"<<test1<<" ou "<<test2<<"\n";
getch() ;}

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:05:23

Exercice III-8:

#include <iostream.h>
#include <conio.h>
// Classe vecteur - Fonction membre determinant - Passage par valeur
class vecteur
{float x,y;
public: vecteur(float,float);
void homotethie(float);
void affiche();
float det(vecteur);};

vecteur::vecteur(float abs =0.,float ord = 0.)
{x=abs;y=ord;}

void vecteur::homotethie(float val)
{x = x*val; y = y*val;}

void vecteur::affiche()
{cout<<"x = "<<x<<" y = "<<y<<"\n";}

float vecteur::det(vecteur w)
{float res;
res = x * w.y - y * w.x;
return res;}

void main()
{vecteur v(2,6),u(4,8);
v.affiche();v.homotethie(2);v.affiche();
cout <<"Determinant de (u,v) = "<<v.det(u)<<"\n";
cout <<"Determinant de (v,u) = "<<u.det(v)<<"\n";getch() ;}

Exercice III-9:

#include <iostream.h>
#include <conio.h>
// Classe vecteur - Fonction membre determinant - Passage par adresse
class vecteur
{float x,y;
public: vecteur(float,float);
void homotethie(float);
void affiche();
float det(vecteur *);};

vecteur::vecteur(float abs =0.,float ord = 0.)
{x=abs;y=ord;}

void vecteur::homotethie(float val)
{x = x*val; y = y*val;}

void vecteur::affiche()
{cout<<"x = "<<x<<" y = "<<y<<"\n";}

float vecteur::det(vecteur *w)
{float res;
res = x * w->y - y * w->x;
return res;}

void main()
{vecteur v(2,6),u(4,8);
v.affiche();v.homotethie(2);v.affiche();
cout <<"Determinant de (u,v) = "<<v.det(&u)<<"\n";
cout <<"Determinant de (v,u) = "<<u.det(&v)<<"\n";getch() ;}

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:05:45

Exercice III-10:

#include <iostream.h>
#include <conio.h>
// Classe vecteur - Fonction membre determinant - Passage par reference
class vecteur
{float x,y;
public: vecteur(float,float);
void homotethie(float);
void affiche();
float det(vecteur &);};

vecteur::vecteur(float abs =0,float ord = 0)
{x=abs;y=ord;}

void vecteur::homotethie(float val)
{x = x*val; y = y*val;}

void vecteur::affiche()
{cout<<"x = "<<x<<" y = "<<y<<"\n";}

float vecteur::det(vecteur &w)
{float res;
res = x * w.y - y * w.x;
return res;}

void main()
{vecteur v(2,6),u(4,8);
v.affiche();v.homotethie(2);v.affiche();
cout <<"Determinant de (u,v) = "<<v.det(u)<<"\n";
cout <<"Determinant de (v,u) = "<<u.det(v)<<"\n";getch() ;}

Exercice III-14:

#include <iostream.h>
#include <conio.h>
// Classe vecteur - Fonction homotethie - Retour par valeur
class vecteur
{float x,y;
public: vecteur(float,float); // Constructeur
vecteur homotethie(float);
void affiche();};

vecteur::vecteur(float abs =0,float ord = 0)
{x=abs;y=ord;}

vecteur vecteur::homotethie(float val)
{vecteur res;
res.x = x*val; res.y = y*val;
return res;}

void vecteur::affiche()
{cout<<"x = "<<x<<" y = "<<y<<"\n";}

void main()
{vecteur v(2,6),u;
v.affiche();u.affiche();
u = v.homotethie(4);
u.affiche();getch() ;}

Exercice III-15:

#include <iostream.h>
#include <conio.h>
// Classe vecteur - Fonction homotethie - Retour par adresse
class vecteur
{float x,y;
public: vecteur(float,float); // Constructeur
vecteur *homotethie(float);
void affiche();};

vecteur::vecteur(float abs =0.,float ord = 0.) // Constructeur
{x=abs;y=ord;}

vecteur *vecteur::homotethie(float val)
{vecteur *res;
res = new vecteur;
res->x = x*val; res->y = y*val;
return res;}

void vecteur::affiche()
{cout<<"x = "<<x<<" y = "<<y<<"\n";}


void main()
{vecteur v(2,6),u;
v.affiche();u.affiche();
u = *v.homotethie(4);
u.affiche();getch() ;}


Publicité

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:06:09

Exercice III-16:

#include <iostream.h>
#include <conio.h>
// Classe vecteur -Fonction homotethie - Retour par reference
class vecteur
{float x,y;
public: vecteur(float,float); // Constructeur
vecteur &homotethie(float);
void affiche();};

vecteur::vecteur(float abs =0,float ord = 0)
{x=abs;y=ord;}

vecteur &vecteur::homotethie(float val)
{static vecteur res;
res.x = x*val; res.y = y*val;
return res;}

void vecteur::affiche()
{cout<<"x = "<<x<<" y = "<<y<<"\n";}

void main()
{vecteur v(2,6),u;
v.affiche();u.affiche();
u = v.homotethie(4);
u.affiche();getch() ;}

Exercice III-18:

#include <iostream.h>// objets transmis en argument d'une fonction membre
#include <conio.h>// Utilisation du mot clé THIS

class point
{
int x,y;
public: point(int abs = 0,int ord = 0){x=abs;y=ord;}// constructeur
int coincide(point *);
};

int point::coincide(point *adpt)
{if ((this->x == adpt->x) && (this->y == adpt->y))
return(1);else return(0);}

void main()
{point a,b(1),c(1,0);
cout<<"a et b:"<<a.coincide(&b)<<" ou "<<b.coincide(&a)<<"\n";
cout<<"b et c:"<<b.coincide(&c)<<" ou "<<c.coincide(&b)<<"\n";
getch() ;}

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:06:18

Exercice III-19:

#include <iostream.h>
#include <conio.h>

// Creation d'une classe vecteur, avec constructeur, affichage
// Produit scalaire de 2 vecteurs

class vecteur
{float x,y;
public:vecteur(float,float);
vecteur somme(vecteur);
float prod_scal(vecteur);void affiche();};

vecteur::vecteur(float xpos=0,float ypos=0)
{x = xpos; y = ypos;}

float vecteur::prod_scal(vecteur v) // tester le passage par reference &v
{float res;
res = (x * v.x) + (y * v.y);
return (res);}

vecteur vecteur::somme(vecteur v) // tester aussi le passage par reference &v
{vecteur res;
res.x = x + v.x;
res.y = y + v.y;
return res;}

void vecteur::affiche()
{cout<<"x= "<<x<<" y= "<<y<<"\n";}

main()
{vecteur a(3);a.affiche();vecteur b(1,2);b.affiche();
vecteur c(4,5),d;c.affiche();
cout<<"b.c = "<<b.prod_scal(c)<<"\n";
cout<<"c.b = "<<c.prod_scal(b)<<"\n";
c = a.somme(b);
d = b.somme(a);
cout<<"Coordonnees de a+b:";c.affiche();cout<<"\n";
cout<<"Coordonnees de b+a:";d.affiche();cout<<"\n";
getch() ;}

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:06:33

Les exercices exécutables:

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:06:41

EXIII_1.CPP

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:06:49

EXIII_2.CPP

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:06:57

EXIII_3.CPP


Publicité

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:07:05

EXIII_4.CPP

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:07:15

EXIII_5.CPP

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:07:26

EXIII_6.CPP

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:07:35

EXIII_7.CPP

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:07:45

EXIII_8.CPP

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:07:55

EXIII_9.CPP

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:08:04

EXIII_10.CPP

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:08:17

EXIII_11.CPP

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:08:28

EXIII_12.CPP

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:08:45

EXIII_13.CPP

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:08:54

EXIII_14.CPP

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:09:06

EXIII_15.CPP

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:09:18

EXIII_16.CPP

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:09:28

EXIII_17.CPP

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:09:41

EXIII_18.CPP

  Omar :
nb posts:290
nb discussions:42
inscrit le :23-01-2015
le 28-01-2015 à 10:09:53

EXIII_19.CPP

Poster un commentaire ou une réponse :
Poster
     Ajouter un document à la discussion:
       

Actualité informatique et High-Tech

16-10-2015               lire

Dropbox propose aussi un outil d'écriture collaborative à son service

16-10-2015               lire

Bientôt des DRM dans des JPEG

17-04-2015               lire

Google propose une requête pour retrouver son téléphone

17-04-2015               lire

Youtube prépare une offre payante sans publicité

17-04-2015               lire

Sony Pictures : Des milliers de mails et documents confidentiels dévoilés

07-04-2015               lire

T411 bloqué par les FAI français

07-04-2015               lire

NVIDIA publie un pilote correctif et met à jour SHIELD Hub ainsi que GeForce Experience

07-04-2015               lire

Linkedin acquiert la start-up Refresh

03-04-2015               lire

Chromebit, la clé USB Google et Asus qui transforme n’importe quel écran en ordinateur

03-04-2015               lire

Une personne aurait pu supprimer toutes les vidéos d’une chaine Youtube en quelques secondes

03-04-2015               lire

Firefox 37 apporte un cryptage complémentaire à HTTPS

03-04-2015               lire

Windows XP, ce système qui ne veut pas mourir

02-04-2015               lire

Piratage de Labio.fr : le laboratoire répond à nos questions et ne payera pas la rançon

02-04-2015               lire

AWS lance des instances géantes avec 48 To de stockage

02-04-2015               lire

WhatsApp ajoute les appels gratuits et illimités à son application

31-03-2015               lire

Nadim Kobeissi : de Cryptocat à Peerio, du piratage au doctorat

31-03-2015               lire

L'Université de Nantes inaugure son datacenter modulaire taillé pour le HPC

31-03-2015               lire

GitHub victime d’une attaque DDoS majeure

27-03-2015               lire

Googlinette : les recherches de Google en devinettes

27-03-2015               lire

F8 : Facebook ouvre Messenger au e-commerce

27-03-2015               lire

À la SNCF, une fuite de données simple comme une touche F5

23-03-2015               lire

Des satellites GPS de Boeing affectés par une erreur technique

23-03-2015               lire

Plus de 700 000 routeurs ADSL vulnérables au piratage

23-03-2015               lire

Twitter sous le coup d’une action collective pour discrimination

22-03-2015               lire

Les montres connectées étaient déjà présentes dans les films, séries et dessins animés

22-03-2015               lire

Une Audi autonome va traverser les USA de SF à New York

20-03-2015               lire

Éclipse du Soleil : comment la suivre en direct sur Internet

20-03-2015               lire

Projet Leap : des bus 2.0 à San Francisco

20-03-2015               lire

Nvidia dévoile Drive PX, un système de conduite autonome

17-03-2015               lire

Embarquez pour Apollo 11, expérience virtuelle hors du commun

16-03-2015               lire

Ce jour où Google a exposé les données de 282 867 domaines

16-03-2015               lire

Yahoo publie le code de son plug-in de chiffrement mail

16-03-2015               lire

Après un an sans mise à jour, HAWKEN revient à la vie

12-03-2015               lire

Le big data au service du séquençage ADN pour accélérer les diagnostics

12-03-2015               lire

Clap de fin pour PlayStation Mobile

12-03-2015               lire

Apple : retour à la normale après une panne de plus de 11 heures

12-03-2015               lire

Ericsson va supprimer 2 200 postes en Suède

12-03-2015               lire

Le plan de Fleur Pellerin contre le piratage sur Internet

10-03-2015               lire

Apple Watch, Watch Edition et Watch Sport : de 399 à 18.000 euros !

10-03-2015               lire

Apple présente le “nouveau MacBook” qui remplace le MacBook Air

09-03-2015               lire

Google développe une version d'Android pour la réalité virtuelle

09-03-2015               lire

Quand la MPAA demande à Google de déréférencer son propre site

09-03-2015               lire

Heroes of the Dorm : un tournoi HotS avec 450 000 $ de bourses d'études à gagner

09-03-2015               lire

1 milliard d'adresses mails volées, 2 pirates inculpés

09-03-2015               lire

VMware accusé de violation de code Linux

09-03-2015               lire

Les drones civils bientôt immatriculés ?

05-03-2015               lire

7 sites qui permettent d’envoyer des fichiers de + ou – 2 Go

04-03-2015               lire

Smartphones : Apple passe en tête devant Samsung56% des consommateurs inquiets pour leurs données en Europe

04-03-2015               lire

Smartphones : Apple passe en tête devant Samsung

04-03-2015               lire

MWC 2015 : Onevisage pésente un scan facial 3D pour smartphones

04-03-2015               lire

Caméras sportives : Xiaomi s'attaque au monopole GoPro

04-03-2015               lire

Yi Camera, la caméra embarquée de Xiaomi à moins de 60€

04-03-2015               lire

Faille FREAK : quand des connexions SSL/TLS se contentent d'un chiffrement RSA sur... 512 bits

04-03-2015               lire

Bientôt des pubs sur Google Play (Android)

28-02-2015               lire

En partenariat avec "Positive Technologies", Esprit a l'honneur d'inviter ses étudiants à la 1ère édition de l’événement ESPRIT HACK DAYS dans les locaux d'ESPRIT Chotrana 2 et ce le 03 et le 04 Mars 2015.

28-02-2015               lire

La direction des stages d’ESPRIT et Ernst & Young ont le plaisir d'inviter ses étudiants à la journée de l’entreprise du mercredi 4 mars 2015 dans la salle E5 d’ESPRIT Factory.

25-02-2015               lire

Adobe fête les 25 ans de son logiciel Photoshop

25-02-2015               lire

Linux 4.0 : gros numéro et petite version

Haut de page.