Ir ao conteúdo
  • Cadastre-se
Junior Milzation

C++ Aprendendo - exercício em - C++/C#/C

Recommended Posts

#include <iostream>
  
using namespace std;
int main(int argc, char** argv) {
	float Quant_filme_retirada, numero_C;
	int i;
	int TAM_MAX=500;
	

	cout<<"Informe a quantidade de filme retirada no ano"<<endl;
	cin>>Quant_filme_retirada;

	
	cout<<"Informe a quantidade de clientes"<<endl;
	cin>>numero_C;
			
	for(int i=0;i<numero_C;i++){
		float retirado_cliente;
		cout<<"Informe o numero retirado pelo cliente"<<i+1<<endl;
		cin>>retirado_cliente;
	
	if(retirado_cliente>=10){
		cout<<"O cliente "<<i<<" tem direito a uma locacao gratuita"<<endl;
	}
	}


	return 0;
}

Uma locadora de vídeos tem guardada, em um vetor de 500 posições, a quantidade de filmes retirados por seus clientes durante o ano de 1993. Agora, esta locadora está fazendo uma promoção e, para cada 10 filmes retirados, o cliente tem direito a uma locação grátis. Faça um algoritmo que crie um outro vetor contendo a quantidade de locações gratuitas a que cada cliente tem direito.

___________________________________________________________________________________________________________

Alguém poderia me ajudar nesse exercício?

Eu teria que fazer diversos "IFs" ou usar algo como && no "IF"?

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro usuário,

 

Seja bem-vindo ao Fórum do Clube do Hardware.

 

No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware.

 

Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício.

 

Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Fórum do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários.. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal.

 

Esperamos que compreenda.

 

Atenciosamente,

Equipe Clube do Hardware

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Junior Milzation       verifique o valor de cada posição do vetor onde está guardado a quantidade ,  pegue esse valor e use em um loop e dentro do loop verifique se esse valor é maior ou igual a 10 e se for incrementa o contador de filmes grátis , e subtrai 10 desse valor e repete o loop até que seja menor , e depois desse loop coloca o valor desse contador no outro vetor , e isso tudo dentro de um loop que se repete 500 vezes .  não podemos fazer o código para você pois é contra as regras do fórum , então faça seu código e poste aqui para podermos ver como está e em que podemos ajudar  .

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Junior Milzation Não programo em C/C++ mas  é de praxe de todas as linguagens ter uma estrutura de Switch case para evitar os zilhões de IF

 

http://linguagemc.com.br/o-comando-switch-case-em-c/

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Junior Milzation      no enunciado diz que no vetor tem 500 filmes , então não precisa perguntar ao usuário a quantidade de filmes retirados , então esse vetor será preenchido aleatoriamente  e o que precisa é preencher o outro vetor de acordo com esse , e precisa ver a quantidade em cada posição do vetor , e a cada 10 coloca um filme grátis ,  então esse código poderia ser assim  :

#include <iostream>
#include <cstdlib>  
#include <ctime>
using namespace std;
int main(){
    int Quant_filme_retirados[500],filmes_gratis[500],cont;
    int i,j;
    srand(time(NULL));
    for(j=0;j<500;j++)
        Quant_filme_retirados[j]=rand()%100;
    for(j=0;j<500;j++){
        i=Quant_filme_retirados[j];
        cont=0;
        do{
            if(i>=10){
                cont++;
                i -= 10;
            }
        }while(i>=10);
        filmes_gratis[j]=cont;
    }
    for(j=0;j<500;j++)
        cout<<"O cliente "<<i<<" fez "<<quant_filme_retirados[i]<<" locacoes. Tem direito a "<<filmes_gratis[i]<<" filmes gratis"<<endl;      
    return 0;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

time(NULL) retorna o tempo que passou dês do início da Era Unix até o momento atual em segundos.

A função srand() gera uma semente para o gerador de números aleatórios.

Nesse caso está usando a data e hora atual do computador ( time(NULL) ) como parâmetro do srand() para definir a semente, assim toda vez que rodar o programa novamente muda a semente pois já vai ter passado um tempo, fazendo com que os valores retornados por rand() não se repitam.

 

  • Curtir 1
  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Junior Milzation, segue algumas sugestões gerais:

 

1#
Desabilite a tabulação do seu editor de texto. No Dev-C++, por exemplo, fica em "Ferramentas/Opções de Editor", e desativa o "Usar caractere de tabulação".

 

Dessa forma, ao pressionar tab, vai inserir espaços em vez de tabulação.

 

Segue código do @devair1010 reindentado:

#include <iostream>
#include <time.h>

using namespace std;
int main() {
    int Quant_filme_retirados[500],filmes_gratis[500],cont;
    int i,j;
    
    srand(time(NULL));
    for(j=0;j<500;j++)
        Quant_filme_retirados[j]=rand()%100;
    for(j=0;j<500;j++) {
        i=Quant_filme_retirados[j];
        cont=0;
        filmes_gratis[j]=0;
        do {
            if(i>=10) {
                cont++;
                i -= 10;
            }
        } while(i>=10);
        filmes_gratis[j]=cont;
    }
    for(j=0;j<500;j++)
        printf("Quant_filme_retirados %d Quant Filmes Gratis %d\n",Quant_filme_retirados[j],filmes_gratis[j]);
    return 0;
}

 

 

 

2#

@devair1010, só um detalhe... sobre:

16 horas atrás, devair1010 disse:

#include <time.h>

 

Essa biblioteca é do C, creio que seria melhor utilizar a do C++ (já que o código está neste último).

#include <ctime> //time()

 

obs.: aqui no Dev-C++ não está reconhecendo o srand(), sendo necessário incluir a respectiva biblioteca. Ex.:

#include <cstdlib> //srand()

 

Idem para imprimir na tela... acho que com o cout fique mais apropriado (não sei).

 

 

 

3#

Tentei dar uma simplificada na lógica:

#include <iostream> //cout
#include <ctime>    //time()
#include <cstdlib>  //srand()

using namespace std;

int main() {
    int quant_filme_retirados[500],
        filmes_gratis[500],
        i;
    
    srand(time(NULL));
    
    for(i=0; i<500; i++)
        quant_filme_retirados[i]=rand()%100;
        
    for(i=0; i<500; i++) {
        filmes_gratis[i] = quant_filme_retirados[i]/10; //obs.: seria possível colocar no for acima, mas melhor separar as etapas
    }
    
    for(i=0; i<500; i++)
        cout<<"O cliente "<<i<<" fez "<<quant_filme_retirados[i]<<" locacoes. Tem direito a "<<filmes_gratis[i]<<" filmes gratis"<<endl;;
    
    return 0;
}

 

 

 

4#

Para complementar, sugiro pelo menos:

- inserir uma reserva de espaços para os números, fazer dar 2 ou 3 espaços. Por exemplo: 3 sair " 3" e 73 sair "72", para a impressão ficar alinhada.

- ajustar a frase do texto. Especialmente fazendo aceitar acentos;

 

 

***

 

Por ai vai.

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×