Ir ao conteúdo
  • Cadastre-se

Ajuda para terminar exercício ordem alfabetica


Visitante
Ir à solução Resolvido por Visitante,

Posts recomendados

Boa noite, meu professor passou um exercício para colocar em ordem alfabética, até ai eu sei fazer. Só não entendi muito bem como fazer a segunda parte do exercício onde devo colocar o contador para contar os nomes equivalentes a cada letra do alfabeto. Sera que alguém poderia me ajudar? Segue o enunciado do exercício:

 

Receba 30 nomes e coloque-os em ordem alfabética. Depois escreva quantos nomes começam com a letra A, quantos com a Letra B e assim até Z. É possível que haja letras sem nenhum nome. Obs.: Nome [1] ( obtém a primeira letra do nome).

 

A parte que eu fiz:

var      N: vetor [1..30] de caracter      i, j: inteiro      x: caracterinicio         para i de 1 ate 30 passo 1 faca                escreva ("Digite o nome: ")                leia (N[i])         fimpara         para i de 1 ate 29 passo 1 faca                para j de i+1 ate 30 passo 1 faca                      se (N[i] > N[j]) então                          x <- N[i]                           N[i]<-N[j]                           N[j]<-x                      fimse               fimpara          fimpara
Link para o comentário
Compartilhar em outros sites

Olá @Angélica Araujo

 

 

Logo após aquela leitura, você faria algo do tipo:

var   L: vetor [65..91] de inteiro...para i de 1 ate 30 passo 1 faca   escreva ("Digite o nome: ")   leia (N[i])   se Compr(N[i]) > 0 então      v <- Asc(Maiusc(N[i]))      se (v >= 65) e (v <= 91) então         L[v] <- L[v] + 1      fimse   fimsefimpara...

O VisuAlg deve ter algum bug, já que não consegui endereçar a primeira letra conforme a dica dada no enunciado. Deu um erro esquisito. Em Pascal funcionaria normalmente...

 

 

Ao final, após exibir os nomes em ordem alfabética, você vai fazer um laço de 65 até 91 e ir testando se naquela posição o valor é maior que 0. Se for, é porque a letra em questão foi contada. Basta exibi-la com a função Carac e depois mostrar o conteúdo de L naquela posição.

 

Sobre as funções:

 

Compr - para saber o tamanho da string;

Maiusc - para converter as letras para maiúsculo;

Asc - para retornar o valor ASCII da primeira letra.

 

65 a 91 = A até Z (o valor ASCII de cada letra)

 

 

Como vi que você desenrolou bem essa primeira parte, creio que não terá dificuldades agora para complementar o seu programa.

 

 

[ ]'s

Link para o comentário
Compartilhar em outros sites

  • Solução

Olá @Angélica Araujo

 

 

Logo após aquela leitura, você faria algo do tipo:

var   L: vetor [65..91] de inteiro...para i de 1 ate 30 passo 1 faca   escreva ("Digite o nome: ")   leia (N[i])   se Compr(N[i]) > 0 então      v <- Asc(Maiusc(N[i]))      se (v >= 65) e (v <= 91) então         L[v] <- L[v] + 1      fimse   fimsefimpara...

O VisuAlg deve ter algum bug, já que não consegui endereçar a primeira letra conforme a dica dada no enunciado. Deu um erro esquisito. Em Pascal funcionaria normalmente...

 

 

Ao final, após exibir os nomes em ordem alfabética, você vai fazer um laço de 65 até 91 e ir testando se naquela posição o valor é maior que 0. Se for, é porque a letra em questão foi contada. Basta exibi-la com a função Carac e depois mostrar o conteúdo de L naquela posição.

 

Sobre as funções:

 

Compr - para saber o tamanho da string;

Maiusc - para converter as letras para maiúsculo;

Asc - para retornar o valor ASCII da primeira letra.

 

65 a 91 = A até Z (o valor ASCII de cada letra)

 

 

Como vi que você desenrolou bem essa primeira parte, creio que não terá dificuldades agora para complementar o seu programa.

 

 

[ ]'s

 

Olá, nossa, compreendi a lógica. Muito obrigada por sua ajuda. De verdade.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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...