Помогите решить

Задача

#include <iostream> 
#include <math.h>
using namespace std;

int main() 
{ 
    setlocale(0, "");
    double p,s;
    int i,n;
    cout<< "Введите n: ";
    cin>> n;
    double eps = 1.0e-4; 
    s = 0; 
    p = 0;
    for (i=1; fabs(p) > eps && i==n ; i++)
    {
        p = (1/pow(2,p))-p;
        s = s + p;

    }

    cout << "Сумма ряда: " << s << endl;
    system("Pause");
    return 0;
}

Что-то тут не срастается. Смотрим задание:
задание
При увеличении n от 1 до бесконечности, первое слагаемое будет стремиться к 0, а второе — к минус бесконечности. Ряд расходится, т.е. в данном случае сумма ряда будет стремиться к минус бесконечности. Поэтому ни о какой «сумме ряда с точностью 10е-4» говорить не приходится. Это во-первых.

Во-вторых. Если посмотреть на программу, в предположении, что ряд сходится, то надо внести несколько изменений:

#include <iostream> 
#include <math.h>
using namespace std;

int main() 
{ 
    setlocale(0, "");
    double p,s;
    double eps = 1.0e-4; 
    s = 0.0; 
    p = eps + 1.0;     // начальное значение должно быть больше eps!
    for (int i =1 ; fabs(p) > eps; i++)  // продолжать цикл, пока очередной
                                         // член ряда по абсолютной величине
                                         // превосходит точность вычисления
    {
        p = (1/pow(2, i)) - i;  // вычисление очередного члена ряда
        s = s + p;              // вычисление суммы

    }

    cout << "Сумма ряда: " << s << endl;
    system("Pause");
    return 0;
}

помогите решить пожалуйста задачу
-Считать из файла целочисленный массив и вывести его на экран, выделяя те его элементы, которые равны максимальному.

Сергейй, сначала прочитай Массивы в C++ на практике. Дальше, как из Lego собираешь программу.

(1) Читаем числа из файла и заносим в массив.

(2) Находим значение максимального элемента.

(3) Выводим массив на экран, сравнивая каждый элемент с максимальным значением. Если они равны, то выводим на экран для этого элемента какую-то пометку.

Как ни странно, самый нехороший пункт — первый. Поскольку из твоей формулировки задачи непонятно известно ли количество элементов в массиве.

Если оно изначально известно и постоянно, то решение элементарно: в программе определяем автоматический массив нужного размера и читаем в цикле for.

Если количество чисел каким-то образом вводится, то надо использовать динамический массив. (Не забыть удалить в конце программы!)

Если количество чисел неизвестно, но известно, что оно, допустим, не больше 100, тогда надо определять массив размером 100 (автоматический или динамический, в зависимости от количества элементов), читать числа циклом while с условием, что не достигнут конец файла, и подсчитывать количество считанных чисел.

Если про количество чисел совсем ничего не известно, то вместо массива лучше использовать vector.

получаеться мне про него не чего не извесно...кроме того,что он целочисленный(( а вы бы не могли пример привести такой программы...пожалуйста

Ниже пример работы с вектором и чтения данных из файла с использованием STL. Как видишь, к элементам вектора можно обращаться также, как к элементам обычного массива. Так что с пунктами (2) и (3) сам разберёшься.

#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

typedef vector<int> intvector;

char filename[] = "data.txt";

int main() {

    intvector vec;

    ifstream is(filename);
    if (!is) {
        cout << "File \"" << filename << "\" open error." << endl;
        return 1;
    }

    // чтение чисел из файла
    int elem;
    while (is >> elem) {
        vec.push_back(elem);
    }
    is.close();
    cout << "Read " << vec.size() << " elements" << endl;

    // вывод чисел из вектора на экран
    for (size_t i = 0; i < vec.size(); i++) {
        cout << vec[i] << ' ';
    }
    cout << endl;

    return 0;
}

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.