+ All Categories
Home > Documents > Ejercicios de Funciones Escalares

Ejercicios de Funciones Escalares

Date post: 16-Sep-2015
Category:
Upload: jorge-gonzales-castillo
View: 45 times
Download: 9 times
Share this document with a friend
Description:
Ejercicios de Funciones EscalaresEjercicios de Funciones Escalares
18
UNIVERSIDAD NACIONAL DE TRUJILLO Base de datos EJERCICIOS FUNCIONES ESCALARES 1. LISTA DE NÚMEROS CAPICÚAS Implemente un procedimiento para Mostrar la lista de los primeros 10 números capicúas. FORMA 1: SIN RECURSIVIDAD --Encontrar los numeros capicuas use master go if OBJECT_ID('dbo.fnNumCapicua', 'FN') is not null drop function dbo.fnNumCapicua go --Esta funcion nos devolvera el numero en el caso cumpla la condicion o nada create function dbo.fnNumCapicua(@n int) returns varchar(3) AS Begin declare @Result varchar(3)='' if ( dbo.fnNumInvertido(@n,0)=@n ) set @Result=CAST(@n as char(3)) return @Result End --Fin función use master go if OBJECT_ID('dbo.fnMostrarCapicua', 'FN') is not null drop function dbo.fnMostrarCapicua go --Esta funcion nos devolvera la lista de numeros capicuas create function dbo.fnMostrarCapicua(@inicio int) returns varchar(2000) AS Begin declare @Result varchar(2000) = '' declare @Veces int = 0 while( @Veces < 10 ) Begin if(dbo.fnNumCapicua(@inicio)!='') Begin set @Veces +=1 set @Result += dbo.fnNumCapicua(@inicio)+ char(13) End else
Transcript

Base de datos

UNIVERSIDAD NACIONAL DE TRUJILLO

Base de datos

EJERCICIOSFUNCIONES ESCALARES1. LISTA DE NMEROS CAPICAS Implemente un procedimiento para Mostrar la lista de los primeros 10 nmeros capicas.

FORMA 1: SIN RECURSIVIDAD

--Encontrar los numeros capicuas use mastergoif OBJECT_ID('dbo.fnNumCapicua', 'FN') is not null drop function dbo.fnNumCapicuago--Esta funcion nos devolvera el numero en el caso cumpla la condicion o nadacreate function dbo.fnNumCapicua(@n int) returns varchar(3)ASBegin declare @Result varchar(3)='' if ( dbo.fnNumInvertido(@n,0)=@n ) set @Result=CAST(@n as char(3)) return @Result

End--Fin funcin

use mastergoif OBJECT_ID('dbo.fnMostrarCapicua', 'FN') is not null drop function dbo.fnMostrarCapicuago--Esta funcion nos devolvera la lista de numeros capicuascreate function dbo.fnMostrarCapicua(@inicio int) returns varchar(2000)ASBegin declare @Result varchar(2000) = '' declare @Veces int = 0

while( @Veces < 10 )

Begin

if(dbo.fnNumCapicua(@inicio)!='')

Begin

set @Veces +=1

set @Result += dbo.fnNumCapicua(@inicio)+ char(13)

End

else

set @Result += dbo.fnNumCapicua(@inicio)

set @inicio += 1

End return @Result

End--Fin funcion--Prueba de la funcion

print dbo.fnMostrarCapicua(100)

FORMA 2: Usando recursividad pero ahora se enva un rango donde encontrar los capicas. use mastergo-- verificamos si la funcion que vamos a crear existeif OBJECT_ID('dbo.fnNumInvertido', 'N') is not null drop function dbo.fnNumInvertidogo-- creamos la funcion fnNumInvertidocreate function dbo.fnNumInvertido(@n int, @inv int)returns int

AS

Begin

declare @contrario int

if @n=0

set @contrario=@inv

else

set @contrario=dbo.fnNumInvertido(@n/10, @n%10+@inv*10)

return @contrario

End

--Funcin para Verificar si un nmero es Capicause mastergoif OBJECT_ID('dbo.fnCapicuas', 'FN') is not null drop function dbo.fnCapicuasgo--Esta funcion nos devolvera la lista de numeros capicuascreate function dbo.fnCapicuas(@inicio int, @fin int) returns varchar(2000)ASBegin

declare @Result varchar(2000)=''

declare @cad varchar(2000)=''

if(@inicio = @fin+1)

set @Result = @cad

else

Begin

if(dbo.fnNumInvertido(@inicio,0)=@inicio)

set @cad += cast (@inicio as varchar(3)) + CHAR(13) +dbo.fnCapicuas(@inicio+1,@fin)

else

set @cad += dbo.fnCapicuas(@inicio+1,@fin)

End

return @CadEnd--Fin funcion--Prueba de la funcin 120 y 140 es el rango para buscar los nmeros capicuas

print dbo.fnCapicuas(120,140)

2. NMEROS AMIGOS Dos nmeros son amigos cuando la suma de los divisores de uno de ellos es igual al otro y viceversa.Implemente un proceso para determinar si dos nmeros ingresados por teclado son amigos.FORMA 1: SIN RECURSIVIDAD--funcion que retorna el divisoruse mastergoif OBJECT_ID('dbo.fnDivisores', 'FN') is not null drop function dbo.fnDivisoresgocreate function dbo.fnDivisores(@n int,@div int) returns intASBegin declare @Numero int = 0

if @n%@div=0

set @Numero=@div return @Numero

End--funcion que retorna la suma de divisoresuse mastergoif OBJECT_ID('dbo.fnSumDivisor', 'FN') is not null drop function dbo.fnSumDivisorgocreate function dbo.fnSumDivisor(@n int,@div int) returns intASBegin declare @Suma int = 0

while(@div


Recommended