Olá, Comunidade!

Vocês devem ter notado que o site ficou um período fora do ar (do dia 26 até o dia 30 de maio de 2024).

Consegui recuperar tudo, e ainda fiz um UPGRADE no servidor! Agora estamos em um servidor dedicado no BRASIL!
Isso vai fazer com que o acesso fique mais rápido (espero 🙏)

Já arrumei os principais bugs que aparecem em uma atualização!
Mas, se você encontrar alguma coisa diferente, que não funciona direito, me envie uma MP avisando que eu arranjo um tempo pra arrumar!

Vamos crescer essa comunidade juntos 🥰

Grande abraço a todos,
Prof. Caju

ALGORITMOS E IMPLEMENTAÇÕESEstrutura de repetição

Implementação de equações dentro da computação, programação e algoritmos.

Moderador: [ Moderadores TTB ]

Avatar do usuário

Autor do Tópico
LucasPinafi
5 - Mestre
Mensagens: 1765
Registrado em: 07 Dez 2014, 00:08
Última visita: 04-05-24
Agradeceu: 301 vezes
Agradeceram: 1091 vezes
Out 2015 22 15:59

Estrutura de repetição

Mensagem não lida por LucasPinafi »

Crie um algoritmo, em C/C++, que receba um número inteiro de 3 dígitos e diga se o primeiro digito é ou não par. Se a pessoa digitar um número com maior ou menor ou quantidade de dígitos faça aparecer a seguinte mensagem na tela "digite um número válido".

Bom, se der para responder usando a estrutura while agradeço.

Ser ̶m̶e̶l̶h̶o̶r̶ pior a cada dia
Avatar do usuário

csmarcelo
6 - Doutor
Mensagens: 5114
Registrado em: 22 Jun 2012, 22:03
Última visita: 17-04-23
Agradeceu: 355 vezes
Agradeceram: 2801 vezes
Out 2015 23 22:04

Re: Estrutura de repetição

Mensagem não lida por csmarcelo »

Olá, Lucas.

O exemplo abaixo, bem básico, é em C++.

Código: Selecionar todos

#include <iostream>
#include <sstream>
using namespace std;

int main()
{
  string read;
  int number;
  
  while (true) {
  	
  	cout << "Informe um numero de 3 digitos (0 para sair): ";
  	getline(cin, read);
  	
  	if (read.size() != 3) {
  		cout << "Digite um numero valido." << endl;
  		continue;
	}

  	stringstream(read) >> number;
  
  	if (number == 0) break;
  	
  	cout << "O numero digitado" << ((number % 2) != 0 ? " nao" : "") << " e par." << endl;
	}

  return 0;
}

Editado pela última vez por csmarcelo em 23 Out 2015, 22:04, em um total de 1 vez.
Avatar do usuário

Autor do Tópico
LucasPinafi
5 - Mestre
Mensagens: 1765
Registrado em: 07 Dez 2014, 00:08
Última visita: 04-05-24
Agradeceu: 301 vezes
Agradeceram: 1091 vezes
Out 2015 23 22:45

Re: Estrutura de repetição

Mensagem não lida por LucasPinafi »

Muito obrigado, professor.
Mas lendo, vi que o algoritmo informa se o número (por exemplo 566) é par ou não; o exercício pede se o primeiro digito é par.
Se eu digitar 566 , aparecerá o número é par. Obrigado pela atenção.
Ser ̶m̶e̶l̶h̶o̶r̶ pior a cada dia
Avatar do usuário

Autor do Tópico
LucasPinafi
5 - Mestre
Mensagens: 1765
Registrado em: 07 Dez 2014, 00:08
Última visita: 04-05-24
Agradeceu: 301 vezes
Agradeceram: 1091 vezes
Out 2015 23 22:47

Re: Estrutura de repetição

Mensagem não lida por LucasPinafi »

é nessa parte que estou com dificuldade. Como faço para mostrar somente a paridade do primeiro digito?
Ser ̶m̶e̶l̶h̶o̶r̶ pior a cada dia
Avatar do usuário

baltuilhe
2 - Nerd
Mensagens: 229
Registrado em: 05 Abr 2015, 16:39
Última visita: 02-05-24
Agradeceu: 5 vezes
Agradeceram: 95 vezes
Out 2015 24 01:58

Re: Estrutura de repetição

Mensagem não lida por baltuilhe »

Boa noite!

Faça a seguinte alteração:

Código: Selecionar todos

#include <iostream>
#include <sstream>
using namespace std;

int main()
{
  string read;
  int number;
  
  while (true) {
     
     cout << "Informe um numero de 3 digitos (0 para sair): ";
     getline(cin, read);
     
     if (read.size() != 3) {
        cout << "Digite um numero valido." << endl;
        continue;
   }

     stringstream(read) >> number;
  
     if (number == 0) break;

     number /= 100; // Isso ira 'achar' o 1o. digito
     
     cout << "O numero digitado" << ((number % 2) != 0 ? " nao" : "") << " e par." << endl;
   }

  return 0;
}
Espero ter ajudado!
Editado pela última vez por baltuilhe em 24 Out 2015, 01:58, em um total de 1 vez.
Avatar do usuário

csmarcelo
6 - Doutor
Mensagens: 5114
Registrado em: 22 Jun 2012, 22:03
Última visita: 17-04-23
Agradeceu: 355 vezes
Agradeceram: 2801 vezes
Out 2015 24 06:58

Re: Estrutura de repetição

Mensagem não lida por csmarcelo »

Obrigado pela correção, baltuilhe. Esqueci desse pequeno detalhe.

Aproveitando, há uma melhoria que pode ser feita (na verdade, que deve ser feita): o programa considera, por exemplo, o literal 021 como um número de 3 dígitos válido.
Editado pela última vez por csmarcelo em 24 Out 2015, 06:58, em um total de 1 vez.
Avatar do usuário

baltuilhe
2 - Nerd
Mensagens: 229
Registrado em: 05 Abr 2015, 16:39
Última visita: 02-05-24
Agradeceu: 5 vezes
Agradeceram: 95 vezes
Out 2015 24 12:34

Re: Estrutura de repetição

Mensagem não lida por baltuilhe »

Bom dia!

Fiz mais duas correções:
1a. Ele não parava quando se digitava o zero (pois o teste estava no lugar errado)
2a. E incluí o que percebeu com relação ao zero.

Valeu! :)

Código: Selecionar todos

#include <iostream>
#include <sstream>
using namespace std;

int main()
{
	string read;
	int number;

	while (true)
	{
		cout << "Informe um numero de 3 digitos (0 para sair): ";
		getline(cin, read);

		stringstream(read) >> number;

		if (number == 0)
			break;

		if ((read.size() != 3) || (number / 100 == 0))
		{
			cout << "Digite um numero valido." << endl;
			continue;
		}
	
		number = number / 100;
		
		cout << "O 1o. digito do numero digitado" << ((number % 2) != 0 ? " nao" : "") << " e par." << endl;
	}

	return 0;
}
Editado pela última vez por baltuilhe em 24 Out 2015, 12:34, em um total de 1 vez.
Avatar do usuário

Autor do Tópico
LucasPinafi
5 - Mestre
Mensagens: 1765
Registrado em: 07 Dez 2014, 00:08
Última visita: 04-05-24
Agradeceu: 301 vezes
Agradeceram: 1091 vezes
Out 2015 24 14:34

Re: Estrutura de repetição

Mensagem não lida por LucasPinafi »

valeu gente, ajudou bastante.
Ser ̶m̶e̶l̶h̶o̶r̶ pior a cada dia

manerinhu
1 - Trainee
Mensagens: 266
Registrado em: 27 Out 2011, 00:14
Última visita: 14-07-23
Agradeceu: 65 vezes
Agradeceram: 124 vezes
Out 2015 24 19:51

Re: Estrutura de repetição

Mensagem não lida por manerinhu »

foi usado o stringstream e a divisão por 100...
se vc precisasse de uma outra casa em específico, vc perderia os numeros anteriores, ou precisaria alocar memoria adicional para cada possivel digito...
uma saída que evita tudo isso é acessar as posições da "string" (palavra) em questão
e isso vc faz por "read.str()", onde i é a posição lida da esquerda para a direita, começando em 0

Responder

Crie uma conta ou entre para participar dessa discussão

Você precisa ser um membro para postar uma resposta

Crie uma nova conta

Ainda não é um membro? Registre-se agora!
Membro pode iniciar seus próprios tópicos e inscrever-se no dos outros para ser notificado sobre atualizações.
É gratuito e leva apenas 1 minuto

Registrar

Entrar

  • Tópicos Semelhantes
    Respostas
    Exibições
    Última mensagem
  • Nova mensagem Permutação com repetição
    por ManWithNoName » » em Ensino Médio
    3 Respostas
    662 Exibições
    Última mensagem por PedroCunha
  • Nova mensagem Combinação com repetição
    por bathroy » » em Ensino Superior
    1 Respostas
    1076 Exibições
    Última mensagem por mateusITA
  • Nova mensagem Arranjo com dois tipos de repetição.
    por Ashwagandha » » em Questões Perdidas
    1 Respostas
    4442 Exibições
    Última mensagem por ruanchaves
  • Nova mensagem Combinatória com Repetição
    por 314159265 » » em Ensino Médio
    15 Respostas
    3321 Exibições
    Última mensagem por 314159265
  • Nova mensagem Permutação com repetição (Só pra treinar)
    por ThaianyMacêdo » » em Ensino Médio
    2 Respostas
    3833 Exibições
    Última mensagem por ThaianyMacêdo

Voltar para “ALGORITMOS E IMPLEMENTAÇÕES”