Pages

cours réseaux informatique

touts sur les réseaux informatique.

Cours JAVA

les cours de java exemples exercices

RSS comment ça marche

RSS comment fonctionne

dimanche 15 janvier 2012

recherche dicotomie




#include<stdio.h>
#include<conio.h>
# define MAX 100

bool RecehrcheDEco(int T[MAX],int *deb,int *fin,int val,int *pos)
{
     if(fin<deb)  return 0;
     else if(val==T[(*fin+*deb)/2]){
          *pos =(*fin-*deb)/2;
          return 1;
          }
     else if(val<T[(*fin+*deb)/2]){
       *deb=((*deb+*fin)/2-1);
        return  RecehrcheDEco(T,deb,fin,val,pos);
          }
     else {
     *fin=((*deb+*fin)/2+1);
     return RecehrcheDEco(T,deb,fin,val,pos);
     }
     }
     main(){
 
    int T[MAX];
    int deb,fin,pos,val,i,n;
    printf("\n Entrée le nbres d'element : ");
    scanf("%d",&n);
    for(i=0;i<n;i++){
                     printf("\n entrer le %d ieme elements de Tableau",i);
                     scanf("%d",&T[i]);
                     }
    printf("\n donner la valeur a rechercher : ");
    scanf("%d",&val);
   deb=0;
   fin=n-1;
   if(RecehrcheDEco(T[100],&deb,&fin,val,&pos) == 1){
   printf("\n l'element se treouve a la position %i",&pos);
   else
   printf("\n l'elements n'existe pas dans les Tableau");
}
    getch();
    }


TP les types de trie en C


TP les types de trie en C 


#include <stdio.h>
#include <stdlib.h>
#define TRUE 1
#define FALSE 0
// tri par fusion
void fusion(int*t,int deb1,int fin1,int fin2)
{

int*table1;
int deb2=fin1+1;
int compt1=deb1;
int compt2=deb2;
int i;
table1=(int *)malloc((fin1-deb1+1)*sizeof(int));
for(i=deb1;i<=fin1;i++)
table1[i-deb1]=t[i];
for(i=deb1;i<=fin2;i++){
if( compt1==deb2) break;
else if (compt2==(fin2+1)) {

t[i]=table1[compt1-deb1];
compt1++;
}
else if(table1[ compt1- deb1] <t[ compt2]) {

t[i]=table1[compt1-deb1];
compt1++;
}
else{

t[i]=t[compt2];
compt2++;
}
}
free(table1);
}
void tri_fusion_T(int*t,int deb,int fin)
{
if(deb!=fin){
int milieu=( fin+deb) /2;

tri_fusion_T(t,deb,milieu);
tri_fusion_T(t,milieu+1,fin);
fusion(t,deb,milieu,fin);
}
}
void tri_fusion(int*t,int n)
{
if (n>0) tri_fusion_T(t,0,n-1);
}

// tri en bulle
void tri_en_bulle(int *t, int n)
{

int j =0 ;
int tmp =0;
int en_desordre =1;
while(en_desordre)
{
en_desordre = FALSE;
for(j =0 ; j < n-1 ; j++)
{
if(t[j] > t[j+1])

{
tmp = t[j+1];
t[j+1] = t[j];
t[j] = tmp;
en_desordre = TRUE;
}
 }
   }
    }
// tri par sélection
void tri_par_selection(int*t, int n)
{
int i, min, j , tmp;
for(i =0 ; i < n -1 ; i++)
{
min = i;
for(j = i+1 ; j < n ; j++)
if(t[j] < t[min])
min = j;
if(min != i)

{
tmp = t[i];
t[i] = t[min];
t[min] = tmp;
}
   }
      }



// tri par insertion
void tri_insertion(int*t, int n)
{
int i, p,j;
int x;
for (i =1; i < n; i++)
{
x = t[i];
p = i-1;
while (t[p] > x && p-- >0) {}
p++;
for (j = i-1; j >= p; j--) {
t[j+1] = t[j];
}
t[p] = x;
 }
   }


// tri rapide
void echanger (int*t, int i, int j)
{int tmp;

tmp=t[i];
t[i]=t[j];
t[j]=tmp;
}
int partition(int*t, int deb, int fin)
{

int compt=deb;
int pivot=t[ deb] ;
int i;
for(i=deb+1;i<=fin;i++){
if(t[i]<pivot){

compt++;
echanger(t,compt,i);
}
}
echanger(t,compt,deb);
return(compt);
}
void tri_rapide_T (int*t, int debut,int fin)

{
    if(debut<fin)
{
int pivot=partition( t,debut, fin) ;
tri_rapide_T(t,debut,pivot-1);
tri_rapide_T(t,pivot+1,fin);
}
   }
void tri_rapide(int*t,int n)
{
    tri_rapide_T(t,0,n-1);
}

int main(void)
{

int nb_entiers;
int*tab;
int i;
int num;


printf("Donner le nombre des entiers que vous voulez trier: ");
scanf("%d",&nb_entiers);


tab=(int *)malloc(nb_entiers*sizeof(int));


printf("\n");
for(i=0;i<nb_entiers;i++){

printf("Donner l'entier %d: ",i+1);
scanf("%d",&tab[i]);
}


printf("1. Le tri par fusion\n");
printf("2. Le tri en bulle\n");
printf("3. Le tri par selection\n");
printf("4. Le tri par insertion\n");
printf("5. Le tri rapide\n");
printf("entrer votre choix: \n");
int cas;
scanf("%d",&cas);

while(cas!=0){

// appliquer l'algorithme choisi

if(cas==1){ tri_fusion(tab,nb_entiers);
printf("\n tries! : ",144);
for(i=0;i<nb_entiers;i++) printf("%3d",tab[i]);
printf("\n\n");}
if(cas==2) {tri_en_bulle(tab,nb_entiers);
printf("\n tries! : ",144);
for(i=0;i<nb_entiers;i++) printf("%3d",tab[i]);
printf("\n\n");}
if(cas==3) {tri_par_selection(tab, nb_entiers);
printf("\n tries! : ",144);
for(i=0;i<nb_entiers;i++) printf("%3d",tab[i]);
printf("\n\n");}
if(cas==4) {tri_insertion(tab,nb_entiers);
printf("\n tries! : ",144);
for(i=0;i<nb_entiers;i++) printf("%3d",tab[i]);
printf("\n\n");}
if(cas==5) {tri_rapide(tab,nb_entiers);
printf("\n tries! : ",144);
for(i=0;i<nb_entiers;i++) printf("%3d",tab[i]);
printf("\n\n");}
cas=0;
printf("1. Le tri par fusion\n");
printf("2. Le tri en bulle\n");
printf("3. Le tri par selection\n");
printf("4. Le tri par insertion\n");
printf("5. Le tri rapide\n");
printf("entrer votre choix: \n");
int cas;
scanf("%d",&cas);
}
system("PAUSE");
return 0;
}

samedi 14 janvier 2012

TP serveur de messagerie postfix (3 Tests)




·       Tests:

Vous pouvez envoyer un mail en ligne de commandes :
D'abord vers votre domaine, puis vers un domaine extérieur :
Envoyer un message à gi2011
sendmail gi2011@isra.gi.edu
/etc/init.d/postfix  start
 * Starting Postfix Mail Transport Agent postfix      

gi2011@m1:/etc/courier$ mail gi2011@isra.gi.edu
Cc:
Subject: bsr
Salut  tt le monde .

gi2011@m1:/etc/courier$ mutt gi2011@isra.gi.edu
gi2011@m1:/etc/courier$ mail
"/var/mail/gi2011": 3 messages3 nouveaux
>N   1 root               jeu. mars 31 17:  19/417   salut
 N   2 gi2011             jeu. mars 31 17:  18/520   salut
 N   3 gi2011             jeu. mars 31 18:  16/520   ccc
? p1
Return-Path: <root@m1.isra.gi.edu>
X-Original-To: gi2011@isra.gi.edu
Delivered-To: gi2011@isra.gi.edu
Received: by m1.gi.edu (Postfix, from userid 0)
            id 109447DF8; Thu, 31 Mar 2011 17:47:13 +0000 (WET)
To: <gi2011@isrb.gi.edu>
Subject: salut
X-Mailer: mail (GNU Mailutils 2.1)
Message-Id: <20110331174713.109447DF8@m1.gi.edu>
Date: Thu, 31 Mar 2011 17:47:13 +0000 (WET)
From: root@m1.isra.gi.edu (root)
Salut tt le monde



·       Commandes d’administration :
Lister la queue de mails en attente d'envoi :
mailq
ou
postqueue -p
Forcer Postfix à réessayer d'envoyer les mails en attente d'envoi immédiatement :
postqueue -f
Supprimer un mail de la queue des mails en attente d'envoi :
postsuper -d <n°>

TP installation de serveur de messagerie postfix(2)


  •         Postfix :



·        Installation :

Postfix va envoyer et recevoir les mails de votre domaine. Pour l'installer, vous pouvez utiliser la
commande :
# apt-get install postfix
A l'installation il vous est demandé :
– quel type de configuration vous souhaitez, choisissez site internet.
– Quel utilisateur doit recevoir les mails du root, choisissez mrim
– Laissez les domaines tels qu'ils vous sont proposés.
– Pour les mises à jour synchronisées, choisissez Oui.

·        Configuration :

La configuration de ce serveur SMTP se fait au moyen de plusieurs fichiers de configuration.
Celui qui nous intéresse particulièrement est : /etc/postfix/main.cf :
Sauvegarder le fichier /etc/postfix/main.cf par la
commande :
#cp /etc/postfix/main.cf /etc/postfix/main.cf.old
après vider le fichier /etc/postfix/main.cf par la
commande:
# echo > /etc/postfix/main.cf
Éditer le fichier /etc/postfix/main.cf et copier dedans
ceci:
# See /usr/share/postfix/main.cf.dist for a
commented, more complete version
# Debian specific: Specifying a file name will cause
the first
# line of that file to be used as the name. The Debian
default
# is /etc/mailname.
#myorigin = /etc/mailname
smtpd_banner = $myhostname ESMTP $mail_name
(Ubuntu)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed
mail" warnings
#delay_warning_time = 4h
readme_directory = no
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-
snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-
snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database =
btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database =
btree:${data_directory}/smtp_scache
# See /usr/share/doc/postfix/TLS_README
the postfix-doc package for
# information on enabling SSL in the smtp cl
myhostname = isr.gi.edu
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = gi.edu, localhost,
localhost.localdomain, localhost
relayhost =
mynetworks = 172.16.0.0/16 127.0.0.0/8
[::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 10240000
/etc/postfix/main.cf 1,1 Haut
redémarrer le serveur par la commande :
#/etc/init.d/postfix stop
#/etc/init.d/postfix start
Pour voir si le fichier main.cf  ne comprend pas d'erreur, on tape la commande
tail /var/log/syslog et on repère les lignes des fichiers dans lesquelles il y a des erreurs.
tail -f /var/log/syslog
tail -f /var/log/mail.
mail.err   mail.info  mail.log   mail.warn 
-f /var/log/mail.info
Mar 31 16:09:11 m1 postfix/master[2818]: daemon started -- version 2.7.0, configuration /etc/postfix


TP installation de serveur de messagerie postfix



Introduction:

Postfix est entièrement libre.
Il a été écrit entièrement par Wietse Venema qui travaillait à l'époque, pour IBM.
● Postfix peut fonctionner sur PC, sur mac ou sur toute autre plateforme compatible avec
   unix ou linux.
● Il n'existe pas de version windows.
Postfix est un serveur SMTP. Donc pour faire un serveur de courrier complet, il lui faut un adjoint pour le transport des messages chez l'utilisateur final en POP3 ou en IMAP.
Le protocole SMTP c'est : single mail transfert protocol. C'est le protocole qui permet d'envoyer et de récupérer les courriers sur Internet en fonction du nom de domaine.
Pour sa réception, en fonction du nom d'utilisateur, nous évoquerons courrier et cyrus

  •    Présentation 


  Avant tout, il faut bien comprendre comment fonctionnent l'envoi et la réception de mails.

Pour envoyer mail on utilise un ogiciel qui permet de transporter les messages, on appelle
cela un MTA (Mail Transfert Agent). Enpratique c'est le protocole SMTP qui s'en charge, les MTA les plus connus étant Sendmail,Postfix sous Unix et Exchange sous Windows)
Une fois les messages arrivés à destination, le MDA (Mail Delivery Agent) dépose chaque
message dans la bonne boite aux lettres. En pratique, c'est les protocoles POP ou IMAP qui s'en chargent. Sous Linux, Procmail est très utilisé, tandis que sous Windows, on utilise plutôt
Exchange.
Côté client, on utilise un logiciel qui permet de consulter sa boite aux lettres, que l'on
appelle MUA (Mail User Agent). Les plus connus sont Outlook ou Thunderbird.
Pour ce TP, nous avons donc besoin côté serveur d'un MTA (Postfix) et d'un MDA
(Qpopper). Il est rare de gérer un serveur mail sans solutions de protection contre les spams et les virus, c'est pourquoi nous verrons aussi spamassassin et clamwin.




Partager

Twitter Delicious Facebook Digg Stumbleupon Favorites More