Duvidas no codigo de funçoes
|
26-11-2010, 19:20
(Esta mensagem foi modificada pela última vez a: 26-11-2010 20:04 por champion87.)
Mensagem: #1
|
|||
|
|||
Duvidas no codigo de funçoes
oi pessoal.
estou com um pequeno problema tenho de criar um programa de gestao de um parque de estacionamento e estou empancado na funçao saida do meu codigo que deve consistir o programa pedir o lugar onde esta a viatura para depois aparecer os dados dela e poder ser apagada do programa pelo utilizador. aqui esta o meu codigo: (peço desculpa pela confusão.. a funçao é saida) Código: #include <stdio.h> |
|||
27-11-2010, 01:21
Mensagem: #2
|
|||
|
|||
RE: Duvidas no codigo de funçoes
Boas
Para já, vejo um problema que não me apercebi no outro post: da maneira que tens isso, apenas guardas os dados de uma viatura, escrevendo por cima dos dados da viatura anterior. Precisas de ter ou um array com um número pré-definido de posições ou então alocar dinamicamente o array quando souberes quantas viaturas querem introduzir. Não sei se já estudaste ponteiros, mas pelo que me dá a entender, parece-me que seria mais simples para já usares um array global de struct Gestao, com um número máximo de posições e não deixares inserir mais que esse número de viaturas. Nesse array, cada indice corresponderia ao lugar da viatura (a começar por 0, como é obvio). Claro que terias de alterar as funções já existentes para trabalharem com o array. Pedidos de ajuda via PM serão ignorados Acordo ortográfico? Desconheço, obrigado Agradeço ao Chrome o facto de os meus posts nao terem acentos |
|||
27-11-2010, 04:01
(Esta mensagem foi modificada pela última vez a: 27-11-2010 04:20 por champion87.)
Mensagem: #3
|
|||
|
|||
RE: Duvidas no codigo de funçoes
e como eu faço isso do array de estruturas?
eu neste trabalho nao posso usar apontadores... |
|||
27-11-2010, 12:15
Mensagem: #4
|
|||
|
|||
RE: Duvidas no codigo de funçoes
Se já trabalhaste com arrays, é um array como qualquer outro, apenas muda o tipo.
Para declarares o array basta-te: Código: #define MAX_VIATURAS 100 (o 100 é apenas um exemplo, tu é que tens de ver que valor será melhor no teu caso). Assim ficas com um array de 100 posições, desde gestao[0] a gestao[99]. A maneira de aceder aos membros de cada posição continua a ser o mesmo, atraves de . Código: gestao[5].classe = 1; Deixo-te aqui um link que te pode ajudar a melhorar os conhecimentos de C (em inglês): Teach Yourself C in 24 hours. Não te torna um especialista, mas deve ajudar a entender melhor as coisas Pedidos de ajuda via PM serão ignorados Acordo ortográfico? Desconheço, obrigado Agradeço ao Chrome o facto de os meus posts nao terem acentos |
|||
27-11-2010, 18:29
(Esta mensagem foi modificada pela última vez a: 27-11-2010 19:13 por champion87.)
Mensagem: #5
|
|||
|
|||
RE: Duvidas no codigo de funçoes
obrigado corvus foi uma ajuda excelente.
|
|||
28-11-2010, 03:39
(Esta mensagem foi modificada pela última vez a: 28-11-2010 03:40 por champion87.)
Mensagem: #6
|
|||
|
|||
RE: Duvidas no codigo de funçoes
o que estou a tentar fazer e imprimir dados de veiculos estacionados entre duas datas mas nao estou a conseguir o resultado pretendido. alguem me pode dizer o que fazer á seguinte funçao:
Código: Código: void datedate(struct Gestao gestao[SIZE], struct Data data) |
|||
28-11-2010, 13:24
Mensagem: #7
|
|||
|
|||
RE: Duvidas no codigo de funçoes
A tua lógica para a função está correcta, no entanto tens uns errozitos:
1 - A declaração da função está errada. Quando queres passar um array como parametro, não indicas o tamanho entre [], envias como parametro extra: Código: void datedate(struct Gestao gestao[], int tamanho, struct Data data); 2 - A comparação das datas não está correcta também. Da maneira que comparas, basta o mês final (ou o dia final) ser inferior ao mês / dia inicial e o teste retorna sempre falso (Por exemplo de 2010-11-28 a 2011-02-05) Tens de comparar os anos. Só no caso do ano do registo ser igual ao ano inicial é q vais comparar o mês do registo com o mês inicial e só no caso do mês do registo ser igual ao mês inicial é q vais comparar o dia. Fazes o mesmo para o ano final. Espero que esta última parte não tenha ficado muito confusa, mas queria apontar-te na direção sem te dar exactamente a resposta, para te fazer pensar em como o fazer (o que só ajuda a melhorar as capacidades de programação) Pedidos de ajuda via PM serão ignorados Acordo ortográfico? Desconheço, obrigado Agradeço ao Chrome o facto de os meus posts nao terem acentos |
|||
28-11-2010, 13:35
(Esta mensagem foi modificada pela última vez a: 28-11-2010 13:41 por champion87.)
Mensagem: #8
|
|||
|
|||
RE: Duvidas no codigo de funçoes
eu esta madrugada fiz isto nao e a mesma funçao esta tem de pesquisar a partir de uma data:
Código: void date(struct Gestao gestao[SIZE], struct Data data) eu tambem pensei nisto: Código: for ( l = 0; l < SIZE; l++ ) |
|||
28-11-2010, 14:21
Mensagem: #9
|
|||
|
|||
RE: Duvidas no codigo de funçoes
Na função date() tens o mesmo problema que te referi à pouco: não se indica o tamanho do array na declaração da função, passa-se como parametro extra. Por acaso está a funcionar pq depois no código usas o #define que define o tamanho do array (SIZE).
Além disso, a comparação de datas na função date() também não está correcta. Por um lado, day <= gestao[l].data.dia || day >= gestao[l].data.dia é o mesmo que day == gestao[l].data.dia Por outro, estás a comparar mal o mês. Aceitas datas com o mês indicado e também os meses anteriores (Se o utilizador pedir info para a data 2010-11-28, o programa tb mostra 2010-10-28, 2010-09-28, etc, etc, etc.) Quanto à função de que se falou no outro post, lamento informar-te mas conseguiste organizar exactamente a mesma comparação de outra forma. A forma actual e a anterior são equivalentes e dão o mesmo resultado. Pedidos de ajuda via PM serão ignorados Acordo ortográfico? Desconheço, obrigado Agradeço ao Chrome o facto de os meus posts nao terem acentos |
|||
28-11-2010, 15:13
Mensagem: #10
|
|||
|
|||
RE: Duvidas no codigo de funçoes
ja experimentei de tudo nao estou mesmo a ver.
podes dar-me so uma dica para eu me orientar? |
|||
« Mais Antigo | Mais Recente »
|
Utilizadores a ver este tópico: 1 Visitante(s)