Difference between revisions of "Ro/Sintaxa Limbajului Rodin"

From HaskellWiki
Jump to navigation Jump to search
m
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
  +
[[Category:Ro]][[Category:Ub.Ro]]
  +
  +
== Download-ul limbajul pseudocod gratuit Rodin ==
  +
  +
[[Image:download2.gif|left|http://www.haskell.org/haskellwiki/Rodin/Download]]Mergeti inapoi la inceputul paginii Rodin: <br> http://www.haskell.org/haskellwiki/Rodin. <br> Sau direct la pagina de <DOWNLOAD> : <br> http://www.haskell.org/haskellwiki/Rodin/Download
  +
<br>
  +
<br>
  +
 
== Sintaxa Limbajului Pseudocod Rodin ==
 
== Sintaxa Limbajului Pseudocod Rodin ==
   
  +
*Cel mai bine o gasiti in directorul de documentatii din arhiva programului din pagina [[Rodin/Download]].
http://www.haskell.org/haskellwiki/Ro/Sintaxa_Limbajului_Rodin
 
  +
*http://www.haskell.org/haskellwiki/Ro/Sintaxa_Limbajului_Rodin
   
 
Limbajele din clasa C-ului, fie ca este vorba de limbaje pentru software de proiectare (Solid Works ??) fie ca este vorba de limbaje de programare sau limbaje de (web-)scripting au in general o sintaxa asemanatoare. Necazul este ca un incepator trebuie sa invete SIMULTAN si semnificatia instructiunilor - impreuna cu acele concepte fundamentale ascunse in spatele lor - si cuvintele englezesti cu care se scriu programele. Si asta stiind uneori doar romana, franceza sau rusa. Greselile devin in acest caz mult mai usor de facut.
 
Limbajele din clasa C-ului, fie ca este vorba de limbaje pentru software de proiectare (Solid Works ??) fie ca este vorba de limbaje de programare sau limbaje de (web-)scripting au in general o sintaxa asemanatoare. Necazul este ca un incepator trebuie sa invete SIMULTAN si semnificatia instructiunilor - impreuna cu acele concepte fundamentale ascunse in spatele lor - si cuvintele englezesti cu care se scriu programele. Si asta stiind uneori doar romana, franceza sau rusa. Greselile devin in acest caz mult mai usor de facut.
Line 13: Line 22:
 
Cuvinte cheie folosite, instructiuni, operatori, primele exemple:
 
Cuvinte cheie folosite, instructiuni, operatori, primele exemple:
   
  +
== RodinV082c-Ro -- 23/11/2008 ==
  +
Nou: Am introdus instructiunea de citire pentru vectori.
  +
  +
citeste v[e]; unde v e vectorul si e este expresia.
   
 
== RodinV08-Ro -- 9/11/2008 ==
 
== RodinV08-Ro -- 9/11/2008 ==
Line 26: Line 39:
   
   
Atribuirea pentru vectori
+
'''Atribuirea pentru vectori'''
 
=========================
 
   
 
<idvector>[<exp>]=<exp>;
 
<idvector>[<exp>]=<exp>;
Line 34: Line 45:
   
   
Expresie element de vector
+
'''Expresie element de vector'''
 
==========================
 
   
 
<idvector>[<exp>]
 
<idvector>[<exp>]
Line 42: Line 51:
   
   
Secventa de instructiuni
+
'''Secventa de instructiuni'''
 
=========================
 
   
 
{ <expr>; .... <expr> ; }
 
{ <expr>; .... <expr> ; }
   
   
  +
'''Atribuirea'''
 
 
 
Atribuirea
 
 
==========
 
   
 
fie <name> = <expr>
 
fie <name> = <expr>
   
   
  +
'''Alternativa/Conditionala'''
 
Alternativa/Conditionala
 
 
========================
 
   
 
daca <expr> atunci <expr> altfel <expr>
 
daca <expr> atunci <expr> altfel <expr>
   
   
  +
'''Bucla cu test initial'''
 
 
 
Bucla cu test initial
 
 
========================
 
   
 
cat timp (<expr>) <expr>
 
cat timp (<expr>) <expr>
   
   
  +
'''Bucla cu test final'''
 
Bucla cu test final
 
 
===================
 
   
 
executa <expr> atat cat (<expr>)
 
executa <expr> atat cat (<expr>)
   
   
  +
'''Bucla cu test de succes final'''
 
 
 
 
 
Bucla cu test de succes final
 
 
==============================
 
   
 
repeta <expr> pana cand <expr>
 
repeta <expr> pana cand <expr>
   
   
  +
'''Bucla cea mai generala'''
 
Bucla cea mai generala
 
 
======================
 
   
 
pentru (<exp>; <exp>; <exp>) <exp>
 
pentru (<exp>; <exp>; <exp>) <exp>
   
  +
Atentie: Unele programe scrise corect dau o eroare de sintaxa la aceste bucle,
  +
ba cerand ba necerand spatiu dupa "pentru". Biblioteca de combinatori de parsere a avut un defect ?
   
   
  +
'''Tastarea unui nr (op de citire)'''
 
 
Tastarea unui nr (op de citire)
 
 
===============================
 
   
 
citeste <ident>
 
citeste <ident>
Line 116: Line 95:
   
   
Scrierea
+
'''Scrierea'''
 
========
 
   
 
scrie <expr>
 
scrie <expr>
Line 126: Line 103:
   
   
  +
'''Functii anonime nerecursive'''
 
 
Functii anonime nerecursive
 
 
===========================
 
   
 
(\ <name> . <expr>)
 
(\ <name> . <expr>)
Line 136: Line 109:
   
   
  +
'''Aplicarea (asociaza la dreapta)'''
 
 
Aplicarea (asociaa la dreapta)
 
 
==============================
 
   
 
<functie anonima> <expr>
 
<functie anonima> <expr>
 
 
   
   
Line 151: Line 118:
   
 
Comparatii: > , < , == , !=
 
Comparatii: > , < , == , !=
 
 
 
   
   
Line 159: Line 123:
   
   
  +
'''Atribuirea are valoare'''
 
 
 
Atribuirea are valoare
 
 
======================
 
   
 
{ fie y =2;
 
{ fie y =2;
Line 182: Line 141:
   
   
Program 1:
+
'''Program 1:'''
 
============
 
   
 
{scrie 1;}
 
{scrie 1;}
Line 190: Line 147:
   
   
Program 2
+
'''Program 2:'''
 
==========
 
   
 
{ citeste x;
 
{ citeste x;
Line 200: Line 155:
 
 
   
Program 3
+
'''Program 3'''
   
=========
 
   
 
{ citeste x;
 
{ citeste x;
Line 214: Line 168:
   
   
Program 4:cmmdc
+
'''Program 4:cmmdc'''
 
===============
 
   
 
{ citeste a;
 
{ citeste a;
Line 246: Line 198:
   
   
Program 5: bucla cu nr cunoscut de pasi
+
'''Program 5: bucla cu nr cunoscut de pasi'''
 
=======================================
 
   
 
{pentru(fie x=1;x<10;fie x=x+1) scrie x;};
 
{pentru(fie x=1;x<10;fie x=x+1) scrie x;};
Line 256: Line 206:
   
   
Program 6: numere pitagoreice
+
'''Program 6: numere pitagoreice'''
 
==============================
 
   
 
{ pentru (fie x=1; x<3; fie x=x+1)
 
{ pentru (fie x=1; x<3; fie x=x+1)
Line 278: Line 226:
   
   
  +
'''Program 7: maximul unui sir de numere terminat cu zero'''
 
 
Program 7: maximul unui sir de numere terminat cu zero
 
 
=======================================================
 
   
 
{ text " Maximul elementelor unui sir de numere ";
 
{ text " Maximul elementelor unui sir de numere ";
Line 367: Line 311:
   
 
----
 
----
  +
<center> [[Image:Rodin-Banner.gif]] </center>
 
  +
----
Pagina in curs de "renovare".
 
  +
Pagina proiectului Rodin este in dezvoltare. Vizitati-o regulat pentru a gasi update-urile, noutatile precum si programele si exercitiile noi adaugate.
  +
----
  +
Inapoi la inceputul paginii Rodin: http://www.haskell.org/haskellwiki/Rodin. (pe care o gasiti imediat folosind un motor de cautare binecunoascut.)
  +
<center> [[Image:FindOnYahoo.jpg]] </center>
  +
----

Latest revision as of 09:42, 29 January 2010


Download-ul limbajul pseudocod gratuit Rodin

http://www.haskell.org/haskellwiki/Rodin/Download

Mergeti inapoi la inceputul paginii Rodin:
http://www.haskell.org/haskellwiki/Rodin.
Sau direct la pagina de <DOWNLOAD> :
http://www.haskell.org/haskellwiki/Rodin/Download



Sintaxa Limbajului Pseudocod Rodin

Limbajele din clasa C-ului, fie ca este vorba de limbaje pentru software de proiectare (Solid Works ??) fie ca este vorba de limbaje de programare sau limbaje de (web-)scripting au in general o sintaxa asemanatoare. Necazul este ca un incepator trebuie sa invete SIMULTAN si semnificatia instructiunilor - impreuna cu acele concepte fundamentale ascunse in spatele lor - si cuvintele englezesti cu care se scriu programele. Si asta stiind uneori doar romana, franceza sau rusa. Greselile devin in acest caz mult mai usor de facut.

Engleza3.JPG

Pentru a nu ajunge in situatia proiectantilor din imaginea de mai sus este recomandabil sa se predea intai conceptele in limba romana (sub forma de pseudocod), urmate de cuvintele cheie englezesti. Deoarece studentii si elevii pot protesta (pe drept cuvant) ca vin in laboratorul de infoprmatica si fac pseudocod la tabla fara sa puna mina pe calculatoare (voi adauga link-ul ...) am realizat Limbajul Pseudocod Rodin, care rezolva aceasta problema. Si, bineinteles produce altele :)


Cuvinte cheie folosite, instructiuni, operatori, primele exemple:

RodinV082c-Ro -- 23/11/2008

Nou: Am introdus instructiunea de citire pentru vectori.

citeste v[e]; unde v e vectorul si e este expresia.

RodinV08-Ro -- 9/11/2008

Nota: Am introdus 'text' iar 'tasteaza' a devenit 'citeste'.

Nou: Am introdus vectori liniari oricat de lungi.

Dar sa fie initializati.



Atribuirea pentru vectori

<idvector>[<exp>]=<exp>;


Expresie element de vector

<idvector>[<exp>]


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>

Atentie: Unele programe scrise corect dau o eroare de sintaxa la aceste bucle, ba cerand ba necerand spatiu dupa "pentru". Biblioteca de combinatori de parsere a avut un defect ?


Tastarea unui nr (op de citire)

citeste <ident>


Scrierea

scrie <expr>

text "string de afisat"


Functii anonime nerecursive

(\ <name> . <expr>)


Aplicarea (asociaza 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;

};

Cuvinte cheie folosite, instructiuni, operatori, primele exemple:

RodinV07-Ro -- 10/9/2008

Secventa de instructiuni: { <expr>; .... <expr> ; }

Atribuirea fie <name> = <expr>

Alternativa/Decizia/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): tasteaza <ident>

Scrierea: scrie <expr>

Functii anonime nerecursive: (\ <name> . <expr>) unde name e numele variabilei parametru formal

Aplicarea (asociaza la dreapta): <functie anonima> <expr>

Atribuirea are valoare: valoarea atribuita e si valoarea ei

{ fie y =2;
  fie x=100;
  cat timp (x>10)
    fie x=x-(fie y = 1);
  scrie x;
  scrie y;
}

Operatori: + - * / %

Comparatii: > , < , == , !=

Lipsesc: ! negatia, op logici ,op logici pe biti ...

Rodin-Banner.gif

Pagina proiectului Rodin este in dezvoltare. Vizitati-o regulat pentru a gasi update-urile, noutatile precum si programele si exercitiile noi adaugate.


Inapoi la inceputul paginii Rodin: http://www.haskell.org/haskellwiki/Rodin. (pe care o gasiti imediat folosind un motor de cautare binecunoascut.)

FindOnYahoo.jpg