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

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

  1. kerragin

    kerragin Гость

    Помогите решить данные задачи!

    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

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

    kerragin Гость

    Насчет 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 Гость

    Задача 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 Гость

    не работает почему то =/
     
  6. ierofant

    ierofant Гость

    Какую ошибку выдаёт?
     
  7. kerragin

    kerragin Гость

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

    hosm * so what *

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

    kerragin Гость

    ок,а что тогда эти?

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

    ierofant Гость

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

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

    kerragin Гость

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

    ierofant Гость

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

    kerragin Гость

    хорошо,сейчас проверю

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

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

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

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

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

    ierofant Гость

    А что такое ε? Мы это число сами вводим?
     
  15. kerragin

    kerragin Гость

    вводим вроде an=1/2*tg an-1,a=0,5

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

    ierofant Гость

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

    kerragin Гость

    вроде да,задаем сами)

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

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

    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 Гость

    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 Гость

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

    А твоя задача:
    Код (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 Гость

    Ок,попробовал еще сам свой сделать)

    #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;
    }
     
Загрузка...

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