Язык Turbo C 2.0 Основы программирования - 3 Ввод данных: нет ввода, 2 float a, s - простые переменные j - ввод данных 1 - 21k, 2 - 22k, 4 - 23k, 10 - 24k */ #include <conio.h> #include <math.h> #include <stdio.h> main () { int a, b, c, g; float d, e; double s; float j, k; /* ввод данных */ printf ("? (1-2) "); scanf ("%i", &a); if (a == 1) goto aaa; /* нет ввода */ if (a == 2) goto aab; /* 2 float */ printf ("\n"); return; aaa: /* 67.1.17.3. Получить на экране десятичные коды букв латинского алфавита. */ printf ("3.\n"); for (a = 'a'; a <= 'z'; a++) printf ("%c - %-6i", a, a); /* 68.7.20.6. Напечатать в возрастающем порядке все трехзначные числа, в десятичной записи которых нет одинаковых цифр. */ printf ("\n\n6. "); for (a = 1; a < 10; a++) for (b = 0; b < 10; b++) for (c = 0; c < 10; c++) if (a != b && a != c && b != c) printf ("%i%i%i ", a, b, c); /* 70.1.22.7. С помощью приведенной программы определите на вашем компьютере величину машинного epsilon. */ d = 1; while (1 < 1 + d) d /= 2; printf ("\n\n7. Машинный эпсилон %.4g.\n", d); /* 70.2.23.8. Если на вашем компьютере это возможно, определите машинное epsilon для удвоенной или повышенной точности представления вещественных чисел. */ s = 1; while (1 < 1 + s) s /= 2; printf ("8. Машинный эпсилон %.4g.\n", s); /* 70.3.24.9. Составьте программу определения машинного нуля. Проведите численный эксперимент на вашем компьютере. */ d = 1; while (d > 0) {e = d; d /= 2;} printf ("9. Машинный нуль %.4g.\n", e); /* 71.6.25.10. Проведите эксперимент на исследование целочисленного переполнения, т. е. установите, что происходит с целой переменной, когда ее значение превышает maxint. */ printf ("10. "); a = 32766; for (b = 0; b < 4; b++) {printf ("%i ", a); a++;} printf ("\n"); goto aaz; aab: printf ("Введите два рациональных числа: "); scanf ("%f%f", &j, &k); /* 21.2.9.1. Дана скорость ракеты при выходе за пределы атмосферы Земли. Составить алгоритм определения того, как будет двигаться ракета после выключения двигателей. (Напомним величины трех космических скоростей: 7.5 км/с, 11.2 км/с, 16.4 км/с.) */ printf ("1. Ракета "); if (j < 7.5) printf ("упадет на Землю.\n"); else if (j == 7.5) printf ("будет двигаться по окружности вокруг Земли.\n"); else if (j < 11.2) printf ("будет двигаться по эллипсу вокруг Земли.\n"); else if (j == 11.2) printf ("улетит от Земли по параболе.\n"); else if (j < 16.4) printf ("будет двигаться по эллипсу вокруг Солнца.\n"); else if (j == 16.4) printf ("улетит от Солнца по параболе.\n"); else printf ("улетит от Солнца по гиперболе.\n"); /* 64.2.15.2. Вычислить сумму конечного числа членов гармонического ряда: 1 + 1 / 2 + 1 / 3 + ... + 1 / i + ... . Суммирование прекращается, когда очередное слагаемое становится меньше epsilon или целая переменная i достигает значения maxint. */ a = 32767; if (j > 0) if (1 / j < a) a = 1 / j; d = 0; while (a) {d += 1. / a; a--;} printf ("2. Сумма гармонического ряда %g.\n", d); /* 68.4.18.4. Вычислить сумму квадратов всех целых чисел, попадающих в интервал (ln x, exp x). */ a = 0; if (j > 0 && j < 10.1) { b = log (j); c = exp (j); for (g = b; g <= c; g++) a += g * g; } printf ("4. Сумма ряда %i.\n", a); /* 68.5.19.5. Вычислить количество точек с целочисленными координатами, попадающих в круг радиуса R (R > 0) с центром в начале координат. */ a = 0; if (j < 100.2) for (b = -j; b <= j; b++) for (c = -j; c <= j; c++) if (b * b + c * c <= j * j) a++; printf ("5. Количество точек %i.\n", a); /* 84.4.33.11. Для заданного вещественного x и малой величины epsilon (например, epsilon = .000001) вычислить сумму ряда: 1 + x + x^2 / 2! + x^3 / 3! + ..., включив в нее только слагаемые, превышающие epsilon. */ a = 0; /* номер итерации */ d = 0; /* сумма последовательности */ e = 1; /* очередной член ряда */ while (1) { if (e < k || e < 1e-10) break; if (e < -1e10 || e > 1e10) break; d += e; a++; e *= j / a; } printf ("11. Сумма ряда %g.\n", d); aaz: getch (); printf ("\n"); }
Группа для программистов ( programming )
:Юрий Казекин
/* p3 - 21
Язык Turbo C 2.0
Основы программирования - 3
Ввод данных: нет ввода, 2 float
a, s - простые переменные
j - ввод данных
1 - 21k, 2 - 22k, 4 - 23k, 10 - 24k
*/
#include <conio.h>
#include <math.h>
#include <stdio.h>
main ()
{
int a, b, c, g;
float d, e;
double s;
float j, k; /* ввод данных */
printf ("? (1-2) ");
scanf ("%i", &a);
if (a == 1) goto aaa; /* нет ввода */
if (a == 2) goto aab; /* 2 float */
printf ("\n");
return;
aaa:
/* 67.1.17.3. Получить на экране десятичные коды букв латинского
алфавита. */
printf ("3.\n");
for (a = 'a'; a <= 'z'; a++) printf ("%c - %-6i", a, a);
/* 68.7.20.6. Напечатать в возрастающем порядке все трехзначные числа,
в десятичной записи которых нет одинаковых цифр. */
printf ("\n\n6. ");
for (a = 1; a < 10; a++)
for (b = 0; b < 10; b++)
for (c = 0; c < 10; c++)
if (a != b && a != c && b != c)
printf ("%i%i%i ", a, b, c);
/* 70.1.22.7. С помощью приведенной программы определите на вашем
компьютере величину машинного epsilon. */
d = 1;
while (1 < 1 + d) d /= 2;
printf ("\n\n7. Машинный эпсилон %.4g.\n", d);
/* 70.2.23.8. Если на вашем компьютере это возможно, определите
машинное epsilon для удвоенной или повышенной точности представления
вещественных чисел. */
s = 1;
while (1 < 1 + s) s /= 2;
printf ("8. Машинный эпсилон %.4g.\n", s);
/* 70.3.24.9. Составьте программу определения машинного нуля. Проведите
численный эксперимент на вашем компьютере. */
d = 1;
while (d > 0) {e = d; d /= 2;}
printf ("9. Машинный нуль %.4g.\n", e);
/* 71.6.25.10. Проведите эксперимент на исследование целочисленного
переполнения, т. е. установите, что происходит с целой переменной, когда
ее значение превышает maxint. */
printf ("10. ");
a = 32766;
for (b = 0; b < 4; b++) {printf ("%i ", a); a++;}
printf ("\n");
goto aaz;
aab:
printf ("Введите два рациональных числа: ");
scanf ("%f%f", &j, &k);
/* 21.2.9.1. Дана скорость ракеты при выходе за пределы атмосферы Земли.
Составить алгоритм определения того, как будет двигаться ракета после
выключения двигателей. (Напомним величины трех космических скоростей:
7.5 км/с, 11.2 км/с, 16.4 км/с.) */
printf ("1. Ракета ");
if (j < 7.5) printf ("упадет на Землю.\n");
else if (j == 7.5) printf ("будет двигаться по окружности вокруг Земли.\n");
else if (j < 11.2) printf ("будет двигаться по эллипсу вокруг Земли.\n");
else if (j == 11.2) printf ("улетит от Земли по параболе.\n");
else if (j < 16.4) printf ("будет двигаться по эллипсу вокруг Солнца.\n");
else if (j == 16.4) printf ("улетит от Солнца по параболе.\n");
else printf ("улетит от Солнца по гиперболе.\n");
/* 64.2.15.2. Вычислить сумму конечного числа членов гармонического
ряда: 1 + 1 / 2 + 1 / 3 + ... + 1 / i + ... . Суммирование прекращается,
когда очередное слагаемое становится меньше epsilon или целая переменная
i достигает значения maxint. */
a = 32767;
if (j > 0)
if (1 / j < a) a = 1 / j;
d = 0;
while (a) {d += 1. / a; a--;}
printf ("2. Сумма гармонического ряда %g.\n", d);
/* 68.4.18.4. Вычислить сумму квадратов всех целых чисел, попадающих в
интервал (ln x, exp x). */
a = 0;
if (j > 0 && j < 10.1)
{
b = log (j);
c = exp (j);
for (g = b; g <= c; g++) a += g * g;
}
printf ("4. Сумма ряда %i.\n", a);
/* 68.5.19.5. Вычислить количество точек с целочисленными координатами,
попадающих в круг радиуса R (R > 0) с центром в начале координат. */
a = 0;
if (j < 100.2)
for (b = -j; b <= j; b++)
for (c = -j; c <= j; c++)
if (b * b + c * c <= j * j) a++;
printf ("5. Количество точек %i.\n", a);
/* 84.4.33.11. Для заданного вещественного x и малой величины epsilon
(например, epsilon = .000001) вычислить сумму ряда:
1 + x + x^2 / 2! + x^3 / 3! + ...,
включив в нее только слагаемые, превышающие epsilon. */
a = 0; /* номер итерации */
d = 0; /* сумма последовательности */
e = 1; /* очередной член ряда */
while (1)
{
if (e < k || e < 1e-10) break;
if (e < -1e10 || e > 1e10) break;
d += e;
a++;
e *= j / a;
}
printf ("11. Сумма ряда %g.\n", d);
aaz:
getch ();
printf ("\n");
}