Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

...

2014-2015

27/2/2015
- 3

.
7 ( a 1 )
7 ( a 1)
24 (6*22)
3 (6/2)
0 (6 XOR 6). To XOR 0 .

.
printf("%d year(s), %d month(s), %d day(s)", n/360, (n%360)/30,
(n%360)%30)

.
func(0) .
func(1) 0 .
func(2) 1 func(1), 10.
func(3) 2 func(1) func(2),
2010.
H func(4) 3 func(1), func(2) func(3),
30102010.

.
#include <stdio.h>
#include <stdlib.h>

#define N 20
#define F1 0.22
#define F2 0.32
#define F3 0.42
#define OR1 25000
#define OR2 17000

int main()
{
float etisio_eisodima[N];
float etisios_foros[N];
float miniaios_misthos[N];
float max_eisodima;
int i, thesi;

2 10
- 3

system("chcp 1253>nul");

/* */
for (i=0; i<N; i++)
{
do
{
printf(" %d : ", i+1);
scanf("%f", &etisio_eisodima[i]);
} while (etisio_eisodima[i] < 0);
printf("\n");
}

/* */
for (i=0; i<N; i++)
{
if (etisio_eisodima[i] <= OR1)
etisios_foros[i]=etisio_eisodima[i]*F1;
else if (etisio_eisodima[i] <= OR1+OR2)
etisios_foros[i] = (etisio_eisodima[i]-OR1)*F2 + OR1*F1;
else etisios_foros[i] = (etisio_eisodima[i]-(OR1+OR2))*F3 +
OR1*F1 + OR2*F2;
}
for (i=0; i<N; i++)
printf(" %d, : %f\n", i+1,
etisios_foros[i]);

/* */
for (i=0; i<N; i++)
{
miniaios_misthos[i]=(etisio_eisodima[i]-etisios_foros[i])/12;
printf(" %d, : %f \n", i+1,
miniaios_misthos[i]);
}

/* */
max_eisodima = etisio_eisodima[0] - etisios_foros[0];
thesi = 0;
for (i=1;i<N; i++)
if (etisio_eisodima[i] - etisios_foros[i]> max_eisodima)
{
max_eisodima = etisio_eisodima[i]- etisios_foros[i];
thesi = i;
}
printf("\n");
printf(" : %f %f \n",
max_eisodima, etisios_foros[thesi]);
return(0);
}

3 10
- 3

2
#include <stdio.h>
#include <stdlib.h>
#define N 8 /* */
#define M 2 /* */
/* weights scores */
int weights[N]; /* */
int scores[N][M]; /* */
float finalScores[M];
/* */
void read_weights();
/* */
void read_scores();
/* */
void best_country();

/* */
int main()
{
system("chcp 1253>nul");
/* . */
read_weights();
read_scores();
best_country();
return(0);
}

/* */
void read_weights()
{
float w; int i;
int sum_w=0; /*
. */
int wrong_value; /* - */
const char *critirion[] = { " ", "
", " ", " ",
" ", " ",
", , ", " "};
for (i=0; i<N; i++)
{
/* */
do {
wrong_value=0;
/* . . */
printf("\n %d
(%-15s):", i+1, critirion[i]);
scanf("%f", &w);
if ((w<0) || (w>100)) {
printf("\n-1.
100.\n");
wrong_value=1;
}

4 10
- 3

if (i<N-1) {
if (sum_w+w>100) {
printf("-2. To
100.\n");
wrong_value=1;
}
}
if (i==N-1) {
/* 100. */
if (sum_w+w>100||sum_w+w<100) {
printf("-3: T

100.\n");
wrong_value=1;
}
}
} while (wrong_value);
/* . wrong_value=1. */
weights[i]=w; /* i weights */
sum_w+=w;
/* . 100. */
printf("SUM(Wj)= %d", sum_w);
}
}

/* */
void read_scores()
{
int i, j, sc;
for (j=0; j<M; j++) /*
scores . */
{
printf("\n------------------------------------------\n");
for (i=0; i<N; i++)
{
/* */
do {
printf(" %d %d: ",i+1,j+1);
scanf("%d", &sc);
if ((sc<=0) || (sc>5)) {
printf("\n.
[1..5].");
}
} while ((sc<=0) || (sc>5)); /*
*/
scores[i][j]=sc; /* (i,j) scores */
}
}
}

5 10
- 3

/* */
void best_country()
{
int i,j; /* */
float max; /* */

/* 1) scores
(1). */
for (j=0; j<M; j++)
{
finalScores[j]=0.0;
for (i=0; i<N; i++)
finalScores[j]=finalScores[j]+(weights[i]/100.0)*scores[i][j];
/* (1). */
printf("\n %d: %5.2f\n", j+1,
finalScores[j]);
}

/* 2) .
finalscores. */
max=finalScores[0]; /* */
for (j=1; j<M; j++)
/* finalscores */
if (finalScores[j]>max)
max=finalScores[j]; /* ( j finalscores) */

/* 3) */
printf("\n : ");
for (j=0; j<M; j++)
/* : finalscores.
max . */
if (finalScores[j]==max)
printf("%d ", j+1); /* j+1 j
1 0. */
}

3
#include <stdio.h>
#include <stdlib.h>

/* */
double dyn(double x, int k);
/* */
double p(double* s, double x, int n);
/* Horner */
double h(double* s, double x, int n);

6 10
- 3

/* */
int main()
{
double c[10];
double x;
int b;
system("chcp 1253>nul");
/* */
do
{
printf(" [0 - 9]: ");
scanf("%d", &b);
}
while ((b < 0) || (b > 9));
/* */
int i;
for(i = 0; i <= b; i++)
{
printf("\n %d: ", i);
scanf("%lf", &c[i]); // : scanf("%lf", c+i);
}
/* x */
printf("\n\n x: ");
scanf("%lf", &x);
/* p */
printf("\n\n p: %f\n\n",
p(c,x,b));
/* h */
printf(" h: %f ",
h(c,x,b));
return(0);
}

double dyn(double x, int k)


{
double power = 1.0;
int m;
for(m = 1; m <= k; m++)
power *= x;
return(power);
}

double p(double* s, double x, int n)


{
double sum = 0.0;
int i;
for(i = 0; i <= n; i++)
sum += *(s+i) * dyn(x,i);
return(sum);
}

7 10
- 3

double h(double* s, double x, int n)


{
double sum = *(s+n);
int i;
for(i = n; i > 0; i--)
sum = sum*x + *(s+i-1);
return(sum);
}

4
#include <stdio.h>
#include <math.h>
#define N 3

double length(double x[], int size) /* x */


{
double len=0;
int i;
for (i=0; i< size; i++) len=len+x[i]*x[i];
return sqrt(len);
}

/* */
double compute_idf(int F[][N], int size, int row)
{
int occurrences=0;
int j;
for (j=0; j<N; j++)
if (F[row][j]!=0) occurrences++;
if (occurrences!=0) return ((double)N/occurrences);
else return 0;
}

/* */
void read_frequencies(int F[][N], int Q[], int size)
{
int i, j;
for (i=0; i<size; i++)
for (j=0; j<N; j++)
{
do
{
printf(" t%d
d%d: ", i, j);
scanf("%d", &F[i][j]);
if (F[i][j]<0) printf("
0. ");
}
while (F[i][j]<0); /* */
}

8 10
- 3

for (i=0; i<size; i++)


do
{
printf(" t%d
q: ", i);
scanf("%d", &Q[i]);
if (Q[i]<0) printf("
0. ");
}
while (Q[i]<0); /* */
}

/* */
void invert_frequencies(int F[][N], double idf[], int size)
{
int i;

for (i=0; i<size; i++)


idf[i]=compute_idf(F, size, i);
}

/* */
void report_query(int F[][N],int Q[],double idf[],double similarity[N],
int size)
{
int i, j;
double doc[size], query[size], sum, m1, m2;

for (i=0; i<size; i++)


query[i]=Q[i]*idf[i]; /* w_i, q */
for (j=0; j<N; j++) /* dj q */
{
for (i=0;i<size;i++) doc[i]=F[i][j]*idf[i];
/* w_i,j */
sum=0;
for (i=0; i<size; i++)
sum=sum+doc[i]*query[i];
/* */
m1=length(doc,size);
m2=length(query,size);
if (m1*m2>0) sum=sum/(m1*m2);
else sum=0; /* */
similarity[j]=sum;
}
printf("\n : \n");
for (i=0; i<N; i++) /* */
printf(" d%d: %lf\n", i,similarity[i]);
}

9 10
- 3

int main()
{
int size=4;
int F[size][N], Q[size];
double similarity[N], idf[size];

system("chcp 1253>nul");
read_frequencies(F, Q, size);
invert_frequencies(F, idf, size);
report_query(F, Q, idf, similarity, size);
return(0);
}

10 10

You might also like