Автор admin Просмотров 17.4к. Обновлено 26 сентября 2021
Дана следующая функция y=f(x):
y = 2x — 10, если x > 0
y = 0, если x = 0
y = 2 * |x| — 1, если x < 0Требуется найти значение функции по переданному x.
- Получить с клавиатуры значение x.
- Если x больше 0, то вычислить выражение 2*x-10, результат присвоить переменной y.
- Иначе если x равен 0, то присвоить y значение 0.
- Иначе присвоить y результат выражения 2*|x|-1.
- Иначе если x равен 0, то присвоить y значение 0.
- Вывести значение y на экран.
Pascal
Язык Си
Python
КуМир
Basic-256
rtdhbsez, ещё раз: если Вы не специалист, и у Вас не работает, а Вас уверяют, что всё работает, то, скорее всего, это Вы что-то делаете не так.
Диалектов паскаля несколько. Каждый диалект имеет свои особенности. В различных учебных заведениях используются, по крайней мере, три разных диалекта паскаля. Это Turbo Pascal (иногда Borland Pascal), Free Pascal Compiler (FPC) и Pascal ABC. Иногда используется Delphi в консольном режиме.
Мы находимся в ветке Pascal ABC. Вам в сообщении #2 Grand Inquisito написал программу именно на Pascal ABC. Да, она имеет недостатки, но она безо всяких ошибок запускается в Pascal ABC, и выдаёт верный результат для аргументов, принадлежащих к ОДЗ.
Вы же в сообщении #3 пишете, что «неправильно». Какие неверные предпосылки позволили Вам прийти к этому нелепому выводу, вполне понятно: в сообщении #7 вдруг выясняется, что Вы используете онлайн-компилятор Free Pascal для Linux.
Просите Вы одно, а нужно Вам другое. Но Вы, похоже, полагаете, что одно от другого не отличается, поскольку с безапелляционной лёгкостью, вызывающей недоумение, рассуждаете о работоспособности того, чего не понимаете. Вы прямо-таки ум один. Это примерно то же самое, что на заправке попросить залить в машину с бензиновым двигателем солярку, и обвинить заправщиков в том, что «машина не заводится, потому что солярка плохая».
В Pascal ABC функция power встроенная, а в Free Pascal функция power находится в модуле math. Для того, чтобы программа из сообщения #2 компилировалась в указанном Вами онлайн-компиляторе без ошибок, достаточно было бы после первой строки вставить строку uses math;
. Если бы Вы сделали это очевидное действие, то «неправильно, к сожалению» чудесным образом превратилось бы в «работает, но не на всех наборах входных значений».
В сегодняшнем уроке будет написана и рассмотрена программа, вычисляющая значение функции. Разработку будем вести на языке Си. Значение функции будет вычислять подпрограмма; с помощью неё мы решим типовую вычислительную задачу, которую удобно запрограммировать для вычисления на компьютере.
Изучение программирования на примерах многие авторы считают очень эффективным, и мы, в рассмотрении данного вопроса, поступим также. Поэтому решим типовую задачу.
Задание. Вычислить сумму:
Перейдем к написанию программы, решающей данную задачу. Сначала подключим необходимые заголовочные файлы, функции которых понадобятся для вывода результата в консоль и для математических расчетов соответственно:
#include <stdio.h> #include <math.h> |
Затем, нам понадобится подпрограмма, вычисляющая значение функции f(x). Напишем её:
double f(double x) { return 2 * pow(x, 3) + 7 * sqrt(x); } |
Функция f, после своего вызова, вернёт вызывающей программе значение типа double. Это число и будет результатом вычисления значения функции f(x): оно вычисляется в операторе return.
Перейдем к написанию функции main. Объявим целочисленную переменную x = 1, значение которой будем последовательно увеличивать до 10, чтобы вычислить сумму, необходимую для решения задачи.
Также объявим переменную типа double с именем result. В ней будет хранится результат вычисления суммы.
Теперь напишем цикл while, в котором будут производиться все вычисления.
while (x <= 10) { result = result + f(x); x++; } |
Цикл будет выполняться до тех пор, пока значение переменной x не станет больше 10. На каждой итерации цикла вычисляется новое значение f(x) (с помощью подпрограммы f) и добавляется к переменной result. После этого переменная x инкрементируется (её значение увеличивается на единицу: x++).
Вычисления закончены, выведем результат на экран:
printf(«result is %fn», result); |
Приведём полный листинг программы, вычисляющей значение функции, которая была написана в этом уроке:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#include <stdio.h> #include <math.h> double f(double x) { return 2 * pow(x, 3) + 7 * sqrt(x); } int main() { int x = 1; double result = 0; while (x <= 10) { result = result + f(x); x++; } printf(«result is %fn», result); return 0; } |
Последнее, что осталось — это протестировать работу программы. Запустим её (в Visual Studio для этого нажмите сочетание клавиш Ctrl + F5, чтобы консоль сразу после исполнения программы не закрылась).
В данном уроке была написана программа, вычисляющая значение функции. Чтобы скачать её исходник, нажмите на кнопку ниже. Спасибо за прочтение статьи!
Скачать исходник
Условие задачи: Требуется написать программу, вычисляющую значение функции у = f(x).
Сложность: легкая.
Для того чтобы нам решить подобную задачу нужно будет воспользоваться обычным условием if else.
К примеру нам надо решить вот такую систему функции :
у = x – 2, если x > 0,
y = 0, если x = 0,
y = |x|, если x < 0.
Тут нам надо найти у в зависимости от x , т.е. у нас будет две переменные : под ответ и под значение.
Давайте создадим каркас
#include <iostream> // подключаем библиотеку ввода и вывода
using
namespace
std;
// используем именное пространство std
int
main()
{
setlocale
(LC_ALL,
"Rus"
);
// включаем русский язык
int
x , y;
}
Для начала попросим пользователя ввести число , то есть x :
cout <<
"Введите число x : "
; cin >> x;
Ну и дальше в зависимости от x мы должны написать условие :
if
(x > 0) {
y = x - 2;
cout <<
"y = x -2 = "
<< y << endl;
}
else
{
if
(x == 0) {
y = 0 ;
cout <<
"y = "
<< y << endl;
}
else
{
y =
abs
(x);
cout <<
"y = |x| = "
<< x << endl;
}
}
Довольной простое условие , когда пользователь ввел число, оно подставляется сначала в первое, x > 0 если оно не выполняется , т.е. наше число x меньше 0 , то оно уже подставляется в другое условие и так далее.
Весь код задачи
#include <iostream> // подключаем библиотеку ввода и вывода
using
namespace
std;
// используем именное пространство std
int
main()
{
setlocale
(LC_ALL,
"Rus"
);
// включаем русский язык
int
x , y;
cout <<
"Введите число x : "
; cin >> x;
if
(x > 0) {
y = x - 2;
cout <<
"y = x -2 = "
<< y << endl;
}
else
{
if
(x == 0) {
y = 0 ;
cout <<
"y = "
<< y << endl;
}
else
{
y =
abs
(x);
cout <<
"y = |x| = "
<< y << endl;
}
}
system
(
"PAUSE"
);
// чтобы программа не закрывалась
return
0 ;
// возвращаем функции main() ноль
}
Предыдущая
ПрограммированиеЗадачи по С++. Среднее арифметическое в трех рядах
Следующая
ПрограммированиеЗадачи по C++. Выбор правильного ответа.
Python
Python задачи
Найдите значение функции y=f(x) по переданному x. Учитывая, что “x” может быть больше, меньше или равен нулю.Разбор задачи на Python
Варианты вычисления функции y=f(x)
1) Если x > 0, то y = 2x — 10
2) Если x = 0, то y = 0
3) Если x < 0, то y = 2 * |x| — 1
Алгоритм решения значение функции y=f(x)
1) Получить с клавиатуры значение x.
2) Если x больше 0, то вычислить выражение 2*x-10, результат присвоить переменной y.
3) Иначе если x равен 0, то присвоить y значение 0.
4) Иначе присвоить y результат выражения 2*|x|-1.
5) Вывести значение y на экран.
Решение функции y=f(x)
x = int(input(‘Введите число x = ‘))
if x > 0:
y = 2*x — 10
elif x == 0:
y = 0
else:
y = 2*abs(x) — 1
print(‘y =’,y)
Python
Python задачи
Все задачи на python
Репост статьи
5 ноября 2022 г.
Комментарии могут оставлять только зарегестрированные пользователи!
Комментарии
Ваш комментарий будет первым !