Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
utilisateurs:hypathie:tutos:brouillon-bac-a-sable-de-mes-mini-tutos [19/10/2014 18:02] Hypathie [Example squid conf] |
utilisateurs:hypathie:tutos:brouillon-bac-a-sable-de-mes-mini-tutos [06/12/2014 11:28] Hypathie [Test config] |
||
---|---|---|---|
Ligne 778: | Ligne 778: | ||
/sbin/iptables -F | /sbin/iptables -F | ||
- | |||
/sbin/iptables -X | /sbin/iptables -X | ||
- | |||
- | /sbin/iptables -t nat -F | ||
- | |||
- | /sbin/iptables -t nat -X | ||
- | |||
- | /sbin/iptables -P INPUT ACCEPT | ||
- | |||
- | /sbin/iptables -P FORWARD ACCEPT | ||
- | |||
- | /sbin/iptables -P OUTPUT ACCEPT | ||
- | |||
/sbin/iptables -P INPUT DROP | /sbin/iptables -P INPUT DROP | ||
- | |||
/sbin/iptables -P OUTPUT DROP | /sbin/iptables -P OUTPUT DROP | ||
- | |||
/sbin/iptables -P FORWARD DROP | /sbin/iptables -P FORWARD DROP | ||
- | |||
/sbin/iptables -t nat -P PREROUTING ACCEPT | /sbin/iptables -t nat -P PREROUTING ACCEPT | ||
- | |||
/sbin/iptables -t nat -P POSTROUTING ACCEPT | /sbin/iptables -t nat -P POSTROUTING ACCEPT | ||
- | |||
/sbin/iptables -t nat -P INPUT ACCEPT | /sbin/iptables -t nat -P INPUT ACCEPT | ||
- | |||
/sbin/iptables -t nat -P OUTPUT ACCEPT | /sbin/iptables -t nat -P OUTPUT ACCEPT | ||
- | |||
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE | /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE | ||
+ | ##commenter / décommenter et adapter les quatre lignes suivantes pour ne pas mettre en place / mettre en place | ||
+ | ##un proxy transparent (squid) | ||
+ | /sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.0.1:3129 | ||
+ | /sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3129 | ||
+ | /sbin/iptables -t mangle -A PREROUTING -p tcp --dport 3128 -j DROP | ||
+ | /sbin/iptables -t mangle -A PREROUTING -p tcp --dport 3129 -j DROP | ||
+ | #accepter l'interface lo | ||
/sbin/iptables -A INPUT -i lo -j ACCEPT | /sbin/iptables -A INPUT -i lo -j ACCEPT | ||
- | |||
/sbin/iptables -A OUTPUT -o lo -j ACCEPT | /sbin/iptables -A OUTPUT -o lo -j ACCEPT | ||
+ | #accepter le sous-réseau | ||
/sbin/iptables -A INPUT -i eth1 -j ACCEPT | /sbin/iptables -A INPUT -i eth1 -j ACCEPT | ||
- | |||
/sbin/iptables -A OUTPUT -o eth1 -j ACCEPT | /sbin/iptables -A OUTPUT -o eth1 -j ACCEPT | ||
+ | #permettre le passage entre les deux interfaces eternet de la passerelle | ||
/sbin/iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p tcp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT | /sbin/iptables -t filter -A FORWARD -i eth1 -o eth0 -s 192.168.1.0/24 -d 0.0.0.0/0 -p tcp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT | ||
- | |||
/sbin/iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT | /sbin/iptables -t filter -A FORWARD -i eth0 -o eth1 -s 0.0.0.0/0 -d 192.168.1.0/24 -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT | ||
- | |||
/sbin/iptables -t filter -A FORWARD -p icmp -j ACCEPT | /sbin/iptables -t filter -A FORWARD -p icmp -j ACCEPT | ||
+ | #accepter le ping entre les réseaux locaux | ||
/sbin/iptables -t filter -A INPUT -p icmp -i eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT | /sbin/iptables -t filter -A INPUT -p icmp -i eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT | ||
- | |||
/sbin/iptables -t filter -A OUTPUT -p icmp -o eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT | /sbin/iptables -t filter -A OUTPUT -p icmp -o eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT | ||
- | |||
/sbin/iptables -t filter -A INPUT -p icmp -i eth1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT | /sbin/iptables -t filter -A INPUT -p icmp -i eth1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT | ||
- | |||
/sbin/iptables -t filter -A OUTPUT -p icmp -o eth1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT | /sbin/iptables -t filter -A OUTPUT -p icmp -o eth1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT | ||
- | |||
- | /sbin/iptables -t filter -A OUTPUT -o eth0 -p udp -m udp --dport 53 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | ||
- | |||
- | /sbin/iptables -t filter -A INPUT -i eth0 -p udp -m udp --sport 53 -m state --state RELATED,ESTABLISHED -j ACCEPT | ||
- | |||
- | /sbin/iptables -t filter -A OUTPUT -o eth1 -p udp -m udp --dport 53 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | ||
- | |||
- | /sbin/iptables -t filter -A INPUT -i eth1 -p udp -m udp --sport 53 -m state --state RELATED,ESTABLISHED -j ACCEPT | ||
- | |||
- | /sbin/iptables -t filter -A OUTPUT -o eth0 -p tcp -m multiport --dports 80,443,8000 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | ||
- | |||
- | /sbin/iptables -t filter -A INPUT -i eth0 -p tcp -m multiport --sports 80,443,8000 -m state --state RELATED,ESTABLISHED -j ACCEPT | ||
- | |||
- | /sbin/iptables -A OUTPUT -o eth1 -p tcp -m multiport --dports 80,443,8000 -j ACCEPT | ||
- | |||
- | /sbin/iptables -A INPUT -i eth1 -p tcp -m multiport --sports 80,443,8000 -j ACCEPT | ||
- | |||
/sbin/iptables -A OUTPUT -p icmp --icmp-type 0 -j ACCEPT | /sbin/iptables -A OUTPUT -p icmp --icmp-type 0 -j ACCEPT | ||
- | |||
/sbin/iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT | /sbin/iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT | ||
- | |||
/sbin/iptables -A FORWARD -p icmp --icmp-type 0 -j ACCEPT | /sbin/iptables -A FORWARD -p icmp --icmp-type 0 -j ACCEPT | ||
- | |||
/sbin/iptables -A INPUT -p icmp --icmp-type 3/4 -j ACCEPT | /sbin/iptables -A INPUT -p icmp --icmp-type 3/4 -j ACCEPT | ||
- | |||
/sbin/iptables -A OUTPUT -p icmp --icmp-type 3/4 -j ACCEPT | /sbin/iptables -A OUTPUT -p icmp --icmp-type 3/4 -j ACCEPT | ||
- | |||
/sbin/iptables -A FORWARD -p icmp --icmp-type 3/4 -j ACCEPT | /sbin/iptables -A FORWARD -p icmp --icmp-type 3/4 -j ACCEPT | ||
- | |||
/sbin/iptables -A FORWARD -p icmp --icmp-type 3/3 -j ACCEPT | /sbin/iptables -A FORWARD -p icmp --icmp-type 3/3 -j ACCEPT | ||
- | |||
/sbin/iptables -A OUTPUT -p icmp --icmp-type 3/3 -j ACCEPT | /sbin/iptables -A OUTPUT -p icmp --icmp-type 3/3 -j ACCEPT | ||
- | |||
/sbin/iptables -A INPUT -p icmp --icmp-type 3/3 -j ACCEPT | /sbin/iptables -A INPUT -p icmp --icmp-type 3/3 -j ACCEPT | ||
- | |||
/sbin/iptables -A FORWARD -p icmp --icmp-type 3/1 -j ACCEPT | /sbin/iptables -A FORWARD -p icmp --icmp-type 3/1 -j ACCEPT | ||
- | |||
/sbin/iptables -A INPUT -p icmp --icmp-type 3/1 -j ACCEPT | /sbin/iptables -A INPUT -p icmp --icmp-type 3/1 -j ACCEPT | ||
- | |||
/sbin/iptables -A OUTPUT -p icmp --icmp-type 3/1 -j ACCEPT | /sbin/iptables -A OUTPUT -p icmp --icmp-type 3/1 -j ACCEPT | ||
- | |||
/sbin/iptables -A INPUT -p icmp --icmp-type 4 -j ACCEPT | /sbin/iptables -A INPUT -p icmp --icmp-type 4 -j ACCEPT | ||
- | |||
/sbin/iptables -A OUTPUT -p icmp --icmp-type 4 -j ACCEPT | /sbin/iptables -A OUTPUT -p icmp --icmp-type 4 -j ACCEPT | ||
- | |||
/sbin/iptables -A FORWARD -p icmp --icmp-type 4 -j ACCEPT | /sbin/iptables -A FORWARD -p icmp --icmp-type 4 -j ACCEPT | ||
- | |||
/sbin/iptables -A INPUT -p icmp --icmp-type 8 -m limit --limit 2/s -j ACCEPT | /sbin/iptables -A INPUT -p icmp --icmp-type 8 -m limit --limit 2/s -j ACCEPT | ||
- | |||
/sbin/iptables -A INPUT -p icmp --icmp-type 8 -j LOG --log-prefix "ICMP/in/8 Excessive: " | /sbin/iptables -A INPUT -p icmp --icmp-type 8 -j LOG --log-prefix "ICMP/in/8 Excessive: " | ||
- | |||
/sbin/iptables -A INPUT -p icmp --icmp-type 8 -j DROP | /sbin/iptables -A INPUT -p icmp --icmp-type 8 -j DROP | ||
- | |||
/sbin/iptables -A OUTPUT -p icmp --icmp-type 8 -j ACCEPT | /sbin/iptables -A OUTPUT -p icmp --icmp-type 8 -j ACCEPT | ||
- | |||
/sbin/iptables -A FORWARD -p icmp --icmp-type 8 -j ACCEPT | /sbin/iptables -A FORWARD -p icmp --icmp-type 8 -j ACCEPT | ||
- | |||
/sbin/iptables -A INPUT -p icmp --icmp-type 11 -j ACCEPT | /sbin/iptables -A INPUT -p icmp --icmp-type 11 -j ACCEPT | ||
- | |||
/sbin/iptables -A OUTPUT -p icmp --icmp-type 11 -j ACCEPT | /sbin/iptables -A OUTPUT -p icmp --icmp-type 11 -j ACCEPT | ||
- | |||
/sbin/iptables -A FORWARD -p icmp --icmp-type 11 -j ACCEPT | /sbin/iptables -A FORWARD -p icmp --icmp-type 11 -j ACCEPT | ||
- | |||
/sbin/iptables -A INPUT -p icmp --icmp-type 12 -j ACCEPT | /sbin/iptables -A INPUT -p icmp --icmp-type 12 -j ACCEPT | ||
- | |||
/sbin/iptables -A OUTPUT -p icmp --icmp-type 12 -j ACCEPT | /sbin/iptables -A OUTPUT -p icmp --icmp-type 12 -j ACCEPT | ||
- | |||
/sbin/iptables -A FORWARD -p icmp --icmp-type 12 -j ACCEPT | /sbin/iptables -A FORWARD -p icmp --icmp-type 12 -j ACCEPT | ||
- | |||
/sbin/iptables -A FORWARD -s 192.168.1.0/24 -d 192.168.0.0/24 -p icmp --icmp-type echo-request -j ACCEPT | /sbin/iptables -A FORWARD -s 192.168.1.0/24 -d 192.168.0.0/24 -p icmp --icmp-type echo-request -j ACCEPT | ||
- | |||
/sbin/iptables -A FORWARD -s 192.168.0.0/24 -d 192.168.1.0/24 -p icmp --icmp-type echo-reply -j DROP | /sbin/iptables -A FORWARD -s 192.168.0.0/24 -d 192.168.1.0/24 -p icmp --icmp-type echo-reply -j DROP | ||
- | |||
/sbin/iptables -A INPUT -p icmp -m limit -j LOG --log-prefix "ICMP/IN: " | /sbin/iptables -A INPUT -p icmp -m limit -j LOG --log-prefix "ICMP/IN: " | ||
- | |||
/sbin/iptables -A OUTPUT -p icmp -m limit -j LOG --log-prefix "ICMP/OUT: " | /sbin/iptables -A OUTPUT -p icmp -m limit -j LOG --log-prefix "ICMP/OUT: " | ||
- | |||
/sbin/iptables -N syn_flood | /sbin/iptables -N syn_flood | ||
- | |||
/sbin/iptables -I INPUT -p tcp --syn -j syn_flood | /sbin/iptables -I INPUT -p tcp --syn -j syn_flood | ||
- | |||
/sbin/iptables -A syn_flood -m limit --limit 1/s --limit-burst 3 -j RETURN | /sbin/iptables -A syn_flood -m limit --limit 1/s --limit-burst 3 -j RETURN | ||
- | |||
/sbin/iptables -A syn_flood -j LOG --log-prefix '[SYN_FLOOD] : ' | /sbin/iptables -A syn_flood -j LOG --log-prefix '[SYN_FLOOD] : ' | ||
- | |||
/sbin/iptables -A syn_flood -j DROP | /sbin/iptables -A syn_flood -j DROP | ||
+ | #autoriser la connexion avec les serveurs DNS | ||
+ | /sbin/iptables -t filter -A OUTPUT -o eth0 -p udp -m udp --dport 53 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | ||
+ | /sbin/iptables -t filter -A INPUT -i eth0 -p udp -m udp --sport 53 -m state --state RELATED,ESTABLISHED -j ACCEPT | ||
+ | /sbin/iptables -t filter -A OUTPUT -o eth1 -p udp -m udp --dport 53 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | ||
+ | /sbin/iptables -t filter -A INPUT -i eth1 -p udp -m udp --sport 53 -m state --state RELATED,ESTABLISHED -j ACCEPT | ||
+ | #autoriser la navigation web | ||
+ | /sbin/iptables -t filter -A OUTPUT -o eth0 -p tcp -m multiport --dports 80,443,8000 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | ||
+ | /sbin/iptables -t filter -A INPUT -i eth0 -p tcp -m multiport --sports 80,443,8000 -m state --state RELATED,ESTABLISHED -j ACCEPT | ||
+ | /sbin/iptables -A OUTPUT -o eth1 -p tcp -m multiport --dports 80,443,8000 -j ACCEPT | ||
+ | /sbin/iptables -A INPUT -i eth1 -p tcp -m multiport --sports 80,443,8000 -j ACCEPT | ||
+ | #Si le serveur cups est branché sur un ordinateur du réseau 192.168.0.0/24, par exemple sur 192.168.0.22 | ||
+ | # laisser décommenter les deux lignes suivantes : | ||
+ | /sbin/iptables -A INPUT -i eth0 -s 192.168.0.22 -d 192.168.0.1 -p tcp --sport 631 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | ||
+ | /sbin/iptables -A OUTPUT -o eth0 -s 192.168.0.1 -d 192.168.0.22 -p tcp --dport 631 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT | ||
+ | #créer une chaîne utilisateur pour les connexion ssh, les loguer et les accepter | ||
/sbin/iptables -t filter -N InComingSSH | /sbin/iptables -t filter -N InComingSSH | ||
- | |||
/sbin/iptables -I INPUT -i eth0 -s 192.168.0.0/24 -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j InComingSSH | /sbin/iptables -I INPUT -i eth0 -s 192.168.0.0/24 -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j InComingSSH | ||
- | |||
/sbin/iptables -A InComingSSH -j LOG --log-prefix '[INCOMING_SSH] : ' | /sbin/iptables -A InComingSSH -j LOG --log-prefix '[INCOMING_SSH] : ' | ||
- | |||
/sbin/iptables -A InComingSSH -j ACCEPT | /sbin/iptables -A InComingSSH -j ACCEPT | ||
- | |||
/sbin/iptables -t filter -A OUTPUT -o eth0 -p tcp -m tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT | /sbin/iptables -t filter -A OUTPUT -o eth0 -p tcp -m tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT | ||
- | |||
/sbin/iptables -t filter -A OUTPUT -o eth1 -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT | /sbin/iptables -t filter -A OUTPUT -o eth1 -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT | ||
- | |||
/sbin/iptables -t filter -A INPUT -i eth1 -s 192.168.0.0/24 -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT | /sbin/iptables -t filter -A INPUT -i eth1 -s 192.168.0.0/24 -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT | ||
+ | #créer une chaîne utilisateur pour les connexions ftp, et les accepter | ||
/sbin/iptables -N ftp_in_accept | /sbin/iptables -N ftp_in_accept | ||
- | |||
/sbin/iptables -I INPUT -i eth0 -p tcp --sport 21 -m state --state ESTABLISHED,RELATED -j ftp_in_accept | /sbin/iptables -I INPUT -i eth0 -p tcp --sport 21 -m state --state ESTABLISHED,RELATED -j ftp_in_accept | ||
- | |||
/sbin/iptables -I INPUT -i eth0 -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ftp_in_accept | /sbin/iptables -I INPUT -i eth0 -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ftp_in_accept | ||
- | |||
/sbin/iptables -I INPUT -i eth0 -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ftp_in_accept | /sbin/iptables -I INPUT -i eth0 -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ftp_in_accept | ||
- | |||
/sbin/iptables -A ftp_in_accept -p tcp -j ACCEPT | /sbin/iptables -A ftp_in_accept -p tcp -j ACCEPT | ||
- | |||
/sbin/iptables -A INPUT -i eth1 -p tcp --sport 21 -m state --state ESTABLISHED,RELATED -j ACCEPT | /sbin/iptables -A INPUT -i eth1 -p tcp --sport 21 -m state --state ESTABLISHED,RELATED -j ACCEPT | ||
- | |||
/sbin/iptables -A INPUT -i eth1 -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT | /sbin/iptables -A INPUT -i eth1 -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT | ||
- | |||
/sbin/iptables -I INPUT -i eth1 -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT | /sbin/iptables -I INPUT -i eth1 -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT | ||
Ligne 981: | Ligne 911: | ||
* Et maintenant : | * Et maintenant : | ||
<code root>systemctl start iptables.service</code> | <code root>systemctl start iptables.service</code> | ||
+ | |||
+ | |||
=====Example squid conf ===== | =====Example squid conf ===== | ||
Ligne 1056: | Ligne 988: | ||
*logs directory : | *logs directory : | ||
<code>/var/log/squid3/access.log</code> | <code>/var/log/squid3/access.log</code> | ||
+ | -> | ||
<code>/mnt/proxy/log/squid3/access.log</code> | <code>/mnt/proxy/log/squid3/access.log</code> | ||
+ | <code root>tail -f /mnt/proxy/log/squid3/access.log</code> | ||
+ | ou | ||
<code root>tail -f /var/log/squid3/access.log</code> | <code root>tail -f /var/log/squid3/access.log</code> | ||
owner : proxy not root | owner : proxy not root | ||
- | <code>/home/hypathie/cache/spool/cache_store_log/store.log</code> | + | |
- | -> | + | *cache_store_log |
+ | |||
<code>/mnt/proxy/cache_store_log/store.log</code> | <code>/mnt/proxy/cache_store_log/store.log</code> | ||
+ | -> | ||
+ | <code>/home/hypathie/cache/spool/cache_store_log/store.log</code> | ||
+ | |||
+ | * cache.log | ||
<code>/var/log/squid3/cache.log</code> | <code>/var/log/squid3/cache.log</code> | ||
+ | -> | ||
<code>/mnt/proxy/log/squid3/cache.log</code> | <code>/mnt/proxy/log/squid3/cache.log</code> | ||
Ligne 1283: | Ligne 1224: | ||
# | # | ||
</code> | </code> | ||
+ | |||
+ | =====Trie remontée des bulles ===== | ||
+ | |||
+ | <code> | ||
+ | Interface Procédure saisie des données | ||
+ | |||
+ | Procédure saisie ( sortie tablechiffresaisie : listechiffre, sortie tailletablesaisie : entier ) | ||
+ | // La procédure saisie permet de récupérer les données saisies par l'utilisateur. | ||
+ | // tablechiffresaisie est la table de chiffre rentré par l'utilisateur. | ||
+ | // tailletablesaisie définie la taille de la table. | ||
+ | |||
+ | Variables | ||
+ | nombrechiffresaisie : entier // compte le nombre de chiffres rentré par l'utilisateur. | ||
+ | |||
+ | Début | ||
+ | // l'utilisateur rentre la taille de la table d'entier et ses valeurs. | ||
+ | |||
+ | Répéter | ||
+ | Ecrire ( 'Quel sera le nombre de chiffre à trier?' ) // on demande la taille de la table en répétant jusqu'à avoir une valeur correcte (non négative et non supérieur à longueur du tableau). | ||
+ | Lire ( tailletablesaisie ) | ||
+ | Jusquà ( tailletablesaisie >= 0 ) et ( tailletablesaisie < = maxchiffre ) | ||
+ | |||
+ | nombrechiffresaisie := 1 // initialisation. | ||
+ | |||
+ | Tantque ( nombrechiffresaisie <= tailletablesaisie ) Faire | ||
+ | Ecrire ( 'Veuillez donner un entier à mettre dans le numéro ',nombrechiffresaisie,' du tableau" ) // on demande ensuite les entiers à l'utilisateur pour chaque case du tableau. | ||
+ | Lire ( tablechiffresaisie [ nombrechiffresaisie ] ) | ||
+ | nombrechiffresaisie := nombrechiffresaisie + 1 // Incrémentation pour mettre les autres entiers dans le tableau. | ||
+ | Fintantque | ||
+ | |||
+ | Fin | ||
+ | |||
+ | ################################################################################################################ | ||
+ | Interface Procédure du tri des bulles | ||
+ | |||
+ | Procédure tribulle ( entrée sortie tablechiffrebulle : listechiffre, entrée tailletablebulle : entier ) | ||
+ | // la procédure du tri des bulles permet de trier une chaine de chiffre du plus petit au plus grand en remontant les chiffres. | ||
+ | // tablechiffrebulle est la liste de chiffre rentrée par l'utilisateur ainsi que la liste triée en sortie. | ||
+ | // tailletablebulle est le nombre de chiffre rentré par l'utilisateur. | ||
+ | |||
+ | Variables | ||
+ | indice : entier //indice de parcours du tableau. | ||
+ | invert : booléen // booléen Vrai quand il y a une inversion dans le tableau. | ||
+ | intermed : entier // variable intermediaire permettant l'inversion de 2 entiers dans le tableau. | ||
+ | |||
+ | Début | ||
+ | // parcours jusqu'à qu'il n'y est plus aucune inversion. | ||
+ | |||
+ | Répéter | ||
+ | |||
+ | indice := 1 | ||
+ | |||
+ | Tantque ( indice < tailletablebulle ) faire | ||
+ | Si tablechiffrebulle [indice] > tablechiffrebulle [ indice + 1 ] alors // si l'entier "1 "du tableau est supérieur à l'entier "2" suivant dans le tableau alors. | ||
+ | intermed := tablechiffrebulle [indice] // la variable intermédiaire prend la valeur de l'entier "1". | ||
+ | tablechiffrebulle [ indice ] := tablechiffrebulle [ indice +1 ] // la valeur de l'entier "1" prend la valeur de l'entier "2". | ||
+ | tablechiffrebulle [ indice + 1 ] := intermed // la valeur de l'entier "2" prend la valeur de la variable intermédiaire (donc de l'entier "1"). | ||
+ | invert := vrai // l'inversion est donc Vrai. | ||
+ | Finsi | ||
+ | |||
+ | indice := indice +1 // incrémentation pour passer aux entiers suivants. | ||
+ | Fintantque | ||
+ | |||
+ | Jusquà invert := faux | ||
+ | |||
+ | Fin | ||
+ | |||
+ | ################################################################################################################ | ||
+ | Interface procédure affichage du tableau | ||
+ | |||
+ | Procédure affichage ( entrée tablechiffreaffichage : listechiffre, entrée tailletableaffichage : entier ) | ||
+ | // La procédure permet l'affichage du tableau de chiffre de l'utilisateur ainsi que le tableau trié | ||
+ | // tablechiffreaffichage est la table de chiffre rentré par l'utilisateur. | ||
+ | // tailletableaffichage définie la taille de la table. | ||
+ | |||
+ | |||
+ | |||
+ | Variables | ||
+ | nombrechiffreaffichage : entier // compte le nombre de chiffres rentré par l'utilisateur. | ||
+ | |||
+ | |||
+ | Début | ||
+ | nombrechiffreaffichage := 1 | ||
+ | |||
+ | Tantque ( nombrechiffreaffichage <= tailletableaffichage ) Faire | ||
+ | Ecrire ( ',listechiffre, [',nombrechiffreaffichage,' ] = ',tablechiffreaffichage, [',nombrechiffreaffichage,'] ) | ||
+ | nombrechiffreaffichage := nombrechiffreaffichage +1 | ||
+ | Fintantque | ||
+ | |||
+ | Fin | ||
+ | |||
+ | ################################################################################################################ | ||
+ | |||
+ | |||
+ | Programme test de la méthode de tri | ||
+ | |||
+ | Programme tridesbulles // permet de trier un tableau de chiffre dans l'orde croissant. | ||
+ | |||
+ | Constantes | ||
+ | maxchiffre = 100 // longueur max du tableau. | ||
+ | |||
+ | Types | ||
+ | listechiffre = tableau [maxchiffre] d'entiers | ||
+ | |||
+ | Variables | ||
+ | tablechiffre = listechiffre // la table de chiffre rentré par l'utilisateur. | ||
+ | nombrechiffre = entier // compte le nombre de chiffres rentré par l'utilisateur. | ||
+ | tailletable = entier // taille de la table. | ||
+ | |||
+ | Procédure saisie ( sortie tablechiffresaisie : listechiffre, sortie tailletablesaisie : entier ) | ||
+ | // La procédure saisie permet de récupérer les données saisies par l'utilisateur. | ||
+ | // tablechiffresaisie est la table de chiffre rentré par l'utilisateur. | ||
+ | // tailletablesaisie définie la taille de la table. | ||
+ | |||
+ | Procédure tribulle ( entrée sortie tablechiffrebulle : listechiffre, entrée tailletablebulle : entier ) | ||
+ | // la procédure du tri des bulles permet de trier une chaine de chiffre du plus petit au plus grand en remontant les chiffres. | ||
+ | // tablechiffrebulle est la liste de chiffre rentrée par l'utilisateur ainsi que la liste triée en sortie. | ||
+ | // tailletablebulle est le nombre de chiffre rentré par l'utilisateur. | ||
+ | |||
+ | Procédure affichage ( entrée tablechiffreaffichage : listechiffre, entrée tailletableaffichage : entier ) | ||
+ | // La procédure permet l'affichage du tableau de chiffre de l'utilisateur ainsi que le tableau trié | ||
+ | // tablechiffreaffichage est la table de chiffre rentré par l'utilisateur. | ||
+ | // tailletableaffichage définie la taille de la table. | ||
+ | |||
+ | |||
+ | Début | ||
+ | |||
+ | saisie ( tablechiffre, nombrechiffre, tailletable ) // appel procédure de saisie. | ||
+ | tribulle ( tablechiffre, tailletable ) // appel procédure tribulle pour le tri. | ||
+ | |||
+ | Ecrire (' Le tableau est trié :' ) | ||
+ | |||
+ | affichage (tablechiffre, tailletable) // appel procédure d'affichage. | ||
+ | |||
+ | Fin | ||
+ | |||
+ | </code> | ||
+ |