Rodin/Examples
From HaskellWiki
m (Banner (proviz.)) |
m |
||
| (3 intermediate revisions not shown.) | |||
| Line 1: | Line 1: | ||
<center> [[Image:Rodin-Banner.gif]] </center> | <center> [[Image:Rodin-Banner.gif]] </center> | ||
| + | <h1> Exemple din 2008 resp 2009 - Gasiti exemple noi pentru ultima versiune Rodin (si) in arhiva cea mai recenta din pagina [[Rodin/Download]]! </h1> | ||
| + | |||
| + | ---- | ||
| + | '''!''' Daca totusi folositi exemplele de mai jos tineti seama ca versiunea Rodin Experiment Exp12 nu mai foloseste ; inainte de acolada inchisa. | ||
| + | deci stergeti ; dinainte de acolada care se inchide. | ||
| + | |||
| + | Vedeti cum sunt scrise aici: [[Exemple Rodin pentru Exp12]] | ||
| + | ---- | ||
==. Setul pentru incepatori == | ==. Setul pentru incepatori == | ||
| + | |||
| + | <h3> Bucla pentru - Rodin 2009 e - (depasit) </h3> | ||
<haskell> | <haskell> | ||
[dan@localhost Rodin2009a]$ ./Rodin2009e pm4-pg68b.txt | [dan@localhost Rodin2009a]$ ./Rodin2009e pm4-pg68b.txt | ||
| Line 15: | Line 25: | ||
Nu uitati nici acolada finala !!! | Nu uitati nici acolada finala !!! | ||
| - | |||
10 | 10 | ||
| Line 27: | Line 36: | ||
18 | 18 | ||
19 | 19 | ||
| + | </haskell> | ||
| + | <h3> Bucla pentru - Rodin ExperimentExp11 - aug 2009 </h3> | ||
| + | <haskell> | ||
| + | {fie a=2; | ||
| + | fie b=10*a; | ||
| + | pentru(fie a=8+a;a<b;fie a=a+1) | ||
| + | {scrie a} | ||
| + | } | ||
| + | 10 | ||
| + | 11 | ||
| + | 12 | ||
| + | 13 | ||
| + | 14 | ||
| + | 15 | ||
| + | 16 | ||
| + | 17 | ||
| + | 18 | ||
| + | 19 | ||
| + | |||
| + | Programul a rulat ! | ||
| + | </haskell> | ||
| + | '''Situatia:''' Revizuit si pus in dosarele din arhiva de dupa 26 aug 2009. Inca nelansata. | ||
| + | ---- | ||
| + | |||
| + | <h3> Cat timp ... executa - Rodin2009e - versiunea din 8 martie 2009. | ||
| + | (depasit) </h3> | ||
| + | <haskell> | ||
Am terminat de rulat programul:"pm4-pg68b.txt" | Am terminat de rulat programul:"pm4-pg68b.txt" | ||
Rodin2009e - versiunea din 8 martie 2009. | Rodin2009e - versiunea din 8 martie 2009. | ||
| Line 103: | Line 139: | ||
12 | 12 | ||
4 | 4 | ||
| + | </haskell> | ||
| + | <h3> Cat timp ... executa - Rodin ExperimentExp11 - 21 aug 2009 </h3> | ||
| + | <haskell> | ||
| + | {text "nr de cifre binare a numarului i"; | ||
| + | fie k=0; | ||
| + | citeste i; | ||
| + | cat timp (i>0) | ||
| + | {fie i=i/2; | ||
| + | fie k=k+1 | ||
| + | }; | ||
| + | scrie k | ||
| + | } | ||
| + | Programul:"pm4-pg68b.txt" | ||
| + | |||
| + | |||
| + | "nr de cifre binare a numarului i" | ||
| + | 7 | ||
| + | 3 | ||
| + | |||
| + | |||
| + | Programul a rulat ! | ||
| + | Modular Language written by Dan V Popa, Ro/Haskell Group. | ||
| + | http://www.haskell.org/haskellwiki/Rodin | ||
| + | 21/aug/2009 - - Codename:ExperimentExp11 | ||
| + | </haskell> | ||
| + | ---- | ||
| + | <h3> Simularea executiei lui '''pentru''' - Rodin2009e - versiunea din 8 martie 2009. | ||
| + | (depasit) </h3> | ||
| + | <haskell> | ||
Am terminat de rulat programul:"pm4-pg71.txt" | Am terminat de rulat programul:"pm4-pg71.txt" | ||
| Line 385: | Line 450: | ||
... ca si a variabilelor simple. | ... ca si a variabilelor simple. | ||
[dan@localhost Rodin2009a]$ | [dan@localhost Rodin2009a]$ | ||
| + | |||
| + | </haskell> | ||
| + | <h3> Simularea executiei lui '''pentru''' - Rodin ExperimentExp11 - versiunea 21 august 2009. </h3> | ||
| + | |||
| + | <haskell> | ||
| + | { text "Dati indicele mic, cel mare si pasul"; | ||
| + | citeste low; | ||
| + | citeste high; | ||
| + | citeste step; | ||
| + | fie v=low; | ||
| + | fie temp=high; | ||
| + | daca (step>0) atunci | ||
| + | {cat timp (v<temp+1) {scrie v;fie v=v+step}} | ||
| + | altfel | ||
| + | {cat timp (v>temp-1) {scrie v;fie v=v+step}} | ||
| + | } | ||
| + | |||
| + | 26 aug 2009 | ||
| + | Rodin ExperimentExp11 | ||
| + | Simularea lui pentru folosind cat timp. | ||
</haskell> | </haskell> | ||
==. Un set ceva mai avansat == | ==. Un set ceva mai avansat == | ||
| + | |||
| + | <h3> Repeta pina cand - Rodin2009c (depasit) . </h3> | ||
| + | |||
<haskell> | <haskell> | ||
| Line 412: | Line 500: | ||
AICI E O GRESEALA, trebuia scris "pina cand" nu "pana cand" | AICI E O GRESEALA, trebuia scris "pina cand" nu "pana cand" | ||
| + | |||
| + | </haskell> | ||
| + | |||
| + | <h3> Repeta pina cand - Rodin Codename:ExperimentExp11 - 21 aug 2009 </h3> | ||
| + | |||
| + | <haskell> | ||
| + | |||
| + | Modular Language written by Dan V Popa, Ro/Haskell Group. | ||
| + | 21/aug/2009 - Rodin - Codename:ExperimentExp11 | ||
| + | Noutate:Operatorii logici SI &&, SAU || sunt implementati. | ||
| + | Limitare: nu scrieti serii lungi de SAU si nici de SI cum | ||
| + | scrieti la adunare serii lungi de plus: 1+1+1+1+1 ori 1+2+7. | ||
| + | Programul:repeta1.txt | ||
| + | {citeste x; | ||
| + | fie y=0; | ||
| + | repeta { | ||
| + | fie x=x-1; | ||
| + | fie y=y+1 | ||
| + | } | ||
| + | pina cand ( x == 0 ); | ||
| + | scrie x; | ||
| + | scrie y | ||
| + | } | ||
| + | |||
| + | |||
| + | Copierea unitatilor dintr-un numar in altul. | ||
| + | Demonstratie a buclei repeta pina cand. | ||
| + | 26 aug 2009 | ||
| + | Rodin ExperimentExp11 | ||
| + | |||
| + | |||
| + | 12 | ||
| + | 0 | ||
| + | 12 | ||
| + | |||
| + | |||
| + | Programul a rulat ! | ||
| + | Modular Language written by Dan V Popa, Ro/Haskell Group. | ||
| + | http://www.haskell.org/haskellwiki/Rodin | ||
| + | 21/aug/2009 - - Codename:ExperimentExp11 | ||
| + | |||
| + | |||
| + | </haskell> | ||
| + | ---- | ||
| + | <h3> Executa atat cat - Rodin2009c (depasit) . </h3> | ||
| + | |||
| + | <haskell> | ||
2009c - Pseudocod Rodin - Codename:Rodin2009c | 2009c - Pseudocod Rodin - Codename:Rodin2009c | ||
| Line 432: | Line 567: | ||
7 | 7 | ||
| + | </haskell> | ||
| + | ---- | ||
| + | <h3> Executa atat cat - Rodin Codename:ExperimentExp11 - 21 aug 2009 </h3> | ||
| + | |||
| + | <haskell> | ||
| + | |||
| + | |||
| + | Modular Language written by Dan V Popa, Ro/Haskell Group. | ||
| + | 21/aug/2009 - Rodin - Codename:ExperimentExp11 | ||
| + | Noutate:Operatorii logici SI &&, SAU || sunt implementati. | ||
| + | Limitare: nu scrieti serii lungi de SAU si nici de SI cum | ||
| + | scrieti la adunare serii lungi de plus: 1+1+1+1+1 ori 1+2+7. | ||
| + | Programul:executa-atat-cat-3.txt | ||
| + | {citeste x; | ||
| + | fie y=0; | ||
| + | executa { | ||
| + | fie x=x-1; | ||
| + | fie y=y+1 | ||
| + | } | ||
| + | atat cat (x>0); | ||
| + | scrie x; | ||
| + | scrie y | ||
| + | } | ||
| + | |||
| + | |||
| + | Copierea unitatilor dintr-un numar in altul. | ||
| + | Demonstratie a buclei executa atat cat. | ||
| + | 26 aug 2009 | ||
| + | Rodin ExperimentExp11 | ||
| + | |||
| + | |||
| + | 12 | ||
| + | 0 | ||
| + | 12 | ||
| + | |||
| + | |||
| + | Programul a rulat ! | ||
| + | Modular Language written by Dan V Popa, Ro/Haskell Group. | ||
| + | http://www.haskell.org/haskellwiki/Rodin | ||
| + | 21/aug/2009 - - Codename:ExperimentExp11 | ||
| + | ---- | ||
Am terminat de rulat programul. Rodin2009c | Am terminat de rulat programul. Rodin2009c | ||
Alternativa cu 2 ramuri si o implementare a vectorilor | Alternativa cu 2 ramuri si o implementare a vectorilor | ||
| Line 1,116: | Line 1,292: | ||
[[Rodin/BuclePentru]] despre o eroare de sintaxa mai neobisnuita pe care Rodin o semnaleaza INAINTE de locul unde ea apare. | [[Rodin/BuclePentru]] despre o eroare de sintaxa mai neobisnuita pe care Rodin o semnaleaza INAINTE de locul unde ea apare. | ||
| - | |||
| - | |||
---- | ---- | ||
<center> [[Image:Rodin-Banner.gif]] </center> | <center> [[Image:Rodin-Banner.gif]] </center> | ||
---- | ---- | ||
| - | Pagina proiectului Rodin este in dezvoltare. Vizitati-o regulat pentru a gasi | + | Pagina proiectului Rodin este in dezvoltare. Vizitati-o regulat pentru a gasi exemplele, 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. | 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> | <center> [[Image:FindOnYahoo.jpg]] </center> | ||
---- | ---- | ||
Current revision
Contents
|
1 Exemple din 2008 resp 2009 - Gasiti exemple noi pentru ultima versiune Rodin (si) in arhiva cea mai recenta din pagina Rodin/Download!
! Daca totusi folositi exemplele de mai jos tineti seama ca versiunea Rodin Experiment Exp12 nu mai foloseste ; inainte de acolada inchisa. deci stergeti ; dinainte de acolada care se inchide.
Vedeti cum sunt scrise aici: Exemple Rodin pentru Exp12
1.1 . Setul pentru incepatori
1.1.1 Bucla pentru - Rodin 2009 e - (depasit)
[dan@localhost Rodin2009a]$ ./Rodin2009e pm4-pg68b.txt 2009e - Pseudocod Rodin - Codename:Rodin2009e Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin {fie a=2; fie b=10*a; pentru(fie a=8+a;a<b;fie a=a+1) {scrie a;}; }; ; Nu uitati nici acolada finala !!! 10 11 12 13 14 15 16 17 18 19
1.1.2 Bucla pentru - Rodin ExperimentExp11 - aug 2009
{fie a=2; fie b=10*a; pentru(fie a=8+a;a<b;fie a=a+1) {scrie a} } 10 11 12 13 14 15 16 17 18 19 Programul a rulat !
Situatia: Revizuit si pus in dosarele din arhiva de dupa 26 aug 2009. Inca nelansata.
Cat timp ... executa - Rodin2009e - versiunea din 8 martie 2009. (depasit)
Am terminat de rulat programul:"pm4-pg68b.txt" Rodin2009e - versiunea din 8 martie 2009. Alternativa cu 2 ramuri si o implementare a vectorilor Obligatoriu: sa fie initializati. (Nu dau erori!) Este posibila si citirea vectorilor. ... ca si a variabilelor simple. [dan@localhost Rodin2009a]$ ./Rodin2009e pm4-pg71.txt 2009e - Pseudocod Rodin - Codename:Rodin2009e Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin {fie k=0; cat timp (i>0) executa {fie i=i%2; fie k=k+1; }; }; Rodin2009e: (line 3, column 4): unexpected "{" expecting space, operator or ";" [dan@localhost Rodin2009a]$ ./Rodin2009e pm4-pg71.txt 2009e - Pseudocod Rodin - Codename:Rodin2009e Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin {citeste i; fie k=0; cat timp (i>0) executa {fie i=i%2; fie k=k+1; }; scrie k; }; Cate cifre binare va avea un numar ? Rodin2009e: (line 4, column 4): unexpected "{" expecting space, operator or ";" [dan@localhost Rodin2009a]$ ./Rodin2009e pm4-pg71.txt 2009e - Pseudocod Rodin - Codename:Rodin2009e Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin {citeste i; fie k=0; cat timp (i>0) executa {fie i=i/2; fie k=k+1; }; scrie k; }; Cate cifre binare va avea un numar ? Rodin2009e: (line 4, column 4): unexpected "{" expecting space, operator or ";" [dan@localhost Rodin2009a]$ ./Rodin2009e pm4-pg71.txt 2009e - Pseudocod Rodin - Codename:Rodin2009e Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin {citeste i; fie k=0; cat timp (i>0) {fie i=i/2; fie k=k+1; }; scrie k; }; Cate cifre binare va avea un numar ? 12 4
1.1.3 Cat timp ... executa - Rodin ExperimentExp11 - 21 aug 2009
{text "nr de cifre binare a numarului i"; fie k=0; citeste i; cat timp (i>0) {fie i=i/2; fie k=k+1 }; scrie k } Programul:"pm4-pg68b.txt" "nr de cifre binare a numarului i" 7 3 Programul a rulat ! Modular Language written by Dan V Popa, Ro/Haskell Group. http://www.haskell.org/haskellwiki/Rodin 21/aug/2009 - - Codename:ExperimentExp11
Simularea executiei lui pentru - Rodin2009e - versiunea din 8 martie 2009. (depasit)
Am terminat de rulat programul:"pm4-pg71.txt" Rodin2009e - versiunea din 8 martie 2009. Alternativa cu 2 ramuri si o implementare a vectorilor Obligatoriu: sa fie initializati. (Nu dau erori!) Este posibila si citirea vectorilor. ... ca si a variabilelor simple. [dan@localhost Rodin2009a]$ ./Rodin2009e pm4-pg71e2.txt 2009e - Pseudocod Rodin - Codename:Rodin2009e Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin Rodin2009e: pm4-pg71e2.txt: openFile: does not exist (No such file or directory) [dan@localhost Rodin2009a]$ ./Rodin2009e pm4pg71e2.txt 2009e - Pseudocod Rodin - Codename:Rodin2009e Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin { citeste low; citeste high; viteste step; fie v=low; fie temp=high; daca (step>0) atunci cat timp (v<=temp) { instructiuni ; fie v=v+step;}; altfel cat timp (v>=temp) { instructiuni ; fie v=v+step;}; } Rodin2009e: (line 3, column 10): unexpected " " expecting letter or digit, "_", operator or ";" [dan@localhost Rodin2009a]$ ./Rodin2009e pm4pg71e2.txt 2009e - Pseudocod Rodin - Codename:Rodin2009e Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin { citeste low; citeste high; citeste step; fie v=low; fie temp=high; daca (step>0) atunci cat timp (v<=temp) { instructiuni ; fie v=v+step;}; altfel cat timp (v>=temp) { instructiuni ; fie v=v+step;}; } Rodin2009e: (line 7, column 9): unexpected "t" expecting space, "altfel", operator or ";" [dan@localhost Rodin2009a]$ ./Rodin2009e pm4pg71e2.txt 2009e - Pseudocod Rodin - Codename:Rodin2009e Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin { citeste low; citeste high; citeste step; fie v=low; fie temp=high; daca (step>0) atunci cat timp (v<=temp) {instructiuni;fie v=v+step;}; altfel cat timp (v>=temp) {instructiuni;fie v=v+step;}; } Rodin2009e: (line 7, column 9): unexpected "t" expecting space, "altfel", operator or ";" [dan@localhost Rodin2009a]$ ./Rodin2009e pm4pg71e2.txt 2009e - Pseudocod Rodin - Codename:Rodin2009e Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin { citeste low; citeste high; citeste step; fie v=low; fie temp=high; daca (step>0) atunci cat timp (v<temp+1) {instructiuni;fie v=v+step;}; altfel cat timp (v>temp-1) {instructiuni;fie v=v+step;}; } Rodin2009e: (line 6, column 7): unexpected " " expecting letter or digit, "_", operator or ";" [dan@localhost Rodin2009a]$ ./Rodin2009e pm4pg71e2.txt 2009e - Pseudocod Rodin - Codename:Rodin2009e Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin { citeste low; citeste high; citeste step; fie v=low; fie temp=high; daca (step>0) atunci cat timp (v<temp+1) {instructiuni;fie v=v+step;}; altfel cat timp (v>temp-1) {instructiuni;fie v=v+step;}; }; Rodin2009e: (line 6, column 7): unexpected " " expecting letter or digit, "_", operator or ";" [dan@localhost Rodin2009a]$ ./Rodin2009e pm4pg71e2.txt 2009e - Pseudocod Rodin - Codename:Rodin2009e Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin { citeste low; citeste high; citeste step; fie v=low; fie temp=high; daca (step>0) atunci cat timp (v<temp+1) {instructiuni;fie v=v+step;}; altfel cat timp (v>temp-1) {instructiuni;fie v=v+step;}; }; Rodin2009e: (line 6, column 7): unexpected " " expecting letter or digit, "_", operator or ";" [dan@localhost Rodin2009a]$ ./Rodin2009e pm4pg71e2.txt 2009e - Pseudocod Rodin - Codename:Rodin2009e Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin { citeste low; citeste high; citeste step; fie v=low; fie temp=high; daca (step>0) atunci cat timp (v<temp+1) {instructiuni;fie v=v+step;}; altfel cat timp (v>temp-1) {instructiuni;fie v=v+step;}; }; Rodin2009e: (line 6, column 7): unexpected " " expecting letter or digit, "_", operator or ";" [dan@localhost Rodin2009a]$ ./Rodin2009e pm4pg71e2.txt 2009e - Pseudocod Rodin - Codename:Rodin2009e Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin { citeste low; citeste high; citeste step; fie v=low; fie temp=high; daca (step>0) atunci {cat timp (v<temp+1) {instructiuni;fie v=v+step;};} altfel {cat timp (v>temp-1) {instructiuni;fie v=v+step;};} }; Rodin2009e: (line 9, column 56): unexpected "\n" expecting operator or ";" [dan@localhost Rodin2009a]$ ./Rodin2009e pm4pg71e2.txt 2009e - Pseudocod Rodin - Codename:Rodin2009e Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin { citeste low; citeste high; citeste step; fie v=low; fie temp=high; daca (step>0) atunci {cat timp (v<temp+1) {instructiuni;fie v=v+step;};} altfel {cat timp (v>temp-1) {instructiuni;fie v=v+step;};}; }; 1 10 2 Am terminat de rulat programul:"pm4pg71e2.txt" Rodin2009e - versiunea din 8 martie 2009. Alternativa cu 2 ramuri si o implementare a vectorilor Obligatoriu: sa fie initializati. (Nu dau erori!) Este posibila si citirea vectorilor. ... ca si a variabilelor simple. [dan@localhost Rodin2009a]$ ./Rodin2009e pm4pg71e3.txt 2009e - Pseudocod Rodin - Codename:Rodin2009e Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin { citeste low; citeste high; citeste step; fie v=low; fie temp=high; daca (step>0) atunci {cat timp (v<temp+1) {scrie v;fie v=v+step;};} altfel {cat timp (v>temp-1) {scrie v;fie v=v+step;};}; }; Ideea simularii lui 'pentru' folosind 'cat timp'. 1 10 2 1 3 5 7 9 Am terminat de rulat programul:"pm4pg71e3.txt" Rodin2009e - versiunea din 8 martie 2009. Alternativa cu 2 ramuri si o implementare a vectorilor Obligatoriu: sa fie initializati. (Nu dau erori!) Este posibila si citirea vectorilor. ... ca si a variabilelor simple. [dan@localhost Rodin2009a]$ ./Rodin2009e pm4pg71e3.txt 2009e - Pseudocod Rodin - Codename:Rodin2009e Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin { citeste low; citeste high; citeste step; fie v=low; fie temp=high; daca (step>0) atunci {cat timp (v<temp+1) {scrie v;fie v=v+step;};} altfel {cat timp (v>temp-1) {scrie v;fie v=v+step;};}; }; Ideea simularii lui 'pentru' folosind 'cat timp'. 10 1 -2 10 8 6 4 2 Am terminat de rulat programul:"pm4pg71e3.txt" Rodin2009e - versiunea din 8 martie 2009. Alternativa cu 2 ramuri si o implementare a vectorilor Obligatoriu: sa fie initializati. (Nu dau erori!) Este posibila si citirea vectorilor. ... ca si a variabilelor simple. [dan@localhost Rodin2009a]$ ./Rodin2009e pm4pg71e3.txt 2009e - Pseudocod Rodin - Codename:Rodin2009e Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin { citeste low; citeste high; citeste step; fie v=low; fie temp=high; daca (step>0) atunci {cat timp (v<temp+1) {scrie v;fie v=v+step;};} altfel {cat timp (v>temp-1) {scrie v;fie v=v+step;};}; }; Ideea simularii lui 'pentru' folosind 'cat timp'. 1 10 3 1 4 7 10 Am terminat de rulat programul:"pm4pg71e3.txt" Rodin2009e - versiunea din 8 martie 2009. Alternativa cu 2 ramuri si o implementare a vectorilor Obligatoriu: sa fie initializati. (Nu dau erori!) Este posibila si citirea vectorilor. ... ca si a variabilelor simple. [dan@localhost Rodin2009a]$
1.1.4 Simularea executiei lui pentru - Rodin ExperimentExp11 - versiunea 21 august 2009.
{ text "Dati indicele mic, cel mare si pasul"; citeste low; citeste high; citeste step; fie v=low; fie temp=high; daca (step>0) atunci {cat timp (v<temp+1) {scrie v;fie v=v+step}} altfel {cat timp (v>temp-1) {scrie v;fie v=v+step}} } 26 aug 2009 Rodin ExperimentExp11 Simularea lui pentru folosind cat timp.
1.2 . Un set ceva mai avansat
1.2.1 Repeta pina cand - Rodin2009c (depasit) .
2009c - Pseudocod Rodin - Codename:Rodin2009c Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin {citeste x; fie y=0; repeta { fie x=x-1; fie y=y+1; } pana cand ( x<0 ); scrie x; scrie y; } Rodin2009c: (line 7, column 2): unexpected "a" expecting "pina cand" AICI E O GRESEALA, trebuia scris "pina cand" nu "pana cand"
1.2.2 Repeta pina cand - Rodin Codename:ExperimentExp11 - 21 aug 2009
Modular Language written by Dan V Popa, Ro/Haskell Group. 21/aug/2009 - Rodin - Codename:ExperimentExp11 Noutate:Operatorii logici SI &&, SAU || sunt implementati. Limitare: nu scrieti serii lungi de SAU si nici de SI cum scrieti la adunare serii lungi de plus: 1+1+1+1+1 ori 1+2+7. Programul:repeta1.txt {citeste x; fie y=0; repeta { fie x=x-1; fie y=y+1 } pina cand ( x == 0 ); scrie x; scrie y } Copierea unitatilor dintr-un numar in altul. Demonstratie a buclei repeta pina cand. 26 aug 2009 Rodin ExperimentExp11 12 0 12 Programul a rulat ! Modular Language written by Dan V Popa, Ro/Haskell Group. http://www.haskell.org/haskellwiki/Rodin 21/aug/2009 - - Codename:ExperimentExp11
1.2.3 Executa atat cat - Rodin2009c (depasit) .
2009c - Pseudocod Rodin - Codename:Rodin2009c Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin {citeste x; fie y=0; executa { fie x=x-1; fie y=y+1; } atat cat (x>0); scrie x; scrie y; } 7 0 7
1.2.4 Executa atat cat - Rodin Codename:ExperimentExp11 - 21 aug 2009
Modular Language written by Dan V Popa, Ro/Haskell Group. 21/aug/2009 - Rodin - Codename:ExperimentExp11 Noutate:Operatorii logici SI &&, SAU || sunt implementati. Limitare: nu scrieti serii lungi de SAU si nici de SI cum scrieti la adunare serii lungi de plus: 1+1+1+1+1 ori 1+2+7. Programul:executa-atat-cat-3.txt {citeste x; fie y=0; executa { fie x=x-1; fie y=y+1 } atat cat (x>0); scrie x; scrie y } Copierea unitatilor dintr-un numar in altul. Demonstratie a buclei executa atat cat. 26 aug 2009 Rodin ExperimentExp11 12 0 12 Programul a rulat ! Modular Language written by Dan V Popa, Ro/Haskell Group. http://www.haskell.org/haskellwiki/Rodin 21/aug/2009 - - Codename:ExperimentExp11 ---- Am terminat de rulat programul. Rodin2009c Alternativa cu 2 ramuri si o implementare a vectorilor Obligatoriu: sa fie initializati. (Nu dau erori!) Este posibila si citirea vectorilor. ... ca si a variabilelor simple. versiunea din martie 2009 2009c - Pseudocod Rodin - Codename:Rodin2009c Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin {citeste x; citeste y; daca x>y atunci scrie x altfel scrie y; citeste x; } -- Acest program ar trebui sa scrie doar unul dintre mesaje -- 78 8 78 9 Am terminat de rulat programul. Rodin2009c Alternativa cu 2 ramuri si o implementare a vectorilor Obligatoriu: sa fie initializati. (Nu dau erori!) Este posibila si citirea vectorilor. ... ca si a variabilelor simple. versiunea din martie 2009 2009c - Pseudocod Rodin - Codename:Rodin2009c Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin {pentru(fie x=1;x<10;fie x=x+1) scrie x;}; 1 2 3 4 5 6 7 8 9 Am terminat de rulat programul. Rodin2009c Alternativa cu 2 ramuri si o implementare a vectorilor Obligatoriu: sa fie initializati. (Nu dau erori!) Este posibila si citirea vectorilor. ... ca si a variabilelor simple. versiunea din martie 2009 2009c - Pseudocod Rodin - Codename:Rodin2009c Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin { 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; }; }; 5 3 4 Am terminat de rulat programul. Rodin2009c Alternativa cu 2 ramuri si o implementare a vectorilor Obligatoriu: sa fie initializati. (Nu dau erori!) Este posibila si citirea vectorilor. ... ca si a variabilelor simple. versiunea din martie 2009 2009c - Pseudocod Rodin - Codename:Rodin2009c Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin {text "Citesc 10 elemente"; pentru(fie xk=1; xk<11; fie xk=xk+1) citeste z[xk]; }; "Citesc 10 elemente" Am terminat de rulat programul. Rodin2009c Alternativa cu 2 ramuri si o implementare a vectorilor Obligatoriu: sa fie initializati. (Nu dau erori!) Este posibila si citirea vectorilor. ... ca si a variabilelor simple. versiunea din martie 2009 2009c - Pseudocod Rodin - Codename:Rodin2009c Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin {text "Program insertsort"; text "Tastati cele 10 numere"; pentru(fie k=1; k<11; fie k=k+1) citeste v[k]; pentru(fie k=2; k<11; fie k=k+1) {fie j=k; fie i=k-1; repeta {daca (v[j]<v[i]) atunci {fie aux = v[j]; fie v[j]= v[i]; fie v[i]=aux; fie j=i; fie j=j-1; }; } pina cand (i==0); }; text "Numerele sortate"; pentru(fie k=1; k<11; fie k=k+1) citeste v[k]; }; -- inainte de "pana cand" nu se pune ; -- Conditii cum e (v[j]<v[i]) mai bine le -- puneti in paranteza. Rodin2009c: (line 5, column 8): unexpected "(" expecting letter or digit, "_", operator or ";" 2009c - Pseudocod Rodin - Codename:Rodin2009c Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin {text "Selsort pentru 10 numere "; pentru(fie xk=1; xk<11; fie xk=xk+1) citeste z[xk]; pentru(fie xk=1; xk<10; fie xk=xk+1) { fie xi=xk; pentru(fie xj=xk+1; xj<11; fie xj=xj+1) daca (z[xj]<z[xi]) atunci fie xi=xj; fie aux=z[xk]; fie z[xk]=z[xi]; fie z[xi] = aux; }; text "Sortate "; pentru(fie xk=1; xk<11; fie xk=xk+1) {scrie z[xk]; }; }; -- Algoritmul de sortare prin selectie directa -- Pentru RodinV082d 1/12/2008 2009c - Pseudocod Rodin - Codename:Rodin2009c Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin { vorbeste "maximul dintr-un sir de numere \n"; vorbeste "pozitive terminat cu zero \\n"; fie xmaxpp = 0; tasteza y; pina cand (y == 0) { daca (y > xmaxpp ) atunci fie xmaxpp = y; }; }; Rodin2009c: (line 1, column 11): unexpected " " expecting letter or digit, "_", operator or ";" 2009c - Pseudocod Rodin - Codename:Rodin2009c Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin {text "Initializare"; fie v[0]=0; citeste v[0]; text "Gata. Apoi o afisare."; scrie v[0]; }; Program 0: Initializarea citirea si scrierea unui element de vector. ========================================================= "Initializare" 67 "Gata. Apoi o afisare." 67 Am terminat de rulat programul. Rodin2009c Alternativa cu 2 ramuri si o implementare a vectorilor Obligatoriu: sa fie initializati. (Nu dau erori!) Este posibila si citirea vectorilor. ... ca si a variabilelor simple. versiunea din martie 2009 2009c - Pseudocod Rodin - Codename:Rodin2009c Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin { fie x[0]=3; fie x[1]=1; fie x[2]=2; scrie x[0]; scrie x[1]; scrie x[2]; } 3 1 2 Am terminat de rulat programul. Rodin2009c Alternativa cu 2 ramuri si o implementare a vectorilor Obligatoriu: sa fie initializati. (Nu dau erori!) Este posibila si citirea vectorilor. ... ca si a variabilelor simple. versiunea din martie 2009 2009c - Pseudocod Rodin - Codename:Rodin2009c Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin { fie x[0]=0; fie x[1]=1; fie x[3]=3; text "x indice 0 este" ; scrie x[0]; text "x indice 1 este" ; scrie x[1]; text "x indice 2 este" ; scrie x[2]; text "x indice 3 este" ; scrie x[3]; } --- Spatile de dupa stringul lui text si inainte de --- ; nu sunt permise Rodin2009c: (line 4, column 25): unexpected " " expecting operator or ";" 2009c - Pseudocod Rodin - Codename:Rodin2009c Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin { fie x[0]=0; fie x[1]=1; fie x[3]=3; text "x indice 0 este"; scrie x[0]; text "x indice 1 este"; scrie x[1]; text "x indice 2 este"; scrie x[2]; text "x indice 3 este"; scrie x[3]; } --- Spatile de dupa stringul lui text si inainte de --- ; nu sunt permise --- Incercarea de afisare (folosire) a unei variabile --- indexate neinitializate opreste executia pe tacute. "x indice 0 este" 0 "x indice 1 este" 1 "x indice 2 este" Am terminat de rulat programul. Rodin2009c Alternativa cu 2 ramuri si o implementare a vectorilor Obligatoriu: sa fie initializati. (Nu dau erori!) Este posibila si citirea vectorilor. ... ca si a variabilelor simple. versiunea din martie 2009 2009c - Pseudocod Rodin - Codename:Rodin2009c Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin {text "Initializare"; pentru(fie x=1;x<10;fie x=x+1) fie v[x]=x; text "gata. Apoi afisare."; pentru(fie x=1;x<10;fie x=x+1) scrie v[x]; }; Program 4: bucla cu nr cunoscut de pasi Initializarea si scrierea unui vector. ======================================= "Initializare" "gata. Apoi afisare." 1 2 3 4 5 6 7 8 9 Am terminat de rulat programul. Rodin2009c Alternativa cu 2 ramuri si o implementare a vectorilor Obligatoriu: sa fie initializati. (Nu dau erori!) Este posibila si citirea vectorilor. ... ca si a variabilelor simple. versiunea din martie 2009 2009c - Pseudocod Rodin - Codename:Rodin2009c Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin {text "Initializare"; pentru(fie x=1;x<10;fie x=x+1) {fie v[x]=0; citeste v[x]; }; text "gata. Apoi afisare."; pentru(fie x=1;x<10;fie x=x+1) scrie v[x]; }; Program 5: bucla cu nr cunoscut de pasi Initializarea si scrierea unui vector. ======================================= "Initializare" 87 6 5 4 6 7 8 6 5 "gata. Apoi afisare." 87 6 5 4 6 7 8 6 5 Am terminat de rulat programul. Rodin2009c Alternativa cu 2 ramuri si o implementare a vectorilor Obligatoriu: sa fie initializati. (Nu dau erori!) Este posibila si citirea vectorilor. ... ca si a variabilelor simple. versiunea din martie 2009 2009c - Pseudocod Rodin - Codename:Rodin2009c Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin {citeste x; fie g=(\m.daca m==0 atunci 1 altfel 0)x; scrie g; } 4 0 Am terminat de rulat programul. Rodin2009c Alternativa cu 2 ramuri si o implementare a vectorilor Obligatoriu: sa fie initializati. (Nu dau erori!) Este posibila si citirea vectorilor. ... ca si a variabilelor simple. versiunea din martie 2009 2009c - Pseudocod Rodin - Codename:Rodin2009c Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin {citeste x; fie g=(\m.daca m==0 atunci 1 altfel 0)(\u.u+1)x; scrie g; } 67 0 Am terminat de rulat programul. Rodin2009c Alternativa cu 2 ramuri si o implementare a vectorilor Obligatoriu: sa fie initializati. (Nu dau erori!) Este posibila si citirea vectorilor. ... ca si a variabilelor simple. versiunea din martie 2009 2009c - Pseudocod Rodin - Codename:Rodin2009c Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin {citeste x; fie g=(\m.m+1)x; scrie g; } 7 8 Am terminat de rulat programul. Rodin2009c Alternativa cu 2 ramuri si o implementare a vectorilor Obligatoriu: sa fie initializati. (Nu dau erori!) Este posibila si citirea vectorilor. ... ca si a variabilelor simple. versiunea din martie 2009 [dan@localhost Rodin2009a]$
1.3 . Cateva sortari
{text "Selsort pentru 10 numere "; pentru(fie xk=1; xk<11; fie xk=xk+1) fie z[xk]=citeste z; pentru(fie xk=1; xk<10; fie xk=xk+1) { fie xi=xk; pentru(fie xj=xk+1; xj<11; fie xj=xj+1) daca (z[xj]<z[xi]) atunci fie xi=xj altfel 0; fie aux=z[xk]; fie z[xk]=z[xi]; fie z[xi] = aux; }; text "Sortate "; pentru(fie xk=1; xk<11; fie xk=xk+1) {scrie z[xk]; }; }; -- Algoritmul de sortare prin selectie directa -- Pentru RodinV082d 1/12/2008
Si o varianta diferita {text "Selsort pentru 10 numere ";
pentru(fie xk=1; xk<11; fie xk=xk+1)
fie z[xk]=0; pentru(fie xk=1; xk<11; fie xk=xk+1)
citeste z[xk];
pentru(fie xk=1; xk<10; fie xk=xk+1)
{ fie xi=xk;
pentru(fie xj=xk+1; xj<11; fie xj=xj+1)
daca (z[xj]<z[xi]) atunci fie xi=xj altfel 0;
fie aux=z[xk];
fie z[xk]=z[xi];
fie z[xi] = aux;
};
text "Sortate ";
pentru(fie xk=1; xk<11; fie xk=xk+1)
{scrie z[xk];
};
};
-- Algoritmul de sortare prin selectie directa
-- Pentru RodinV082d 1/12/2008
1.4 . Exemple cu vectori
Vedeti si la sortari.
1.5 . Exemple cu operatii de I/O, inclusiv vectori
Program 0: Initializarea citirea si scrierea unui element de vector. ========================================================= "Initializare" 67 "Gata. Apoi o afisare." 67 Am terminat de rulat programul. Rodin2009c Alternativa cu 2 ramuri si o implementare a vectorilor Obligatoriu: sa fie initializati. (Nu dau erori!) Este posibila si citirea vectorilor. ... ca si a variabilelor simple. versiunea din martie 2009 2009c - Pseudocod Rodin - Codename:Rodin2009c Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin { fie x[0]=3; fie x[1]=1; fie x[2]=2; scrie x[0]; scrie x[1]; scrie x[2]; } 3 1 2 Am terminat de rulat programul. Rodin2009c Alternativa cu 2 ramuri si o implementare a vectorilor Obligatoriu: sa fie initializati. (Nu dau erori!) Este posibila si citirea vectorilor. ... ca si a variabilelor simple. versiunea din martie 2009 2009c - Pseudocod Rodin - Codename:Rodin2009c Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin { fie x[0]=0; fie x[1]=1; fie x[3]=3; text "x indice 0 este" ; scrie x[0]; text "x indice 1 este" ; scrie x[1]; text "x indice 2 este" ; scrie x[2]; text "x indice 3 este" ; scrie x[3]; } --- Spatile de dupa stringul lui text si inainte de --- ; nu sunt permise Rodin2009c: (line 4, column 25): unexpected " " expecting operator or ";" 2009c - Pseudocod Rodin - Codename:Rodin2009c Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin { fie x[0]=0; fie x[1]=1; fie x[3]=3; text "x indice 0 este"; scrie x[0]; text "x indice 1 este"; scrie x[1]; text "x indice 2 este"; scrie x[2]; text "x indice 3 este"; scrie x[3]; } --- Spatile de dupa stringul lui text si inainte de --- ; nu sunt permise --- Incercarea de afisare (folosire) a unei variabile --- indexate neinitializate opreste executia pe tacute. "x indice 0 este" 0 "x indice 1 este" 1 "x indice 2 este" Am terminat de rulat programul. Rodin2009c Alternativa cu 2 ramuri si o implementare a vectorilor Obligatoriu: sa fie initializati. (Nu dau erori!) Este posibila si citirea vectorilor. ... ca si a variabilelor simple. versiunea din martie 2009 2009c - Pseudocod Rodin - Codename:Rodin2009c Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin {text "Initializare"; pentru(fie x=1;x<10;fie x=x+1) fie v[x]=x; text "gata. Apoi afisare."; pentru(fie x=1;x<10;fie x=x+1) scrie v[x]; }; Program 4: bucla cu nr cunoscut de pasi Initializarea si scrierea unui vector. ======================================= "Initializare" "gata. Apoi afisare." 1 2 3 4 5 6 7 8 9 Am terminat de rulat programul. Rodin2009c Alternativa cu 2 ramuri si o implementare a vectorilor Obligatoriu: sa fie initializati. (Nu dau erori!) Este posibila si citirea vectorilor. ... ca si a variabilelor simple. versiunea din martie 2009 2009c - Pseudocod Rodin - Codename:Rodin2009c Limbajul Pseudocod Rodin de Dan V Popa,Grupul Ro/Haskell. Sintaxa http://www.haskell.org/haskellwiki/Rodin {text "Initializare"; pentru(fie x=1;x<10;fie x=x+1) {fie v[x]=0; citeste v[x]; }; text "gata. Apoi afisare."; pentru(fie x=1;x<10;fie x=x+1) scrie v[x]; }; Program 5: bucla cu nr cunoscut de pasi Initializarea si scrierea unui vector. ======================================= "Initializare" 87 6 5 4 6 7 8 6 5 "gata. Apoi afisare." 87 6 5 4 6 7 8 6 5 Am terminat de rulat programul. Rodin2009c Alternativa cu 2 ramuri si o implementare a vectorilor Obligatoriu: sa fie initializati. (Nu dau erori!) Este posibila si citirea vectorilor. ... ca si a variabilelor simple. versiunea din martie 2009
1.6 . Arhive
Vedeti surse impachetate impreuna cu executabilul necesar rularii lor in rubrica Rodin/Download.
1.7 . Bucle pentru
Mai puteti citi la pagina Rodin/BuclePentru despre o eroare de sintaxa mai neobisnuita pe care Rodin o semnaleaza INAINTE de locul unde ea apare.
Pagina proiectului Rodin este in dezvoltare. Vizitati-o regulat pentru a gasi exemplele, 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.
