mardi 17 février 2015

Exercice Transact-Sql 1 + Correction

Exercice Transact-Sql 1 + Correction
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






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)

Aucun commentaire:

Enregistrer un commentaire