#include <iostream>
double multiply(double num1, double num2) {
if (num2 > 0) return num1 + multiply(num1, num2 - 1);
else if (num2 < 0) return -num1 + multiply(num1, num2 + 1);
return 0;
}
signed main() {
//2.2 * 2
std::cout << multiply(2.2, 2) << std::endl;
//4 * 2
std::cout << multiply(4, 2) << std::endl;
//-8 * 2
std::cout << multiply(-8, 2) << std::endl;
//0*1
std::cout << multiply(0, 1) << std::endl;
return 0;
}
Требуется написать программу, вычисляющую значение какой-либо функции у = f(x). Допустим, такой:
у = x – 2, если x > 0,
y = 0, если x = 0,
y = |x|, если x < 0.
Решение
При определении значений подобных функций переменная y вычисляется по-разному (по разным формулам) в зависимости от значения x.
Такие задачи решаются с конструкции условного оператора if - else. Поскольку в данном случае мы имеем три условия (x > 0, x = 0 и x < 0), то потребуется использование еще вложенной конструкции if - else, т. к. в языке Pascal нет оператора множественного ветвления (оператор case в данном случае не подходит).
В языке программирования Паскаль (да и в других тоже) желательно вложенные конструкции if - else помещать во внешнюю ветку else, а не if. Так проще не запутаться.
Таким образом, алгоритм вычисления значения функции может быть таким:
Если x > 0, то у = x - 2Иначе (ниже идет вложенная конструкция)Если x = 0, то y = 0Иначе y = |x|.
В последнем пункте можно опустить оператор if с проверкой, что x < 0, так как если ход выполнения программы дошел до этого пункта, то x уже другим быть и не может (варианты, когда он больше или равен нулю, уже были исключены).
Для определения модуля (абсолютного значения) переменной можно использовать встроенную функцию abs() языка Pascal. В данном случае можно обойтись и без нее: поскольку уже известно, что x отрицателен, то, чтобы получить положительное число (модуль), нужно его умножить на -1.
var x, y: integer; begin write ('x = '); readln (x); if x > 0 then y := x - 2 else if x = 0 then y := 0 else y := abs(x); writeln ('y = ', y); end.
Добавить комментарий
Комментарии
y=x^3
Гость (не проверено)09/01/2017
Запрограммируйте в языке паскаль вычисление куба числа x.
ответить
Решение вычисления куба
Гость (не проверено)16/01/2017
ответ на y=x^3 от Гость (не проверено)
var y, x : integer; begin write('введите x:'); read(x); y:=x*x*x; write (y); end.
ответить
сделал проще;)
mrX (не проверено)14/11/2020
ответ на Решение вычисления куба от Гость (не проверено)
program mrX; var x,n:real; begin n:=3; write('введи число для куба = '); readln (x); writeln ('число равно = ',power (x,n)); end.
ответить
Вычислить чему равен y
Гость (не проверено)11/12/2015
Написать программу:
y=4x+10, если х>= 0;
y=8+х, если х<0.
ответить
Решение
Гость (не проверено)04/01/2016
ответ на Вычислить чему равен y от Гость (не проверено)
var x,y:integer; begin writeln('введите x = '); readln(x); if x>=0 then y:=4*x+10 else y:=8+x ; writeln(y) end.
ответить
Вычислить значение функции y = min + 2*min + b
Гость (не проверено)17/03/2015
Вычислить значение функции y = min + 2*min + b, определив и использовав функцию min, которая равна минимальному числу среди вводимых: a, b.
ответить
Решение
Гость (не проверено)05/07/2015
ответ на Вычислить значение функции y = min + 2*min + b от Гость (не проверено)
Program few2; Uses crt; Var a, b, y, min: integer; Begin ClrScr; Writeln('y:= min+ 2* min+ b'); Write('Значение a: '); Readln(a); Write('Значение b: '); Readln(b); If a>b then min:=a; If a<b then min:=b; y:= min+ 2* min+ b; Begin If a=b then Writeln('Невозможно найти значение...') else Begin Writeln('min= ', min); Writeln('y= ', min, '+ 2* ', min, '+ ', b); Writeln('Y= ', y); End; End; Readln; End.
ответить
Решение с определением функции
Гость (не проверено)03/09/2015
ответ на Вычислить значение функции y = min + 2*min + b от Гость (не проверено)
var a,b,y:integer; function K(var a1:integer;b1:integer):integer; var min:integer; begin min:=0; if(a1<b1) then min:=a1 else if (a1>b1) then min:=b1; writeln(min); K:=min; end; begin write('a,b='); read(a,b); K(a,b); y:=K(a,b)+2*K(a,b)+b; writeln('y=',y); end.
ответить
у = (х,если x<5)(2х, если x>=5)
Гость (не проверено)22/12/2014
Составьте программу для вычисления функции: у = (х,если x<5)(2х, если x>=5) - это система.
ответить
ответ
Гость (не проверено)13/09/2015
ответ на у = (х,если x<5)(2х, если x>=5) от Гость (не проверено)
Program p1; Var x,y:integer; Bgin ClrSxr; WriteLn("Введите Х"); ReadLn(x); If x<5 then WriteLn("Решения нет"); Else Begin y:=x*2; WriteLn(y); End; End.
ответить
Y=sqrt(sqrX + 5X + 3)
Гость (не проверено)01/12/2014
Необходимо составить таблицу значений функции Y=sqrt(sqrX + 5X + 3) на отрезке от 0 до 4 с шагом 0,25. Таблица должна выводится на экран в два столбца с заголовком "Х" и "f(X)".
ответить
Решение
Гость (не проверено)18/12/2014
ответ на Y=sqrt(sqrX + 5X +
Поделитесь своими знаниями, ответьте на вопрос:
Что из ниже перечисленного относится к оборудованию, а что к программному обеспечению? 1. Programme 2. Mouse 3. CPU 4. Peripheral devices 5. CD-ROM 6. Word processor 7. Modem 8. Web-browser 9. Operating system 10. Scanner 11. Printer 12. Software
1 обесп.
2 обор.
3 обесп.
4 обор.
5 обесп.
6 обесп.
7 обор.
8 обесп.
9 обесп.
10 обор.
11 обор.
12 обесп.