#include #include #define k 8.99e9 #define X 100. double Er(double q1, double r) { // questa funzione restituisce il modulo del campo elettrico // prodotto da una carica q1 a una distanza r, diviso per r return k*q1/(r*r*r); } main() { double L = 10.; // lunghezza totale della sbarra int N = 1024; // numero di intervalli in cui dividere la sbarra double Q = 1.e-6; // densita' di carica 1 uC/m double Ex, Ey; int i, j; // calcoliamo il campo in diversi punti x (da -X a X) // a distanza y fissata dalla sbarra double x = -X/2., y = 1.; for (j = 0; j < N; j++) { double l = -L/2.; Ex = 0; Ey = 0; // sommo tutti i contributi al campo elettrico dei singoli elementi for (i = 0; i < N; i++) { double r = sqrt((x - l)*(x - l) + y * y); Ex += Er(Q, r)*(x - l); Ey += Er(Q, r)*y; l += L/N; } printf("%f %f %f %f\n", x, Ex, Ey, sqrt(Ex*Ex + Ey*Ey)); x += X/N; } }