Ro/PRodin/Criss88

From HaskellWiki

Lista de probleme[edit]

Aceste probleme fac parte din ciclul uzual de exercitii oferite la (unele) clase de informatica.

1. Sa se calculeze suma numerelor pana la n,n dat de la tastatura.

2. Sa se determine daca un numar n este prim.

3. Calculati si afisati media aritmetica a doua numere.

4. Sa se determine suma s=1-2+3-4+5-.....±n.

5. Fie un numar n.Sa se determine numarul inversat.

6. Calculati si afisati suma cifrelor unui numar.

7. Calculati si afisati modulul unui numar.

8. Calculati si afisati produsul numerelor consecutive pana la n.

9. Verificati daca trei numere pot fi laturile unui triunghi.

10. Calculati si afisati maximul a trei numere.

11. Calculati suma elementelor unui vector.

Observati ca unele exemple (3,5) ar cere calcule in numere reale, deocamdata neimplementate.


. Rodin V082 Sa se calculeze suma numerelor pana la n,n dat de la tastatura. (1.txt pt Rodin V082)[edit]

{ citeste n;
  fie xs=0;
  fie i=1;
  fie m=n+1;
  cat timp (i<m){fie xs=xs+i;
 		 fie i=i+1;
		  };
scrie xs;
}

. Sa se determine daca un numar n este prim.(2.txt pt Rodin V082)[edit]

{citeste n;
 fie k=0;
 fie x=2;
 daca (n==0) 
 atunci text "Zero este caz special.El nu este numar prim.Se imparte la toate numerele naturale"
 altfel {cat timp (x<n)
           {daca (n%x==0) atunci fie k=1
            altfel fie k=k;
	    fie x=x+1;
	};
	scrie n;
   	daca (k==0) 
        atunci text "este numar prim" 
        altfel text "nu este numar prim";
        };
citeste j;
}


. Sa se determine daca un numar n este prim.(Varianta)[edit]

 
{citeste n;
 fie k=0;
 fie x=2;
 daca (n==0) 
 atunci text "Zero este caz special.El nu este numar prim.Se imparte la toate numerele naturale"
 altfel {cat timp (x<n)
           {daca (n%x==0) atunci fie k=1 altfel 0;
	    fie x=x+1;
	   };
	scrie n;
   	daca (k==0) 
        atunci text "este numar prim" 
        altfel text "nu este numar prim";
        };
citeste j;
}


. Sa se determine daca un numar n este prim.(Varianta)[edit]

 
{fie nimic=0;
 citeste n;
 fie k=0;
 fie x=2;
 daca (n==0) 
 atunci text "Zero este caz special.El nu este numar prim.Se imparte la toate numerele naturale"
 altfel {cat timp (x<n)
           {daca (n%x==0) atunci fie k=1 altfel nimic;
	    fie x=x+1;
	   };
	scrie n;
   	daca (k==0) 
        atunci text "este numar prim" 
        altfel text "nu este numar prim";
        };
citeste j;
}

Acum am definit o valoare nimic egala cu zero si am folosit-o pe post de instructiune pe ramura altfel. O puteti scrie si pe ramura atunci.

Nota: Obligatia de a scrie o atribuire inutila: fie k=k apare deoarece RodinV082 - fiind un produs beta - nu are inca implementate:

- instructiunea care nu face nimic (nop / skip / nimic)
- alternativa cu o singura ramura (nu ne-am ocupat de "dangling else")
- expresii conditionale 

Workaround: Puteti scrie o ramura altfel 0; deoarece in Rodin 0 este o expresie deci si o instructiune.

Workaround 2: Puteti scrie o ramura altfel nimic; daca definiti inainte fie nimic=0; .


Nota a II-a Intre timp Rodin a evoluat ajungand la Rodin2009e, descarcati de pe Rodin/Download pagina de download.

Nota a III-a, pentru anul scolar 2009-2010: Stergeti ; inainte de acoladele care se inchid. Nu folositi functiile anonime. Pentru Rodin Experiment Exp10 din Rubrica Rodin/Download. Puteti folosi >=, <= acum, si vectorii unidimensionali. Acum exista doua versiuni de instructiune conditionala:

  • daca ... atunci ... altfel ...
  • daca ... atunci ....



Pagina in dezvoltare