1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.
  2. Informação: Entre as 13:00 e 15:00 (12:00 e 14:00 nos Açores) deste Sábado, 24 de Fevereiro, poderão haver períodos de inacessibilidade ao fórum e restantes sites da ZWAME (Comparador, Jogos, Portal, etc).
    Se necessário faremos actualizações via Twitter e Facebook.
    Remover anúncio

URGENTE!!!LINGUAGEM C

Discussão em 'Programação' iniciada por fabiopires1011, 10 de Fevereiro de 2018. (Respostas: 72; Visualizações: 1657)

  1. Sim o ficheiro está na pasta. Como é que faço isso da alocação dinâmica?
     
  2. wowmiguelfcp

    wowmiguelfcp Power Member

    Já verificaste se o ficheiro está com o mesmo nome que indicaste no código? Não pode haver diferenças.

    Já aprendeste pointers e alocação dinâmica de memória?
     
  3. já mas nao percebi nada de alocação dinamica
     
  4. wowmiguelfcp

    wowmiguelfcp Power Member

    Que erro te dá já agora? Dá erro a compilar, dá erro durante a execução do programa?

    Experimenta fazer fopen("nome_do_ficheiro.csv", "r")
     
  5. Não resultou. Como é que faço a alocação dinamica
     
  6. wowmiguelfcp

    wowmiguelfcp Power Member

    Step by step! Não te preocupes com isso porque da maneira que está funciona. Isso é mais um extra.

    Já tentaste fazer debug ao código?
     
  7. Mas no enunciado diz que alocaçao dinamica e um requisito minimo
     
  8. wowmiguelfcp

    wowmiguelfcp Power Member

    Eu não vi nada no enunciado que pedisse alocação dinâmica.

    Tu ainda não conseguiste por o inicial a funcionar que é abrir o ficheiro e estás a querer a complicar já??

    Primeiro vê porque razão não abre o ficheiro, vê se tens o ficheiro .csv na mesma pasta do projecto que estás a desenvolver e vê se estás a passar com o nome correcto.

    Isto é um mini projecto, tens de fazer as coisas com calma, uma coisa de cada vez e ir testando. Se queres fazer tudo de uma vez vai dar barraca da grossa.
     
  9. passei para a main e ja nao da erro. entao criei uma funçao chamada abrirficheiro so com o codigo para abrir o ficheiro
     
  10. Boas,

    tens duas maneira de fazeres isso,
    1- quando entra no menu alterar,remover mostras um output com as pessoas existentes do tipo
    1-Pessoa 1
    2-Pessoa 2
    3-Pessoa 3

    Escolhe a pessoa que quer alterar : 1

    Aqui já consegues alterar a pessoa que o utilizador escolher, não te esqueças se ele escolher 1 a primeira pessoa é n-1.

    2- Pedes para introduzir o nome ou um id da pessoa e depois é igual ao exemplo anterior.

    Não sei se era bem isto a tua duvida.
     
  11. a minha duvida era mesmo a parte do codigo
     
  12. Sim, ok parte do código mas mais concretamente o que?
    -não sabes por onde começar?
    -não sabes como aceder ao registo especifico que queres alterar/remover?
    -etc....
     
  13. nao sei como começar e nao sei como remover e alterar
     
  14. Pronto, para o remover e o alterar podes começar por criar uma função como te dei no exemplo 1, depois de saberes qual o valor "n" escolhido pelo utilizador sabes que a posição da Pessoa é [n-1], a não ser que no menu começas pelo valor 0, neste caso a posição é igual ao valor n escolhido.
    Depois é só fazeres prints e sanf's para receber os valores que queres alterar. No caso de remover tens q pedir novamente a pessoa que queres remover e com um for percorres a tua lista de pessoas da posição "n"(indice que queres remover) até ao final da lista.
    ex:
    tens uma lista de 5 pessoas, mostras as 5 pessoas e o utilizador escolhe pessoa 2 a partida sabes que pessoa 2 corresponde ao indice 1 da tua lista, entao pessoas[1]=pessoas[1+1] ou seja pessoas[n]=pessoas[n+1]. Assim consegues remover um elemento da tua lista.
     
  15. mas depois disso escolho o que quero remover igualando a "NULL=?
     
  16. Igualares a null apenas ficas com o registo vazio ou seja vais continuar a ter 5 Pessoas onde uma delas não tem la nada. O que tu tens q fazer é igualares a posição seguinte a tua posição remover como te disse anteriormente n=n+1 ate ao final da lista.
    ex: 1 2 3 4 5 queres apagar 3 se fosse NULL ficava assim 1 2 "" 4 5, com n=n+1 fica assim 1 2 4(=3 valor 4 fica com a posição do 3) e 5=4
    PS: mas para perceberes cria um array simples de int, listas todos, removes o elemento 2 ou 3 com NULL e voltas a listar e vês o resultado.
     
  17. mas caso queira voltar a preencher essa posiçao posso?
     
  18. Essa posição é preenchida com o elemento seguinte da tua lista. Deixares essa posição "NULL" para depois mais tarde preencheres com um registo novo não faz sentido. Numa lista pequena de 10 20 elementos não ha crise, mas imagina que tens uma lista com 9k ou mais registos e estas sempre a remover e inserir novos. Preencheres sempre as posições que "apagas" com os novos registo não faz sentido.
     
  19. por exemplo tenho um vetor de estruturas de 5 elementos. apago o 3 registo. 0 4 passa para o 3 e o 5 para o 4. depois ao chamar a funçao para preencher registos, essa informaçao vai ser guardada na 5 posicao?
     
  20. Sim. Mas experimentar o exemplo que te disse crias um array de 5 elementos e fazes os testes. Vais entender melhor se usares NULL ou se usares n=n-1
     

Partilhar esta Página