Boa tarde, estou com essa atividade, porém eu não sei por onde começar.
Estrada com 2 faixa circular para carro.
Programa com estrutura de dados criando funções para inserir um carro, remover e verificar se a estrutura está vazia ou cheia, Localizar um carro, Alterar velocidade de um carro, alterar faixa do carro.
Qual a melhor maneira de criar é usando fila, pilha, árvore ou lista?
Só preciso só de algumas dicas de qual forma será a melhor!
Em qual linguagem é isso? Você terá de codificar essas estruturas ou poderá usar as que a linguagem já provê?
Faz parte da atividade definir qual a melhor estrutura? Por que, senão, eu não me importaria em achar a melhor estrutura. Comece fazendo com a que você conhece melhor e está mais confortável em usar, e concentre em fazer funcionar primeiro. Para uma atividade que parece simples e que não deve ter muitos carros ao mesmo tempo, o impacto de usar uma ou outra estrutura é mínimo.
Abraço.
Delthaisy
Olá TerraSkilll,
Bom, a linguagem é em c/c++…
precisa criar um programa com as funções:
Função inserir.
Função remover.
Função alterar velocidade.
Função inserir.
Função alterar faixa(de uma pista pra outra) aleatoriamente. (não usei nada com isso ainda)
Eu só fiz programá básico com pilha, fila, lista… (ainda por cima copiando o código, porque faculdade não espera você aprender, assunto por cima de assunto…
Pilha acho que não é, porque trabalha com topo para inserir e remover os elementos (LIFO), fiquei na dúvida em fila e lista.
Infelizmente não sou capaz de criar isso tudo, por isso tô pedindo ajuda aqui!
TerraSkilll
Se você pode usar qualquer estrutura, comece com uma lista genérica. Perguntei se você iria ter que implementar a estrutura de dados, ou se pode usar algo já pronto da linguagem, como vector do C++. Dá pra inserir, remover, pegar um elemento na posição X, etc.
Alterar velocidade é uma propriedade do carro, não lista que contém o carro. Pegar uma posição aleatória pode ser obtido com rand.
Abraço.
Delthaisy
Gostaria sim de pegar algo pronto, mas não encontrei.
o Máximo que consigo desenvolver é esse código a baixo. já tentei adicionar outras funções sem sucesso…
#include"stdafx.h"#defineTAM5structtad_fila{inte[TAM];intini,fim;};structtad_filaf;voidenfileirar();voiddesenfileirar();voidenqueue(int);intdequeue();intmain(){f.fim=0;f.fim=-1;enfileirar();enfileirar();enfileirar();desenfileirar();desenfileirar();desenfileirar();_getch();}voiddesenfileirar(){intn;n=dequeue();printf("\nO valor retirado da Fila foi: %d",n);}voidenfileirar(){intn;printf("Informe o numero: ");scanf_s("%d",&n);enqueue(n);}voidenqueue(intn){if(f.fim<TAM-1){f.fim++;f.e[f.fim]=n;}elseprintf("Fila Cheia");}intdequeue(){intn;if(f.ini<=f.fim){n=f.e[f.ini];f.ini++;}else{printf("\nFila vazia!");n=0;}returnn;}
TerraSkilll
Se serve algo pronto, não reimplemente, como você parece estar fazendo. Vá de std:vector (C++). Pesquise como iterar, inserir e excluir num vector e terá basicamente tudo o que precisa.
Abraço.
Delthaisy
TerraSkilll parece mentira, mas eu já fui lá várias vezes, e não consigo nada… kkkkk
sério, meu inglês é péssimo, você já deu o link tudo certo, mas eu não sei o que procurar, e como modificar
Eu iria te mostrar esse abaixo, o aleatório…
se não dê certo, vou jogar a toalha, já tem 4 dias e hoje que andei um 1% com você ajudando… Agradeço a Deus e a você!
voidvelocidade(){srand(time(NULL));inti;intn;printf("Gerando10valoresaleatorios:\n\n"); for (i = 0; i < 10; i++) { /* gerando valores aleatórios entre zero e 100 */ n = rand() % 100; printf("%d",n);enqueue(n);}}
TerraSkilll
Você poderia ter colocado o enunciado da questão há mais tempo (ao invés de mandar por MP). Há uma série de detalhes lá que fazem muita diferença. Lá está explícito que você precisa implementar a estrutura, então minha indicação pra usar vector é inútil.
Primeiro passo é definir se você vai usar C puro ou C++ (usando classes). Crie um struct (ou classe, se for C++) para o carro, com um atributo velocidade ao menos.
Como você tem duas faixas, cada faixa pode ser visto como um structr contendo um array/vetor/lista de carros, um atributo para a velocidade máxima e a quantidade de carros que cabem. Toda vez que você trocar um carro de faixa, muda a velocidade dele para a velocidade da faixa. A entrada de carros é sempre na mesma faixa.
Seu código final ficaria algo como (pseudocódigo):