Voici un exercice en transact-sql ( T-SQL ) pour MS Sql Server
1 - Afficher le min et le max d'une suite d'entiers
2 - Calculer et afficher la puissance n de x
3 - Calculer la somme de N premiers puissances de 2
Ex : N=5 on affichera 1+2+4+8+16+32=63
4 - Vérifier qu'une chaîne de caractères et un palindrome
Ex (LOL,SEXE,stats... sont des palindromes)
5 - Résoudre une équation de 2 ème degré
6 - Calculer le factoriel d'un nombre entier
1 - Afficher le min et le max d'une suite d'entiers
2 - Calculer et afficher la puissance n de x
3 - Calculer la somme de N premiers puissances de 2
Ex : N=5 on affichera 1+2+4+8+16+32=63
4 - Vérifier qu'une chaîne de caractères et un palindrome
Ex (LOL,SEXE,stats... sont des palindromes)
5 - Résoudre une équation de 2 ème degré
6 - Calculer le factoriel d'un nombre entier
Correction :
/*1*/
create table suiteEntiers
(
nombre int
)
insert into suiteEntiers values(1)
insert into suiteEntiers values(5)
insert into suiteEntiers values(6)
insert into suiteEntiers values(3)
insert into suiteEntiers values(4)
declare @min int,@max int
select @min=MIN(nombre) from suiteEntiers
select @max=MAX(nombre) from suiteEntiers
print 'La valeur min vaut : '+convert(varchar,@min)
print 'La valeur max vaut : '+convert(varchar,@max)
- - - - - - - - - - - - - - - - - - - -
/*2*/
declare @x int,@puissance int,@resultat int,@i int
set @x=2
set @puissance=3
set @resultat=1
set @i=@puissance
while(@i!=0)
begin
set @resultat=@resultat*@x
set @i=@i-1
end
print convert(varchar,@x)+' a la puissance '+convert(varchar,@puissance)+' = '+convert(varchar,@resultat)
- - - - - - - - - - - - - - - - - - - -
/*3*/
declare @nbr int,@i int,@puissance int,@somme int ,@j int,@fois int
set @nbr=2
set @fois=5
set @somme=1
set @i=1
set @puissance=1
while(@i<=@fois)
begin
set @j=1
set @puissance=1
while(@j<=@i)
begin
set @puissance*=@nbr
set @j+=1
end
set @somme+=@puissance
set @i+=1
end
print @somme
/*4*/
declare @chaine1 varchar(25)
declare @chaine2 varchar(25)
declare @longueur int
set @chaine1='lol'
set @chaine2=''
set @longueur=LEN(@chaine1)
while(@longueur!=0)
begin
set @chaine2+=SUBSTRING(@chaine1,@longueur,1)
set @longueur-=1
end
if(@chaine1=@chaine1)
print 'C''est un palindrome'
else
print 'C''est pas un palindrome'
/*5*/
declare @a int,@b int ,@c int
declare @delta int
declare @x1 float,@x2 float
declare @x float
/*ax²+bx+c=0*/
set @a=5
set @b=6
set @c=1
set @delta=(@b*@b)-(4*@a*@c)
print 'Delta = '+convert(varchar,@delta)
if(@delta>0)
begin
set @x1=((-1*@b)-sqrt(@delta))/(2*@a)
set @x2=((-1*@b)+sqrt(@delta))/(2*@a)
print 'L''equation a deux solutions : x1='+convert(varchar,@x1)+' | x2='+convert(varchar,@x2)
end
else if(@delta<0)
begin
print 'L''equation n''a pas de solutions .'
end
else
begin
set @x=(-1*@b)/(2*@a)
print 'L''equation a une seul solution : x+'+convert(varchar,@x)
end
/*6*/
declare @nbr int
declare @factorielle int
declare @i int
set @nbr=5
set @factorielle=1
set @i=@nbr
while(@i!=0)
begin
set @factorielle*=@i
set @i-=1
end
print 'La factorielle de '+convert(varchar,@nbr)+' vaut '+convert(varchar,@factorielle)
set @nbr=2
set @fois=5
set @somme=1
set @i=1
set @puissance=1
while(@i<=@fois)
begin
set @j=1
set @puissance=1
while(@j<=@i)
begin
set @puissance*=@nbr
set @j+=1
end
set @somme+=@puissance
set @i+=1
end
print @somme
- - - - - - - - - - - - - - - - - - - -
/*4*/
declare @chaine1 varchar(25)
declare @chaine2 varchar(25)
declare @longueur int
set @chaine1='lol'
set @chaine2=''
set @longueur=LEN(@chaine1)
while(@longueur!=0)
begin
set @chaine2+=SUBSTRING(@chaine1,@longueur,1)
set @longueur-=1
end
if(@chaine1=@chaine1)
print 'C''est un palindrome'
else
print 'C''est pas un palindrome'
- - - - - - - - - - - - - - - - - - - -
/*5*/
declare @a int,@b int ,@c int
declare @delta int
declare @x1 float,@x2 float
declare @x float
/*ax²+bx+c=0*/
set @a=5
set @b=6
set @c=1
set @delta=(@b*@b)-(4*@a*@c)
print 'Delta = '+convert(varchar,@delta)
if(@delta>0)
begin
set @x1=((-1*@b)-sqrt(@delta))/(2*@a)
set @x2=((-1*@b)+sqrt(@delta))/(2*@a)
print 'L''equation a deux solutions : x1='+convert(varchar,@x1)+' | x2='+convert(varchar,@x2)
end
else if(@delta<0)
begin
print 'L''equation n''a pas de solutions .'
end
else
begin
set @x=(-1*@b)/(2*@a)
print 'L''equation a une seul solution : x+'+convert(varchar,@x)
end
- - - - - - - - - - - - - - - - - - - -
/*6*/
declare @nbr int
declare @factorielle int
declare @i int
set @nbr=5
set @factorielle=1
set @i=@nbr
while(@i!=0)
begin
set @factorielle*=@i
set @i-=1
end
print 'La factorielle de '+convert(varchar,@nbr)+' vaut '+convert(varchar,@factorielle)
Aucun commentaire:
Enregistrer un commentaire