fursov-da
?>

Программа в паскале. 3 натуральных числа, если сумма первых двух больше нуля, определите максимальное число, в ином случае вычислите среднее арифметическое.

Информатика

Ответы

ВасилийМалюга152
// PascalABC.NET 3.0, сборка 1150 от 22.01.2016
var
  a,b,c:integer;
  r:real;
begin
  Writeln('Введите три числа: '); Read(a,b,c);
  if a+b>0 then begin
    r:=a;
    if b>r then r:=b;
    if c>r then r:=c
    end
  else r:=(a+b+c)/3;
  Writeln('Результат равен ',r)
end.

Тестовые решения:
Введите три числа:
-5 8 11
Результат равен 11

Введите три числа:
-3 -6 8
Результат равен -0.333333333333333
macmakka
Линии пересекаются в точках, где их уравнения при одинаковых аргументах возвращают одинаковые значения. Чтобы определить условия точек пересечения заданных уравнений линий

следует приравнять их правые части и решить полученное уравнение относительно аргумента х.

Сделаем подстановку и получим квадратное уравнение:

Далее находим дискриминант, проверяем его знак, производим ветвление алгоритма в зависимости от результата. При неотрицательных t определяем х, извлекая из t квадратный корень и для каждого х вычисляем у из второго уравнения (оно короче).

var
  a, b, c, d, f, m, p: real;

function y(x: real): real;
begin
  y := b * x * sqr(x) + m * sqr(x) + d * x + p
end;

procedure OutPoint(x: real);
begin
  writeln('Найдена точка пересечения функций (', x, ',', y(x), ')')
end;

procedure TDev(t: real; var np: Boolean);
var
  x: real;
begin
  if t = 0 then begin
    np := false;
    OutPoint(0)
  end
  else if t > 0 then begin
    np := false;
    x := -sqrt(t);
    OutPoint(x);
    x := sqrt(t);
    OutPoint(x)
  end
end;

var
  x1, x2, u, v, t1, t2, Dis: real;
  NoPoints: Boolean;

begin
  writeln('Введите значения переменных a,b,c,d,f,m,p');
  readln(a, c, f, m, p);
  u := c - m;
  v := f - p;
  Dis := sqr(u) - 4 * a * v;
  NoPoints := true;
  if Dis = 0 then begin
    t1 := -u / (2 * a);
    TDev(t1,NoPoints);
     end
  else begin
    t1 := (-u - sqrt(Dis)) / (2 * a);
    TDev(t1,NoPoints);
    t2 := (-u + sqrt(Dis)) / (2 * a);
    TDev(t2,NoPoints);
  end;
  if NoPoints then writeln('Общих точек пересечения нет')
end.

Тестовое решение

Введите значения переменных a,b,c,d,f,m,p
2 3 4 5 6 7 8
Найдена точка пересечения функций (-1.27201964951407,14.0901699437495)
Найдена точка пересечения функций (1.27201964951407,14.0901699437495)

Введите значения переменных a,b,c,d,f,m,p
-3 -5 -3 2 1 4 5
Общих точек пересечения нет
Sharap
// PascalABC.NET 3.3, сборка 1541 от 29.09.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ReadArrInteger('Введите 70 целых чисел:',70);
  var l:=a.Zip(a[1:],(x,y)->(x>y)).All(x->x=true);
  Writeln('l=',l)
end.

Примеры
Введите 70 целых чисел: 95 91 89 87 82 81 80 75 74 73 72 66 62 59 56 54 51 49 48 47 43 39 35 34 32 31 28 26 16 11 10 9 -2 -3 -5 -8 -9 -17 -20 -21 -23 -25 -26 -28 -29 -30 -31 -34 -35 -36 -38 -39 -40 -45 -54 -55 -59 -63 -64 -65 -66 -68 -69 -70 -74 -75 -85 -89 -92 -95
l=True

Введите 70 целых чисел: 95 91 89 87 82 81 80 75 74 73 72 66 62 59 56 54 51 49 48 47 43 39 35 34 32 31 28 26 16 11 10 9 -2 -3 -5 -8 -9 -17 -20 -21 -23 -25 -26 -28 -29 -30 -31 -34 -35 -36 -38 -39 -40 -45 -54 -55 -59 -63 -64 -65 -66 -68 -69 -70 -44 -75 -85 -89 -92 -95
l=False

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Программа в паскале. 3 натуральных числа, если сумма первых двух больше нуля, определите максимальное число, в ином случае вычислите среднее арифметическое.
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

glebshramko
modellisimo-a
elenarumack
Нескажу25
format-l3364
yocrew13
stairov536
Коваль1974
zorinka777
mulyugina365
Апраксин Владимир897
ccc712835
Горина
sklad
Amulenkov