« Back to profile of 01walid

  • 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

    20:52 Jul 24 2010 | Tags : Pascal,(Delphi),
    						(*****************************************************
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
    01walid
    ziouche walid
  • New visitor?

    On setCode, you can save your codes, functions and classes, you can also share them with your friends, and track your favorite developer

    Join the SetCode community
  • Your language here :