Duvida caractere

1. Duvida caractere

Gustavo
sabing

(usa Ubuntu)

Enviado em 28/04/2011 - 00:38h

Como faço para o meu algoritmo validar se a pessoa digitou numero ou caractere?

Program somado ;
var
n1:real;
n2:real;
n3:real;
Begin
write('Digite o primeiro numero = ');
read(n1);
write('Digite o segundo numero = ');
read(n2);
n3:=n1+n2;
if n3 <> (real) then // estou perdido aqui, ele tem que validar se é numero ou letra ou simbolo caso for, abrir uma messagem de erro senao faz a soma
write('Erro') // aqui também
else
write('Valor somado = ',n3);

End.

ainda estou com duvida

program somado;

var
erro:integer;
n1, n2, n3:real;
e1, e2 : boolean;
IOResult:integer;

Begin
e1 := false; //Inicialização das Variável
e2 := false; //Inicialização das Variável

write('Digite o primeiro numero = ');

{$I-} //desliga checagem de valores
read(n1);
{$I+} //liga checagem de valores

erro:= IOResult; // a variavel IOResult está declarada como inteiro porém nao exibe a msg de erro avisando o usuario
if (erro <> 0) then
begin
writeln('Nao foi digitado um numero');
n1 := 0; //Zera a variável
e1 := true;
end;

write('Digite o segundo numero = ');

{$I-} //desliga checagem de valores
read(n2);
{$I+} //liga checagem de valores

erro:= IOResult;
if (erro <> 0) then
begin
writeln('Nao foi digitado um numero');
n2 := 0; //Zera a variável
e2 := true;
end;

n3 := n1 + n2;

if (e1 = true) or (e2 = true) then
writeln('Erro')
else
writeln('Valor somado = ',n3:2:2);
End.


  


2. Re: Duvida caractere

Denis Wilson de Souza Oliveira
denis.oliveir

(usa Ubuntu)

Enviado em 28/04/2011 - 02:01h

Faz muito tempo que não uso Pascal mas a resposta é simples, você irá desabilitar a checagem de Input senão irá gerar um erro de execução, fica dessa maneira:

program somado;

var
erro : integer;
n1, n2, n3 : real;
e1, e2 : boolean;

Begin
e1 := false; //Inicialização das Variável
e2 := false; //Inicialização das Variável

write('Digite o primeiro numero = ');

{$I-} //desliga checagem de valores
read(n1);
{$I+} //liga checagem de valores

erro:= IOResult;
if (erro <> 0) then
begin
writeln('Nao foi digitado um numero');
n1 := 0; //Zera a variável
e1 := true;
end;

write('Digite o segundo numero = ');

{$I-} //desliga checagem de valores
read(n2);
{$I+} //liga checagem de valores

erro:= IOResult;
if (erro <> 0) then
begin
writeln('Nao foi digitado um numero');
n2 := 0; //Zera a variável
e2 := true;
end;

n3 := n1 + n2;

if (e1 = true) or (e2 = true) then
writeln('Erro')
else
writeln('Valor somado = ',n3:2:2);
End.

Foi zerada as variáveis pois dependendo de cada compilador pode agir de uma maneira.
Espero ter ajudado.


3. Re: Duvida caractere

Denis Wilson de Souza Oliveira
denis.oliveir

(usa Ubuntu)

Enviado em 04/05/2011 - 02:14h

IOResult não é uma variável a ser declarada ela é uma constante interna da linguagem que informa o estado e erros gerados em execução. Uma pergunta que compilador está utilizando?


4. pascalzim

Gustavo
sabing

(usa Ubuntu)

Enviado em 04/05/2011 - 11:57h

estou usando o pascalzim


5. Re: Duvida caractere

Denis Wilson de Souza Oliveira
denis.oliveir

(usa Ubuntu)

Enviado em 04/05/2011 - 22:19h

Seria melhor você utilizar o freepascal pois é um compilador nativo para linux e se quiser uma dica utiliza o geany como ide é uma boa opção. O PascalZim não implementa toda a linguagem, e não utiliza muitos recursos que o freepascal ou até mesmo compiladores antigos utilizam.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts