Главная страница Случайная лекция Мы поможем в написании ваших работ! Порталы: БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика Мы поможем в написании ваших работ! |
Вещественное числоВещественные числа – числа, описанные в формате с фиксированной или плавающей точкой Основные операции с вещественными числами: § присваивание; § унарные арифметические операции: изменение знака +, -; § бинарные арифметические операции: +, -, *, /; § операции отношения: <, >. Сравнивать между собой вещественные числа не имеет смысла, так как расхождение в крайних правых разрядах числа, которые иногда не выводятся на экране, даст отрицательный результат. Поэтому следует находить разность между числами, которые необходимо сравнить между собой, если разность меньше заданной точности (например, < 0.00001), то числа «равны» между собой. Так же не имеет смысл проверять равенство вещественного числа нолю. Набор функций для работы с вещественными числами: 1. Определить, есть ли среди k первых цифр дробной части числа ‘0’? int Yes_Zero (double digit, int k) { long Number; while (k>0) { digit = digit *10; Number = digit; if ((digit - Number) > 0.000001) { if ((Number % 10) == 0) return 1; else k--; } else break; } return 0; } 2. Вычислить длину окружности, площадь круга и объем шара с заданным радиусом. void For_Radius (float Radius) { char dl[] = "Длина окружности:", s []="Площадь круга:", v [] = "Объем шара:"; float pi=3.1415926; printf("\n %s %f ", dl, (2 * pi * Radius)); printf("\n %s %f ", s, (pi * Radius * Radius)); printf("\n %s %f ", v, (0.75 * pi * Radius * Radius * Radius)); } 3. Проверить, образуют ли три заданных отрезка треугольник: равнобедренный, равносторонний? int Triangle (double a, double b, double c) { if (((b - (a + c)) >= 0)||((c - (a + b)) >= 0)||((a - (b + c)) >= 0)) return 0; if ((fabs(a - b) <0.0001)&&(fabs(c - b) <0.0001)&&(fabs(a - c) <0.0001)) printf ("\n Равносторонний "); else if ((fabs(a - b) < 0.0001)||(fabs(c - b) < 0.0001)||(fabs(a - c) < 0.0001)) printf ("\n Равнобедренный "); printf (" треугольник "); return 1; } 4. По координатам трёх вершин вычислить периметр и площадь треугольника. double Square_Triangle (double x[], double y[]) { double a, b, c, p; a = sqrt((x[0] - x[1])*(x[0] - x[1])+(y[0] - y[1])*(y[0] - y[1])); b = sqrt((x[0] - x[2])*(x[0] - x[2])+(y[0] - y[2])*(y[0] - y[2])); c = sqrt((x[2] - x[1])*(x[2] - x[1])+(y[2] - y[1])*(y[2] - y[1])); if (! Triangle (a, b, c)) { puts ("Не треугольник!"); return 0; } p = a + b + c; printf ("Периметр = %lf ", p); p /= 2; return (sqrt(p * fabs(p - a) * fabs(p - b) * fabs(p - c))); }
5. Даны длины a, b, c сторон треугольника. Найти медианы треугольника, сторонами которого являются медианы исходного треугольника. Длина медианы, проведенной к стороне a, равна 0.5*(2*b2 + 2*c2 -a2)1/2. float Median (float a, float b, float c) { return ((sqrt (2 * b * b + 2 * c * c – a * a)) / 2); }
void Median _Triangle (float d, float e, float f) { float med_1, med_2, med_3; med_1 = Median (d, e, f); med_2 = Median (e, f, d); med_3 = Median (f, d, e); printf ("Медиана к стороне а: %f", Median (med_1, med_2, med_3)); printf ("Медиана к стороне b: %f", Median (med_2, med_3, med_1)); printf ("Медиана к стороне с: %f", Median (med_3, med_2, med_1)); }
Дата добавления: 2014-11-14; просмотров: 309; Нарушение авторских прав Мы поможем в написании ваших работ! |