1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

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

Тема в разделе "Вопросы новичков и не только", создана пользователем -, 6 ноя 2010.

Статус темы:
Закрыта.
  1. Гость

    Репутация:
    0
    только начал изучать С++
    программа выдает неправильное решение
    условие:
    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

    код программы
    Код:
    #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;
    }
     
  2. lazybiz

    lazybiz Well-Known Member

    Репутация:
    0
    Регистрация:
    3 ноя 2010
    Сообщения:
    1.339
    Симпатии:
    0
    Лично мне код программы понравился.

    дальнейщее обсужение проблемы отображения кода тут:
    http://codeby.net/forum/threads/38905.html
     
  3. DarkKnight

    DarkKnight Well-Known Member

    Репутация:
    0
    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    2артем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;

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


    Добавлено: Что то вроде этого...
    Код:
    #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;
    }
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей