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);
}