Язык Turbo C 2.0
Основы программирования - 1
Ввод данных: 6 int, 1 int + 1 float
a - простые переменные
j - ввод данных
s () - функции
1 - 15k, 2 - 21k, 3 - 23k
*/
#include <conio.h>
#include <math.h>
#include <stdio.h>
float s (float, float, float, float); /* расстояние между двумя точками на плоскости */
float t (float, float, float); /* формула Герона */
main ()
{
int a, b;
float d;
int j, k, l, m, n, o; /* ввод данных */
float p;
printf ("? (1-2) ");
scanf ("%i", &a);
if (a == 1) goto aaa; /* 6 int */
if (a == 2) goto aab; /* 1 int + 1 float */
printf ("\n");
return;
aaa:
printf ("Введите 6 целых чисел: ");
scanf ("%i%i%i%i%i%i", &j, &k, &l, &m, &n, &o);
/* 11.1.1.1. */
a = j * m;
b = k * l;
printf ("1. %i / %i.\n", a, b);
/* 21.1.8.3. Даны декартовы координаты трех вершин треугольника на
плоскости. Составить алгоритм определения площади треугольника. */
d = t (s (j, k, l, m), s (j, k, n, o), s (l, m, n, o)); /* формула Герона */
printf ("3. Площадь треугольника %.4g.\n", d);
/* 80.2.28.4. По координатам вершин треугольника вычислить его периметр,
используя подпрограмму вычисления длины отрезка, соединяющего две точки.
*/
d = s (j, k, l, m) + s (j, k, n, o) + s (l, m, n, o);
printf ("4. Периметр треугольника %.4g.\n", d);
goto aaz;
aab:
printf ("Введите целое число: ");
scanf ("%i", &j);
printf ("Введите рациональное число: ");
scanf ("%f", &p);
/* 19.1.7.2. Составить алгоритм вычисления степенной функции с целым
показателем y = x^k, где k - целое число, x != 0. */
if (p == 0)
d = 0;
else
if (j == 0)
d = 1;
else
{
a = j;
if (a < 0) a = -a;
d = p;
for (b = 1; b < a; b++)
{
d *= p;
if (d > 1e10) break;
}
if (d != 0 && j < 0) d = 1 / d;
}
printf ("2. %.4g ^ %i = %.4g.\n", p, j, d);
/* 85.5.34.5. Для заданного натурального N и вещественного x (x > 0)
вычислить значение выражения:
sqrt (x + sqrt (x + ... + sqrt (x)...)). */
d = 0;
if (p > 0)
for (a = 0; a < j && a < 100; a++)
d = sqrt (p + d);
printf ("5. %g.\n", d);
aaz:
getch ();
printf ("\n");
}
float s (float a, float b, float c, float d) /* расстояние между двумя точками на плоскости */
{
return sqrt ((c - a) * (c - a) + (d - b) * (d - b));
}
float t (float a, float b, float c) /* формула Герона */
{
float d;
if (a < 0 || b < 0 || c < 0 || a + b < c || a + c < b || b + c < a) return 0;
d = (a + b + c) / 2;
return sqrt (d * (d - a) * (d - b) * (d - c));
}
Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Нет комментариев