RodinV08-Package1

From HaskellWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

RodinV08-Ro -- 27/9/2008


Cuvinte cheie folosite, instructiuni, operatori, primele exemple:

Nou:Am introdus 'text' iar 'tasteaza' a devenit 'citeste'



Secventa de instructiuni


{ <expr>; .... <expr> ; }



Atribuirea


fie <name> <expr>


Alternativa/Conditionala


daca <expr> atunci <expr> altfel <expr>



Bucla cu test initial


cat timp (<expr>) <expr>


Bucla cu test final


executa <expr> atat cat (<expr>)




Bucla cu test de succes final


repeta <expr> pana cand <expr>


Bucla cea mai generala


pentru (<exp>; <exp>; <exp>) <exp>



Tastarea unui nr (op de citire)


citeste <ident>


Scrierea


scrie <expr>

text "string de afisat"



Functii anonime nerecursive


(\ <name> . <expr>)



Aplicarea (asociaa la dreapta)


<functie anonima> <expr>



Operatori: + - * / %

Comparatii: > , < , , !



Lipsesc: ! negatia, op logici ,op logici pe biti, cond-ul...



Atribuirea are valoare


{ fie y 2;

 fie x 100;
 cat timp (x>10)
   fie x x-(fie y   1);
 scrie x;
 scrie y;

}


Program 1:


{scrie 1;}


Program 2


{ citeste x;

 scrie x;}


Program 3


{ citeste x;

 fie x x+1;
 scrie x;

}


Program 4:cmmdc


{ citeste a;

 citeste b;
 fie undeimp a;
 fie unimp b;
 repeta
   { fie unrest undeimp%unimp;
     fie undeimp unimp;
     fie unimp unrest;
    }
 pana cand (unimp  0);
 scrie undeimp;

};



Program 5: bucla cu nr cunoscut de pasi


{pentru(fie x 1;x<10;fie x x+1) scrie x;};



Program 6: numere pitagoreice


{ pentru (fie x 1; x<3; fie x x+1)

  pentru (fie y x+1; y<3; fie y y+1)
    {
     scrie x*x+y*y;
     scrie y*y-x*x;
     scrie 2*x*y;
    };

};



Program 7: maximul unui sir de numere terminat cu zero


{ text " Maximul elementelor unui sir de numere ";

 text "pozitive distincte terminat cu numarul zero. ";
 fie xmaxpp   0;
 text "Dati y ";
 citeste y;
 executa {
   {daca (y>xmaxpp) atunci fie xmaxpp y altfel fie xmaxpp xmaxpp;};
   text "Dati urmatorul y ";
   citeste y; 
 }atat cat (y! 0);
 text "maximul este ";
 scrie xmaxpp;

};