• 0
Sign in to follow this  
Thiago André Cardoso

Desafio básico | extração

Question

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". 


 

Share this post


Link to post
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Deixa eu ver se eu entendi...

 

então, se eu digitar o numero que voce usou como exemplo (12578), o resultado que deve ser imprimido na saida seria o numero abaixo?

Resultado: 157

Share this post


Link to post
Share on other sites
  • 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

 

Edited by ThiagoD
complementar meu comentario...

Share this post


Link to post
Share on other 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. 

Share this post


Link to post
Share on other 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;
}

Edited by John_Doe
revisão do código!

Share this post


Link to post
Share on other 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! 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this