LÓGICA PAR E IMPAR

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
druffes
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 31
Registrado em: Sex, 26 Jan 2007 6:23 pm
Localização: Campo Mourão - PR

E aí galera é o seguinte, estou fazendo um curso de Oracle e comecei a ver PL/SQL...
Eu estou tentando montar uma lógica que quando eu lançar um numero ela me diga se ele é par o impar....Mas não estou conseguindo....
vocês poderiam me ajudar....
Desde já agradeço pela ajuda, Obrigado
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Pode usar MOD (que retorna o resto da divisão).
Veja o exemplo:

15/2 = 7 (resto 1) --> significa que 15 é IMPAR.
20/2 = 10 (resto 0) --> significa que 20 é PAR.

Selecionar tudo

SQL> SELECT MOD(15,2) FROM DUAL;

 MOD(15,2)
----------
         1

SQL> SELECT MOD(20,2) FROM DUAL;

 MOD(20,2)
----------
         0

SQL> 
:D
druffes
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 31
Registrado em: Sex, 26 Jan 2007 6:23 pm
Localização: Campo Mourão - PR

Obrigado dr-gori...
Eu estou tentando encaixar o MOD no comando mas não estou acertando a sintaxe....
Estou tenatndo fazer dest forma:

Selecionar tudo

DECLARE
     VA_NUM NUMBER(10):='&NUMERO'
BEGIN
     IF MOD(VA_NUM,2):=------------> MAS AQUI EU ME PERCO....
SE PUDER ME AJUDAR EU AGRDEÇO MUITO....
OBRIGADO....
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Você está se perdendo no := e no =
Olha só:
:= é usado para as variáveis/campo RECEBER valores.
= É usado para comparações.

Outra coisa é o ; que faltou depois de declarar a variável.

Veja seu exemplo (NO SQL*Plus):

Selecionar tudo

SQL> SET SERVEROUTPUT ON
SQL> 
SQL> DECLARE
  2    VA_NUM NUMBER(10):='&NUMERO';
  3  BEGIN
  4    IF MOD(VA_NUM,2) = 1
  5    THEN DBMS_OUTPUT.PUT_LINE('É impar');
  6    ELSE DBMS_OUTPUT.PUT_LINE('É par');
  7    END IF;
  8  END;
  9  /
Enter value for numero: 15
É impar

PL/SQL procedure successfully completed.

SQL> /
Enter value for numero: 20
É par

PL/SQL procedure successfully completed.
:-o


DICA: pra colocar aqui no forum o texto em "verde" como acima, deve-se usar as tags CODE e /CODE (cada uma entre colchetes)
druffes
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 31
Registrado em: Sex, 26 Jan 2007 6:23 pm
Localização: Campo Mourão - PR

Muito Obrigado......
Desde já agradeço pela ajuda......
estava quase conseguindo fazer tinha colocado desta forma:

Selecionar tudo

 DECLARE
    VA_NUM NUMBER(10):='&NUMERO';
 BEGIN
    IF MOD(VA_NUM,2)=0 THEN
    DBMS_OUTPUT.PUT_LINE(' É NUMERO PAR');
    ELSE
    DBMS_OUTPUT.PUT_LINE(' É NUMERO ÍMPAR');
    END IF;
 END;

Parabens pelo seu trabalho....
vivi_barreto
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 3
Registrado em: Ter, 27 Mar 2007 9:16 pm
Localização: Rio de Janeiro

Olá..

Estava olhando esse scripts..

Muito show dr_gori...você é bom mesmo@!!!!

Parabens!!!

Vlw
Avatar do usuário
Toad
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 253
Registrado em: Sex, 18 Nov 2005 2:14 pm
Localização: Seattle, WA
Contato:
Matheus Gonçalves
matheus.dev
twitter.com/developer__c

Sempre disposto a ajudar.
E com idéias ótimas!
Parabéns!
Responder
  • Informação