boas tou com um trabalho de C++ em que pede para inserir void. parte do c++ que detesto sera que me conseguem ajudar? o trabalho que a stora pediu tem a seguinte descriçao Sabendo que um ponto é constituido por três coordenadas e uma recta pode ser definida por dois pontos. desenvolva um programa que implemente as seguintes estruturas e funções. 1. Defina as estruturas ponto e recta; 2. Desenvolva uma função que permita definir um ponto. A função deverá ter o seguinte protótipo: void inserirPonto(Ponto &p); 3. Desenvolva uma função que mostre o valor das coordenadas de um ponto. A função deverá ter o seguinte protótipo: void imprimirPonto(Ponto p); 4. Desenvolva uma função que permita alterar valor das coordenadas de um ponto. A função devera ter o seguinte protótipo: void alterarPonto(Ponto *p); 5. Desenvolva uma função que permita definir uma recta. A função deverá ter o seguinte protótipo: void inserirRecta(Recta *r); 6. Desenvolva uma função que mostre o valor das coordenadas dos pontos de uma recta. A função devera ter o seguine protótipo: void inserirRecta(Recta &r); 7. Desenvolva uma função que calcule o comprimento de uma recta. A função deverá ter o seguinte protótipo: doble comprimentoRecta(Recta r); Ps: eu n tou a pedir para me fazerem o trabalho, apenas para me puderem ajudar a faze-lo.
já agora esclarece se é C++ ou apenas C. se detestas o void então esquece programação... aliás, nao sei qual o motivo da tua birra com o void! teóricamente parte do problema está mal formulado pois não é uma recta mas sim uma secção de recta... já que estás a defini-la com um comprimento.
Como trabalhar com Protótipos: o exemplo que a wikipedia dá é bastante claro: Código: #include <stdio.h> /* * Se o protótipo é disponibilizado, o compilador irá detectar o erro * na função main(). Se ele é omitido, o erro não será notificado. */ [I]int fac(int n);[/I] /* Protótipo da função */ int [URL="http://pt.wikipedia.org/w/index.php?title=Main_%28fun%C3%A7%C3%A3o%29&action=edit&redlink=1"]main[/URL]() { /* Chamada da função */ [URL="http://pt.wikipedia.org/w/index.php?title=Printf&action=edit&redlink=1"]printf[/URL]("%d\n", fac()); /* ERRO: falta um argumento na chamada de fac */ return 0; } int fac(int n) { /* Função chamada */ if (n == 0) { return 1; } else { return n * fac(n - 1); } } fonte: http://pt.wikipedia.org/wiki/Protótipo_de_função
Eu por acaso adoro o void... ou é pq não tenho que fazer return ou porque não vou ter parametros de entrada
penso que estejas a confundir ainda mais pois o que postaste nao está completo nem relacionado com pontos e rectas. faz o seguinte, ao desenvolver o teu código (e agora vou supôr que é em C) segue esta estrutura como ponto de partida: Código: #include <stdio.h> /* * descrição do teu código * */ [I] /*[/I] Protótipos das funções */ void imprimirPonto(Ponto p); void alterarPonto(Ponto *p); void inserirRecta(Recta *r); void inserirRecta(Recta &r); doble comprimentoRecta(Recta r); /* Zona de Código*/ void [URL="http://pt.wikipedia.org/w/index.php?title=Main_%28fun%C3%A7%C3%A3o%29&action=edit&redlink=1"]main[/URL] (void) { /* em alternativa podes usar "int main (void){ ... return 0; }" */ /* introduz aqui o teu código */ } /* Funções auxiliares */ void imprimirPonto(Ponto p) { /* introduz aqui o teu código */ } void alterarPonto(Ponto *p) { /* introduz aqui o teu código */ } void inserirRecta(Recta *r) { /* introduz aqui o teu código */ } void imprimirPonto(Ponto p) { /* introduz aqui o teu código */ } doble comprimentoRecta(Recta r) { /* introduz aqui o teu código */ } vê agora o que precisas para definir um ponto e uma recta, assim como trabalhar com ponteiros, leitura e escrita. por exemplo, podes usar um array de 3 integers para armazenar as coordenadas de um ponto... e basicamente com isto ja tens feitas as funçoes do ponto.
Porque é que detestas o void? A única coisa que diz é que a função corre, mas não devolve um valor de tipo nenhum (aka procedimento). Basicamente tens de fazer o que o m00s disse. Defines as estruturas (com o typedef struct), e depois é fazeres as funções...
1º Sabes o que significa void? 2º Se sim, qual a dúvida exactamente? Se não . . . 3º Pratica para a frente que com a prática dificuldades passam a ser horas a menos no próximo work cumpzz
Rapaz, o void não tem nada de assustador. Apenas faz com que um método não tenha que retornar nenhum valor. Por exemplo: Código: void inserirRecta(Recta &r) { ... } int inserirRecta(Recta &r) { ... int n=5; return n; } float inserirRecta(Recta &r) { ... float n=5.4; return n; } string inserirRecta(Recta &r) { ... string nome="LuisFP"; return nome; } bool inserirRecta(Recta &r) { ... return true; }
A tua professora é uma besta é que é tanta estupidez junta que ninguém sabe por onde lhe pegar. i)Em programação orientada aos objectos o que existem são métodos, funções só existem na cabeça das bestas que ainda andam na programação procedimental.. ii) Nesses métodos ninguém entende porque nuns a assinatura tem apontadores e outros referencias. iii) Ninguem entende muito bem porque é que essa "função" não tem na sua assinatura 1 recta e 2 pontos... iv) Cumo? uma recta é contituida por uma infinidade de pontos, como é que e possível lista-los a todos? v) Temos prémio Nobel da Matemática para a tua professora, pelos avanços que ela consegui em geometria analitica, foi a primeira pessoa a consegui calcular o comprimento de uma recta. ------------------------------------------ Agora passando à parte do teu trabalho tens de fazer isto: Definir 2 estruturas, (typedef struct) uma chamada ponto (com 3 atributos do tipo double que são as cordenadas de um ponto no espaço (x,y,z)) e uma chamada recta que tem 2 atributos do tipo ponto (a outra estrutura que definiste antriormente). Depois tens de preparar metodos de acesso á estrutura (1 metodo que te permita definir 1 ponto usando 3 doubles e outro metodo que te permita definir uma recta passando-lhe 2 pontos). metodos de listaguem (1 metodo para mostrar as cordenadas do ponto e outro metodo para mostrar os pontos que fazem parte da recta -> aqui é importante reutizares o código) depois é um metodo de calculo de distancia entre 2 pontos no espaço (é só fazeres uma pesquiza na net para encontrares as formulas). E antes de começares a trabalhar das 1 Rare Candy ao meu pokemon
Não sejas tão mau com a senhora... bem sabes o que ela quer dizer com recta e pontos da recta. Mas quanto à parte das funções e estruturas...
É basicamente o mesmo, só que o int main() fica à espera dum inteiro ao fim da sua execução. Tens de colocar a linha return 0; ao fim de tudo, para o programa sair correctamente. Se não for importante a diferença, usa o void main ()
Se usas void main() não retornas nada ao sair do programa. Com int main() tens que retornar um valor (geralmente - return 0; ) Embora ambas funcionem, a implementação mais correcta é int main(). O return do int main() é util quando por exemplo um programa chama outro. Quando o programa A chama o programa B, uma maneira de o programa A tem de saber se o B foi bem executado é através do valor de retorno do B. Se B retornar zero - tudo OK. Se retornar outro número (geralmente return -1; ) então o programa A sabe que alguma coisa correu mal e pode trabalhar a partir daí.
Na verdade, nenhuma dessas implementações está correcta. Segundo a norma C99, existem apenas 2 headers possíveis para a função main: Código: int main(void) int main(int argc, char** argv) Na 1ª, a função main não recebe nenhum argumento. Na 2ª, recebe argumentos que podem ser acedidos pelo argc e argv. O header int main() representa uma função main que recebe um número variável de argumentos. http://www.portugal-a-programar.org/forum/index.php/topic,30718.msg236498.html#msg236498