#include #include int main (void) { int odNab; int doNab; int odVyb; int doVyb; int i; int day[24]; int hour[24]; int j; float price[24]; float buy = 0; float sell = 0; float profit; float efficiency = (float) 3/4; int k; int zero; FILE* INTERVALY; FILE* DATA; FILE* OUTPUT; setlocale(LC_NUMERIC, ""); //2009 INTERVALY = fopen("intervaly.txt","r"); OUTPUT = fopen("output_spotovy_2009.txt","w+"); if (!INTERVALY || !OUTPUT) { printf("OPEN ERROR.\n"); return 0; } else { //3456 for (i = 1; i <= 3456; ++i) { fscanf(INTERVALY, "%i ", &odNab); fscanf(INTERVALY, "%i ", &doNab); fscanf(INTERVALY, "%i ", &odVyb); fscanf(INTERVALY, "%i\n", &doVyb); sell = 0; buy = 0; profit = 0; //printf("%i %i %i %i\n", odNab, doNab, odVyb, doVyb); DATA = fopen("spotovy_2009.txt","r"); if (!DATA) { printf("OPEN ERROR.\n"); return 0; } else { for (j = 1; j <= 365; ++j) { zero = 0; for (k = 0; k <= 23; ++k) { fscanf(DATA, "%i", &day[k]); fscanf(DATA, "%i", &hour[k]); fscanf(DATA, "%f\n", &price[k]); //printf("%i %i %f\n", day, hour, price); if (odNab <= doNab) { if (hour[k] >= odNab && hour[k] <= doNab && price[k] == 0) ++zero; } else if ( (hour[k] >= odNab || hour[k] <= doNab) && price[k] == 0 ) { ++zero; } } for (k = 0; k <= 23; ++k) { if (odNab <= doNab) { if (hour[k] >= odNab && hour[k] <= doNab) buy = buy + price[k]; } else if (hour[k] >= odNab || hour[k] <= doNab) { buy = buy + price[k]; } if (odVyb <= doVyb) { if ( odVyb <= (doVyb - zero) ) { if (hour[k] >= odVyb && hour[k] <= (doVyb-zero) ) sell = sell + price[k]*efficiency; } } else if ((doVyb - zero) >= 1) { if (hour[k] >= odVyb || hour[k] <= (doVyb-zero)) sell = sell + price[k]*efficiency; } else if (hour[k] >= odVyb && hour[k] <= (doVyb - zero + 24)) { sell = sell + price[k]*efficiency; } } //printf("%i %i %f\n", day, hour, price); } } fclose(DATA); //printf("%f %f\n", sell, buy); profit = sell - buy; fprintf(OUTPUT, "%i %i %i %i %f\n", odNab, doNab, odVyb, doVyb, profit); } } fclose(INTERVALY); fclose(OUTPUT); //2010 INTERVALY = fopen("intervaly.txt","r"); OUTPUT = fopen("output_spotovy_2010.txt","w+"); if (!INTERVALY || !OUTPUT) { printf("OPEN ERROR.\n"); return 0; } else { //3456 for (i = 1; i <= 3456; ++i) { fscanf(INTERVALY, "%i ", &odNab); fscanf(INTERVALY, "%i ", &doNab); fscanf(INTERVALY, "%i ", &odVyb); fscanf(INTERVALY, "%i\n", &doVyb); sell = 0; buy = 0; profit = 0; //printf("%i %i %i %i\n", odNab, doNab, odVyb, doVyb); DATA = fopen("spotovy_2010.txt","r"); if (!DATA) { printf("OPEN ERROR.\n"); return 0; } else { for (j = 1; j <= 365; ++j) { zero = 0; for (k = 0; k <= 23; ++k) { fscanf(DATA, "%i", &day[k]); fscanf(DATA, "%i", &hour[k]); fscanf(DATA, "%f\n", &price[k]); //printf("%i %i %f\n", day, hour, price); if (odNab <= doNab) { if (hour[k] >= odNab && hour[k] <= doNab && price[k] == 0) ++zero; } else if ( (hour[k] >= odNab || hour[k] <= doNab) && price[k] == 0 ) { ++zero; } } for (k = 0; k <= 23; ++k) { if (odNab <= doNab) { if (hour[k] >= odNab && hour[k] <= doNab) buy = buy + price[k]; } else if (hour[k] >= odNab || hour[k] <= doNab) { buy = buy + price[k]; } if (odVyb <= doVyb) { if ( odVyb <= (doVyb - zero) ) { if (hour[k] >= odVyb && hour[k] <= (doVyb-zero) ) sell = sell + price[k]*efficiency; } } else if ((doVyb - zero) >= 1) { if (hour[k] >= odVyb || hour[k] <= (doVyb-zero)) sell = sell + price[k]*efficiency; } else if (hour[k] >= odVyb && hour[k] <= (doVyb - zero + 24)) { sell = sell + price[k]*efficiency; } } //printf("%i %i %f\n", day, hour, price); } } fclose(DATA); //printf("%f %f\n", sell, buy); profit = sell - buy; fprintf(OUTPUT, "%i %i %i %i %f\n", odNab, doNab, odVyb, doVyb, profit); } } fclose(INTERVALY); fclose(OUTPUT); //2011 INTERVALY = fopen("intervaly.txt","r"); OUTPUT = fopen("output_spotovy_2011.txt","w+"); if (!INTERVALY || !OUTPUT) { printf("OPEN ERROR.\n"); return 0; } else { //3456 for (i = 1; i <= 3456; ++i) { fscanf(INTERVALY, "%i ", &odNab); fscanf(INTERVALY, "%i ", &doNab); fscanf(INTERVALY, "%i ", &odVyb); fscanf(INTERVALY, "%i\n", &doVyb); sell = 0; buy = 0; profit = 0; //printf("%i %i %i %i\n", odNab, doNab, odVyb, doVyb); DATA = fopen("spotovy_2011.txt","r"); if (!DATA) { printf("OPEN ERROR.\n"); return 0; } else { for (j = 1; j <= 365; ++j) { zero = 0; for (k = 0; k <= 23; ++k) { fscanf(DATA, "%i", &day[k]); fscanf(DATA, "%i", &hour[k]); fscanf(DATA, "%f\n", &price[k]); //printf("%i %i %f\n", day, hour, price); if (odNab <= doNab) { if (hour[k] >= odNab && hour[k] <= doNab && price[k] == 0) ++zero; } else if ( (hour[k] >= odNab || hour[k] <= doNab) && price[k] == 0 ) { ++zero; } } for (k = 0; k <= 23; ++k) { if (odNab <= doNab) { if (hour[k] >= odNab && hour[k] <= doNab) buy = buy + price[k]; } else if (hour[k] >= odNab || hour[k] <= doNab) { buy = buy + price[k]; } if (odVyb <= doVyb) { if ( odVyb <= (doVyb - zero) ) { if (hour[k] >= odVyb && hour[k] <= (doVyb-zero) ) sell = sell + price[k]*efficiency; } } else if ((doVyb - zero) >= 1) { if (hour[k] >= odVyb || hour[k] <= (doVyb-zero)) sell = sell + price[k]*efficiency; } else if (hour[k] >= odVyb && hour[k] <= (doVyb - zero + 24)) { sell = sell + price[k]*efficiency; } } //printf("%i %i %f\n", day, hour, price); } } fclose(DATA); //printf("%f %f\n", sell, buy); profit = sell - buy; fprintf(OUTPUT, "%i %i %i %i %f\n", odNab, doNab, odVyb, doVyb, profit); } } fclose(INTERVALY); fclose(OUTPUT); //2012 INTERVALY = fopen("intervaly.txt","r"); OUTPUT = fopen("output_spotovy_2012.txt","w+"); if (!INTERVALY || !OUTPUT) { printf("OPEN ERROR.\n"); return 0; } else { //3456 for (i = 1; i <= 3456; ++i) { fscanf(INTERVALY, "%i ", &odNab); fscanf(INTERVALY, "%i ", &doNab); fscanf(INTERVALY, "%i ", &odVyb); fscanf(INTERVALY, "%i\n", &doVyb); sell = 0; buy = 0; profit = 0; //printf("%i %i %i %i\n", odNab, doNab, odVyb, doVyb); DATA = fopen("spotovy_2012.txt","r"); if (!DATA) { printf("OPEN ERROR.\n"); return 0; } else { for (j = 1; j <= 366; ++j) { zero = 0; for (k = 0; k <= 23; ++k) { fscanf(DATA, "%i", &day[k]); fscanf(DATA, "%i", &hour[k]); fscanf(DATA, "%f\n", &price[k]); //printf("%i %i %f\n", day, hour, price); if (odNab <= doNab) { if (hour[k] >= odNab && hour[k] <= doNab && price[k] == 0) ++zero; } else if ( (hour[k] >= odNab || hour[k] <= doNab) && price[k] == 0 ) { ++zero; } } for (k = 0; k <= 23; ++k) { if (odNab <= doNab) { if (hour[k] >= odNab && hour[k] <= doNab) buy = buy + price[k]; } else if (hour[k] >= odNab || hour[k] <= doNab) { buy = buy + price[k]; } if (odVyb <= doVyb) { if ( odVyb <= (doVyb - zero) ) { if (hour[k] >= odVyb && hour[k] <= (doVyb-zero) ) sell = sell + price[k]*efficiency; } } else if ((doVyb - zero) >= 1) { if (hour[k] >= odVyb || hour[k] <= (doVyb-zero)) sell = sell + price[k]*efficiency; } else if (hour[k] >= odVyb && hour[k] <= (doVyb - zero + 24)) { sell = sell + price[k]*efficiency; } } //printf("%i %i %f\n", day, hour, price); } } fclose(DATA); //printf("%f %f\n", sell, buy); profit = sell - buy; fprintf(OUTPUT, "%i %i %i %i %f\n", odNab, doNab, odVyb, doVyb, profit); } } fclose(INTERVALY); fclose(OUTPUT); //2013 INTERVALY = fopen("intervaly.txt","r"); OUTPUT = fopen("output_spotovy_2013.txt","w+"); if (!INTERVALY || !OUTPUT) { printf("OPEN ERROR.\n"); return 0; } else { //3456 for (i = 1; i <= 3456; ++i) { fscanf(INTERVALY, "%i ", &odNab); fscanf(INTERVALY, "%i ", &doNab); fscanf(INTERVALY, "%i ", &odVyb); fscanf(INTERVALY, "%i\n", &doVyb); sell = 0; buy = 0; profit = 0; //printf("%i %i %i %i\n", odNab, doNab, odVyb, doVyb); DATA = fopen("spotovy_2013.txt","r"); if (!DATA) { printf("OPEN ERROR.\n"); return 0; } else { for (j = 1; j <= 365; ++j) { zero = 0; for (k = 0; k <= 23; ++k) { fscanf(DATA, "%i", &day[k]); fscanf(DATA, "%i", &hour[k]); fscanf(DATA, "%f\n", &price[k]); //printf("%i %i %f\n", day, hour, price); if (odNab <= doNab) { if (hour[k] >= odNab && hour[k] <= doNab && price[k] == 0) ++zero; } else if ( (hour[k] >= odNab || hour[k] <= doNab) && price[k] == 0 ) { ++zero; } } for (k = 0; k <= 23; ++k) { if (odNab <= doNab) { if (hour[k] >= odNab && hour[k] <= doNab) buy = buy + price[k]; } else if (hour[k] >= odNab || hour[k] <= doNab) { buy = buy + price[k]; } if (odVyb <= doVyb) { if ( odVyb <= (doVyb - zero) ) { if (hour[k] >= odVyb && hour[k] <= (doVyb-zero) ) sell = sell + price[k]*efficiency; } } else if ((doVyb - zero) >= 1) { if (hour[k] >= odVyb || hour[k] <= (doVyb-zero)) sell = sell + price[k]*efficiency; } else if (hour[k] >= odVyb && hour[k] <= (doVyb - zero + 24)) { sell = sell + price[k]*efficiency; } } //printf("%i %i %f\n", day, hour, price); } } fclose(DATA); //printf("%f %f\n", sell, buy); profit = sell - buy; fprintf(OUTPUT, "%i %i %i %i %f\n", odNab, doNab, odVyb, doVyb, profit); } } fclose(INTERVALY); fclose(OUTPUT); //2014 INTERVALY = fopen("intervaly.txt","r"); OUTPUT = fopen("output_spotovy_2014.txt","w+"); if (!INTERVALY || !OUTPUT) { printf("OPEN ERROR.\n"); return 0; } else { //3456 for (i = 1; i <= 3456; ++i) { fscanf(INTERVALY, "%i ", &odNab); fscanf(INTERVALY, "%i ", &doNab); fscanf(INTERVALY, "%i ", &odVyb); fscanf(INTERVALY, "%i\n", &doVyb); sell = 0; buy = 0; profit = 0; //printf("%i %i %i %i\n", odNab, doNab, odVyb, doVyb); DATA = fopen("spotovy_2014.txt","r"); if (!DATA) { printf("OPEN ERROR.\n"); return 0; } else { for (j = 1; j <= 365; ++j) { zero = 0; for (k = 0; k <= 23; ++k) { fscanf(DATA, "%i", &day[k]); fscanf(DATA, "%i", &hour[k]); fscanf(DATA, "%f\n", &price[k]); //printf("%i %i %f\n", day, hour, price); if (odNab <= doNab) { if (hour[k] >= odNab && hour[k] <= doNab && price[k] == 0) ++zero; } else if ( (hour[k] >= odNab || hour[k] <= doNab) && price[k] == 0 ) { ++zero; } } for (k = 0; k <= 23; ++k) { if (odNab <= doNab) { if (hour[k] >= odNab && hour[k] <= doNab) buy = buy + price[k]; } else if (hour[k] >= odNab || hour[k] <= doNab) { buy = buy + price[k]; } if (odVyb <= doVyb) { if ( odVyb <= (doVyb - zero) ) { if (hour[k] >= odVyb && hour[k] <= (doVyb-zero) ) sell = sell + price[k]*efficiency; } } else if ((doVyb - zero) >= 1) { if (hour[k] >= odVyb || hour[k] <= (doVyb-zero)) sell = sell + price[k]*efficiency; } else if (hour[k] >= odVyb && hour[k] <= (doVyb - zero + 24)) { sell = sell + price[k]*efficiency; } } //printf("%i %i %f\n", day, hour, price); } } fclose(DATA); //printf("%f %f\n", sell, buy); profit = sell - buy; fprintf(OUTPUT, "%i %i %i %i %f\n", odNab, doNab, odVyb, doVyb, profit); } } fclose(INTERVALY); fclose(OUTPUT); //2015 INTERVALY = fopen("intervaly.txt","r"); OUTPUT = fopen("output_spotovy_2015.txt","w+"); if (!INTERVALY || !OUTPUT) { printf("OPEN ERROR.\n"); return 0; } else { //3456 for (i = 1; i <= 3456; ++i) { fscanf(INTERVALY, "%i ", &odNab); fscanf(INTERVALY, "%i ", &doNab); fscanf(INTERVALY, "%i ", &odVyb); fscanf(INTERVALY, "%i\n", &doVyb); sell = 0; buy = 0; profit = 0; //printf("%i %i %i %i\n", odNab, doNab, odVyb, doVyb); DATA = fopen("spotovy_2015.txt","r"); if (!DATA) { printf("OPEN ERROR.\n"); return 0; } else { for (j = 1; j <= 365; ++j) { zero = 0; for (k = 0; k <= 23; ++k) { fscanf(DATA, "%i", &day[k]); fscanf(DATA, "%i", &hour[k]); fscanf(DATA, "%f\n", &price[k]); //printf("%i %i %f\n", day, hour, price); if (odNab <= doNab) { if (hour[k] >= odNab && hour[k] <= doNab && price[k] == 0) ++zero; } else if ( (hour[k] >= odNab || hour[k] <= doNab) && price[k] == 0 ) { ++zero; } } for (k = 0; k <= 23; ++k) { if (odNab <= doNab) { if (hour[k] >= odNab && hour[k] <= doNab) buy = buy + price[k]; } else if (hour[k] >= odNab || hour[k] <= doNab) { buy = buy + price[k]; } if (odVyb <= doVyb) { if ( odVyb <= (doVyb - zero) ) { if (hour[k] >= odVyb && hour[k] <= (doVyb-zero) ) sell = sell + price[k]*efficiency; } } else if ((doVyb - zero) >= 1) { if (hour[k] >= odVyb || hour[k] <= (doVyb-zero)) sell = sell + price[k]*efficiency; } else if (hour[k] >= odVyb && hour[k] <= (doVyb - zero + 24)) { sell = sell + price[k]*efficiency; } } //printf("%i %i %f\n", day, hour, price); } } fclose(DATA); //printf("%f %f\n", sell, buy); profit = sell - buy; fprintf(OUTPUT, "%i %i %i %i %f\n", odNab, doNab, odVyb, doVyb, profit); } } fclose(INTERVALY); fclose(OUTPUT); //2016 INTERVALY = fopen("intervaly.txt","r"); OUTPUT = fopen("output_spotovy_2016.txt","w+"); if (!INTERVALY || !OUTPUT) { printf("OPEN ERROR.\n"); return 0; } else { //3456 for (i = 1; i <= 3456; ++i) { fscanf(INTERVALY, "%i ", &odNab); fscanf(INTERVALY, "%i ", &doNab); fscanf(INTERVALY, "%i ", &odVyb); fscanf(INTERVALY, "%i\n", &doVyb); sell = 0; buy = 0; profit = 0; //printf("%i %i %i %i\n", odNab, doNab, odVyb, doVyb); DATA = fopen("spotovy_2016.txt","r"); if (!DATA) { printf("OPEN ERROR.\n"); return 0; } else { for (j = 1; j <= 366; ++j) { zero = 0; for (k = 0; k <= 23; ++k) { fscanf(DATA, "%i", &day[k]); fscanf(DATA, "%i", &hour[k]); fscanf(DATA, "%f\n", &price[k]); //printf("%i %i %f\n", day, hour, price); if (odNab <= doNab) { if (hour[k] >= odNab && hour[k] <= doNab && price[k] == 0) ++zero; } else if ( (hour[k] >= odNab || hour[k] <= doNab) && price[k] == 0 ) { ++zero; } } for (k = 0; k <= 23; ++k) { if (odNab <= doNab) { if (hour[k] >= odNab && hour[k] <= doNab) buy = buy + price[k]; } else if (hour[k] >= odNab || hour[k] <= doNab) { buy = buy + price[k]; } if (odVyb <= doVyb) { if ( odVyb <= (doVyb - zero) ) { if (hour[k] >= odVyb && hour[k] <= (doVyb-zero) ) sell = sell + price[k]*efficiency; } } else if ((doVyb - zero) >= 1) { if (hour[k] >= odVyb || hour[k] <= (doVyb-zero)) sell = sell + price[k]*efficiency; } else if (hour[k] >= odVyb && hour[k] <= (doVyb - zero + 24)) { sell = sell + price[k]*efficiency; } } //printf("%i %i %f\n", day, hour, price); } } fclose(DATA); //printf("%f %f\n", sell, buy); profit = sell - buy; fprintf(OUTPUT, "%i %i %i %i %f\n", odNab, doNab, odVyb, doVyb, profit); } } fclose(INTERVALY); fclose(OUTPUT); //2017 INTERVALY = fopen("intervaly.txt","r"); OUTPUT = fopen("output_spotovy_2017.txt","w+"); if (!INTERVALY || !OUTPUT) { printf("OPEN ERROR.\n"); return 0; } else { //3456 for (i = 1; i <= 3456; ++i) { fscanf(INTERVALY, "%i ", &odNab); fscanf(INTERVALY, "%i ", &doNab); fscanf(INTERVALY, "%i ", &odVyb); fscanf(INTERVALY, "%i\n", &doVyb); sell = 0; buy = 0; profit = 0; //printf("%i %i %i %i\n", odNab, doNab, odVyb, doVyb); DATA = fopen("spotovy_2017.txt","r"); if (!DATA) { printf("OPEN ERROR.\n"); return 0; } else { for (j = 1; j <= 365; ++j) { zero = 0; for (k = 0; k <= 23; ++k) { fscanf(DATA, "%i", &day[k]); fscanf(DATA, "%i", &hour[k]); fscanf(DATA, "%f\n", &price[k]); //printf("%i %i %f\n", day, hour, price); if (odNab <= doNab) { if (hour[k] >= odNab && hour[k] <= doNab && price[k] == 0) ++zero; } else if ( (hour[k] >= odNab || hour[k] <= doNab) && price[k] == 0 ) { ++zero; } } for (k = 0; k <= 23; ++k) { if (odNab <= doNab) { if (hour[k] >= odNab && hour[k] <= doNab) buy = buy + price[k]; } else if (hour[k] >= odNab || hour[k] <= doNab) { buy = buy + price[k]; } if (odVyb <= doVyb) { if ( odVyb <= (doVyb - zero) ) { if (hour[k] >= odVyb && hour[k] <= (doVyb-zero) ) sell = sell + price[k]*efficiency; } } else if ((doVyb - zero) >= 1) { if (hour[k] >= odVyb || hour[k] <= (doVyb-zero)) sell = sell + price[k]*efficiency; } else if (hour[k] >= odVyb && hour[k] <= (doVyb - zero + 24)) { sell = sell + price[k]*efficiency; } } //printf("%i %i %f\n", day, hour, price); } } fclose(DATA); //printf("%f %f\n", sell, buy); profit = sell - buy; fprintf(OUTPUT, "%i %i %i %i %f\n", odNab, doNab, odVyb, doVyb, profit); } } fclose(INTERVALY); fclose(OUTPUT); //2018 INTERVALY = fopen("intervaly.txt","r"); OUTPUT = fopen("output_spotovy_2018.txt","w+"); if (!INTERVALY || !OUTPUT) { printf("OPEN ERROR.\n"); return 0; } else { //3456 for (i = 1; i <= 3456; ++i) { fscanf(INTERVALY, "%i ", &odNab); fscanf(INTERVALY, "%i ", &doNab); fscanf(INTERVALY, "%i ", &odVyb); fscanf(INTERVALY, "%i\n", &doVyb); sell = 0; buy = 0; profit = 0; //printf("%i %i %i %i\n", odNab, doNab, odVyb, doVyb); DATA = fopen("spotovy_2018.txt","r"); if (!DATA) { printf("OPEN ERROR.\n"); return 0; } else { for (j = 1; j <= 365; ++j) { zero = 0; for (k = 0; k <= 23; ++k) { fscanf(DATA, "%i", &day[k]); fscanf(DATA, "%i", &hour[k]); fscanf(DATA, "%f\n", &price[k]); //printf("%i %i %f\n", day, hour, price); if (odNab <= doNab) { if (hour[k] >= odNab && hour[k] <= doNab && price[k] == 0) ++zero; } else if ( (hour[k] >= odNab || hour[k] <= doNab) && price[k] == 0 ) { ++zero; } } for (k = 0; k <= 23; ++k) { if (odNab <= doNab) { if (hour[k] >= odNab && hour[k] <= doNab) buy = buy + price[k]; } else if (hour[k] >= odNab || hour[k] <= doNab) { buy = buy + price[k]; } if (odVyb <= doVyb) { if ( odVyb <= (doVyb - zero) ) { if (hour[k] >= odVyb && hour[k] <= (doVyb-zero) ) sell = sell + price[k]*efficiency; } } else if ((doVyb - zero) >= 1) { if (hour[k] >= odVyb || hour[k] <= (doVyb-zero)) sell = sell + price[k]*efficiency; } else if (hour[k] >= odVyb && hour[k] <= (doVyb - zero + 24)) { sell = sell + price[k]*efficiency; } } //printf("%i %i %f\n", day, hour, price); } } fclose(DATA); //printf("%f %f\n", sell, buy); profit = sell - buy; fprintf(OUTPUT, "%i %i %i %i %f\n", odNab, doNab, odVyb, doVyb, profit); } } fclose(INTERVALY); fclose(OUTPUT); //2019 INTERVALY = fopen("intervaly.txt","r"); OUTPUT = fopen("output_spotovy_2019.txt","w+"); if (!INTERVALY || !OUTPUT) { printf("OPEN ERROR.\n"); return 0; } else { //3456 for (i = 1; i <= 3456; ++i) { fscanf(INTERVALY, "%i ", &odNab); fscanf(INTERVALY, "%i ", &doNab); fscanf(INTERVALY, "%i ", &odVyb); fscanf(INTERVALY, "%i\n", &doVyb); sell = 0; buy = 0; profit = 0; //printf("%i %i %i %i\n", odNab, doNab, odVyb, doVyb); DATA = fopen("spotovy_2019.txt","r"); if (!DATA) { printf("OPEN ERROR.\n"); return 0; } else { for (j = 1; j <= 365; ++j) { zero = 0; for (k = 0; k <= 23; ++k) { fscanf(DATA, "%i", &day[k]); fscanf(DATA, "%i", &hour[k]); fscanf(DATA, "%f\n", &price[k]); //printf("%i %i %f\n", day, hour, price); if (odNab <= doNab) { if (hour[k] >= odNab && hour[k] <= doNab && price[k] == 0) ++zero; } else if ( (hour[k] >= odNab || hour[k] <= doNab) && price[k] == 0 ) { ++zero; } } for (k = 0; k <= 23; ++k) { if (odNab <= doNab) { if (hour[k] >= odNab && hour[k] <= doNab) buy = buy + price[k]; } else if (hour[k] >= odNab || hour[k] <= doNab) { buy = buy + price[k]; } if (odVyb <= doVyb) { if ( odVyb <= (doVyb - zero) ) { if (hour[k] >= odVyb && hour[k] <= (doVyb-zero) ) sell = sell + price[k]*efficiency; } } else if ((doVyb - zero) >= 1) { if (hour[k] >= odVyb || hour[k] <= (doVyb-zero)) sell = sell + price[k]*efficiency; } else if (hour[k] >= odVyb && hour[k] <= (doVyb - zero + 24)) { sell = sell + price[k]*efficiency; } } //printf("%i %i %f\n", day, hour, price); } } fclose(DATA); //printf("%f %f\n", sell, buy); profit = sell - buy; fprintf(OUTPUT, "%i %i %i %i %f\n", odNab, doNab, odVyb, doVyb, profit); } } fclose(INTERVALY); fclose(OUTPUT); //2020 INTERVALY = fopen("intervaly.txt","r"); OUTPUT = fopen("output_spotovy_2020.txt","w+"); if (!INTERVALY || !OUTPUT) { printf("OPEN ERROR.\n"); return 0; } else { //3456 for (i = 1; i <= 3456; ++i) { fscanf(INTERVALY, "%i ", &odNab); fscanf(INTERVALY, "%i ", &doNab); fscanf(INTERVALY, "%i ", &odVyb); fscanf(INTERVALY, "%i\n", &doVyb); sell = 0; buy = 0; profit = 0; //printf("%i %i %i %i\n", odNab, doNab, odVyb, doVyb); DATA = fopen("spotovy_2020.txt","r"); if (!DATA) { printf("OPEN ERROR.\n"); return 0; } else { for (j = 1; j <= 89; ++j) { zero = 0; for (k = 0; k <= 23; ++k) { fscanf(DATA, "%i", &day[k]); fscanf(DATA, "%i", &hour[k]); fscanf(DATA, "%f\n", &price[k]); //printf("%i %i %f\n", day, hour, price); if (odNab <= doNab) { if (hour[k] >= odNab && hour[k] <= doNab && price[k] == 0) ++zero; } else if ( (hour[k] >= odNab || hour[k] <= doNab) && price[k] == 0 ) { ++zero; } } for (k = 0; k <= 23; ++k) { if (odNab <= doNab) { if (hour[k] >= odNab && hour[k] <= doNab) buy = buy + price[k]; } else if (hour[k] >= odNab || hour[k] <= doNab) { buy = buy + price[k]; } if (odVyb <= doVyb) { if ( odVyb <= (doVyb - zero) ) { if (hour[k] >= odVyb && hour[k] <= (doVyb-zero) ) sell = sell + price[k]*efficiency; } } else if ((doVyb - zero) >= 1) { if (hour[k] >= odVyb || hour[k] <= (doVyb-zero)) sell = sell + price[k]*efficiency; } else if (hour[k] >= odVyb && hour[k] <= (doVyb - zero + 24)) { sell = sell + price[k]*efficiency; } } //printf("%i %i %f\n", day, hour, price); } } fclose(DATA); //printf("%f %f\n", sell, buy); profit = sell - buy; fprintf(OUTPUT, "%i %i %i %i %f\n", odNab, doNab, odVyb, doVyb, profit); } } fclose(INTERVALY); fclose(OUTPUT); return 0; }