Você está na página 1de 2

Algoritmo

declara variaveis globais // nesse exercicio usei variaveis globais


principal () {
declara variaveis locais
arrayTotalVogaisEnvolvidas deve ser do mesmo tamanho da variavel palavra
e cada indice desse array deve ser inicilizado com 0
palavra = string de X posicoes
le palavra;
/* faz um laço até o total de caracteres informados */
para (i = 0; i < tamanho(palavra); i ++) {
letraAtualEhUmaVogal=testaSeLetraEhUmaVogal(i)
verificaFaixa[i]; //chama a rotina que verifica se é vogal, consoa
nte e faz as contas conforme a faixa que se enquadra
resultado = resultado + indice ; //indice da letra na fai
xa de caracteres da palvra (indice deve ser iniciando com 1 e nao com zero)
//se a letra anterior era vogal e a atual tbm é, incrementa o cont
ador de vogais juntas. No ex da palvra manteigueira há 3 repeticoes de vogais
if ((letraAnteriorEraVogal == 1) e (letraAtualEhUmaVogal == 1))
{
quantidadeDeJuncaodeVogais++;
}
//a letra verificada nesse laço se torna recebe o valor da variáve
l letraAtualEhUmaVogal
letraAnteriorEraVogal = letraAtualEhUmaVogal;
// caso a letra atual for uma vogal, entao calcula o total de v
ogais envolvidas nas repeticoes encontradas.
//testa se a letra anterior e a proxima letra sao vogais. se um
a delas forem vogais entao atribui 1 ao indice do array auxiliar
//ccorrespondente a essa letra
//No exemplo da palavra manteigueira ha 5 vogais envolvidas.
//no array. a soma de todos os valores contidos nesse array cor
responde a variavel n do exercicio proposto.*/
se (letraAtualEhUmaVogal == 1) {
se ((i > 0) && (i < tamanho(palavra))) {
se ((testaSeLetraEhUmaVogal(palavra[i-1]) == 1) || (testaSeLetraEh
UmaVogal(palavra[i+1]))) {
arrayTotalVogaisEnvolvidas[i]=1;
} senao se (i == 0) {
se ((testaSeLetraEhUmaVogal(palavra[i+1]) == 1)) {
arrayTotalVogaisEnvolvidas[i]=1;
}
} senao se (i == strlen(palavra)-1 ) {
se ((testaSeLetraEhUmaVogal(palavra[i-1]) == 1)) {
arrayTotalVogaisEnvolvidas[i]=1;
}
}
}
}
}
//calcula o valor de n
para (i=0;i < tamanho(palavra); i++) {
n = n + arrayTotalVogaisEnvolvidas[i];
}
resultadoAcumulado = resultado + (quantidadeDeJuncaodeVogais * n);
escreva("Resultado da formula: %d",resultadoAcumulado);
}

testaSeLetraEhUmaVogal ( letra ) {
//se a letra estiver na faixa de vogais, entao é vogal e retorna 1
, senao retorna 0
se (letra == 'a' ou letra == 'e' ou letra == 'i' ou letra == 'o' ou
letra == 'u') {
retorna 1;
} senao {
retorna 0;
}
}
verificaFaixa( letra ) {
//varre todas as faixas propostas pelo desafio, acumulando o valor da faixa na v
ariavel resultado
se (letra == 'A' ou letra == 'B' ou letra == 'C' ou letra == 'D' ou letra == 'E'
) {
resultado = resultado + 1;
} senão se(letra == 'F' ou letra == 'G' ou letra == 'H' ou letra == 'I' ou letra
== 'J') {
resultado = resultado + 2;
} senão se(letra == 'K' ou letra=='L' ou letra=='M' ou letra=='N' ou letra=='O')
{
resultado =resultado + 3;
} senão se(letra == 'P' ou letra == 'Q' ou letra == 'R' ou letra == 'S' ou letra
== 'T') {
resultado = resultado + 4;
} senão se(letra == 'U' ou letra == 'V' ou letra == 'X' ou letra == 'W' ou letra
== 'Y' ou letra == 'Z') {
resultado = resultado + 5;
} senao {
//letra invalida
}
}
obs: o valor 3 na formula do exercicio proposto foi trocado nesse algoritmo pelo
total de repeticoes de vogais
(que no caso da palavra manteigueira é 3, "ei", "ue" e "ei').
na palavra areia, o valor ha duas repeticoes ("ei" e "ia")

Você também pode gostar