Exercices C#
Exercice 1 : On souhaite écrire un programme C#
de calcul des n premiers
nombres parfaits. Un nombre est dit
parfait s’il est égal à la somme de ses
diviseurs, 1 compris. Exemple : 6 = 1+2+3 , est un nombre parfait.
Exercice 2 : On souhaite écrire un programme de calcul du
pgcd de deux
entiers non nuls, en C# à partir de
l’algorithme de la méthode d'Euclide.
Voici une spécification de
l'algorithme de calcul du PGCD de deux nombres
(entiers strictement positifs) a et b,
selon cette méthode :
Exercice 3 : On souhaite écrire un programme C# qui
calcule le nombre d'or
utilisé par les anciens comme nombre
idéal pour la sculpture et
l'architecture. Si l'on considère deux
suites numériques (U) et (V) telles que
pour n strictement supérieur à 2 :
using System;
namespace CsExosAlgo1
{
class ApplicationParfaits {
static void Main (string[ ] args) {
int compt = 0, n, k, somdiv, nbr;
System.Console.Write("Entrez combien de
nombre parfaits : ");
n = Int32.Parse( System.Console.ReadLine( )
) ;
nbr = 2;
while (compt != n)
{ somdiv = 1;
k = 2;
while(k <= nbr/2 )
{
if (nbr % k == 0) somdiv += k ;
k++;
}
if (somdiv == nbr)
{ System.Console.WriteLine(nbr+" est un
nombre parfait");
compt++;
}
nbr++;
}
}
}
|
using System;
namespace CsExosAlgo1
{
class ApplicationEuclide {
static void Main (string[ ] args) {
System.Console.Write("Entrez le premier
nombre : ");
int p = Int32.Parse(
System.Console.ReadLine( ) ) ;
System.Console.Write("Entrez le
deuxième nombre : ");
int q = Int32.Parse(
System.Console.ReadLine( ) ) ;
if (p*q!=0)
System.Console.WriteLine("Le pgcd de
"+p+" et de "+q+" est "+pgcd(p,q));
else
System.Console.WriteLine("Le pgcd
n'existe pas lorsque l'un des deux nombres est nul !");
}
static int pgcd (int a , int b) {
int r,t ;
if ( b>a) {
t = a;
a = b;
b = t;
}
do {
r = a % b;
a = b;
b = r;
} while(r !=0);
return a ;
}
}
}
|
using System;
namespace CsExosAlgo1
{
class AppliNombredOr {
static void Main(string[ ] args) {
int n, Un, Un1=2, Un2=1 ;
double Vn,Vn1=2, Eps ;
System.Console.Write("Précision du
calcul ? : ");
//-- précision demandée (exemple 1e-4 ou
1e-2 ou 0,0001, …) :
Eps = Double.Parse( System.Console.ReadLine(
) ) ;
for (n=2; ; n++) //n est le rang du terme
courant
{
Un = Un1 + Un2;
Vn =(double)Un / (double)Un1;
if (Math.Abs(Vn - Vn1) <= Eps) break;
else
{
Un2 = Un1;
Un1 = Un;
Vn1 = Vn;
}
}
System.Console.WriteLine("Nombre d'Or =
" + Vn+" // rang="+n);
}
}
}
|