Программа имеет 3 переменные: a, b (для входных данных), b2 (для результата деления, который потенциально может быть не целым числом, а потому требует типа Real).
Программа выводит приглашение на ввод, считывает два целых числа (считывает их именно как целые числа Integer, что от нас и требуется по задаче), затем умножает число a на 2, а для b "просто разделить на 2" нельзя, т.к. надо учесть возможность деление может дать и вовсе не целое число (как в примере), поэтому результат мы записываем в переменную вещественного типа Real с именем b2.
Дальше вывод.
БОНУС. В принципе, данная задача имеет альтернативное решение через конструкцию если...то (if...then), которая использует только целые значения, но, наверное, данное решение неуместно.
Тем не менее, я всё же приведу его. Если Вы пока не проходили if.. then, то можете вернуться, когда пройдёте.
Суть решения сводится к тому, что существует всего один возможный ненулевой остаток от деления числа на 2, который в десятичном виде всегда записывается точно как ".5").
Поэтому
program AB_alt;
var
a: Integer;
b: Integer;
bmod: Integer;
begin
writeln('a, b');
a := a * 2;
bmod := b mod 2;
b := b div 2;
writeln('a*2 = ', a, 'b : 2 = ', b);
if (bmod <> 0) then write('.5');
end.
Вычисляется остаток от деления, затем выводится целая часть от деления b на 2, и затем, если имеется ненулевой остаток (для положительных чисел он равен 1, для отрицательных -1), но в целом это всегда добавляет просто добавляет к целой части запись ".5".
Данный метод иногда бывает уместен (дело в том, что поведение real'ов не всегда предсказуемо для человека, не всегда оптимально по ресурсозатратам и т.п.), но точно не в учебных программах.
X = int(input()) # строго говоря, вообще-то float(input())
v = c*v0;
t = X/v
print(t)
Объяснение:
Нам дана скорость ходьбы мальчика, обозначим её v0. Так же нам дана c, во сколько раз мальчик быстрее бежит, чем идёт. (Для обобщения решения задачи запишем "в три раза быстрее" и "4 км/ч" в виде отдельных переменных, чтобы в случае чего нам пришлось бы менять значение переменной, а не саму запись всех формул, где данная величина задействована и записана как переменная)
Ну а X - это дистанция, которую мальчик пробежал, и которую мы получаем в форме строки input(), которую преобразуем к целому числу int(input()).
В принципе, расстояние в км может быть и не целым числом, поэтому возможно уместнее будет взять float (т.е. числа вообще, а не только целые).
Ну а поскольку мальчик бежал, то нам прежде всего нужна скорость, с которой он бежал (см. v = c*v0)
Затем получим время, разделив расстояние на скорость бега (t=X/v), и выведем на экран print(t).
program AB;
var
a: Integer;
b: Integer;
b2: Real;
begin
writeln('a, b = '); readln(a,b);
a := a * 2;
b2 := b / 2;
writeln('a*2 = ', a, ' b : 2 = ', b2);
end.
Объяснение:
Программа имеет 3 переменные: a, b (для входных данных), b2 (для результата деления, который потенциально может быть не целым числом, а потому требует типа Real).
Программа выводит приглашение на ввод, считывает два целых числа (считывает их именно как целые числа Integer, что от нас и требуется по задаче), затем умножает число a на 2, а для b "просто разделить на 2" нельзя, т.к. надо учесть возможность деление может дать и вовсе не целое число (как в примере), поэтому результат мы записываем в переменную вещественного типа Real с именем b2.
Дальше вывод.
БОНУС. В принципе, данная задача имеет альтернативное решение через конструкцию если...то (if...then), которая использует только целые значения, но, наверное, данное решение неуместно.
Тем не менее, я всё же приведу его. Если Вы пока не проходили if.. then, то можете вернуться, когда пройдёте.
Суть решения сводится к тому, что существует всего один возможный ненулевой остаток от деления числа на 2, который в десятичном виде всегда записывается точно как ".5").
Поэтому
program AB_alt;
var
a: Integer;
b: Integer;
bmod: Integer;
begin
writeln('a, b');
a := a * 2;
bmod := b mod 2;
b := b div 2;
writeln('a*2 = ', a, 'b : 2 = ', b);
if (bmod <> 0) then write('.5');
end.
Вычисляется остаток от деления, затем выводится целая часть от деления b на 2, и затем, если имеется ненулевой остаток (для положительных чисел он равен 1, для отрицательных -1), но в целом это всегда добавляет просто добавляет к целой части запись ".5".
Данный метод иногда бывает уместен (дело в том, что поведение real'ов не всегда предсказуемо для человека, не всегда оптимально по ресурсозатратам и т.п.), но точно не в учебных программах.
c = 3
v0 = 4
X = int(input()) # строго говоря, вообще-то float(input())
v = c*v0;
t = X/v
print(t)
Объяснение:
Нам дана скорость ходьбы мальчика, обозначим её v0. Так же нам дана c, во сколько раз мальчик быстрее бежит, чем идёт. (Для обобщения решения задачи запишем "в три раза быстрее" и "4 км/ч" в виде отдельных переменных, чтобы в случае чего нам пришлось бы менять значение переменной, а не саму запись всех формул, где данная величина задействована и записана как переменная)
Ну а X - это дистанция, которую мальчик пробежал, и которую мы получаем в форме строки input(), которую преобразуем к целому числу int(input()).
В принципе, расстояние в км может быть и не целым числом, поэтому возможно уместнее будет взять float (т.е. числа вообще, а не только целые).
Ну а поскольку мальчик бежал, то нам прежде всего нужна скорость, с которой он бежал (см. v = c*v0)
Затем получим время, разделив расстояние на скорость бега (t=X/v), и выведем на экран print(t).