Anteprima
Vedrai una selezione di 10 pagine su 41
Appunti di fondamenti di informatica e programmazione Pag. 1 Appunti di fondamenti di informatica e programmazione Pag. 2
Anteprima di 10 pagg. su 41.
Scarica il documento per vederlo tutto.
Appunti di fondamenti di informatica e programmazione Pag. 6
Anteprima di 10 pagg. su 41.
Scarica il documento per vederlo tutto.
Appunti di fondamenti di informatica e programmazione Pag. 11
Anteprima di 10 pagg. su 41.
Scarica il documento per vederlo tutto.
Appunti di fondamenti di informatica e programmazione Pag. 16
Anteprima di 10 pagg. su 41.
Scarica il documento per vederlo tutto.
Appunti di fondamenti di informatica e programmazione Pag. 21
Anteprima di 10 pagg. su 41.
Scarica il documento per vederlo tutto.
Appunti di fondamenti di informatica e programmazione Pag. 26
Anteprima di 10 pagg. su 41.
Scarica il documento per vederlo tutto.
Appunti di fondamenti di informatica e programmazione Pag. 31
Anteprima di 10 pagg. su 41.
Scarica il documento per vederlo tutto.
Appunti di fondamenti di informatica e programmazione Pag. 36
Anteprima di 10 pagg. su 41.
Scarica il documento per vederlo tutto.
Appunti di fondamenti di informatica e programmazione Pag. 41
1 su 41
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

#define M 9

double X [ M ];

double Y [ M ];

double a = -4. ;

double b = 4. ;

double dx = 1;

int i;

for( i = 0; i < M ; i++){

X [ i ] = a+i*dx;

Y [ i ] = funzione ( X [ i ]);

fprintf ( fp, "%13.5f %13.5f \n", X [ i ], Y [ i ]);

}

for( i = M-1; i >= 0 ; i--){

X [ i ] =a+i*dx;

Y [ i ] = funzione(X[ i ]);

}

int k = 1;

i = 0;

while( i <= M){

fprintf ( fp, "%2d %13.8f %13.8f \n",k, X [ i ], Y [ i ]);

i++;

k++;

}

int k = 1;

double resto;

i = 0;

while (i < M+1){

resto = ( X[ i ] - (int) X[ i ]);

if (resto==0){

fprintf ( fp, "%2d %13.8f %13.8fn", k, X[ i ], Y[ i]);

i++;

k++;

}

int i, passo;

passo = 3;

for(i = 0; i < M; i++){

if( X[ i ] < 0. && i%passo==0 ){

fprintf (fp, "%2d %13.7f %13.7f\n", i+1, X[ i ], Y[ i ]);

}

if( X[ i ] >= 0.) {

fprintf( fp, "%2d %13.7f %13.7f \n", i+1, X[ i ], Y[ i ]);

i += 3;

}

double dx1 = 1/3. ;

double dx2 = 1/4. ;

for(i = 0; i < M; i++){

if ( i==0 || X[ i-1 ] < 0 ){

X[ i ] = a + i*dx1;

}else{

dx1 = dx2;

X[ i ] = X[ i-1 ] + dx1;

}

Y[ i ] = funzione ( X[ i ]);

}

int K = 1;

i = 0;

while ( i < N ){

if ( i%4 == 0 ){

fprintf (fp, "%2d %13.9f %13.9f\n", K, X[ i ], Y[ i ]);

}

i++;

k++;

}

fprintf ( fp, "Intervallo: [%d,%d] \n", a,b);

fprintf ( fp, "h=%13.8f \n", h);

fprintf ( fp, "Suddivisione:%d \n", M);

FIBONACCI CON WHILE

fi = fi-1 + fi-2 solo primi 30 numeri

int fb;int fb1;int fb2;i=1;fb=0;fb1=0;fb2=1;while(i<30){fprintf(fp, "%5d %5d\n", i, fb);fb = fb1+fb2;fb2 = fb1;fb1 = fb;i++;}

Stampare solo indice multiplo di 5

int fb;int fb1;int fb2;i=1;fb=0;fb1=0;fb2=1;while (i<30){if (i%5==0){fprintf(fp, "%5d %5d\n", i, fb);fb = fb1+fb2;fb2 = fb1;fb1 = fb;}i++;}

H = (double) (b - a) / N;for (i = 0; i < N; i++) {t = a1 + i*H; x = 2 * (t + 1); y = 4 * (t * t - 1) + 8 * (t + 1); printf(" %13.8f %13.8f \n", x, y);}

double funzione (double x, double c){

double y; y = 2 * c * x - c * c; return y;}

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

#define OUTFILE "inttra.dat"

#define NINT 2

double funzione (double x);

double primitiva (double x);

int main(void){

FILE *fp;

double a = -1.;

double b = 1.;

double h ;

int i ;

int j ;

int n = 2;

double l = 0 ;

double s ;

double intanalitica;

double tmp ;

double ris_int [ 6 ];

double era [ 6 ] ;

double err [ 6 ] ;

double p ;

double rapp1;

if((fp=fopen(OUTFILE,"w"))==NULL){

(void)fprintf(stderr,"Non si apre: %s!\n", OUTFILE);

return EXIT_FAILURE;

}

intanalitica = primitiva (b) - primitiva (a);

/*case 4:

psik[0]=-0.8611363116; psik[1]=-0.3399810436;

psik[2]= 0.3399810436; psik[3]=0.8611363116;

wk[0]=0.34785548451; wk[1]=0.65214551549;

wk[2]=wk[0];

wk[3]=wk[0]; punti 1,2,3*/

default:

printf("troppi punti");

s = 0. ;

for ( k = 0 ; k < ng ; k++ ){

xk = 0.5 * ( b + a ) + 0.5 * ( b - a ) *psik [ k ] ;

s = s + funzione ( xk ) * wk [ k ] * jac;

era = fabs ( s - intanalitica ) ;

err = fabs ( s - intanalitica ) / fabs ( intanalitica ) ;

if ( k > 0 ){

fig = fabs ( s - s_1 ) / fabs ( s ) ;

s_1 = s ;

}

fprintf(fp, "%d %1f %13.8f %13.8f %13.8f\n", ng,s, era,err,fig);

}

fclose(fp);

return EXIT_SUCCESS;

}

double funzione (double x)

{

return exp(2*x)*cos(x);

}

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

#define OUTFILE "intretce.dat"

#define NINT 2

double funzione (double x);

double primitiva (double x);

int main(void){

FILE *fp;

double a = -1.;

double b = 1.;

double h ;

int i ;

double s ;

int j ;

int n = 2 ;

double idx ;

double isx ;

double y ;

double ris_int [ 6 ] ;

double intanalitica ;

double err [ 6 ] ;

double era [ 6 ] ;

double p ;

double rapp1;

if((fp=fopen(OUTFILE,"w"))==NULL){

(void)fprintf(stderr, "Non si apre:%s!\n", OUTFILE);

return EXIT_FAILURE;

}

n = NINT ;

intanalitica = primitiva (b) - primitiva (a);

for ( i = 0; i < 6; i++){

while ( /*fabs(b-a)>ER &&*/ k <= iter [ i ]){

xm = (a + b) /2. ;

fxm = funzione (xm);

if (fa*fxm > 0. ){

a = xm;

fa = fxm;

}else{

b = xm;

fb = fxm;

}

q = fabs( xm - xk_1 ) / fabs(xm);

e1 = fabs( xm - ZERO) / xm;

e2 = fabs(xm - ZERO);

e3 = fabs(xm - ZERO) / fabs (xk_1 - ZERO);

k++;

xk_1 = xm;

}

fprintf(fp, "%1d %13.8f %.8e %.8e\n", (k - 1), xm, q, e1,e2...);

}

fclose(fp);

return EXIT_SUCCESS;

}

double funzione(double x)

{

double y;

y=exp(x)+x-2;

return y;

}

DERIVATE IN AVANTI

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

#define NINT 10

#define OUTFILE "diffav.dat"

double funzione (double x);

double derivata (double x);

int main (void){

  • FILE *fp;
  • double a = -1.0; [ESTREMI INTERVALLO]
  • double b = 1.0;
  • double h = 0;
  • double xk = 0;
  • double xka;
  • int j;
  • int k;
  • double fd1k_a [20 + 1]; [()ⁿ⁰ + gradi] + 1
  • int n;

if((fp=fopen(OUTFILE,"w"))==NULL){

(void)fprintf(stderr,"Non si apre: %s!\n", OUTFILE);

return EXIT_FAILURE;

}

n = NINT + 1;

h = (double) (b - a) / (n - 1) ;

xk = a + h;

xka = xk + h;

  1. ″ = (k+2 - 2k+1 + k) / h²   (A)
  2. ″ = (k - 2k-1 + k-2) / h²   (I)
  3. ″ = (k+1 + k-1 - 2k) / h²   (C)

for (j = 0; j < 2; j++){

    h = (double) (b - a) / (n - 1);

    for (k = 1; k < n - 1; k++){

        fd1k_c[k] = (funzione(xka) - funzione(xki)) / (2*h);

        xk = xk + h;

        xka = xk + h;

        xki = xk - h;

    }

    xk = a + h;

    for (k = 1; k < n - 1; k++){

        fprintf(fp, "%13.8f %13.8f %13.8f\n", xk, fd1k_c[k], fabs(derivata(xk) - fd1k_c[k]));

        xk = xk + h;

    }

    fprintf(fp,"\n");

    n = 2*n;

}

fclose(fp);

return EXIT_SUCCESS;

}

double funzione(double x)

{

    return exp(2*x)*sin(x);

}

double derivata (double x)

{

    return 2*exp(2*x)*sin(x)+exp(2*x)*cos(x);

}

Dettagli
Publisher
A.A. 2019-2020
41 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Aleproia di informazioni apprese con la frequenza delle lezioni di Fondamenti di informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Bologna o del prof Manservisi Sandro.