Меладзе_Владимир1695
?>

С1)является ли число b делителем числа a 2) определить площадь и периметр прямоугольного треугольника по двум сторонам 3) найдите корни квадратного уравнения ax2+bx+c=0 где a b c константы введеные с клавиатуры 4) определить какое из двух чисел ближе к третьему

Информатика

Ответы

vis-lyubov8832
Первая программа:

Var a,b:integer;
Begin
Write('a = ');ReadLn(a);
Write('b = ');ReadLn(b);
if a mod b = 0 then WriteLn(b,' - делитель ',a)
else WriteLn(b,' не является делителем ',a)
End.

Вторая программа:

Var
   a,b:real;
Begin
WriteLn('a и b - катеты прямоугольного треугольника');
Write('a = ');ReadLn(a);
Write('b = ');ReadLn(b);
WriteLn('S = ',a*b/2);
WriteLn('P = ',Sqrt(a*a+b*b)+a+b);
End.

Пример работы программы:

a и b - катеты прямоугольного треугольника
a = 3
b = 4
S = 6
P = 12

Примечание: программа не проверяет, существует ли треугольник и является ли он прямоугольным.

Третья программа:

Var
   a,b,c,D:real;
Begin
WriteLn('ax^2 +bx +c = 0');
Write('a = ');ReadLn(a);
Write('b = ');ReadLn(b);
Write('c = ');ReadLn(c);
D:=b*b-4*a*c;
if D < 0 then Write('Действительных корней нет')
else
   Begin
   WriteLn('x1 = ',(-b-Sqrt(D))/(2*a));
   WriteLn('x2 = ',(-b+Sqrt(D))/(2*a));
   End
End.

Четвёртая программа:

Var a,b,c:real;
Begin
Write('Введите три числа: ');ReadLn(a,b,c);
a:=Abs(a-c);
b:=Abs(b-c);
if a < b then WriteLn('Первое число ближе к третьему')
else if a > b then WriteLn('Второе число ближе к третьему')
     else WriteLn('Первое и второе число - одинаково близки к третьему')
End.

Пример работы программы:

Введите три числа: 1 2 3
Второе число ближе к третьему

Введите три числа: 1 1 3
Первое и второе число - одинаково близки к третьему

Введите три числа: 2 1 13
Первое число ближе к третьему
manu95957

На строке 9 "if x>=-7.5 and x<2 then y:=(a*sqrt(abs(x+6))); " в том месте, где выделено жирным, компилятор думает, что необходимо произвести побитовое умножение числа с плавающей точкой типа real -7.5 и целого числа x. Т.к. побитовое умножение применимо только к целым числам, компилятор пытается преобразовать -7.5 к целому числу, т.е. к integer, и у него это не получается, о чем он Вам и говорит.

Чтобы он не думал, что Вы собираетесь производить побитовое умножение (ведь Вы хотите произвести логическую операцию между результатами двух сравнений), нужно занести в скобки выражения x>=-7.5 и x<2, чтобы получилась такая строка: "if (x>=-7.5) and (x<2) then y:=(a*sqrt(abs(x+6))); "

Серопян
1) 8
2) 7 выведет 1
3)
11 строка, поменять на k := k + 1;
14 строка заменить на if n = 1 then

Рабочий код

var
    n, k: integer;

begin
    read(n);
    k := 0;
    while n mod 7 = 0 do
    begin
        k := k + 1;
        n := n div 7;
    end;
    if n = 1 then
        writeln(k)
    else
        writeln('He существует')
end.

Правильное решение данной задачи
const
    divider = 7;

var
    n: integer;
    k: real;

begin
    read(n);
    k := ln(n) / ln(divider);
    if round(k) = k then
        writeln(round(k))
    else
        writeln('He существует');
end.

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

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

С1)является ли число b делителем числа a 2) определить площадь и периметр прямоугольного треугольника по двум сторонам 3) найдите корни квадратного уравнения ax2+bx+c=0 где a b c константы введеные с клавиатуры 4) определить какое из двух чисел ближе к третьему
Ваше имя (никнейм)*
Email*
Комментарий*