Вы находитесь на странице: 1из 3

Université A/Mira Béjaïa.

Master 1 Réseau et télécommunication, Système de télécommunication,


Instrumentation électronique. Micro-électronique.

TP1 C++ : Programmation hors orientée objets


Structures de contrôle

Exercice 1. 1 : Écrire un programme C++ qui cherche tous les nombres premiers entre 1 et
N.

Exercice 1.2 : Écrire un programme C++ qui permet de vérifier si une année est bissextile.
(Une année est bissextile si elle est multiple de 4 et non multiple de 100, et si elle est multiple
de 100 elle doit être multiple de 1000).

Exercice 1.3 : Écrire un programme qui permet de calculer le nombre de jours séparant deux
dates (une date est de forme jjmmaaaa).

Tableaux à une dimension

Exercice 2.1 : Écrire un programme C++ qui effectue un produit vectoriel et scalaire entre
deux vecteurs X et Y.

Exercice 2.2 : Écrire un programme C++ qui permet d’effectuer le tri de moyennes, tri par
sélection, tri par bulles et tri par comptage dans un vecteur X.

Tableaux à deux dimensions

Exercice 3.1 : Écrire un programme qui permet de calculer la transposée d’une matrice.

Exercice 3.2 : Écrire un programme C++ qui permet de chercher les points celles d’une
matrice.

Exercice 3.3 : Écrire un programme C++ qui permet de calculer le produit de deux matrices.

fonctions

Exercice 5.1 : Écrire une fonction qui permet de calculer la transposée d’une matrice.

Exercice 5.2 : Soit deux vecteurs V1 et V2, V1 contient les mots à saisir et V2 ses
synonymes. Écrire un programme C++ utilisant des fonctions pour chercher les synonymes
d’un mot recherché.

Enregistrements

Exercice : Un étudiant est défini par : matricule (entier), nom et prénom (chaines de
caractères), adresse (chaine de caractère), date de naissance (enregistrement).
– Écrire un programme qui permet d’ajouter, supprimer et modifier les informations sur les
étudiants.
– Écrire un programme qui permet d’ordonner les étudiants selon l’ordre alphabétique de
leurs noms.

Application : Réseaux
Schématiser, Expliquer le déroulement, éditer, compiler et exécuter

1
Université A/Mira Béjaïa. Master 1 Réseau et télécommunication, Système de télécommunication,
Instrumentation électronique. Micro-électronique.

#include <iostream>
#include <WS2tcpip.h>
#pragma comment (lib, "ws2_32.lib")

using namespace std;

void main()
{
//1-Initialisation de winsock

WSADATA data;
WORD word = MAKEWORD(2,2);
int winSockOpened = WSAStartup(word, &data);
if (winSockOpened != 0)
{
cout << "Erreur d ouverture de winsock"<<endl;
return;
}
else{cout << "Ouverture de winsock reussite"<<endl;}

//2-Creation de socket

SOCKET listening = socket(AF_INET,SOCK_STREAM,0);

if (listening == INVALID_SOCKET)
{
cout<<"Erreur de creation de la socket"<<endl;
return;
}
else
{cout << "Creation de la socket ressite"<<endl; }

//3-Lier adress ip : port a socket

sockaddr_in hint;
hint.sin_family = AF_INET;
hint.sin_port = htons(54000);
hint.sin_addr.S_un.S_addr = INADDR_ANY;
bind(listening, (sockaddr*)&hint, sizeof(hint));

//4-Informer winsock que la socket est pour l ecoute

listen(listening, SOMAXCONN);

//Attendre la connexion

sockaddr_in client;
int clientsize;
clientsize = sizeof(client);
SOCKET clientSocket = accept(listening, (sockaddr*)& client,
&clientsize);

if (clientSocket == INVALID_SOCKET)

2
Université A/Mira Béjaïa. Master 1 Réseau et télécommunication, Système de télécommunication,
Instrumentation électronique. Micro-électronique.

{
cout<<"Erreur de creation de la socket (2)"<<endl;
return;
}
Else {cout << "Creation de la socket ressite (2)"<<endl;}

char host[NI_MAXHOST];
char service[NI_MAXHOST];

ZeroMemory(host, NI_MAXHOST);
ZeroMemory(service, NI_MAXSERV);

if (getnameinfo((sockaddr*) &client, sizeof(client),


host, NI_MAXHOST, service, NI_MAXSERV, 0) == 0)
{cout << host << " connected on port " << service << endl;}
else
{
inet_ntop(AF_INET, &client.sin_addr,host, NI_MAXHOST);
cout<< host << ntohs (client.sin_port) << endl;

}
//Fermer la socket
closesocket(listening);

//Message echo client


char buf[4096];
while(true)
{
ZeroMemory(buf, 4096);

// Attendre que le client envoie des donnees

int byteReceived = recv(clientSocket, buf, 4096, 0);

if (byteReceived == SOCKET_ERROR)
{
cout << "Erreur de reception des donnees" << endl;
break;
}
if (byteReceived == 0)
{
cout << "Client disconnected" << endl;
break;
}
send(clientSocket, buf, byteReceived+1, 0);
}

closesocket(clientSocket); //Fermer la socket

WSACleanup();//Fermer winsock
}

Вам также может понравиться