Программа в паскале. 3 натуральных числа, если сумма первых двух больше нуля, определите максимальное число, в ином случае вычислите среднее арифметическое.
// 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
18.01.2023
Линии пересекаются в точках, где их уравнения при одинаковых аргументах возвращают одинаковые значения. Чтобы определить условия точек пересечения заданных уравнений линий
следует приравнять их правые части и решить полученное уравнение относительно аргумента х.
Сделаем подстановку и получим квадратное уравнение:
Далее находим дискриминант, проверяем его знак, производим ветвление алгоритма в зависимости от результата. При неотрицательных 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
18.01.2023
// 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.
Программа в паскале. 3 натуральных числа, если сумма первых двух больше нуля, определите максимальное число, в ином случае вычислите среднее арифметическое.
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