Contar vogais
Exercício de lógica de programação para contar a quantidade de vogais de uma string.
Exercício de lógica de programação
Faça um programa que descubra a quantidade de vogais de uma determinada string.
Linguagem C
Abaixo nosso código inicial escrito em C, utilize ele para resolver o problema.
#include <stdio.h>
#include <assert.h>
//
// Função para contar quantidade de vogais de determinada string
//
int contarVogais(char palavra[]) {
// Aqui entra a lógica do programa.
}
//
// Testes
//
int main() {
char palavra[] = "abecedario";
assert(6 == contarVogais(palavra));
return 0;
}
Solução na linguagem C
Em C temos que perguntar se determinado caracter está contido dentro do vetor pesquisado. Fazemos isso, com um aninhamento de laços de repetição, ou melhor, com um laço dentro de outro.
O código de solução (mostrado abaixo) se parece em muito com o código do problema de vetor com valores repetidos.
#include <stdio.h>
#include <assert.h>
//
// Função para contar quantidade de vogais de determinada string
//
int contarVogais(char palavra[]) {
char vogais[] = "aeiouAEIOU";
int numVogais = 0, i, j;
for (i = 0; palavra[i] != '\0'; i++) {
for (j = 0; vogais[j] != '\0'; j++) {
if (vogais[j] == palavra[i]) {
numVogais++;
break;
}
}
}
return numVogais;
}
//
// Testes
//
int main() {
char palavra[] = "abecedario";
assert(6 == contarVogais(palavra));
return 0;
}
Fonte: http://www.ime.usp.br/~pf/algoritmos/aulas/string.html
Linguagem Python
Abaixo nosso código inicial escrito em Python, utilize ele para resolver o problema.
# -*- coding: utf-8 -*-
# Função que descobre a quantidade de vogais
# de uma determinada string
def contarVogais():
pass
#
# Teste
#
palavra = "abecedario";
assert 6 == contarVogais(palavra)
Solução na linguagem Python
Brincando no terminal, podemos fazer uso do operador in
e confirmamos o seguinte…
>>> vogais = "aeiou"
>>> "a" in vogais
True
>>> "b" in vogais
False
>>> "c" in vogais
False
E a solução não demora para chegar…
# -*- coding: utf-8 -*-
# Função que descobre a quantidade de vogais
# de uma determinada string
def contarVogais(palavra):
vogais = "aeiou"
totalVogal = 0
for letra in palavra:
if letra in vogais:
totalVogal += 1
return totalVogal
#
# Teste
#
palavra = "abecedario";
assert 6 == contarVogais(palavra)
Estendendo a solução
Nessa mesma linha de raciocínio, podemos estender nossa solução para contar, além da vogais, as consoantes.
A solução seria algo algo parecido com isto….
if letra in vogais:
print "Vogal"
elif letra.isalpha():
print "Consoante"
else:
print "Não é uma letra"
Linguagem JavaScript
Abaixo nosso código inicial escrito em JavaScript, utilize ele para resolver o problema.
var assert = require('assert');
var contarVogais = function(palavra) {
}
//
// Seu teste
//
try {
assert.equal(6, contarVogais("abecedario"));
} catch(e) {
console.log(e);
}
Solução na linguagem JavaScript
var assert = require('assert');
var contarVogais = function(palavra) {
var totalVogal = 0;
var vogais = ['a', 'e', 'i', 'o', 'u'];
var i;
for (i = 0; i < palavra.length; i++ ) {
if(vogais.indexOf(palavra[i]) != -1) {
totalVogal++;
}
}
return totalVogal;
}
//
// Seu teste
//
try {
assert.equal(6, contarVogais("abecedario"));
} catch(e) {
console.log(e);
}