trabalho em c - ajuda | ZWAME Fórum
trabalho em c - ajuda
Discussão em 'Programação' iniciada por S1nnless, 26 de Novembro de 2006. (Respostas: 7; Visualizações: 870)
Eu tenho um trabalho para fazer para a faculdade em c. Tenho que resolver o seguinte problema:
Pretende-se implementar um programa que leia um conjunto de valores de resistências fornecidos pelo utilizador. A programa deverá permitir efectuar as seguintes operações:
1 - Listar os valores de forma ordenada;
2 - Quantos valores são superiores à média;
3 - Qual o valor mais próximo de um dado valor solicitado ao utilizador;
4 – Introduzir novo conjunto de valores;
5 – Terminar o programa.
Estas opções devem ser apresentadas em forma de menu de escolha.
Apresente o resultado da análise, modelação e a implementação do problema.
Nota: Sempre que se justifique use funções.
Se explicares as tuas dúvidas de forma concreta, é mais fácil ajudar.
Concerteza que ninguém te vai fazer o trabalho todo.
A minha duvida esta em implementar o ponto 3.
Provavelmente tens os dados organizados num array certo? A Partir daí vai testando, por recursividade, que chega a esse valor. Se não encontrar, ve o valor anterior e o posterior e ver qual é a menor diferença. Em termos de funcionalidade é isto. Tenta fazer... se não conseguires, volta cá com novas dúvidas
Sugestão: Insere os valores logo ordenadamente, numa lista ou vector ou array. Isto vai-te facilitar todas as tarefas.
1) Só tens de percorrer a lista e ir imprimindo os valores, a ordenação já foi feita na introdução
2) Calculando a média só tens de encontrar o primeiro valor acima do valor da média, todos os outros são garantidamente maiores, logo é só imprimir os mesmos (se for para imprimir) ou contar (se for apenas o número de valores)
3) Se tens ordenadamente, basta ires comparando um a um, assim que ultrapassares mais do que chegares a um valor superior já sabes que ou é aquele, ou o que está imediatamente abaixo, uma simples diferença resolve-te a questão
4) Inseres novamente por ordem
5) Acho que é evidente que esta é a única função cuja ordem não faz diferença
Heckel, introduzir os numeros 1 a 1 por ordem não é boa ideia. Existem variáveis auxiliares para isso . Em que essa variável começa com o indice 0 do vector, e o valor mais próximo é uma parametro dado na função. A ideia é o utilizador introduzir os numeros aleatoriamente. Isto para responder ao ponto 3.
O exercício parece-me simples, simplesmente em quase todas as funções ou alineas, tens que usar ciclos e if's, e uma ou duas variáveis auxiliares para o caso.
Reporta notícias
Nop, não é inserir ordenadamente..., é ir guardando logo ordenadamente no array. Mantenho o array sempre ordenado, que vai simplificar (e muito) todas as outras operações.