• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Вопрос: Вычисление значения функции

  • Автор темы Guest
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest

только начал изучать С++
программа выдает неправильное решение
условие:
f(x,y)=
y*y*y-1, при abs(y)<=1
2*y-1 при 1<=abs(y)<=2
5/8*y-1, при abs(y)>2
где y=x*x+x-1

код программы
C++:
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include<iostream>
#include<math.h>
using namespace std;

int _tmain()
{
double f, x, y;
cout << " Vvedite x = ";
cin >> x;
y = x*x+x-1;
if (abs(y)<=1) 
{ 
f=pow(y,3)-1;
cout<< "\n f="<<f;
}
if (abs(y)>=1 && abs(y)<=2) 
{ 
f=2*y-1;
cout<< "\n f="<<f;
} 
else 
f=(5/8)*y-1;
cout << "\n f= "<< f;
getch ();
return 0;
}
 
L

lazybiz

Лично мне код программы понравился.

дальнейщее обсужение проблемы отображения кода тут:
link removed
 
D

DarkKnight

2артем1 , вот смотри у тебя ошибка уже в самом задании...
f(x,y)=
y*y*y-1, при abs(y)<=1
Вот смотри в этом месте при abs(y) МЕНЬШЕ ЛИБО РАВНЫМ 1
А далее смотри на следующее условие
abs(y) Больше ЛИБО РАВЕНЕ 1
Заметил тафталогию???
А теперь смотри что происходит:
Вводим х = 1
Расчитываем y = 1*1+1-1 = 1
Идем по условиям :
y =1, выполняется первое условие расчитываем
f = 1*1*1-1 =0
идем дальше
ооопа(!) торому условию мы тоже соответствуем
пересчитываем f = 2*1-1 = 1;

Понял ошибку? Скорее всего у тебя в первом условии знка только СТРОГО МЕНЬШЕ


Добавлено: Что то вроде этого...
C++:
#include <iostream>

using namespace std;

int main(void)
{
setlocale(LC_ALL,"Russian");
double Fn, x, y;
cout<<"Введите x = ";
cin>>x;
y = x * x + x - 1;
cout<<"Вычисление y = "<<y<<endl;

if ( abs(y) < 1) //abs(y) < 1
Fn = pow(y,3) - 1;
else if ( abs(y) <= 2) // 1 <= abs(y) <= 2
Fn = 2 * y - 1;
else // abs(y) > 2
Fn = 5.0/8 * y - 1;
cout<<"Функция F("<<x<<","<<y<<") = "<<Fn<<endl;
}
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!