1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[C++] Problema de principiante

Discussão em 'Programação' iniciada por rDomingues, 30 de Novembro de 2012. (Respostas: 5; Visualizações: 905)

  1. rDomingues

    rDomingues Power Member

    Bom dia.

    Ora bem, tenho um TPC de programação que consiste em escrever um programa para armazenar 2 tabelas de dados introduzidos pelo utilizador (nome [com um maximo de 60 caracteres] e ano de nascimento), utilizando duas funções, uma para a elaboração das tabelas e outra para a sua visualização.

    Ora, eu escrevi o codigo abaixo, mas não sei bem como declarar as tabelas na função, pelo que gostava que alguem mais entendido me explicasse como o fazer...

    Se não estou em erro, para declarar uma tabela multidimensional, necessito de definir o que esta acima a bold, mas no local do 61 queria utilizar uma variavel "MAX_NOME", mas não sei como a declarar.

    Utilizando o codigo acima, ao compilar tenho erros ao utilizar a função, na linha:
    cannot convert `char (*)[((unsigned int)((int)MAX_NOME))]' to `char (*)[61]' for argument `1' to `int ledados(char (*)[61], int, unsigned int*, int, int)'

    Provavelmente porque estou a fazer para ali uma salganhada.

    Enfim, fica o codigo, se alguma alma caridosa me quiser ajudar, fico agradecido.

     
  2. Darien

    Darien Power Member

    Por partes, sem ter visto com grande pormenor o que estiveste a fazer:
    -Nas funções tens uma variável ldata que nunca usas, portanto era de considerar tirares.
    -É um pormenor mas: já que estás em C++, porque não usas strings em vez de arrays de chars? (depois podias fazer string.size() para validar o comprimento, como isso está ficas com nomes maiores que o limite cortados - mais info em http://www.cplusplus.com/reference/string/string/).

    Antes de continuar, já falaste/queres saber/é suposto saberes o que são structs?

    Desculpa não poder ver o erro em específico agora e ter-me ficado pelos pormenores, com mais tempo vejo isso, masde qualquer maneira alguém te vai ajudar mais cedo, for sure ;)
     
  3. rDomingues

    rDomingues Power Member

    Tenho instruções especificas para utilizar tabelas de caracteres em C. Structs ainda não dei, deve estar para chegar.

    A variavel ldata não é necessária para passar a tabela para a função?
     
  4. rDomingues

    rDomingues Power Member

  5. Sir_Joca

    Sir_Joca Power Member

    Vê como funcionam os apontadores. Não se usam vectores assim.
    Passando um apontador do vector para a função não te tens de preocupar com tamanhos.
     
  6. rDomingues

    rDomingues Power Member

    Mas para a resolução deste problema, não posso usar Ponteiros (supostamente ainda não os dei).

    Ora eu vou explicar o que estou a tentar fazer.

    Basicamente projectei uma função para pedir ao utilizador nomes completos e anos de nascimentos (de pessoas diferentes) e guardar esses dados retornando o numero de dados (ou de pessoas) introduzidas na função.

    Ora para isso projectei uma função, que irá introduzir esses dados em 2 tabelas (uma bi-dimensional para as strings e outra uni-dimensional para os anos), previamente declaradas (fora da função) e sem qualquer dado, sendo elas:

    int MAX_NOME = 61;
    int MAX_PESSOAS = 30;
    char nome[MAX_PESSOAS][MAX_NOME];
    unsigned int datas[MAX_PESSOAS];


    MAX_PESSOAS = Numero maximo de indivios a serem introduzidos
    MAX_NOME = Numero maximo de letras em cada nome

    Ora o meu problema é passar isto para a função. Segundo os pdf's que foram disponibilizados faria-se assim:

    int ledados(char auxnome[][int MAX_PESSOAS], int nlinhas, unsigned int auxdata[], int dlinhas ...

    Ora, o que não está aqui correcto, alguem me sabe explicar?
     

Partilhar esta Página