Boa tarde, pessoal, tudo certo?
Estou com um problema em C que vem tirando meu sono: criar um algoritmo que permita gerar um número definido pelo usuário de funções (seja ela trigonométrica, linear, polinomial, logarítmica, etc), ou seja, pergunto para o usuário quantas funções ele deseja calcular e, em seguida, o intervalo para cada uma dessas funções (também será inserido pelo usuário). Pode parecer meio confuso, então vou colocar abaixo um trecho do que já fiz e os problemas relacionados.
printf ("Quantidade de curvas desejadas: ");
scanf ("%d", &QTDE_CURVAS); //quantidade de curvas desejadas pelo
// estrutura com dados que todos os gráficos deverão ter.
struct Dados {
float xmax, xmin; // valor mínimo e máximo do eixo x;
char NOME_EIXO_X[30], NOME_EIXO_Y[30]; // nome dos eixos (pode ser temperatura, viscosidade, tempo, etc).
int NUMERO_PONTOS; // quantidade de pontos que o usuário deseja ter no intervalo de xmax e xmin
};
for (i=0; i<QTDE_CURVAS; i++) {
struct Dados CURVA; // CRIARÁ UMA STRUCT PRA CADA GRÁFICO
printf ("Dados da curva %d\n\n", i+1);
printf ("Valor mínimo de x: ");
scanf ("%f", &CURVA.xmin);
printf ("Valor máximo de x: ");
scanf ("%f", &CURVA.xmax);
printf ("Nome do eixo x: ");
scanf ("%s", &CURVA.NOME_EIXO_X);
printf ("Nome do eixo y: ");
scanf ("%s", &CURVA.NOME_EIXO_Y);
printf ("Quantidade de pontos na curva: ");
scanf ("%d", &CURVA.NUMERO_PONTOS);
printf ("%f\n", CURVA.xmin);
printf ("%f\n", CURVA.xmax);
printf ("%s\n", CURVA.NOME_EIXO_X);
printf ("%s\n", CURVA.NOME_EIXO_Y);
printf ("%d\n", CURVA.NUMERO_PONTOS);
}
Isso foi o que fiz até o momento. Porém, além de criar os valores das funções, preciso calcular os números do eixo x e y e salvar para depois, em outro laço, conseguir imprimir. Já tentei utilizar matriz multidimensional e ponteiros, mas não deu certo. Preciso de ajuda pois não sei se estou no caminho certo, se há uma forma mais fácil de criar isso, ou até mesmo se é possível fazer isso em C.
Por fim, caso minha explicação anterior tenha ficado confusa, vou tentar explicar de maneira mais sucinta o objetivo do programa:
O programa tem a função de calcular os valores de f(x)=y de diversas funções, tais como trigonométrica, exponencial, log, etc;
Assim, o usuário diz quantas funções deseja calcular (QTDE_CURVAS);
O programa, por sua vez, inicia perguntando os dados referentes a primeira curva, como o intervalo (xmin e xmax) nome dos eixos, e a quantidade de pontos a ser calculada nesse intervalo;
*O programa calcula os pontos e salva-os na memória. Por exemplo, uma função linear f(x)=2x no intervalo de -1 e 1. Assim, os valores a serem salvos de f(x) serão -2, 0 e 2.
Caso o usuário digite um número maior do que um na quantidade de curvas, perguntar novamente os valores xmin e xmax, quantidade de pontos e nome dos eixos e calcule outra função qualquer. Pode ser sen x em um intervalo de -pi a pi com 300 pontos.