Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
T_F

Pascal Questão de pascal comando if e case.

Recommended Posts

Olá tudo bem,poderia me ajudar a escrever um código em pascal aqui? Sou iniciante e estou com uma dúvida na seguinte questão:

Faça um algoritmo que receba um caractere qualquer do teclado e mostre as seguintes mensagens: *se* for uma letra do alfabeto, a mensagem mostrada deverá ser : 'esse caractere e uma letra do alfabeto', *caso* seja um número ela deverá ser: 'esse caractere e um número', e *caso* seja outro caractere,deverá aparecer essa outra essa outra mensagem: 'esse caractere e um outro caractere qualquer'. Esse algoritmo também deve mostrar o caractere digitado dessa maneira: O caractere digitado foi: CARACTERE'.
EU estou tendo dúvida no no *se*,mas o *case* eu sei,como eu consigo colocar a decisão se no tipo char? Pode passar o código pra mim ou dar uma explicação? Eu fiz assim,está certo?:

program caracteres;
var caracter: char;

begin
WriteLn('Digite um caractere qualqier no teclado');
ReadLn(caracter);
if caracter = 'a..z' then
begin
WriteLn('esse caractere e uma letra do alfabeto');
end
else if caracter <> 'a..z' then
begin
WriteLn('nao e uma letra do alfabeto');
end;
readln;
end.

Não está dando certo pois toda vez que dou Run e digito qualquer letra o compilador somente entende como 'não e uma letra do alfabeto' me ajudem.

Editado por Simon Viegas
Olá! Favor ler tópico e seguir orientações sobre POSTAGEM DE CÓDIGOS: http://www.clubedohardware.com.br/announcement/27-poste-seus-c%C3%B3digos-corretamente/
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@T_F   você pode pegar o valor acii do caractere e verificar se é letra ou número :

se o valor for de 65 até 90 é letra maiúscula e

se o valor for de 97 até 122 é letra minúscula e 

if ((a>64) and (a<91) or ((a>96) and (a<123))) then
begin
    WriteLn('esse caractere e uma letra do alfabeto');
end

se o valor for de 48 até 57 é número e

se for outro valor então é um caractere qualquer ,  e para pegar esse código ascii do caractere pode ser assim :

caractere : char;
a : integer;
a := ord(caractere);

e mude essa variável  com nome caracter para caractere para não dar erro 

Editado por devair1010

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

 

17 horas atrás, T_F disse:

if caracter = 'a..z' then

Nesse caso está comparando como um conjunto de caracteres "a...z", seria uma string. Assim como é "Maria".

 

Além dos conceitos apresentados por @devair1010, seria possível também usar o operador in. Ex.:

if (caracter in ['a'..'z']) or ((caracter in ['A'..'Z'])) then

ou

if (UpCase(caracter) in ['A'..'Z']) then

ou

if (caracter in ['a'..'z','A'..'Z']) then

 

Para os caracteres que representam o números, idem.

 

Obs. 1: o ".." serve para definir uma faixa e a "," serve para enumerar as opções, ou seja, se fosse, por exemplo, vogais, poderia enumerar uma a uma (pois elas não estão em sequência na tabela ASCII).

 

Obs. 2: Não é possível utilizar a sequência de minúsculos e maiúsculos de uma vez só pois elas também não estão em sequência, exista outros caracteres entre um e o outro. Se estivessem, seria algo como:

if (caracter in ['A'..'z']) then

Mas lembrando: não serve para o seu caso.

 

 

No aguardo.

 

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×