esquiloesper...
Cyber Highlander
Moderador
7.1K Mensagens
2.2K Curtidas
Bom, pelo que deu a entender, você pretende começar a sequência a partir de "1" e indo até o número "26".
Existem diversas formas de fazer. Inclusive da maneira que você descreveu pela criação de um vetor 'Array' não há problema algum.
- Mas eu prefiro utilizar o próprio identificador de cada letra para este fim:
Dado que cada letra já possui um número universal em ASCII para a sua identificação que já seguem uma ordem sequencial, você só precisa utilizar estes valores subtraindo o excedente de forma que na letra "A" seja obtido o número "1".
Aqui está a tabela ASCII universal: http://www.asciitable.com/
Observe que a letra "A" = 65, mas a letra "a" = 97. Daí a necessidade de converter as letras inseridas para um padrão comum em maiúsculas ou minúsculas: Você decide. Feito isto basta subtrair 64 ou 96 do valor obtido para obter os índices [1..26].
Daí o restante fica mais fácil:
[LIST=1]
- Armazenar a palavra ou frase digitada numa variável qualquer
- Converter o valor recebido para maiúsculas ou minúsculas
- Criar a variável "soma = 0"
- Percorrer a entrada letra por letra (loop) usando o tipo "char"
- Extrair (64 ou 96) de cada letra para obter valores entre 1 e 26
- Somar cada valor usando a variável 'soma'
- Imprimir a 'soma'
[/LIST]
OBS: Para obter o valor numérico de um caractere basta fazer assim:
ver Wiki (dica) = http://pt.wikibooks.org/wiki/Programar_em_C++/Entrada_e_saída_de_dados#Lendo_um_caractere
[CODE='C++']
#include
using namespace std;
int main(int, char **)
{
char c = 'a'; // Aqui representa cada letra do Loop
char ascChar = toupper(c); // "a" => "A"
int x = ascChar - 64; // 65 - 64 = 1
... // Continue a codificar já usando x = [1..26]
}
[/CODE]
Navegar é preciso, viver... também. 
tpcvasco
General de Pijama
Registrado
2.9K Mensagens
330 Curtidas
int valor = letra - 'A' + 1;
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
Amapoet
Novo Membro
Registrado
5 Mensagens
1 Curtida
Obrigada! Após ver a sua ideia e algumas outras pesquisando, acabei chegando a fazer com switch case. Ficou mais ou menos algo como
[CODE='C++']
[...]
case 'a': cout << 1 << endl; break;
[/CODE]
Sendo que o switch estava dentro de um for controlado por uma variável de controle (no max 200 palavras, por exemplo) 
A parte de somar que seria o fim do exercício fiz meio que uma gambiarra que espero que seja aceita rsrs
Criei uma variárel que soma a cada caso encontrado, o único problema é que tenho que colocar o código dentro do switch e do for ( no fim ) e por isso a "soma" fica sempre atualizando a cada linha de código. Para isso ficar menos confuso utilizei alguns couts e espero que dê tudo certo assim xD. O resultado na tela fica mais ou menos como
Usuário digita ab
numero correspondente a A: 1
soma até agora: 1
número correspondente a B: 2
soma até agora: 3
Será que, apenas a nível de curiosidade, eu tenho como restringir essa soma para aparecer apenas no fim? O problema é que como fiz com switch depois que ele entra nos casos ele não mostra mais nada fora disso.
Mas obrigada pela ajuda !!
esquiloesper...
Cyber Highlander
Moderador
7.1K Mensagens
2.2K Curtidas
- Toda solução é uma solução potencial. E com a sua solução não é diferente.
Existem maneiras mais econômicas de fazer? - Claro que sim. Mas isto se aprende com tempo.
Ah, e para não exibir a soma a cada passo basta retirar a exibição para fora do loop (for); Exibindo somente depois de concluída toda a varredura.
Navegar é preciso, viver... também. 
Amapoet
Novo Membro
Registrado
5 Mensagens
1 Curtida
Obg, espero evoluir com o tempo xD
Exatamente, fiz isso porém ele não mostra nada depois do loop
esquiloesper...
Cyber Highlander
Moderador
7.1K Mensagens
2.2K Curtidas
Confira a questão do escopo: - É que muito provavelmente você criou a variável 'soma' dentro do loop; Para ter visibilidade fora dele é preciso ter sido criada fora dele também.
Navegar é preciso, viver... também. 
Amapoet
Novo Membro
Registrado
5 Mensagens
1 Curtida
O problema, descobri, está no loop mesmo, pois botei uma variável de controle que só passa para o próximo passo se o usuário digitar mais de 200 letras (queria deixar um limite alto), posso diminuir e daria certo, porém não queria limitar o número de letras que o usuário digita.
esquiloesper...
Cyber Highlander
Moderador
7.1K Mensagens
2.2K Curtidas
Está no caminho certo. E o primeiro passo já foi dado.
Estude o seu código, refaça o algoritmo e descobrirá novas maneiras de alcançar o seu objetivo.
- Tudo isto faz parte do aprendizado.
Navegar é preciso, viver... também. 
Amapoet
Novo Membro
Registrado
5 Mensagens
1 Curtida
Obg, farei isso. Meu problema principal foi resolvido