domingo, 8 de outubro de 2017

String Par ou String Ímpar

Dizer que uma determinada String é par ou é ímpar soa bastante estranho, mas essa ideia me ocorreu ao lembrar da cantora Ana Carolina, já que ela possui essa "mania" de classificar palavras, nomes, ou mesmo frases inteiras como sendo "par" ou "ímpar".

Eu até consegui encontrar dois vídeos no YouTube comprovando o fato. Um deles é um trecho de uma entrevista no programa Estrelas, da Angélica. Outro, um trecho de uma entrevista no programa do Jô Soares.
A propósito, Ana Carolina é ímpar!

Então, pensei: powershell pode nos ajudar a informar se uma determinada palavra é par ou é ímpar.

Para tanto, vamos precisar identificar:
  1. Quantas letras tem uma determinada palavra: isso é bastante fácil porque o powershell já tem a propriedade length na classe String.
  2. Se um número é par ou ímpar: também é fácil, verificando o resto da divisão do número por 2. Se o resto for zero, o número é par, senão é ímpar.

A implementação é bastante simples, porém divertida.
Inicialmente, vamos criar uma função, que recebe como parâmetro uma String e retorna se ela é par ou é ímpar.
Function StrPoI([string]$str) {
    if (($str.Length % 2) -eq 0) {
        return "PAR"
    }
    else { return "ÍMPAR" }
}

Vamos criar um array para armazenar as palavras (ou frases) que desejamos que o powershell verifique.
$palavras = @("Futebol","Jogador","Música","PowerShell","Oftalmologista",`
"Inconstitucional","Paralelepípedos", "Ana Carolina")

Na sequência, usamos ForEach para percorrer cada palavra do array e chamar a função StrPoI que retorna se é par ou se é ímpar. Observação: os espaços em branco não são levados em consideração, somente as letras, por isso o replace.
ForEach ($palavra in $palavras) {
    $r = StrPoI($palavra -replace (' ',''))
    Write-Host -ForegroundColor Cyan $palavra" - " -NoNewline
    Write-Host -ForegroundColor Yellow $r
}

Ao executarmos o script, o resultado é seguinte.

Nenhum comentário:

Postar um comentário