Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Pedido atrasado e urgente... linguagem C
#1
Bem... "A gente somos burros" e precisavamos de uma ajudita para fazer este trabalhito de faculdade. É para entregar até amanhã as 20 mas é daquelas coisas que PARA QUEM SABE, é canja... Tivemos 4 tardes a debatermo-nos sobre o assunto e mesmo assim quase nada conseguimos fazer. Falo em nós porque é um trabalho de grupo.

Gostaria então que alguém pudesse dar um empurrãozito para resolver esta situação.

https://mocho.di.fc.ul.pt/file.php/63/do...3.0809.pdf

Nós até agora temos isto:

http://www.2shared.com/file/6016564/7cfdd05/temos.html

O trabalho original que é falado, do acrescentar é isto:

http://www.2shared.com/file/6016576/f0da8d68/trab2.html



A ajuda seria essencialmente na alínea da estrutura. A partir daí as outras até que se vão fazendo. Estamos com dificuldades é na atribuição dos valores à estrutura a gravação da respectiva no ficheiro.


Extremamente agradecidos,
Alexandre Caetano
Pedro Vieira
Filipe Carvalho
[Image: 78367385.jpg]
Reply
#2
Alexandre, correndo o risco de estares a falar de alhos e eu a responder bogalhos Smile, aqui vai :

O conjunto

typedef struct {
int points; /* numero de pontos obtidos */
char player[8]; /* pacman, inky, blinky, pinky or clyde */
time_t sta_time; /* data/hora da entrada no jogo */
time_t end_time; /* data/hora da saida do jogo */
uid_t user; /* identificador do utilizador que jogou */
char logname[16]; /* nome do utilizador que jogou */
} pacman_record_t;

define um novo tipo que passa a poder ser utilizado como outro tipo "interno" ao C.
Isto é, da mesma forma que quando escreves :

int i_numero_inteiro;
Estás a declarar a variável i_numero_inteiro como sendo do tipo int, passas a poder declarar algo do género :

pacman_record_t v_registo_record;
Desta forma declaras a variável v_registo_record, como sendo do tipo pacman_record_t.

Depois de declarares essa variável, podes usá-la exactamente da mesma forma que qualquer outra, identificando o nome da variável seguido de "." (ou "->" no caso de ser um apontador) seguido do campo interno da estrutura, tipo :

v_registo_record.points=100;

ou

strcpy(v_registo_record.player, "blinky");


A escrita em ficheiro binário segue a forma :

fwrite(&v_registo_record,sizeof(v_registo_record),1, fp )
Parâmetros :
- Apontador para "o que" queres gravar
- Tamanho unitário do que queres gravar
- n vezes o tamanho do parâmetro anterior (Na práctica cada registo em ficheiro fica com o tamanho Parâmetro 2 * Parâmetro 3)
- Apontador para o ficheiro onde queres escrever

em que fp é um FILE *, previamente definido e que "sofreu" a atribuição dada por um fopen()

É claro que o exemplo está descrito para um único registo, mas o princípio é o mesmo para n registos.
A forma mais simples de usar a variável para n registos seria definir, por exemplo :

pacman_record_t v_registo_record[100];

Desta forma definirias um array com 100 registos, o inconveniente é que tens que saber o limite máximo que nem sempre é conhecido. Outra forma seria criar dinamicamente cada elemento do "array" com apontadores e respectiva alocação de memória, mas isso é outro filme Smile

Se não era nada disto que querias saber, deculpa lá o tempo que te tomei Wink
Reply
#3
Ah......
Ricas lembranças da minha frequência falhada na uni....
Tbem tive C.

4 dias a correr para acabar um simulador de ATC (air trafic controler), que logicamente não ficou bem.

Mais outros tantos, desta vez mais relaxados a fazer um "joguito" com um canhão a atirar contra uns cubos no chão (3D), que pelos poderes da lócgica tbém não ficou bem.... só podia dispara um tiro de cada vez (i.e. tinha que esperar que o projectil atingisse algo/terminado um timer que pus) entre outras coisas.... MrGreenBig GrinCoolBlush
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Pedido Ajuda para comprar computador Novo Mario Esteves 4 4.231 13-03-2009, 06:09 PM
Last Post: Duarte Vieira
  problems com pc AJUDA URGENTE okki 9 4.049 02-01-2007, 12:37 PM
Last Post: _ratax

Forum Jump:


Users browsing this thread: 1 Guest(s)