Ir ao conteúdo

Posts recomendados

Postado

Ola estou tem um pouco de problemas com meu algoritmo no delphi,se alguém puder me ajudar,agradeço.

Meu problema é o seguinte,tenho um exerco para fazer e to encontrando problemas,quando eu compilo meu codigo ele não mostra a frase 'ACESSO NEGADO' mesmo eu errando propozitalmente,tipo ele fica preso no acesso permitido,acho q é a forma com q eu atribuir o valor a vriavel senha.se alguem poder ajudar.

 

 

<var login:string;
     senha:integer;
     prepara:string;
begin
    Writeln('LOGIN:');
    Readln(login);
    Writeln('SENHA:');
    readln(senha);
    login:= prepara;
    senha:= (123456789);
        if (login = prepara) and (senha = 123456789) then
        Writeln('ACESSO PERMITIDO')>
        else
           begin
          Writeln('ACESSO NEGADO');
          end;
          readln;


end.>
 

  • Amei 1
Postado

acredito que a variável do tipo integer só vá até 32 768.

longint vai até 2 147 483 647.

Corrigindo isso e outro erros de sintaxe:

var login:string;
     senha: longint;
   
begin
    Writeln('LOGIN:');
    Readln(login);
    Writeln('SENHA:');
    readln(senha);
    
    if (login = 'prepara') and (senha = 123456789) then
    Writeln('ACESSO PERMITIDO')
    else  Writeln('ACESSO NEGADO');
    readln;


end.

 

  • Obrigado 1
Postado
Em 14/10/2019 às 16:29, Flávio Pedroza disse:

acredito que a variável do tipo integer só vá até 32 768.

longint vai até 2 147 483 647.

Corrigindo isso e outro erros de sintaxe:

var login:string;
     senha: longint;
   
begin
    Writeln('LOGIN:');
    Readln(login);
    Writeln('SENHA:');
    readln(senha);
    
    if (login = 'prepara') and (senha = 123456789) then
    Writeln('ACESSO PERMITIDO')
    else  Writeln('ACESSO NEGADO');
    readln;


end.

 

integer vai de -2.147.483.647 até +2.147.483.647...

 

você não inicializou a variável "prepara" e está passando ela pro login, e depois, está praticamente verificando se ela é igual a ela mesma...

 

   login:= prepara;

    senha:= (123456789);

    if (login = prepara) and (senha = 123456789) then

após inicializar a variável:

 var login:string;
     senha:integer;
     prepara:string;
begin
    login := 'admin';

    Writeln('LOGIN:');
    Readln(prepara);
    Writeln('SENHA:');
    readln(senha);
        if (login = prepara) and (senha = 123456789) then
        Writeln('ACESSO PERMITIDO')
        else
        Writeln('ACESSO NEGADO');


    readln;
end.

 

 

 

 

  • Curtir 1
Postado

@KXSY  não gosto de engessar meus códigos, mas concordo que nessas situações de aprendizável é preferível.

Quando olhei para a senha, pensei na possibilidade de não tratar como password e sim como um acesso ao usar, por exemplo, um CPF que 9 números são suficientes, assim, nessa situação, cada senha eu gastaria 4 bytes para armazenar, enquanto que usando 16 caracteres eu gastaria, no mínimo, daquela forma, 16 byts. Logo, por esse prisma, eu diminuiria não só em 4x o espaço necessário para armazenar mas também o processamento no momento de utilizar milhares de registros...

 

Postado
21 horas atrás, KXSY disse:

Agora digamos que você está escrevendo um programa para pessoas que nunca usaram um computador, a pessoa vai lá e coloca o CPF 08784666-42, então só por causa de uma meia riscada ("-" sinal de subtração) a pessoa receberia uma mensagem de erro (ou algo semelhante).

 

Então resumindo, cabe ao programador prever o usuário e não o contrario.

  @KXSY O objetivo desse fórum acredito que não é fazer o tema de casa, dessa forma, é evidente a necessidade de tratar as exceções, inclusive, em seu código, veja que você obriga o usuário a digitar a primeira letra maiúscula no exemplo de 'Jonas':

 

21 horas atrás, KXSY disse:

 

function Loga(const usr,reg:TDados):boolean;
begin
    if (usr.nome=reg.nome)AND(login.senha=reg.senha) then
        loga:=TRUE
    else
        loga:=FALSE;
end;

 

 

 

21 horas atrás, KXSY disse:

(10*1000)+(16*1000)=26000bytes ou 0,026Mbs uma quantia irrisória para os dias de hoje.

cuidado com a nomenclatura, subentende-se Mb como megabits e MB como megabytes.

 

criar um aplicativo para dezenas de pessoas é totalmente diferente de um para milhões, não precisa ir muito longe, facilmente, encontra-se um android com a memória interna cheia... trocar de hardware? é uma opção!

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!