jueves, 17 de noviembre de 2011

viernes, 11 de noviembre de 2011

Calculadoras

CALCULADORA EN JAVASCRIPT

CALCULADORA NORMAL

Número 1 Número 2
SUMA RESTA MULTIPLICACIÓN DIVISIÓN
Num1 % de Num2 Num1^Num2 Max(num1,num2) Min(num1,num2)

CALCULADORA CIENTÍFICA

Número
ABS(num) Seno(num) Cos(num) Tan(num)
Raiz(num) ArcoSeno(num) ArcoCos(num) ArcoTan(num)

jueves, 10 de noviembre de 2011

primer package calculadora

create or replace package pkgCalculadora is
function suma(p1 number, p2 number) return number;
function resta(p1 number, p2 number) return number;
function multiplica(p1 number, p2 number) return number;
function divide(p1 number, p2 number) return number;
function numeroFactorial(p1 number) return number;
function exponenteAlCuadrado(p1 number) return number;
function exponenteAlcubo(p1 number) return number;
end pkgCalculadora;
create or replace package body pkgCalculadora is
procedure imprime (pvalor number) is
begin dbms_output.put_line('Resultado: ' pvalor);
end imprime;
function suma(p1 number, p2 number) return number is
Begin imprime(p1+p2); return p1+p2;
End suma;
function resta(p1 number, p2 number) return number is
Begin imprime(p1-p2); return p1-p2;
End resta;
function multiplica(p1 number, p2 number) return number is
Begin imprime(p1*p2); return p1*p2;
End multiplica;
function divide(p1 number, p2 number) return number is
Begin imprime(p1/p2); return p1/p2;
EXCEPTION when Zero_divide then dbms_output.put_line ('Error !! Division por Cero');
End divide;
function numeroFactorial(p1 number) return number is
beginres =i;
for(i=1;i<=p1;i++);
res =res*i;
return res;
end numeroFactorial;
function exponenteAlCuadrado(p1 number) return number is
Begin imprime(p1*p1); return p1*p1;
End multiplica;
function exponenteAlcubo(p1 number) return number is
Begin imprime(p1*p1*p1); return p1*p1*p1;
End multiplica;
end pkgCalculadora;
declare r number(10);begin r := pkgCalculadora.suma(2, 3);
end;

que son los packages

Un package (paquete) es una estructura que agrupa objetos compilados(procedimientos, funciones, variables, etc.) en la base de datos.
Generalmente se utiliza para agrupar objetos del mismo proceso de negocio o cuyos objetivos estén relacionados
 
Un package tiene dos partes:
Especificación(encabezado): Se declaran los objetos (procedimientos, funciones, variables, etc.) que son de uso público. Sólo es declaración, no contiene código.
Cuerpo(contenido): Contiene el código de los objetos declarados en la especificación. También se declaran y contienen los objetos (procedimientos, funciones, variables, etc.) que son de uso privado

trigger resuelto segunda solemne

create or replace trigger trCuentaBancaria
after insert on giro
for each row
declare
vsaldoCuenta cuenta.saldo%type;
vsaldoLinea lineaCredito.saldo%type;
vIdLineaCredito lineaCredito.idLinea%type;
vLineaUsada integer;
begin
select saldo into vsaldoCuenta
where idCuenta = :new.idCuenta;
select saldo, idLinea into vsaldoLinea, vIdLineaCredito
from lineaCredito
where idCuenta = :new.idCuenta;
if :new.monto> vsaldoCuenta + vsaldoLinea then
dbms_output.put_line('Error No hay saldo suficiente disponible');
else if :new.monto <= vsaldoCuenta then
update cuenta
set Saldo = saldo - :new.monto
where idCuenta = :new.idCuenta;
else update cuenta
set Saldo = 0
where idCuenta = :new.idCuenta;
update lineaCredito
set saldo = saldo - vLineaUsada
where idCuenta = :new.idCuenta; vlineaUsada = vSaldoCuenta-vSaldoLinea;
insert into UsoLinea values(seqUsoLinea.nextval,vIdLineaCredito,sysdate,vlineausada)
end if;
end if;
end;