Sie sind auf Seite 1von 11

COMPTE RENDU _PROJET PASCAL

CONSIGNE :
Ecrire un programme Pascal qui permet de convertir un
nombre d’une base départ vers une base d’arrivée.
L’utilisateur aura un menu pour effectuer les choix des bases.
PLAN
Introduction
1. Présentation du projet
2. Déroulement du projet
 Description détaillée de la réalisation du projet
 Description des difficultés rencontrées
 Contenu du programme
Conclusion

PRESENTATEUR : Mbaye Jacques Ndiaye


Professeur : Mr DIONGUE
INTRODUCTION
Un programme informatique est une suite d’instructions
exécutables par l’ordinateur. Toutefois l’ordinateur ne sait
que manipuler du binaire c’est-à-dire une succession de 0 et
de 1. Il est donc nécessaire d’utiliser un langage de
programmation pour écrire de façon lisible c’est-à-dire avec
des instructions compréhensibles par l’ordinateur. La
programmation est la représentation sur machine d’une suite
d’instructions structurées appelée programme. Le langage
Pascal constitue l’un des langages révolutionnaires du monde
de l’informatique. Nous l’utiliserons au cours de notre projet.
Ce dernier consiste mettre en place un programme qui
permet à partir d’une base de départ de convertir un nombre
à une autre base d’arrivée. En premier lieu nous avons faire
une présentation de notre projet et en second lieu montrer
les détails et les difficultés rencontres lors de la mise au point
de celui-ci.

1. Présentation du projet
Notre projet consiste à écrire un programme Pascal qui nous
permettrons de convertir un nombre d’une base de départ
vers une base d’arrivée. Ceci nécessite l’utilisation des
structures de données telles qu’if …then the mais aussi nous
devons faire appel aux procédures et aux fonctions qui sont
déclarées après les variables. Le nom de mon programme est
CONVERSION_BASE.
1. Déroulement du Projet
 Description détaillée

En principe notre programme est divisé en 16 sous parties :


BASE2_BASE2
BASE2_BASE8
BASE2_BASE10
BASE2_BASE16
BASE8_BASE2
BASE8_BASE8
BASE8_BASE10
BASE8_BASE16
BASE10_BASE2
BASE10_BASE8
BASE10_BASE10
BASE10_BASE16
BASE16_BASE2
BASE16_BASE8
BASE16_BASE10
BASE16_BASE16
 Difficultés rencontrées
La plupart des problèmes est à la conversion en décimale. La
compilation séparée de chaque des conversions est possible
mais une fois les rassembler le problème a du mal à
s’exécuter dans son intégralité. En effet par manque de
temps et par difficulté de convertir vers certaines bases, les
conversions BASE10_BASE16 BASE16_BASE8 ne sont pas
encore faites.

 CONTENU DE MON PRORGAMME

Program CONVERSION_BASE ;
uses crt;
type tab=array[1..30] of integer;
var
d,a,n:integer;
B:tab;
procedure binaire(n:integer; var B:tab);
var i:integer;
begin
writeln('Entrer les chiffres binaires un en un');
for i:=1 to n do
read(B[i]);
end;

Function octale(ch2:string):string;
var
s,d1,d2,d3:integer;
e1,e2,e3:integer;
c,ch8:string;
begin

(ch2) := '';
while length(ch2) mod 3 <>0 do
begin
ch2:= '0'+ ch2;
end;

repeat
val (ch2[1],d1,e1);
val (ch2[2],d2,e2);
val (ch2[3],d3,e3);

s:= d1*4+d2*2+d3*1;
str(s,c);
ch8 := ch8+c;
delete(ch2,1,3);
until ch2='';
octale:=ch8;

end;

function decimale(n:integer;B:tab):longint;
var r:longint;
i:integer;
begin
r:=B[1];
for i:=2 to n do
r:=2*r+B[i];
decimale:=r;
end;
function hexadecimale (ch2:string):string;
var
s,d1,d2,d3,d4:integer;
e1,e2,e3,e4:integer;
c,ch16:string;

begin

ch16 :=' ';


while length(ch2) mod 4 <>0 do
begin
ch2:= '0'+ ch2;
end;

repeat
val (ch2[1],d1,e1);
val (ch2[2],d2,e2);
val (ch2[3],d3,e3);
val (ch2[4],d4,e4);
s:= d1*8+d2*4+d3*2+d4*1;
str(s,c);
ch16:=ch16+c;
delete(ch2,1,4);
until ch2='';
hexadecimale:=ch16;
end;

Function b8b2 (ch8:string):string;


var
i:integer;
ch2,un_chiffre:string;
begin
ch2:='';
for i:=1 to length(ch8) do
begin
ch2:= ch2+ un_chiffre(ch8[i]);
end;
b8b2:=ch2
Function b16b2 (ch16:string):string
var
i:integer;
begin
ch2:='';
for i:=1 to length(ch16) do
begin
ch2:= ch2+un_chiffre16(ch16[i]);
end;
b16b2:=ch2;
end

begin
writeln('DONNER VOTRE BASE DE DEPART ');
writeln('TAPER 2 pour choisir la base 2');
writeln('TAPER 8 pour choisir la base 8');
writeln('TAPER 10 pour choisir la base 10');
writeln('TAPER 16 pour choisir la base 16');
readln(d);

(* BASE 2 VERS BASES 2 , 8 , 10 , 16 *)

if d=2 then
writeln('CHOISIR VOTRE BASE D''ARRIVEE');
writeln('TAPER 2 pour choisir la base 2');
writeln('TAPER 8 pour choisir la base 8');
writeln('TAPER 10 pour choisir la base 10');
writeln('TAPER 16 pour choisir la base 16');
readln(a);
writeln('Donner la longueur n du nombre en binaire');
readln(n);

if a=2 then
begin
writeln('VOUS AVEZ CHOISI LA MEME BASE')
end

else if a=8 then


begin
writeln('L''ecriture octale est ');
octale(ch2);
end

else if a=10 then


begin
writeln('L''ecriture decimale est ');
decimale(n,B);
end

else if a=16 then


begin
writeln('L''ecriture hexadecimale est est ');
hexadecimale(ch2);
end

(* BASE 8 VERS 2 8 10 16*)

else if d=8 then


writeln('CHOISIR VOTRE BASE D''ARRIVEE');
writeln('TAPER 2 pour choisir la base 2');
writeln('TAPER 8 pour choisir la base 8');
writeln('TAPER 10 pour choisir la base 10');
writeln('TAPER 16 pour choisir la base 16');
readln(a);
writeln('Donner la longueur n du nombre en base 8');
readln(n);

if a=2 then
begin
writeln('En base 2 on a ');
b8b2(ch8);
end
else if a=8 then
begin
writeln('Vous avez choisi la meme base!');
end
else if a=16 then
begin

end;

(* BASE 16 VERS 2 8 10 16 *)

else if d=16 then


writeln('CHOISIR VOTRE BASE D''ARRIVEE');
writeln('TAPER 2 pour choisir la base 2');
writeln('TAPER 8 pour choisir la base 8');
writeln('TAPER 10 pour choisir la base 10');
writeln('TAPER 16 pour choisir la base 16');
readln(a);
writeln('Donner la longueur n du nombre en base 16');
readln(n);
if a=2 then

begin
writeln('En base 2 on a ');
b16b2(ch16);
end
else if a=16 then
writeln('Vous avez choisi la meme base !');

readkey;
end.

CONCLUSION
Ce projet Pascal constitue un intérêt
particulier pour l’étudiant dans ce langage. Il
nous a permis de lieux connaitre ce qu’est la
programmation et les difficultés qu’on
traverse lors de leur mise au point.

Das könnte Ihnen auch gefallen