Beruflich Dokumente
Kultur Dokumente
---PROCEDIMIENTOS Y FUNCIONES----
Leer: A
LeerDatos (base, altura)
Imprimir (Área)
FIN
FIN
Imprimir (Área: Float)
INICIO
Print: Área
FIN
---------FUNCION----------
INICIO
INICIO I=1
A=0
B=1
Leer: N C=0
I=integer
F W
I=1 I <=N - 2
V
S = '0'+','+'1'+','
C=A+B
S=S + Serie_Fibonacci (N, I)
S = S + InToChar(C) + ‘ ’
Print: S
A=B
FIN B=C
I=I+1
RETURN DEV
FIN
INICIO
INICIO LETRA = String
ESPACIO = String
F W
Leer: N I <= N
V
I=1
LETRA = LETRA + InToChar(k) + ‘ ’
Imprimir_Triangulo (N,I)
IF
I=N
FIN
V F
Print: ESPACIO
2
espacios
LETRA = ‘ ’
ESPACIO = ESPACIO + ‘ ’
I= 1
N=N-1
FIN
-------PROGRAMA PRINCIPAL-------------
DECLARE @N INT
DECLARE @R VARCHAR(1000)
SET @N = 345
SET @R = dbo.IntToRomanoDMillar(@N)
--SET @R = dbo.IntToRomano(@N)
PRINT 'EL NUMERO INGRESADO COMBERTIDO ES: ' + @R
UNIDADES(N int):Int
PROGRAMA PRINCIPAL
INICIO
INICIO
Z = ‘’
Leer: N
CASE
Letra = ‘’ (N)
Print: N
Print: Letra
RETURN Z
FIN
FIN
5) Escribir un programa que transforme un número romano en número arábico y que
lo imprima.
---PROCEDIMIENTOS Y FUNCIONES---
----PROGRAMA PRINCIPAL----
DECLARE @A VARCHAR(40)
DECLARE @LETRA VARCHAR(40)
DECLARE @P INT
SET @A = 'LXI'
SET @P = dbo.CENTENAS_LETRAS(@A)
PRINT 'EL NUMERO ROMANO ES ->' +@A
PRINT 'EL NUMERO TRANSFORMADO A ARABIGO ES -> ' + CAST(@P AS VARCHAR(10))
PROGRAMA PRINCIPAL
INICIO
INICIO
N=0
A: String
Leer: A
CASE
(AUX)
A = ‘’
P = CENTENAS_LETRAS(A)
N=1 N=5 N = 10 … N = 1000
Print: A
Print: P
RETURN N
FIN
FIN
V F V F
IF
RES2>RES1 IF
(RES2>RES1)
&
(RES2>RES3)
N = RES2 – RES1 N = RES1 + RES2
N = RES2 – RES1 + RES3
IF
((RES1>RES2) &
RETURN N (RES1>RES3))
& (RES3>RES2)
FIN
V
F
F
N = RES1 + RES3 - RES2
V
IF
(RES3>RES2) &
(RES3>RES1)
F
N=0
RETURN N
FIN
DECLARE @B INT
DECLARE @X INT
SET @B = 1
SET @X = 2
WHILE(@X<=@N-1)
BEGIN
IF(@N % @X = 0)
BEGIN
SET @B = 0
END
SET @X=@X+1
END
RETURN @B
END
GO
----PROCEDIMIENTOS ALMACENADO----
ALTER PROCEDURE dbo.DIVISORES
@N INT
AS
BEGIN
DECLARE @J INT
SET @J = 1
WHILE(@J<=@N)
BEGIN
IF(@N%@J=0)
BEGIN
PRINT @J
END
SET @J = @J + 1
END
END
GO
--------PROGRAMA PRINCIPAL---------
DECLARE @N INT
DECLARE @I INT
SET @I = 1
SET @N = 48
EXEC dbo.DIVISORES @N
Divisores (N int)
Programa Principal()
INICIO
INICIO
Int : J J=1
Leer: N
Int : I
F
W
I=1 J<=N
Divisores(N) V
V IF F
FIN N%J=0
Print:J
FIN
8) Escribir un programa que imprima en pantalla todos los números primos del
Intervalo [m, n], m Y n son valores ingresados por el teclado.
----PROCEDIMIENTOS Y FUNCIONES----
alter FUNCTION dbo.PRIMO(@N INT)
RETURNS BIT
WITH EXECUTE AS CALLER
AS
BEGIN
DECLARE @I INT
DECLARE @C INT
DECLARE @DEV INT
SET @C = 0
SET @I = 1
WHILE(@I<=@N)
BEGIN
IF(@N%@I=0)
BEGIN
SET @C = @C + 1
END
SET @I = @I + 1
END
IF(@C=2)
BEGIN
SET @DEV = 1
END
ELSE
BEGIN
SET @DEV = 0
END
RETURN @DEV
END
--------PROGRAMA PRINCIPAL---------
DECLARE @A INT
DECLARE @B INT
DECLARE @I INT
DECLARE @RES BIT
SET @A = 2
SET @B = 13
SET @I = 1
WHILE(@A<=@B)
BEGIN
SET @RES = dbo.PRIMO(@A)
IF(@RES=1)
BEGIN
PRINT @A
END
SET @A = @A + 1
END Primo (N int): bit
INICIO
Programa Principal()
Leer: Dev
INICIO
I=1
Leer: A,B C=0
Leer: Res
Int : I
F
W
I=1 I <=N
F
V
W
A<=B
V IF F
V N%I=0
V F
IF I=I+1
Res = 1
Print:A
V F
IF
C=2
Dev = 1 Dev = 0
A=A+1
FIN
----------FUNCION----------
alter FUNCTION dbo.MCD(@I INT,@A INT,@B INT)
RETURNS INT
WITH EXECUTE AS CALLER
AS
BEGIN
DECLARE @ACUM INT
SET @ACUM = 1
WHILE(@I<=100)
BEGIN
IF((@A % @I = 0) AND (@B % @I = 0))
BEGIN
SET @A = @A/@I
SET @B = @B/@I
SET @ACUM = @ACUM * @I
SET @I = 1
END
SET @I = @I + 1
END
RETURN @ACUM
END
GO
--------PROGRAMA PRINCIPAL--------
DECLARE @A INT
DECLARE @B INT
DECLARE @I INT
DECLARE @ACUM INT
SET @I = 2
SET @A = 120
SET @B = 360
SET @ACUM = dbo.MCD(@I,@A,@B)
PRINT 'EL MAXIMO COMUN DIVISOR DE ESOS NUMERO ES: '+ CAST(@A AS
VARCHAR(10)) + ' ' + 'Y' + ' ' +
CAST(@B AS VARCHAR(10))+ ' ' + 'ES -> ' +CAST(@ACUM AS
VARCHAR(10))
PROGRAMA PRINCIPAL
INICIO
INICIO
ACUM = 1
Leer: A, B
F
W F
I<=100
ACUM=0
V
I =2
V F
IF
ACUM = MCD (I, A, B) (A%I=0)&&(B%I=0)
A=A/I I =I+1
Print: ACUM
B=B/I
ACUM = ACUM * I
I=1
FIN
RETURN ACUM
FIN
10) implementar un programa que calcule el MCM de unos números
----------FUNCION----------
alter FUNCTION dbo.MCM(@A INT,@B INT)
RETURNS INT
WITH EXECUTE AS CALLER
AS
BEGIN
DECLARE @ACUM INT
DECLARE @I INT
SET @I = 2
SET @ACUM = 1
WHILE(@I<=1000)
BEGIN
IF((@A % @I = 0) AND (@B % @I = 0))
BEGIN
SET @A = @A/@I
SET @B = @B/@I
SET @ACUM = @ACUM * @I
SET @I = 1
END
ELSE
BEGIN
IF(@A % @I = 0)
BEGIN
SET @A = @A/@I
SET @ACUM = @ACUM * @I
SET @I = 1
END
IF(@B % @I = 0)
BEGIN
SET @B = @B/@I
SET @ACUM = @ACUM * @I
SET @I = 1
END
END
SET @I = @I + 1
END
RETURN @ACUM
END
GO
--------PROGRAMA PRINCIPAL--------
DECLARE @A INT
DECLARE @B INT
DECLARE @ACUM INT
SET @A = 70
SET @B = 54
SET @ACUM = dbo.MCM(@A,@B)
PRINT 'EL MINIMO COMUN DIVISOR DE '+ CAST(@A AS VARCHAR(10)) + ' ' + 'Y' +
' ' +
CAST(@B AS VARCHAR(10))+ ' ' + 'ES -> ' +CAST(@ACUM AS
VARCHAR(10))
MCM (A int, B int): float
INICIO
PROGRAMA PRINCIPAL
ACUM = 1
INICIO
I=2
Leer: A, B
F
W
ACUM=0
I<=1000
I =2
V
ACUM = MCM (A, B) IF
(A%I=0)&&(B%I=0)
Print: ACUM IF
A=A/I A%I = 0
B=B/I
ACUM = ACUM * I A=A/I
FIN I=1 ACUM = ACUM * I
I=1
IF
B%I = 0
B=B/I
ACUM = ACUM * I
I=1
I =I+1
RETURN ACUM
FIN
11) implementar un programa que genera la tabla de multiplicar de un numero
ingresado pr tecla
------------FUNCION ------------
alter FUNCTION dbo.TABLA_X_MULTIPLICAR(@N INT,@Z INT)
RETURNS VARCHAR(100)
WITH EXECUTE AS CALLER
AS
BEGIN
DECLARE @S VARCHAR(100)
DECLARE @I INT
DECLARE @J INT
DECLARE @C INT
SET @I = 1
SET @J = 1
SET @S = ''
WHILE(@I<=@N)
BEGIN
WHILE(@J<=@Z)
BEGIN
SET @C = @I * @J
SET @S = CAST(@I AS VARCHAR(10)) + ' ' + '*' + '
' + CAST(@J AS VARCHAR(10))
+ ' ' + '=' + ' ' + CAST(@C AS VARCHAR(10))
SET @J = @J + 1
END
SET @J = 1
SET @I = @I + 1
END
RETURN @S
END
GO
-------PROGRAMA PRINCIPAL--------
DECLARE @N INT
DECLARE @S VARCHAR(100)
DECLARE @I INT
SET @I = 1
SET @N = 8
PRINT 'SI EL NUMERO ES: ' + '@N ES = '+ CAST(@N AS VARCHAR(10))
WHILE(@I<=12)
BEGIN
SET @S = dbo.TABLA_X_MULTIPLICAR(@N,@I)
PRINT @S
SET @I = @I + 1
END
Diagramas de flujo
TABLA_M (N Int, Zint):String
PROGRAMA PRINCIPAL
INICIO
INICIO
S = ’’
Leer: N
I=1 J=1 C=0
S: String
S = ’’
W
I :Int I<=N
I =1
W W
I<=12 J<=Z
Print: S
S = InToChar(I) + ‘ ’+ InToChar(J)
+ ‘ ’+’=’ + InToChar(C)
I =I+1 J=J+1
J=1
FIN
I=I+1
RETURN S
FIN
12) implementar un programa que invierta una oracion
----PROCEDIMIENTO ALMACENADO----
alter PROCEDURE dbo.PALABRA_INVERTIDA
@N INT,
@I INT,
@LETRA VARCHAR(100),
@S VARCHAR(100) OUTPUT
AS
BEGIN
WHILE(@I<=@N)
BEGIN
SET @S = @S + SUBSTRING(@LETRA,@N-@I+1,1)
SET @I = @I + 1
END
END
GO
----PROGRAMA PRINCIPAL----
DECLARE @LETRA VARCHAR(100)
DECLARE @N INT
DECLARE @I INT
DECLARE @S VARCHAR(100)
SET @LETRA = 'TE AMO->MI BB YESCENIA S.F
SEMESTRE->2009-II UNAJMA'
SET @N = LEN(@LETRA)
SET @I = 1
SET @S = ''
EXEC dbo.PALABRA_INVERTIDA @N, @I, @LETRA, @S OUTPUT
PRINT 'LA ORACION INCIAL ES: ' + @LETRA
PRINT 'LA ORACION FINAL ES: ' + @S
Diagramas de flujo
PROGRAMA PRINCIPAL
S = ‘’
I=1
F
W
I<=N
S = PALABRA_INVERTIDA(N, I, LETRA)
N = LEN (LETRA)
V
S = S + SUBSTRING (LETRA, N-I+1, 1)
Print: LETRA
Print: S
I=I+1
FIN
RETURN S
FIN
13) Escriba un programa que halle todos los números impares divisibles por N en el
intervalo [1 … 300] y los imprima. Nota -> Solo se tiene q ingresar un número impar
por teclado. Si se ingresa un número par, imprimir en pantalla ‘solo impares’
----PROCEDIMIENTOS Y FUNCIONES----
alter PROCEDURE dbo.IMPARES_DIVISIBLES_X_N
@N INT,
@I INT,
@AUX VARCHAR(100) OUTPUT
AS
BEGIN
IF(@I%@N=0)
BEGIN
IF(@I%2<>0)
BEGIN
SET @AUX = @AUX + CAST(@I AS VARCHAR(100)) + ','
END
END
END
GO
--------PROGRAMA PRINCIPAL---------
DECLARE @N INT
DECLARE @I INT
DECLARE @J INT
DECLARE @AUX VARCHAR(100)
SET @AUX = ''
SET @I = 1
SET @N = 9
IF(@N%2<>0)
BEGIN
WHILE(@I<=300)
BEGIN
EXEC dbo.IMPARES_DIVISIBLES_X_N @N , @I , @AUX OUTPUT
SET @I = @I + 1
END
PRINT @AUX
END
ELSE
BEGIN
PRINT 'SOLO IMPARES'
END
Diagramas de flujo
Programa Principal()
Impares_Divisibles_X_N (N int, I int, Aux String)
INICIO
INICIO
Leer: N
L: Aux
Int : I
V F
IF
I=1 I%N=0
V F
IF
N%2<>0
V IF F
I%2<>0
W
I<=300
Aux = Aux + InToChar(I) + ','
V
Impares_Divisibles_X_N(N,I,Aux)
I = I +1
FIN
Print:AUX
FIN
14) implementar un programa, q le a un número N y que se forme un rombo con
operadores matemáticos y que imprima en pantalla:
----PROCEDIMIENTOS ALMACENADO----
alter PROCEDURE dbo.OPERADORES
@N INT,
@FILA INT
AS
BEGIN
DECLARE @S VARCHAR(100)
DECLARE @I INT
SET @I = 1
SET @S = ''
------CALCULANDO EL ESPACIO------
WHILE(@I<=@N-@FILA)
BEGIN
SET @S = @S + ' '
SET @I = @I + 1
END
SET @I = 1
WHILE(@I<=@FILA)
BEGIN
IF(@FILA%2<>0)
BEGIN
SET @S = @S + '/' + ' '
END
ELSE
BEGIN
SET @S = @S + '-' + ' '
END
SET @I = @I + 1
END
PRINT @S
END
GO
------------------------------
----PROGRAMA PRINCIPAL----
DECLARE @N INT
DECLARE @I INT
DECLARE @S VARCHAR(100)
SET @S = ''
SET @N = 5
SET @I = 1
WHILE(@I<=@N)
BEGIN
EXEC dbo.OPERADORES @N , @I
SET @I = @I + 1
END
SET @I = @N - 1
WHILE(@I>=1)
BEGIN
EXEC dbo.OPERADORES @N , @I
SET @I = @I - 1
END
Operadores(Nint, I int)
Programa Principal()
INICIO
S = String I =int INICIO
I = int
Leer: N
I=1
I=1 F
W
I <= N-Fila
F V
W
I <= N
S=S+‘’
V
I= I+1
Operadores(N, I)
I= I+1
I=1
I =N - 1 F
W
I <= Fila
F W V
I >=1
v V IF
F
Fila%2<>0
Operadores(N, I)
S = S +'+'+'' S = S +'-'+''
'' ''
I= I+1
I= I+1 I= I+1
FIN Print: S
FIN
15) Dado un monto calcular el descuento considerando que por encima de 100 el
descuento es el 10% y por debajo de 100 el descuento es el 2%.
-------FUNCIONES-----
CREATE FUNCTION dbo.DESCUENTO(@MONTO INT)
RETURNS FLOAT
WITH EXECUTE AS CALLER
AS
BEGIN
DECLARE @DESCUENTO FLOAT
IF(@MONTO>100)
BEGIN
SET @DESCUENTO = (@MONTO * 10)/100
END
ELSE
BEGIN
SET @DESCUENTO = (@MONTO * 2)/100
END
RETURN @DESCUENTO
END
GO
-----PROGRAMA PRINCIPAL-----
DECLARE @MONTO INT
DECLARE @DESCUENTO FLOAT
DECLARE @TOTAL FLOAT
SET @MONTO = 110
SET @DESCUENTO = dbo.DESCUENTO(@MONTO)
SET @TOTAL = @MONTO - @DESCUENTO
PRINT 'EL MONTO ES -> ' + CAST(@MONTO AS VARCHAR(10))
PRINT 'EL DESCUENTO ES -> ' + CAST(@DESCUENTO AS VARCHAR(10))
PRINT 'EL MONTO CON EL DESCUENTO ES -> ' + CAST(@TOTAL AS VARCHAR(10))
Diagramas de flujo
V F
IF
Descuento = 0 Monto > 100
Total = 0
Descuento = (Monto * 0.1) Descuento = (Monto * 0.02)
Descuento = DESCUENTO (Monto)
Print: Monto
Print: Descuento
FIN
Print: Total
FIN