Ir para conteúdo
Fórum Script Brasil
  • 0

Desafio básico | extração


Thiago André Cardoso

Pergunta

Bom dia lindos programadores. 😍

O usuário irá digitar um número com 5 dígitos. Ex: 12578
O algoritmo deve extrair os números impares e imprimir apenas os pares digitados. 
Caso não seja digitado nenhum par, mostrar a mensagem "nenhum par encontrado". 


 

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Nossa, achei que não fosse conseguir fazer... eu já tinha estudado sobre concatenaçao e manipulaçao de strings mas, ainda não tinha praticado ou resolvido nenhum exercicio utilizando isso...

Gostaria de ver a soluçao do autor do tópico para esse problema.

// Algoritmo criado para o desafio do forum Script Brasil.
// O usuario deve digitar um numero inteiro de 5 digitos. O algoritmo devera
// verificar se esse numero contem algum numero impar e, se houver, devera
// extrair esse(s) numero(s), deixando apenas os numeros pares para serem
// exibidos na tela. Caso não tenha nenhum numero par, devera ser exibida apenas
// a menssagem: "Nenhum Par Encontrado!".
// Algoritmo criado por ThiagoD.

algoritmo "Extraia_Os_Pares"
var
   num,result : CARACTERE
   a : INTEIRO
inicio
   REPITA
      REPITA             // Esse bloco se repetira ate que o usuario digite...
         LIMPATELA       // um numero valido.
         ESCREVA(" Digite um Número Inteiro com 5 Digitos: ")
         LEIA(num)
         SE não(COMPR(num)=5) então
            ESCREVAL(" Número Inválido!")
            LEIA(num)
         FIMSE
      ATE(COMPR(num)=5)
      result:=""
      PARA a:=1 ATE 5 FACA                 // Aqui, vamos verificar cada numero.
         SE (ASC(COPIA(num,a,1))%2=0)então // Cada numero par que for encontrado...
            result:=result+COPIA(num,a,1)  // sera concatenado a variavel 'result'
         FIMSE
      FIMPARA
      SE não(result="") então              // Se verdadeiro, vamos imprimir a...
         ESCREVA(" Resultado: ",result)    // variavel 'result' na tela.
         LEIA(num)                         // Se não, uma menssagem sera exibida.
      SENAO
         ESCREVA(" Nenhum Par Encontrado! ")
         LEIA(num)
      FIMSE

   ATE(0>1)
fimalgoritmo

 

Editado por ThiagoD
complementar meu comentario...
Link para o comentário
Compartilhar em outros sites

  • 0
16 horas atrás, ThiagoD disse:

Nossa, achei que não fosse conseguir fazer... eu já tinha estudado sobre concatenaçao e manipulaçao de strings mas, ainda não tinha praticado ou resolvido nenhum exercicio utilizando isso...

Gostaria de ver a soluçao do autor do tópico para esse problema.


// Algoritmo criado para o desafio do forum Script Brasil.
// O usuario deve digitar um numero inteiro de 5 digitos. O algoritmo devera
// verificar se esse numero contem algum numero impar e, se houver, devera
// extrair esse(s) numero(s), deixando apenas os numeros pares para serem
// exibidos na tela. Caso não tenha nenhum numero par, devera ser exibida apenas
// a menssagem: "Nenhum Par Encontrado!".
// Algoritmo criado por ThiagoD.

algoritmo "Extraia_Os_Pares"
var
   num,result : CARACTERE
   a : INTEIRO
inicio
   REPITA
      REPITA             // Esse bloco se repetira ate que o usuario digite...
         LIMPATELA       // um numero valido.
         ESCREVA(" Digite um Número Inteiro com 5 Digitos: ")
         LEIA(num)
         SE não(COMPR(num)=5) então
            ESCREVAL(" Número Inválido!")
            LEIA(num)
         FIMSE
      ATE(COMPR(num)=5)
      result:=""
      PARA a:=1 ATE 5 FACA                 // Aqui, vamos verificar cada numero.
         SE (ASC(COPIA(num,a,1))%2=0)então // Cada numero par que for encontrado...
            result:=result+COPIA(num,a,1)  // sera concatenado a variavel 'result'
         FIMSE
      FIMPARA
      SE não(result="") então              // Se verdadeiro, vamos imprimir a...
         ESCREVA(" Resultado: ",result)    // variavel 'result' na tela.
         LEIA(num)                         // Se não, uma menssagem sera exibida.
      SENAO
         ESCREVA(" Nenhum Par Encontrado! ")
         LEIA(num)
      FIMSE

   ATE(0>1)
fimalgoritmo

 

var numero_string:String

var numero_digitado:Int

var pares:String = "02468"

var resultado:String = ""

numero_digitado = 12345

numero_string = String(numero_digitado)

print(numero_string.count)



if numero_string.count != 5 {

    print("Digite o numero com 5 dígitos")

}

else {

    //irá varrer todos os caracteres da string numero_string

    for varrer_string in numero_string {

        // irá varrer todos os caracteres da string pares

        for checar_par in pares {

            if varrer_string == checar_par {

                resultado = resultado + String(varrer_string)

            }

        }

    }

    let numero_extraido:Int = Int(resultado)!

    print(numero_extraido)

}

Depois posto sem a utilização do auxilio da String. Usando matemática pura. 
Obrigado por responder, abraços. 

Link para o comentário
Compartilhar em outros sites

  • 0

#include <iostream>
#include <string>

using namespace std;

bool ehPar(int numero)
{   
    for (int indice = 2; indice < 10 ; indice += 2) // 2,4,6 e 8;
        if (indice == numero)
            return true;
    
    return false;
}

bool temCincoDigitos(string numero)
{
    if (numero.length() == 5)
        return true;
    else
        return false;
}

int converterParaInteiro(char numero)
{
    try
    {
        return numero - '0'; // <- converter um número para inteiro
    } 
    catch (exception e)
    {
        return -1;    // caso venha a aparecer uma letra ao invés do número.
    }
}

int main()
{
    string numero_string;
    int contador;
    
    cout << "Favor digite um numero de 5 (cinco) digitos: ";
    cin >> numero_string;
    
    if (temCincoDigitos(numero_string))
        for (int indice = 0; indice <= 4; indice ++)
            if (ehPar(converterParaInteiro(numero_string[indice]))){
                cout << numero_string[indice];
                contador += 1;
            }
            
    if (contador == 0)
        cout << "Não encontrado numeros pares" << endl;
}

Editado por John_Doe
revisão do código!
Link para o comentário
Compartilhar em outros sites

  • 0
39 minutos atrás, John_Doe disse:

#include <iostream>
#include <string>
#include <sstream>

using namespace std;

bool ehPar(int numero)
{
    int par = 0;
    
    for (int indice = 2; indice < 10 ; indice += 2)
        if (indice == numero)
            return true;
    
    return false;
}

bool temCincoDigitos(string numero)
{
    if (numero.length() == 5)
        return true;
    else
        return false;
}

int converterParaInteiro(char numero)
{
    try
    {
        return numero - '0'; // <- converter um número pra 
    } 
    catch (exception e)
    {
        return -1;    
    }
}

int main()
{
    string numero_string;
    int contador;
    
    cout << "Favor digite um numero de 5 (cinco) digitos: ";
    cin >> numero_string;
    
    if (temCincoDigitos(numero_string))
        for (int indice = 0; indice <= 4; indice ++)
            if (ehPar(converterParaInteiro(numero_string[indice]))){
                cout << numero_string[indice];
                contador += 1;
            }
            
    if (contador == 0)
        cout << "Não encontrado numeros pares" << endl;
}

Show! 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...