-
Delphi
testing Pascal code on SetCode
Assalam Alikum wR wB I noticed here that most of you guys are testing SetCode with JavaScript & PHP & CSS .. this is another test but in pascal, : ) , it's a simple old algorithm that I wrote in university << memories^^ .. I wanna see how it will be colored and formatted in setcode NB: comment in the code are in French language
(*****************************************************
A propos: Programme qui analyse une "chaîne de caractères" afin d’obtenir une série de chiffres (nombre) réels ou entiers , dès que la série est trouvée il sort, sinon il sort avec '#' et affiche un message d'information sur la série.
Crée par: ZIOUCHE WALID
NB: je n'autorise pas au étudiants de copier mes programme (sauf les profs !)
Licence: au dehors de l'université la licence est sous:
Creative Commons
http://creativecommons.org ******************************************************)
program chainedecar;
uses CRT;
var ch : char;
var num: string;
var sortir,virg : boolean;
var i,s,len,j: shortint;(* shorint pour économiser de l'espace mémoire *)
procedure traitement_nombre (var ch: char);
begin (* petite opération pour créer un compteur de la longueur de la série qui ignore la virgule *)
for i:=1 to length(num) do
if num[i]='.' then
begin
len:=length(num)-1;
virg:=true
end;
if not(virg) then len:=length(num);
(**** fin d'operation du compteur 'len' ***********)
if (ch in ['0'..'9']) then
num:=num+ch (* num est par default vide *)
else
begin
if (num[1] in ['0'..'9']) and (len=1) then
num:='' (* si le précédant est un numéro
seul on l'ignore est on met la valeur
vide *)
else if len>1 then sortir:=true
end;
procedure traitement_virgule (var ch:char;s,j:shortint);
begin
num:=num+ch;
for i:=1 to length(num) do
begin
if num[i]='.' then
s:=s+1
else j:=j+1
end;
if (s>1) and (j=1) then num:=''
else
begin
if (length(num)>2) and (s>1) then
begin
traitement_nombre(ch);
delete(num,length(num),1);
(*qqe chose de secret;)*)
sortir:=true
end
end;
end;
begin (******* DEBUT DU PORGRAMME PRINCIPALE *****)
CLRSCR;
writeln('Entrer votre chaîne de caractère SVP : ');
repeat
readln(ch); s:=0; j:=0;
if (ch='.') and (num<>'') then
traitement_virgule(ch,s,j)
else traitement_nombre(ch);
until (ch='#') or sortir;
if num[length(num)]='.' then
delete(num,length(num),1);
if len <2 then
(* en cas d'inexistence d'une série de chiffres *)
writeln('il n''ya aucune serie de chifre !')
else
writeln('votre chaîne de numéro est: ', num);
(* on affiche le msg *)
readln
end. (******* FIN DU PROGRAMME PRINCIPALE ******)
Add comment
To add a comment, please : Login or Sign up