Форум программистов, компьютерный форум CyberForum.ru

класс-шаблон для хранения одномерного массива и количества элементов в массиве. Описать методы для инициализации и вывода - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Поменять местами строки и столбцы матрицы http://www.cyberforum.ru/cpp-beginners/thread256759.html
собственно вопрос в названии темы..вот код #include <iostream> #include <stdlib.h> #include <time.h> #include <windows.h>
C++ Проверить является ли введенное число суммой двух простых чисел Проверить является ли введенное число суммой двух простых чисел http://www.cyberforum.ru/cpp-beginners/thread256755.html
C++ преобразование типов
помогите у меня программа выдает ошибки преобразования типов подскажите как должно быть чтоб все работало программа делает перестановки чисел массива <8 #include "stdafx.h" #include <iostream> #include <math.h> //математические функции #include "conio.h" using namespace std; int i=0,t=0,z=0,c,q=0,x=0,y=0,l=0; char ch; //переменная по воодимый символ long double...
C++ Нужно срочно написать программы в С++
1. Подсчитать и вывести на экран количество элементов массива, равных заданному значению. Заданное значение вводится с клавиатуры. 2. Составить программу, которая вводит матрицу размерностью M на N, анализирует ее и выдает на экран номера столбцов, содержащих равное количество положительных и отрицательных элементов.
C++ Численные методы http://www.cyberforum.ru/cpp-beginners/thread256707.html
Здравствуйте. Помогите пожалуйста разобраться в численных методах интегрирования. Нужно осовоить три способа(Прямоугольников, трапеций и Симпсона). Один как мне кажется я уже освоил(Прямоугольков) #include<iostream.h> #include<math.h> #include<windows.h> char Newt;
C++/CLI WinForms Ошибка при работе с .ini файлом Прочитал, что хоть использование .ini файлов и устарело, но всё же кое-где практичнее системного реестра. В отличии от ini файлов с реестром я работать научился. В Visual C++ нет встроенного класса работы с ini, за то есть WinApi, с которым я знаком совсем немного. В моей любимой книжке вообще по этому поводу ничего не написано, а в интернете, такое ощущение, что программистов на Visual C++ (не в... подробнее

Показать сообщение отдельно
Villya
0 / 0 / 0
Регистрация: 12.06.2010
Сообщений: 32
13.03.2011, 22:00     класс-шаблон для хранения одномерного массива и количества элементов в массиве. Описать методы для инициализации и вывода
Создать класс-шаблон, содержащий поля для хранения одномерного массива и количества элементов в массиве. Описать методы для инициализации и вывода элементов массива на экран, а так же для подсчета суммы элементов массива, расположенных между первым и последним отрицательными элементами. Продемонстрировать работу методов класса

Вроде бы успешно откомпелировал, но не работает, запращивает:
"Невозможно найти или открыть файл PDB"
HELP

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include "stdafx.h"
#include <numeric>
#include <functional>
#include <algorithm>
#include <limits>
/*
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
    сумму элементов массива с нечетными номерами;
*/
float accumulate_odd(float* arr, size_t N)
{
    struct Op : public std::binary_function<float, float, float>
    {
        Op() : pos_(0) {}
        result_type operator()(const first_argument_type& res, const second_argument_type& val)
        { return res + ((pos_++ & 1) ? val : 0); }
        int pos_;
    };
    return std::accumulate(arr, arr + N, float(0), Op());
}
/*
4)    сумму элементов массива, расположенных между первым и последним отрицательными элементами.    
Сжать массив, удалив из него все элементы, модуль которых не превышает 1. Ос¬вободившиеся в конце массива элементы заполнить нулями.
*/
float sum_and_shrink(float* arr, size_t N)
{
    typedef float* iterator;
    // поиск первого и последнего отрицательного элемента
    std::binder2nd<std::less<float> > less0 = std::bind2nd(std::less<float>(), float(0));
    iterator first = std::find_if(arr, arr+N, less0);
    if (first == arr+N) // нет отрицательных элементов
        return std::numeric_limits<float>::quiet_NaN();
    iterator tmp = first+1, last = arr+N;
    while ((tmp = std::find_if(tmp, arr+N, less0)) != arr+N)
        last = tmp++;
    if (last == arr+N) // только один отрицательный элеммент
        return std::numeric_limits<float>::quiet_NaN();
    
    // вычисление суммы
    float sum = std::accumulate(first+1, last, float(0));
    struct less_fabs : public std::unary_function<float, bool>
    {
        less_fabs(float limit) : limit_(limit) {}
        result_type operator()(const argument_type& val) const
        { return std::fabs(val) <= limit_; }
        float limit_;
    };
    // Сжать массив
    last = std::remove_if(arr, arr+N, less_fabs(1));
    std::fill(last, arr+N, float(0));
    
    return (sum);
}
int main()
{
    float arr[] = {1,3,-6,3,4,7,5,-3,7,-2,1,5};
    const size_t N = sizeof(arr) / sizeof(arr[0]);
    accumulate_odd(arr, N);
    sum_and_shrink(arr, N);
    system("PAUSE");
    return (0);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru