09/01/2019, 22:12
double funz (double x);
poi in fondo a tutto
double funz (double x) {
double y;
y=c[i]*x+r0*(sqrt(c[i]*c[i]+1));
return y;}
double funz (double x,double c, int r0) {
10/01/2019, 09:59
10/01/2019, 10:02
double func (double x,double c, int r0) {
double y = 0;
y = c*x + r0*(sqrt(c*c+1));
return y;
}
10/01/2019, 12:13
10/01/2019, 14:35
Anacleto13 ha scritto:
- Codice:
double func (double x,double c, int r0) {
double y = 0;
y = c*x + r0*(sqrt(c*c+1));
return y;
}
Fondamentalmente facendo così stai solo ritornano il valore di $y$, se quello è il tuo testo completo non leggo che devi ritornare i valori dei fasci di rette, se è così devi lavorare con gli array.
double funzione( double x, double c, int r0 ) {
double y = c * x + r0 * sqrt( c * c + 1 );
return y;
}
double funzione( double x, double c, int r0 ) {
return c * x + r0 * sqrt( c * c + 1 );
}
double funzione( double x, double c, int r0 ) {
double k = c * c + 1;
double q = r0 * r0 * sqrt( k );
return c * x + q;
}
y[j] = funzione( x[j], c[i], r0 );
. Nota che la soluzione originale richiedeva di dichiarare tutto come variabili globali, mentre con la nuova non è più necessario.
10/01/2019, 15:06
a=-3.;
b=5.;
c[0]=-2;
incr=0.5;
for (i=1;i<5;i++) {
c[i]=c[i-1]+incr; }
h=(b-a)/6;
for (i=0;i<5;i++) {
for (j=0;j<=5;j++) {
x=a+j*h;
y=c[i]*x+2*(sqrt(1+c[i]*c[i]));
fprintf(fp,"%12.6f %12.6f\n",x,y); }
fprintf(fp,"\n");
}
10/01/2019, 15:34
double funz (double x,double c,double r0) {
return c * x + r0 * sqrt( c * c + 1 );}
e.c: In function ‘main’:
e.c:35:25: error: too few arguments to function ‘funz’
y=funz (x);
^~~~
e.c:7:8: note: declared here
double funz (double x,double c,double r0);
^~~~
e.c:13:38: warning: variable ‘r0’ set but not used [-Wunused-but-set-variable]
double h,c[5],a,b,x,y,incr,d,e,t,r0;
^~
10/01/2019, 20:24
Zyzzoy ha scritto:Forse l'ansi c chiede questo formato, io non lo so il prof non spiega, il double funz(double y) pensavo andasse bene ovunque, ormai lo facevo in modo automatico, l ho preso da un suo esercizio e funziona in tutti tranne in questo. Dopo un periodo di smarrimento ho trovato come dichiarare le altre variabili tra parentesi, ma come continuare sotto non lo so proprio..
Zyzzoy ha scritto:Non so se mi son spiegato bene, probabilmente non si capirà nulla di quello che ho scritto. Faccio ingegneria meccanica e quest'esame per me è demoniaco.
10/01/2019, 20:46
11/01/2019, 17:17
#include <math.h>
#include <stdio.h>
/**
* Data la famiglia di rette
* \[\{ f_{c,\ r} = cx + r\sin(c^2 + 1) \colon c, r \in \mathbf{R} \},\]
* questa funzione calcola il valore della funzione $f_{c,r}$ nel punto $x$.
*/
double funzione( double x, double c, double r );
int main( void )
{
const double r0 = 2.0;
const int NUM_RETTE = 5;
const int NUM_SEGMENTI = 10;
double c = 0.1;
int i = 0;
for( ; i != NUM_RETTE; ++i )
{
double x = 0.0;
const double d = 1.0 / NUM_SEGMENTI;
int j = 0;
for( ; j != NUM_SEGMENTI + 1; ++j )
{
x = ( d * j );
double y = funzione( x, c, r0 );
printf( "c=%f, r=%f, x=%f, y=%f\n", c, r0, x, y );
}
c += 0.1;
}
}
double funzione( double x, double c, double r )
{
return x * c + r * sin( c * c + 1 );
}
#include <math.h>
#include <stdio.h>
struct Retta {
double m;
double q;
};
void calcola_funzione( struct Retta * retta, double c, double r );
double valuta_funzione( struct Retta const * retta, double x );
int main( void )
{
const double r0 = 2.0;
const int NUM_RETTE = 5;
const int NUM_SEGMENTI = 10;
double c = 0.1;
int i = 0;
for( ; i != NUM_RETTE; ++i )
{
struct Retta retta;
calcola_funzione( &retta, c, r0 );
const double d = 1.0 / NUM_SEGMENTI;
double x = 0.0;
int j = 0;
for( ; j != NUM_SEGMENTI + 1; ++j )
{
x = ( d * j );
double y = valuta_funzione( &retta, x );
printf( "c=%f, r=%f, x=%f, y=%f\n", c, r0, x, y );
}
c += 0.1;
}
}
void calcola_funzione( struct Retta * retta, double c, double r )
{
retta->m = c;
retta->q = r * sin( c * c + 1 );
}
double valuta_funzione( struct Retta const * retta, double x )
{
return retta->m * x + retta->q;
}
Skuola.net News è una testata giornalistica iscritta al Registro degli Operatori della Comunicazione.
Registrazione: n° 20792 del 23/12/2010.
©2000—
Skuola Network s.r.l. Tutti i diritti riservati. — P.I. 10404470014.
Powered by phpBB © phpBB Group - Privacy policy - Cookie privacy
phpBB Mobile / SEO by Artodia.