Даны три переменные вещественного типа: A, B, C. Если их значения упорядочены по возрастанию или убыванию, то удвоить их; в противном случае заменить значение каждой переменной на противоположное. Вывести новые значения переменных A, B, C. Нужно решение на C++
var a,b,c:real;
s1,s2,s3:integer;
begin
read(a);
read(b);
read(c);
if a>0 then s1:=s1+1;
if b>0 then s1:=s1+1;
if c>0 then s1:=s1+1;
if a<0 then s2:=s2+1;
if b<0 then s2:=s2+1;
if c<0 then s2:=s2+1;
if frac(a)<eps then s3:=s3+1;
if frac(b)<eps then s3:=s3+1;
if frac(c)<eps then s3:=s3+1;
writeln('Число положительных чисел = ',s1);
writeln('Число отрицательных чисел = ',s2);
writeln('Число целых чисел = ',s3);
end.
/* Для подсчета целых чисел использовалась функция frac - она возвращает дробную часть числа. При сравнении дробных чисел полезно отсекать разряды после скажем 8 знака после запятой, что и было сделано путем введения константы eps . */
r, r2, x, y: real;
n: integer;
begin
Write('Введите величину радиуса окружности: '); Readln(r);
r2 := sqr(r); n := 0;
{1. Точки в первой четверти без учета попавших на оси }
x := 1;
while x <= r do
begin
y := 1;
while y <= r do
begin
if sqr(x) + sqr(y) <= r2 then n := n + 1;
y := y + 1
end;
x := x + 1
end;
n := 4 * n; { учли точки в остальных трех четвертях }
n := n + 1; { учли точку в начале координат }
n := n + 4 * trunc(r); { учли точки, находящиеся на координатных осях }
Writeln('Число точек, принадлежащих кругу, равно ', n);
end.
Тестовое решение:
Введите величину радиуса окружности: 3
Число точек, принадлежащих кругу, равно 29