Ir ao conteúdo

Posts recomendados

Postado

pessoal sou iniciante em programação e não estou conseguindo executar um exercício proposto pelo professor:

 

Faça um programa que leia um conjunto de nomes de músicas disponíveis em uma plataforma de stream. A quantidade de músicas deve ser definida pelo usuário. Em seguida informe, dentre as músicas cadastradas, quais se encaixam em quais gêneros musicais. Essa relação entre as músicas deve ser armazenada em um vetor para cada gênero musical. Além disso, para cada música deve ser cadastrado o seu tempo de duração. Por fim, peça ao usuário que construa sua playlist, indicando quais músicas fazem parte dela e em que ordem. Vejamos o exemplo da aplicativo Spotify 1 que dispõe de mais 30 milhões de músicas e o usuário pode montar sua playlist pessoal com qualquer quantidade de músicas. O nome de cada música deve ser armazenada em uma matriz de caracteres.

Em seguida construa funções que:

● Exiba o nome da música que se encaixa em mais gêneros musicais e quais são esses gêneros;

● Exiba o nome da música com maior tempo de duração, dentre as cadastradas (em minutos e segundos);

● Retorne quantas músicas serão tocadas na primeira hora de execução a partir da playlist construída;

● Exiba a lista de músicas que compõem a playlist construída e seu respectivo tempo de duração;

● Exiba a lista de músicas que foram associadas a apenas 1 gênero musical;

● Retorne o tempo total dessa playlist (em horas, minutos e segundos) e o tempo total de todas as músicas cadastradas.

 

DETALHE QUE O PROGRAMA USADO E O FALCON

  • Curtir 1
Postado

Oi!

2 horas atrás, Rubenseng disse:

pessoal sou iniciante em programação

Esse não programa típico de inciantes :)

 

 

Basicamente são matrizes que, sem pensar muito, diria que se relacionam através dos índices, e não há menção de mais nada (ou não percebi). Quais os assuntos (exceto o IDE FALCON) foram apresentados para responder esse problema?

 

Postado

tirando o fator de ser no falcon ele pediu para fazer o programa por funções.

 

eu tentei fazer aqui mas não ficou muito bom

#include <stdio.h>

int main()
{
	int n = 0;
	int i = 0;
	int linha = 0;
	int j = 0;
	int a = 0;
	int soma=0;
	int segundos; 
	int segundo;
	int minutos;
	int minuto;
	int hora;
	int maior=0;
	
	printf("quantas musicas tem essa playlist:");
	scanf("%d", &n);
	
	printf("quantos generos musicais tem essa playlist:");
	scanf("%d", &a);
	
	char genero[a][30];
	int duracao[a];
	char mus[n][50];
	
	char playlist[n];

	for(i=0;i<n;i++){
		
		printf("qual o nome da musica [%i]:\n", i + 1);
		scanf("%s", &mus[i]);			
		printf("qual genero:", i);
		scanf("%s", &genero[i]);
		printf("o tempo da musica: ");
		scanf("%d", &duracao[i]);
		soma= soma+duracao[i];
	
	}
	 segundos = soma; 
	 segundo = segundos % 60;
	 minutos = segundos / 60;
	 minuto = minutos % 60;
	 hora = minutos / 60;
	
	printf("\n\n--MUSICAS CADASTRADAS E SUA ORDEM--\n\n");
	
	for(i = 0; i < n; i++){
	
		printf("musica: %s com genero: %s\n", mus[i], genero[i]);
				
	}
	
	printf("\n\n--MINHA PLAYLIST-- \n\n");
	
	for(i = 0; i < n; i++){
		
		printf("Minhas musicas da %d posicao da playlist: %s com %i segundos\n", i+1, mus[i], duracao[i]);								
	}
	printf("\n\n");
	printf(" a soma do tempo de duracao da playlist e: %02d:%02d:%02d", hora, minuto, segundo);
	
		for(i = 0; i < n; i++){
		if(mus[i]>=maior)
		maior = mus[i];	
		}
	
		printf("\n\n musica de maior duracao e: %s", maior);
		
	if(maior == maior){
		printf("%s", mus[i]);
	}

	return 0;
}

 

Postado
6 horas atrás, Rubenseng disse:

scanf("%d", &n);

 

6 horas atrás, Rubenseng disse:

printf("quantos generos musicais tem essa playlist:");
scanf("%d", &a);
char genero[a][30];
int duracao[a];
char mus[n][50];

 

for(i=0;i<n;i++){
		
		printf("qual o nome da musica [%i]:\n", i + 1);
		scanf("%s", &mus[i]);			
		printf("qual genero:", i);
		scanf("%s", &genero[i]);
		printf("o tempo da musica: ");
		scanf("%d", &duracao[i]);
		soma= soma+duracao[i];
	
	}
	 segundos = soma; 
	 segundo = segundos % 60;
	 minutos = segundos / 60;
	 minuto = minutos % 60;
	 hora = minutos / 60;
	

 

6 horas atrás, Rubenseng disse:

eu tentei fazer aqui mas não ficou muito bom

 

É verdade :( não ficou muito bom e está muito longe de funcionar

 

  • teste SEMPRE o retorno de scanf(). Qual o propósito de seguir se não ler nada?
  • está implícito no enunciado que a música pode pertencer a mais de um gênero
  • pra que está lendo isso do teclado? É muito mais chato e difícil. Digite a lista de músicas em um arquivo, no próprio IDE, no bloco de notas, sei lá. NUNCA do teclado. Só vai te atrasar. Acha mesmo que alguém faria isso? ficar digitando dezenas de músicas a cada vez que vai usar o programa? Não faria.
     
  • 16 horas atrás, Rubenseng disse:

    Exiba o nome da música que se encaixa em mais gêneros musicais e quais são esses gêneros;

    pois é: uma música pode estar em mais de 1 genero

 

16 horas atrás, Rubenseng disse:

DETALHE QUE O PROGRAMA USADO E O FALCON

 

Não faz a menor diferença. Vai escrever um programa em C.

 

6 horas atrás, Rubenseng disse:

tirando o fator de ser no falcon ele pediu para fazer o programa por funções.

 

E onde elas estão?

 

Escreva em torno dos dados. É o simples

 

Que são os dados? As músicas e os gêneros. O enunciado não limita em nada o que pode fazer. Então pense em algo ANTES de sair programando

 

Depois dos dados o usuário vai poder criar as playlists, que podem ser simples vetores.

 

16 horas atrás, Rubenseng disse:

Por fim, peça ao usuário que construa sua playlist, indicando quais músicas fazem parte dela e em que ordem

 

E fala em uma única playlist, certo?

 

Então pode apenas mostrar a lista de músicas com um número na frente, certo? E o cara pode colocar ou tirar da playlist pelo número, apagar a playlist, mostrar e nada mais.

 

É claro que ao colocar na playlist pode somar os tempos e manter atualizada a duração certo? 

 

E as músicas? Você pode fazer qualquer coisa. Então faça algo ANTES do programa. Um arquivo assim

 

Musica 1; 23:33; 1; 2; 3; 4
Musica 2; 12:34; 1; 2; 
Musica 3; 2:30; 5; 6; 1;

 

separando a música, a duração e os gêneros por ';' não serviria? Claro que serviria.

 

E uma tabela de gêneros assim:
 

1; Rock
2; Balada
3; Disco
4; ...

 

Não fecharia a conta? Sim, fecharia.

 

Aí lê o arquivo de música prepara as listas de generos e afinal mostra pro cara montar a playlist, com a gentileza de trocar os números pelos gêneros conforme a tabela...

 

 

  • Curtir 1
Postado
10 horas atrás, Rubenseng disse:

tirando o fator de ser no falcon ele pediu para fazer o programa por funções.

 

"Missão dada é missão cumprida"

Contemplando o máximo de quesitos sem intromissão de novos assuntos, e suponha que essa é sua vontade.

 

Até onde sei, o que tem em teu código, é o que precisa: matrizes e funções.

E a biblioteca padrão para produzir uma solução console, claro!

 

Basicamente,  preencher,  buscar, exibir valores em matriz  e tem a lógica de relacionamento por índice.

Operações usuais sobre matriz.

 

1.

10 horas atrás, Rubenseng disse:

printf("qual o nome da musica [%i]:\n", i + 1);
scanf("%s", &mus[i]);

printf("qual genero:", i);
scanf("%s", &genero[i]);

printf("o tempo da musica: ");
scanf("%d", &duracao[i]);

soma= soma+duracao[i];

 

 

20 horas atrás, Rubenseng disse:

Em seguida informe, dentre as músicas cadastradas, quais se encaixam em quais gêneros musicais.

Além disso, para cada música deve ser cadastrado o seu tempo de duração.

Eu presumo que existam 3 procedimentos fora desse bloco de código: cadastrar músicas,  inserir gênero e tempo. Funções além das destacadas no enunciado.

 

20 horas atrás, Rubenseng disse:

Em seguida construa funções que:

● Exiba o nome da música que se encaixa em mais gêneros musicais e quais são esses gêneros;

● Exiba o nome da música com maior tempo de duração, dentre as cadastradas (em minutos e segundos);

● Retorne quantas músicas serão tocadas na primeira hora de execução a partir da playlist construída;

● Exiba a lista de músicas que compõem a playlist construída e seu respectivo tempo de duração;

● Exiba a lista de músicas que foram associadas a apenas 1 gênero musical;

● Retorne o tempo total dessa playlist (em horas, minutos e segundos) e o tempo total de todas as músicas cadastradas.

 

 

 

20 horas atrás, Rubenseng disse:

Spotify 1 que dispõe de mais 30 milhões de músicas e o usuário pode montar sua playlist

O que se faz para 3, se faz para 30 mi. Músicas, então precisamos de lista não muito acima dos 3 itens.

 

 

10 horas atrás, Rubenseng disse:

if(maior == maior){

TRUE! :D 

 

 

 

 

Entenda que não querem a lógica  (toda) dentro da   int main   sobrecarregando essa função, não mais!

  • Curtir 1
Postado

Muito obrigado pessoal , vou tentar por em pratica aqui.

 

16 horas atrás, mauro_b disse:

 

"Missão dada é missão cumprida"

Contemplando o máximo de quesitos sem intromissão de novos assuntos, e suponha que essa é sua vontade.

 

Até onde sei, o que tem em teu código, é o que precisa: matrizes e funções.

E a biblioteca padrão para produzir uma solução console, claro!

 

Basicamente,  preencher,  buscar, exibir valores em matriz  e tem a lógica de relacionamento por índice.

Operações usuais sobre matriz.

 

1.

Eu presumo que existam 3 procedimentos fora desse bloco de código: cadastrar músicas,  inserir gênero e tempo. Funções além das destacadas no enunciado.

 

 

 

O que se faz para 3, se faz para 30 mi. Músicas, então precisamos de lista não muito acima dos 3 itens.

 

 

TRUE! :D 

 

 

 

 

Entenda que não querem a lógica  (toda) dentro da   int main   sobrecarregando essa função, não mais!

eu entendo como tem que fazer, mas o problema e que não estou conseguindo visualizar no código.

 

tem como ter um exemplo te como fazer a estrutura desse programa?  

  • Curtir 1
Postado
1 hora atrás, Rubenseng disse:

tem como ter um exemplo te como fazer a estrutura desse programa?  

20 horas atrás, arfneto disse:

Escreva em torno dos dados. É o simples

 

A partir do parágrafo acima, no tópico #5, eu te mostrei um roteiro de como escrever isso. Até com exemplos dos arquivos de entrada.

 

Leu aquilo? Entendeu algo? Não parecia um exemplo?

Postado
3 minutos atrás, arfneto disse:

 

A partir do parágrafo acima, no tópico #5, eu te mostrei um roteiro de como escrever isso. Até com exemplos dos arquivos de entrada.

 

Leu aquilo? Entendeu algo? Não parecia um exemplo?

muito obrigado amigo, vou ver aqui.

20 horas atrás, arfneto disse:

Escreva em torno dos dados. É o simples

 

Que são os dados? As músicas e os gêneros. O enunciado não limita em nada o que pode fazer. Então pense em algo ANTES de sair programando

 

Depois dos dados o usuário vai poder criar as playlists, que podem ser simples vetores.

 

 

E fala em uma única playlist, certo?

 

Então pode apenas mostrar a lista de músicas com um número na frente, certo? E o cara pode colocar ou tirar da playlist pelo número, apagar a playlist, mostrar e nada mais.

 

É claro que ao colocar na playlist pode somar os tempos e manter atualizada a duração certo? 

 

E as músicas? Você pode fazer qualquer coisa. Então faça algo ANTES do programa. Um arquivo assim

 


Musica 1; 23:33; 1; 2; 3; 4
Musica 2; 12:34; 1; 2; 
Musica 3; 2:30; 5; 6; 1;

 

separando a música, a duração e os gêneros por ';' não serviria? Claro que serviria.

 

E uma tabela de gêneros assim:
 


1; Rock
2; Balada
3; Disco
4; ...

 

Não fecharia a conta? Sim, fecharia.

 

Aí lê o arquivo de música prepara as listas de generos e afinal mostra pro cara montar a playlist, com a gentileza de trocar os números pelos gêneros conforme a tabela...

 

 

o problema é que o professor quer, que o usuário cadastre uma certa quantidade de musicas, com o gênero e tempo e depois desse cadastro feito o mesmo monte uma playlist com as musicas na ordem que ele desejar.

 

a minha maior duvida e como fazer para quer as musicas que o usuário cadastrou ele possa colocar na ordem que ele querer.

 

e como eu faço para armazenar a quantidade de gêneros que possa ter a musica e printar depois na tela.

Postado
44 minutos atrás, Rubenseng disse:

o problema é que o professor quer, que o usuário cadastre uma certa quantidade de musicas, com o gênero e tempo e depois desse cadastro feito o mesmo monte uma playlist com as musicas na ordem que ele desejar.

 

a minha maior duvida e como fazer para quer as musicas que o usuário cadastrou ele possa colocar na ordem que ele querer.

 

e como eu faço para armazenar a quantidade de gêneros que possa ter a musica e printar depois na tela

 

Não disse absolutamente nada sobre o exemplo que te mostrei. Não conseguiu ligar aquilo ao seu problema?

 

Entendeu o que eu disse sobe escrever em torno dos dados?

 

Eu te mostrei duas listas
 

image.png.ecbb10847b29707ab556048a853b6c5b.png

 

Não pode editar dois arquivos no seu IDE assim e começar logo seu programa?

 

Aí tem 3 músicas: a primeira se encaixa em 4 generos, a segunda em dois e a terceira em 3

 

Os generos estão o outro arquivo: 1 é rock, 2 é balada, só inventar.

 

Cada música tem uma ordem e então pode colocar num vetor

 

Cada genero tem uma ordem então pode colocar num vetor.  E já tem o modo claro de associar a música com os generos. 

 

É um programa de estudante. Limite a 5 ou 10 generos por musica, limite o total de musicas a umas poucas dezenas e termine as funções e teste o programa.

 

E como é um programa de estudo não precisa se preocupar com duplicidade de musicas ou generos.  Só vá escrevendo o programa e criando as funções.

 

Come pelo óbvio: leia as músicas. Mostre na tela. Não faça nada com elas. Apenas escreva isso. Depois leia os generos, é igualzinho afinal. Depois escolha como quer prosseguir.

 

Ler a lista do usuario pode ser so mostrar as musicas na tela e ler uma linha com o numero das musicas. Não é um programa sério. Só precisa fazer tudo que foi pedido. E tem uma playlist só....

 

 

 

 

 

 

Postado
Em 20/05/2021 às 10:45, Rubenseng disse:

a minha maior duvida e como fazer para quer as musicas que o usuário cadastrou ele possa colocar na ordem que ele querer.

Ele não coloca, e não queremos que o programa mova a ordem em que foram cadastradas. O interessante é que fiquem sempre nessa ordem enquanto durar o programa porque os índices, que são as posições de cada música no arranjo musicas, serão uteis para cadastrar (preencher) o arranjo playlist, e assim estabelecer relacionamento índice das músicas com valores na playlist.

 

Resumindo: Os valores nos elementos do arranjo playlist são os números das posições das músicas prediletas do usuário no arranjo musicas.

 

image.png.08dd2a3e8afa7933db53ed54278f3f6c.png

 

*A ordenação escolhida pelo usuário foi: 3, 1, 2

Essa é a ordem em que se acessa as Músicas e Tempos no Cadastro quando precisar exibir a playlist.

 

 

Em 20/05/2021 às 10:45, Rubenseng disse:

e como eu faço para armazenar a quantidade de gêneros que possa ter a musica e printar depois na tela.

Com matrizes, do mesmo modo que fará com músicas.  A "operação" de relacionamento é como playlist.

 

 

 

Em 20/05/2021 às 09:24, Rubenseng disse:

eu entendo como tem que fazer, mas o problema e que não estou conseguindo visualizar no código

Percebo que está gradualmente se livrando do pensamento linear, e o caminho é esse mesmo.

 

O objetivo não é visualizar o código todo, mais sim, as partes que completam o código, essas partes são as funções e cada função é um sub-solução independente das outras. Isso significa que poderia escolher qualquer das enunciadas e começar, para tanto forneça a informação que ela precisa para produzir sua resposta.

 

Comece pelo começo, qual é a entrada da função cadastrar (o que ele tem eu seus parâmetros formais)?

Qual é a saída (qual a resposta que a função vos dá)?

 

Com essas perguntas se começa a pensar o algoritmo da função cadastrar

[:)]

 

 

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!