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: Dom 07 Dez, 2014 00:08
Última visita: 17-03-24
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: Sex 22 Jun, 2012 22:03
Última visita: 17-04-23
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;
}

Última edição: csmarcelo (Sex 23 Out, 2015 22:04). Total de 1 vez.



Avatar do usuário
Autor do Tópico
LucasPinafi
5 - Mestre
Mensagens: 1765
Registrado em: Dom 07 Dez, 2014 00:08
Última visita: 17-03-24
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: Dom 07 Dez, 2014 00:08
Última visita: 17-03-24
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: 228
Registrado em: Dom 05 Abr, 2015 16:39
Última visita: 16-11-23
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!
Última edição: baltuilhe (Sáb 24 Out, 2015 01:58). Total de 1 vez.



Avatar do usuário
csmarcelo
6 - Doutor
Mensagens: 5114
Registrado em: Sex 22 Jun, 2012 22:03
Última visita: 17-04-23
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.
Última edição: csmarcelo (Sáb 24 Out, 2015 06:58). Total de 1 vez.



Avatar do usuário
baltuilhe
2 - Nerd
Mensagens: 228
Registrado em: Dom 05 Abr, 2015 16:39
Última visita: 16-11-23
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;
}
Última edição: baltuilhe (Sáb 24 Out, 2015 12:34). Total de 1 vez.



Avatar do usuário
Autor do Tópico
LucasPinafi
5 - Mestre
Mensagens: 1765
Registrado em: Dom 07 Dez, 2014 00:08
Última visita: 17-03-24
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: Qui 27 Out, 2011 00:14
Última visita: 14-07-23
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
  • Tópicos Semelhantes
    Respostas
    Exibições
    Última msg
  • Nova mensagem Permutação com repetição
    por Tupi123 » » em Ensino Médio
    1 Respostas
    573 Exibições
    Última msg por petras
  • Nova mensagem PERMUTAÇÃO COM REPETIÇÃO
    por saxay » » em Ensino Médio
    1 Respostas
    563 Exibições
    Última msg por careca
  • Nova mensagem Permutação com repetição
    por eww999 » » em Ensino Superior
    1 Respostas
    457 Exibições
    Última msg por LostWalker
  • Nova mensagem (SAS) Análise Combinatória - Combinação com Repetição
    por caju » » em Pré-Vestibular
    1 Respostas
    1073 Exibições
    Última msg por caju
  • Nova mensagem Combinação com repetição de elementos finitos
    por ludwing » » em Ensino Médio
    1 Respostas
    306 Exibições
    Última msg por LeoJaques

Voltar para “ALGORITMOS E IMPLEMENTAÇÕES”