Sunteți pe pagina 1din 3

#include <stdio.

h>
#include <math.h>

// Definirea funcției f(x)


double f(double x) {
return x * (sin(log(x)) - cos(log(x)));
}

// Implementarea metodei coardelor


double metodaCoardelor(double a, double b, double epsilon) {
double x0, x1, f0, f1;

do {
x0 = a;
x1 = b;
f0 = f(x0);
f1 = f(x1);

// Calculul noului punct conform metodei coardelor


double x2 = x1 - (f1 * (x1 - x0)) / (f1 - f0);

// Verificarea criteriului de oprire


if (fabs(f(x2)) < epsilon) {
return x2;
}

// Actualizarea intervalului
if (f0 * f(x2) < 0) {
b = x2;
} else {
a = x2;
}
} while (fabs(b - a) > epsilon);

return -1; // În cazul în care nu s-a atins precizia în numărul de iterații


}

int main() {
double a = 2.0; // Capătul din stânga al intervalului
double b = 3.0; // Capătul din dreapta al intervalului
double epsilon = 0.0001; // Exactitatea

// Apelul funcției pentru găsirea soluției


double solutie = metodaCoardelor(a, b, epsilon);

if (solutie != -1) {
printf("Solutia ecuatiei f(x) = 0 este x = %.4lf\n", solutie);
} else {
printf("Nu s-a atins precizia în numărul de iterații.\n");
}

return 0;
}

#include <stdio.h>
#include <math.h>

float sqr(float a) {
return a * a;
}

float f(float x) {
return sqr(sqr(x)) - 3 * sqr(x) + 7.5 * x - 1;
}

int main() {
float a, b, x, e, c, msup, minf, xnou, xvechi, eps;
int i, n;

a = -0.5; // Adăugat punct și corectat semnul de atribuire


b = 0.5;
eps = 0.000001;
msup = 10;
minf = 5;

x = a - (f(a) / (f(b) - f(a))) * (b - a);

if (f(a) * f(x) > 0) { // Corectat condiția din if


e = b;
xnou = a;
} else {
e = a;
xnou = b;
}

do {
xvechi = xnou;
xnou = xvechi - (f(xvechi) / (f(e) - f(xvechi))) * (e - xvechi);
printf("\n x=%.8f, f=%.7f", xnou, f(xnou));

} while (fabs((float)(msup - minf) / minf * (xnou - xvechi)) >= eps); // Adăugat paranteze și corectat
semnul de înmulțire

return 0;
}

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
time_t t;
clock_t t_start, t_stop;
float seconds;
t_start = clock();
printf("\nTimp de început: %i \n", t_start);

int p[100][100], i, j, n = 3, k;
srand(time(&t));
do n = rand() % 90; while (n < 85 || n > 98);
printf("n=%i\n", n);

// Generăm și afișăm matricea


printf("Matricea generată aleatoriu:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
p[i][j] = rand() % 10;
printf("%3i", p[i][j]);
}
printf("\n");
}

t_stop = clock();
printf("\nTimp de sfârșit pentru generarea matricei: %i \n", t_stop);
seconds = ((float)(t_stop - t_start)) / CLOCKS_PER_SEC;
printf("Timp de executie pentru generarea matricei: %.3f sec.\n", seconds);

t_start = clock();
printf("\nTimp de început pentru calculul sumei: %i \n", t_start);

// Calculăm suma elementelor cu suma indexilor divizibilă la 3


int sum = 0;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
if ((i + j) % 3 == 0) {
sum += p[i][j];
}
}
}

printf("\nSuma elementelor cu suma indexilor divizibilă la 3: %d\n", sum);

t_stop = clock();
printf("\nTimp de sfârșit pentru calculul sumei: %i \n", t_stop);
seconds = ((float)(t_stop - t_start)) / CLOCKS_PER_SEC;
printf("Timp de executie pentru calculul sumei: %.3f sec.\n", seconds);

printf("n=%i\n", n);

return 0;
}

S-ar putea să vă placă și