|
Решение на зад. 1 от контролно 2 есп 11 януари 2006 г. #include double step (double X, int n); int main { double x1; double sum=0
|
Дата | 03.01.2017 | Размер | 20.67 Kb. | | #11594 | Тип | Решение |
|
Решение на зад. 1 от контролно 2 – ЕСП - 11 януари 2006 г.
|
#include
double step (double x, int n);
int main() {
double x1;
double sum=0;
int n1, i, a[20];
//въвежда се x
scanf("%lf", &x1);
//въвежда се степента на полинома
scanf("%d", &n1); // n1<20
//въвеждат се коефициентите на полинома a i
for (i=0; i<=n1; i++)
scanf("%d", &a[i]);
//пресмята се стойността на полинома a0.x^n+a1.x^(n-1) //.... +an
for (i=n1; i>=0; i--)
sum+=a[i]*step(x1,n1-i);
printf("%lf", sum);
return 0;
}
//описание на функцията за степен
double step (double x, int n) {
double res=1;
//ако степента е 0, функцията трябва да върне стойност 1
if (!n) return 1;
//степенуване, по описаното в условието правило
while (n>=1)
{
if (!(n%2))
{ //при n четно x^n=(x^(n/2))^2
x = x*x;
n /= 2;
}
else
{ //при n нечетно x^n = x^(n-1).x
res *= x;
n--;
}
}
return res;
}
|
Решение на зад. 2 от контролно 2 – ЕСП - 11 януари 2006 г.
|
#include
#include
#include
char firstlet (char text[20]);
int main() {
char st[20];
gets(st);
// можете да си допишете да се изведе буквата, само ако има // намерена такава
printf("%c", firstlet(st));
return 0;
}
// в задачата се искаше да се опише само функцията
char firstlet (char text[20]) {
int i;
char ch;
for (i=0; text[i]!='\0'; i++)
if (islower(text[i]))
text[i]=toupper(text[i]);
for (ch='A'; ch<='Z'; ch++)
for (i=0; text[i]!='\0'; i++)
if (text[i]==ch)
return ch;
return '0';
}
забел: Оцветените с червено фрагменти стилово могат да се подобрят, как ли?
Създайте си вариант, в който не се използва ctype.h
|
Решение на зад. 3 от контролно 2 – ЕСП - 11 януари 2006 г.
|
#include
#include
int main() {
struct empl {
char fn[8];
char name[40];
float sal;
} E;
FILE *fp;
int br=0, i;
float sum=0;
char str[40];
// създаване на файла
/* fp = fopen("month.dat", "wb");
for (i=0; i<=5; i++)
{ gets(E.fn);
gets(E.name);
gets(str); E.sal=atof(str);
fwrite(&E, sizeof(E), 1, fp);
}
fclose(fp);
*/
fp = fopen("month.dat", "rb");
fread(&E, sizeof(E), 1, fp);
while (!feof(fp))
{
sum += E.sal;
br++;
fread(&E, sizeof(E), 1, fp);
}
printf("%d %f", br, sum/br);
fclose(fp);
return 0;
}
|
Сподели с приятели: |
|
|