repl.it
@MarkoPavlovic/

Gde je bolje ziveti

C++

No description

fork
loading
Files
  • main.cpp
main.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <stdio.h>
#include <math.h>

#define N  100
void inicNizova(double* nizI, double* nizU);

int main() {
double nizI[N];
double nizU[N];
inicNizova(nizI, nizU);

int index = 0; //koja vrednost ovde
double u0 = nizU[index], i0 = nizI[index];
double u1 = nizU[index + 1], i1 = nizI[index + 1];
char inc = 1; //bool dal se uvecao ili smanjio index
for (int i = 0; i<100; i++) { //ovde ce biti while(1)
if (u0 * i0 < u1*i1) {
u0 = u1;
i0 = i1;
if (inc) {
index++;
u1 = nizU[index + 1];
i1 = nizI[index + 1];
}
else {
index--;
u1 = nizU[index - 1];
i1 = nizI[index - 1];
}
}
else {
if (inc) {
inc = 0;
if (index > 0) {
u1 = nizU[index - 1];
i1 = nizI[index - 1];
}
}
else {
inc = 1;
u1 = nizU[index + 1];
i1 = nizI[index + 1];
}
}
}
printf("U = %f\n", u0);
}

void inicNizova(double* nizI, double* nizU) {
int Umax = 5; //lupio
double Ii, Ui;
for (int i = 0; i < N; i++) {
Ui = Umax * i / N;
Ii = 5 - exp(3 * (Ui - 5)); //aproksimacija sa parametrima a=5, c=3, d=5
}
}