Difference between revisions of "Ro/PRodin/Criss88"

From HaskellWiki
Jump to navigation Jump to search
 
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
  +
<center> [[Image:240px-Forsythia_close-up_2_cropped.jpg]] </center>
  +
 
== Lista de probleme ==
 
== Lista de probleme ==
   
Line 25: Line 27:
 
11. Calculati suma elementelor unui vector.
 
11. Calculati suma elementelor unui vector.
   
Observati ca unele are cere calcule in numere reale, deocamdata neimplementate.
+
Observati ca unele exemple (3,5) ar cere calcule in numere reale, deocamdata neimplementate.
   
  +
==. Sa se calculeze suma numerelor pana la n,n dat de la tastatura. (1.txt pt Rodin V082) ==
+
==. Rodin V082 Sa se calculeze suma numerelor pana la n,n dat de la tastatura. (1.txt pt Rodin V082) ==
   
 
<haskell>
 
<haskell>
Line 64: Line 67:
 
</haskell>
 
</haskell>
   
  +
----
 
  +
==. Sa se determine daca un numar n este prim.(Varianta) ==
'''Nota:''' Obligatia de a scrie deocamdata o atribuire inutila: fie k=k apare deoarece RodinV082 - fiind un produs beta - nu are inca implementate:
 
  +
  +
<haskell>
  +
{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;
  +
}
  +
</haskell>
  +
  +
  +
==. Sa se determine daca un numar n este prim.(Varianta) ==
  +
  +
<haskell>
  +
{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;
  +
}
  +
</haskell>
  +
  +
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)
 
- instructiunea care nu face nimic (nop / skip / nimic)
 
- alternativa cu o singura ramura (nu ne-am ocupat de "dangling else")
 
- alternativa cu o singura ramura (nu ne-am ocupat de "dangling else")
 
- expresii conditionale
 
- expresii conditionale
   
  +
Workaround: Puteti scrie o ramura ''altfel 0;'' deoarece in Rodin 0 este o expresie deci si o instructiune.
Deci rog pe toata lumea sa nu facă reprosuri Cristinei. Este vina mea si o recunosc.
 
  +
  +
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:
Dan
 
  +
* daca ... atunci ... altfel ...
  +
* daca ... atunci ....
   
  +
 
-----
 
-----
 
Pagina in dezvoltare
 
Pagina in dezvoltare

Latest revision as of 13:35, 16 August 2009

240px-Forsythia close-up 2 cropped.jpg

Lista de probleme

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)

{ 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)

{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)

 
{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)

 
{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