Tp1

  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Tp1 as PDF for free.

More details

  • Words: 616
  • Pages: 3
I3 - TP1 Chiffre de César

Résumé L’objectif de ce TP est de voir l’étape « Developpement » du cycle en V.

Petit conseil Pour faciliter le développement, commencez par écrire un programme vide. Ajoutez successivement les fonctions et procédures en commençant par celles qui se trouvent en bas de l’analyse descendante. À chaque fois que vous avez fini de développer une fonction ou une procédure, enregistrez votre programme et compilez les le. Une fois toutes les fonctions et procédures développées le programme principal.

1

Chiffrement

Objectif Écrire un programme Pascal qui affiche les cryptogrammes de phrases saisies par l’utilisateur. Le programme s’arrête lorsque la phrase saisie par l’utilisateur est « FIN. ». Le chiffre utilisé sera celui de César. La clé sera un caractère qui marquera le décalage (codage de ’A’). Les caractères utilisables seront dans l’ordre : ’A’..’Z’,’a’..’z’,’ ’. Tout autre caractère sera ignoré.

Rappels En cours nous avons vu la conception détaillée suivante : procédure machineAChiffrer () Déclaration laCle : Caractere laPhrase : Chaine de caracteres debut laCle ← obtenirCle() laPhrase ← obtenirPhrase() tant que non finDeProgramme(laPhrase) faire ecrire(chiffrerPhrase(laPhrase,laCle)) laPhrase ← obtenirPhrase() fintantque fin fonction obtenirCle () : Caractere Déclaration laCle : Caractere debut repeter ecrire(“La cle :”) lire(laCle) jusqu’a ce que caractereAdmissible(laCle) retourner laCle fin fonction caractereAdmissible (unCaractere : Caractere) : Booleen debut retourner (unCaractere ≥ ’A’ et unCaractere ≥ ’Z’) ou (unCaractere ≥ ’a’ et unCaractere ≥ ’a’) ou unCaractere=’ ’

1

fin fonction obtenirPhrase () : Chaine de caracteres Déclaration laPhrase : Chaine de caracteres debut ecrire(“La phrase à chiffrer :”) lire(laPhrase) retourner laPhrase fin fonction finDeProgramme (unePhrase : Chaine de caracteres) : Booleen debut retourner majuscule(unePhrase)=”FIN.” fin fonction chiffrerPhrase (unePhrase : Chaine de caracteres, uneCle : Caractere) : Chaine de caracteres Déclaration resultat : Chaine de caracteres i,leDecalage : Naturel debut resultat ← "" leDecalage ← decalage(uneCle) pour i ←1 à longueur(unePhrase) faire si caractereAdmissible(iemeCaractere(unePhrase,i)) alors resultat ← resultat+caractereEnChaine( chiffrerCaractere( iemeCaractere(unePhrase,i),leDecalage)) finsi finpour retourner resultat fin fonction decalage (unCaractere : Caractere) : Naturel debut si unCaractere≥’A’ et unCaractere≤’Z’ alors retourner (ord(’Z’)-ord(’A’)) sinon si unCaractere≥’a’ et unCaractere≤’z’ alors retourner 25+(ord(’z’)-ord(’a’)) sinon retourner 52 finsi finsi fin fonction chiffrerCaractere (unCaractere : Caractere, unDecalage : Naturel) : Caractere Déclaration resultat : Caractere i : Naturel debut resultat ← unCaractere pour i ←1 à unDecalage faire cas où resultat vaut ’Z’: resultat ← ’a’ ’z’: resultat ← ’ ’ ’ ’: resultat ← ’A’ autre : resultat ← succ(resultat) fincas finpour retourner resultat fin

2

Déchiffrement

Objectif Écrire un programme Pascal qui affiche le déchiffrement de cryptogrammes saisis par l’utilisateur. Le programme s’arrête lorsque la phrase saisie par l’utilisateur est « FIN. ». Le chiffre

2

utilisé sera celui de César. La clé sera un caractère qui marquera le décalage (codage de ’A’). Les caractères utilisables seront dans l’ordre : ’A’..’Z’,’a’..’z’,’ ’. Tout autre caractère sera ignoré.

Rappels En cours nous avons vu la conception détaillée suivante : procédure machineADechiffrer () Déclaration laCle : Caractere laPhrase : Chaine de caracteres debut laCle ← obtenirCle() laPhrase ← obtenirPhrase() tant que non finDeProgramme(laPhrase) faire ecrire(dechiffrerPhrase(laPhrase,laCle)) laPhrase ← obtenirPhrase() fintantque fin fonction dechiffrerPhrase (unePhrase : Chaine de caracteres, uneCle : Caractere) : Chaine de caracteres Déclaration resultat : Chaine de caracteres i,leDecalage : Naturel debut resultat ← "" leDecalage ← decalage(uneCle) pour i ←1 à longueur(unePhrase) faire si caractereAdmissible(iemeCaractere(unePhrase,i)) alors resultat ← resultat+caractereEnChaine( dechiffrerCaractere( iemeCaractere(unePhrase,i),leDecalage)) finsi finpour retourner resultat fin fonction dechiffrerCaractere (unCaractere : Caractere, unDecalage : Naturel) : Caractere Déclaration resultat : Caractere i : Naturel debut resultat ← unCaractere pour i ←1 à unDecalage faire cas où resultat vaut ’A’: resultat ← ’ ’ ’a’: resultat ← ’Z’ ’ ’: resultat ← ’z’ autre : resultat ← pred(resultat) fincas finpour retourner resultat fin

3

Related Documents

Tp1
June 2020 8
Tp1
May 2020 13
Tp1
June 2020 8
Tp1
June 2020 10
Tp1
April 2020 16
Tp1
November 2019 29