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

Добавить к каждому числу файла среднее арифметическое максимума и минимума - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти первое отрицательное число последовательности http://www.cyberforum.ru/cpp-beginners/thread1483114.html
Найти первое отрицательное число последовательности u=cos(ctg(n)), где n=1,2,3….
C++ Вывод числа прописью Напишите программу, которая выводит на словесную форму числа. Например, 143= «Сто сорок три», 10= «Десять». http://www.cyberforum.ru/cpp-beginners/thread1483102.html
Метод стеганографии LSB C++
Здравствуйте. Эту курсовую я должен был сдать месяц назад. Но я не могу сделать её. Я первокурсник. И ещё чайник в программировании. Хотелось бы не вылететь с универа. А так как у меня долгов целая туча. (из 6 зачётов ток 2 сдал и не одного экзамена из 3), я не то что бы не успеваю но без курсовой работы, меня выпрут в армию. И не просто в армию, а на войну так как я прописан на Украине и учусь...
Ошибка при добавлении элемента в бинарное дерево поиска C++
Программа формирует бинарное дерево из отсортированного массива и добавляет в него элементы. struct Tree { Tree *left_son, *right_son; int head, key/*, depth*/; }; Tree *tree(int *a, int left, int right) {
C++ Исправить ошибки в структуре http://www.cyberforum.ru/cpp-beginners/thread1482952.html
помогите, пожалуйста, выдает ошибки и все.. #include<iostream> #include<algorithm> #include<string> #include<deque> #include<queue> #include<stack> #include<fstream>
C++ Наследование: почему вызывается метод базового класса, а не производного? Всем привет, такой вопрос, почему вызывается в данном коде метод базового класса, а не производного (без указания ключевого слова virtual для func) class A { public: A() { cout << "create A" << endl; }; ~A() { cout << "delete A" << endl; }; void func(){ cout << "func A" << endl; }; private: подробнее

Показать сообщение отдельно
gudovanets
1 / 1 / 0
Регистрация: 12.02.2015
Сообщений: 45
20.06.2015, 18:01     Добавить к каждому числу файла среднее арифметическое максимума и минимума
Записать выходной файл, добавить к каждому числу среднее арифметическое наименьшего по абсолютной величине и наибольшего из чисел файла. Помогите, изменить код

есть вариант сделанный для такого:
Добавить к каждому числу первое нечетное по абсолютной
величине число.
Использовать потоковые итераторы. Написать функцию outfile(), записывающую
элементы контейнера в текстовый файл output.txt.
Также использовать для заполнения контейнера алгоритм generate(), а для обработки –
алгоритм for_each() и transform().

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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<fstream>
#include<string>
#include<sstream>
#include<ctime>
 
#include<vector>
#include<deque>
#include<list>
 
#include<algorithm>
#include<cstdlib>
#include <iterator>
 
using namespace std;
 
int firstnechot;
 
FILE *File(int N, int count)
{
    srand(time(NULL));
    FILE *file;
    file = fopen("input.txt", "w+");
    fstream in(file);
    for (int i = 1; i <= count; i++)
    {
        in << rand() % (2 * N + 1) - N << endl;
    }
    cout << "Файл создан!" << endl;
    return file;
}
 
vector<int> inputfile_to_vector(FILE *File)
{
    ifstream in(File);
    in.seekg(0);
 
    int x;
 
    vector<int> vector;
 
    in >> x;
 
    while (!in.eof()){
        vector.push_back(x);
        in >> x;
    }
 
    return vector;
}
deque<int> inputfile_to_deque(FILE *File)
{
    ifstream in(File);
    in.seekg(0);
 
    int x;
 
    deque<int> deque;
 
    in >> x;
 
    while (!in.eof()){
        deque.push_back(x);
        in >> x;
    }
 
    return deque;
}
list<int> inputfile_to_list(FILE *File)
{
    ifstream in(File);
    in.seekg(0);
 
    int x;
 
    list<int> list;
 
    in >> x;
 
    while (!in.eof()){
        list.push_back(x);
        in >> x;
    }
 
    return list;
}
 
template <class T>
T modify(T x)
{
    T::iterator pos;
    int firstnechot = 0;
    for (pos = x.begin(); pos != x.end(); ++pos)if (abs(*pos) % 2 == 1){ firstnechot = abs(*pos); break; }
    for (pos = x.begin(); pos != x.end(); ++pos)*pos = *pos + firstnechot;
    return x;
}
 
template <class T>
inline void Add(T& conteiner)
{
    typename T::const_iterator pos;
    int S = 0, SA = 0, N = 0;
    for (pos = conteiner.begin(); pos != conteiner.end(); ++pos) {
        S += *pos;
        SA += abs(*pos);
        N++;
    }
    conteiner.push_back(S);
    conteiner.push_back(SA / N);
    cout << endl << "В контейнер добавлена сумма и среднее арифметическое!" << endl;
}
 
template <class T>
inline void outfile(const T& conteiner)
{
    cout << endl << "Введите имя файла для вывода: ";
    string s;
    cin >> s;
    ofstream out(s);
    typename T::const_iterator pos;
 
    for (pos = conteiner.begin(); pos != conteiner.end(); ++pos) {
        out << *pos << endl;
    }
    cout << endl << "Файл выведен!" << endl;
}
 
int Random()
{
    return  rand() % (2 * 50 + 1) - 50;
}
int Function_Nechot(int &x)
{
    return x = x + firstnechot;
}
 
 
void main()
{
    setlocale(0, "");
 
 
    FILE *F = File(50, 10);
 
 
    cout << endl << "Создание контейнеров..." << endl;
    vector<int> V = inputfile_to_vector(F);
    deque<int> D = inputfile_to_deque(F);
    list<int> L = inputfile_to_list(F);
 
 
    cout << endl << "Изменение контейнера" << endl;
    D = modify(D);
    Add(D);
    outfile(D);
 
 
    cout << endl << "Создание и изменение контейнера с пощью встроенных методов" << endl;
 
 
    vector<int> V_each;
    generate_n(back_inserter(V_each), 10, Random);
 
    vector<int>::iterator pos1;
    for (pos1 = V_each.begin(); pos1 != V_each.end(); ++pos1)if (abs(*pos1) % 2 == 1){ firstnechot = abs(*pos1); break; }
    cout << endl << "Изменение контейнера с помощью метода for_each" << endl;
    for_each(V_each.begin(), V_each.end(), Function_Nechot);
    outfile(V_each);
 
 
    vector<int> V_transform;
    generate_n(back_inserter(V_transform), 10, Random);
 
    vector<int>::iterator pos2;
    for (pos2 = V_transform.begin(); pos2 != V_transform.end(); ++pos1)if (abs(*pos2) % 2 == 1){ firstnechot = abs(*pos2); break; }
    cout << endl << "Изменение контейнера с помощью метода transform" << endl;
    transform(V_transform.begin(), V_transform.end(), V_transform.begin(), Function_Nechot);
    outfile(V_transform);
 
    cout << endl << endl;
    system("pause");
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru