Язык 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");
}
Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Нет комментариев