Помогите с решением задач в Visual Studio C++!

Тема в разделе "C/C++/C#", создана пользователем kerragin, 15 дек 2010.

  1. kerragin

    kerragin Гость

    Репутация:
    0
    Помогите решить данные задачи!

    1.Составить программу для вычисления функции F(x) на отрезке [a,b], с шагом h. Результат представить в виде таблицы, первый столбец которой - значение аргумента, второй - соответствующее значение функции

    F(x)=tg x/2+2cosx



    2.Найти наименьший номер члена последовательности, для которого выполняется условие |an-an-1|< ε. Вывести на экран этот номер и все элементы ai , где i=1,2,3…,n.

    an=1/2 tg an-1,a=0,5

    3.Дано натуральное число п. Вычислить

    P=(1-1/2)(1-1/4)(1-1/6)...(1-1/2n)
     
  2. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Репутация:
    0
    Регистрация:
    3 ноя 2010
    Сообщения:
    1.339
    Симпатии:
    0
    Ты хочешь чтобы тебе их решили, или помогли решить?
     
  3. kerragin

    kerragin Гость

    Репутация:
    0
    Насчет 3го задания я написал код,но не уверен правильный он или нет:

    #include <iostream>
    #include <iomanip>

    using namespace std;
    int main()
    {
    int n;
    double p = 1.0;
    cout << "Введите чилсо n: ";
    cin >> n;

    for (int i = 1; i <= n; i++ )
    { p *= (1 - (1.0 / (2.0 * i)));
    }
    cout << fixed << setprecision(2);
    cout << "P = "<<p<< endl;
    getchar();
    return 0;
    }

    Второе задание я не знаю как делать вообще.

    В первом задание не знаю как делать через тангенс,вот код который попытался написать:

    #include <iostream>
    #include <cmath>
    using namespace std;

    double function(double x);
    int main()
    {
    double x;
    cout << "X = ";
    cin >> x;


    cout << "Function = " << function(x) << endl;

    cin.get();
    return 0;}
     
  4. ierofant

    ierofant Гость

    Репутация:
    0
    Задача 1.
    Код (C++):
    #include <iostream>
    #include <cmath>

    int main ()
    {
    double a, b, h;
    std::cout << "Введите a: " , std::cin >> a;
    std::cout << "Введите b: " , std::cin >> b;
    std::cout << "Введите шаг h: ", std::cin >> h;

    for (double x = a; x <= b; x += h) std::cout << x << "\t" << std::tan (x / 2) + 2 * std::cos (x) << std::endl;

    return 0;
    }
    В зависимости от того в радианах или градусах задаётся угол, формула может немного изменится.
     
  5. kerragin

    kerragin Гость

    Репутация:
    0
    не работает почему то =/
     
  6. ierofant

    ierofant Гость

    Репутация:
    0
    Какую ошибку выдаёт?
     
  7. kerragin

    kerragin Гость

    Репутация:
    0
    error C2059: синтаксическая ошибка: =
    error C2143: синтаксическая ошибка: отсутствие ";" перед ")"
    error C2143: синтаксическая ошибка: отсутствие ";" перед ")"
     
  8. hosm

    hosm * so what *

    Репутация:
    0
    Регистрация:
    18 май 2009
    Сообщения:
    2.445
    Симпатии:
    8
    т.е. x <= b без пробела надо
     
  9. kerragin

    kerragin Гость

    Репутация:
    0
    ок,а что тогда эти?

    error C2143: синтаксическая ошибка: отсутствие ";" перед ")"
    error C2143: синтаксическая ошибка: отсутствие ";" перед ")"
     
  10. ierofant

    ierofant Гость

    Репутация:
    0
    Да
    <=
    , иначе компилятор не поймёт, что за оператор. Сам не знаю, откуда пробел закрался, наверху сейчас исправлю.

    Добавлено:
    Это вероятно следствия той ошибки. Ты уже попробовал по новой запустить?
     
  11. kerragin

    kerragin Гость

    Репутация:
    0
    делал по новой,кстати,самое главное чтобы результат был в виде таблицы,он будет выдавать так?
     
  12. ierofant

    ierofant Гость

    Репутация:
    0
    На выходе две колонки через табуляцию. У меня всё компилится
     
  13. kerragin

    kerragin Гость

    Репутация:
    0
    хорошо,сейчас проверю

    Добавлено: спасибо,получилось.

    ierofant,сможешь еще подсказать решение этой задачи?

    Найти наименьший номер члена последовательности, для которого выполняется условие |an-an-1|< ε. Вывести на экран этот номер и все элементы ai , где i=1,2,3…,n.

    an=1/2*tg an-1,a=0,5

    я(и не только) ее даже не представляю/т как делать
     
  14. ierofant

    ierofant Гость

    Репутация:
    0
    А что такое ε? Мы это число сами вводим?
     
  15. kerragin

    kerragin Гость

    Репутация:
    0
    вводим вроде an=1/2*tg an-1,a=0,5

    ε-это эпсилон
     
  16. ierofant

    ierofant Гость

    Репутация:
    0
    Да ну?! Генеально B) Откуда мы берём его значение? Сами задаём?
     
  17. kerragin

    kerragin Гость

    Репутация:
    0
    вроде да,задаем сами)

    еще,извиняюсь,можешь проверитьэт код?правилен ли он для данной задачи,а то у меня возникают сомнения...

    Дано натуральное число п. Вычислить

    P=(1-1/2)(1-1/4)(1-1/6)...(1-1/2n)
    Код:

    #include <iostream>
    #include <iomanip>

    using namespace std;
    int main()
    {
    int n;
    double p = 1.0;
    cout << "Введите чилсо n: ";
    cin >> n;

    for (int i = 1; i <= n; i++ )
    { p *= (1 - (1.0 / (2.0 * i)));
    }
    cout << fixed << setprecision(2);
    cout << "P = "<<p<< endl;
    getchar();
    return 0;
    }
     
  18. kerragin

    kerragin Гость

    Репутация:
    0
    void search(double eps) {
    int i = 0;
    double last = 0.5, next = 0.5;

    while (fabs(next - last) < eps) {
    cout << "a: " << last << " i: " << i << endl;

    last = next;
    next = 1 / (2 * tan(last));
    }
    }

    похоже нашел приимерное решение
     
  19. ierofant

    ierofant Гость

    Репутация:
    0
    Насчёт, того кода. Само решение-то вроде правильное.

    А твоя задача:
    Код (C++):
    #include <iostream>
    #include <cmath>

    int main ()
    {
    double epsilon;
    std::cout << "Введите epsilon: " , std::cin >> epsilon;

    int i;
    double a0 = 0.5, a1 = std::tan (a1) / 2;
    for (i = 1; std::abs (a1 - a0) > epsilon; i++)
    {
    std::cout << "a" << i << " = " << a1 << std::endl;
    a0 = a1;
    a1 = std::tan (a1) / 2;
    }

    std::cout << "Номер наименьшего члена последовательности, при котором выполняется условие: " << i << std::end;

    return 0;
    }
    Кое-что подправил в первоначальном варианте, не пропусти изменения!
     
  20. kerragin

    kerragin Гость

    Репутация:
    0
    Ок,попробовал еще сам свой сделать)

    #include <iostream>
    #include <cmath>
    using namespace std;
    void search(double eps);

    int main()

    {
    int i = 0;
    double last = 0.5, next = 0.5;

    while (fabs(next - last) < eps)
    {
    cout << "a: " << last << " i: " << i << endl;

    last = next;
    next = 1 / (2 * tan(last));
    }

    return 0;
    }
     
Загрузка...

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