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

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

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

есть вариант сделанный для такого:
Добавить к каждому числу первое нечетное по абсолютной
величине число.
Использовать потоковые итераторы. Написать функцию 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");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2015, 18:01     Добавить к каждому числу файла среднее арифметическое максимума и минимума
Посмотрите здесь:

Вычисление минимума/максимума C++
Добавить к каждому числу корень квадратный из абсолютного значения произведения C++
C++ Для последовательности из 50 случайных чисел (vector), добавить к каждому числу первое нечетное, по абсолютной величине, число.
Добавить к каждому числу полусумму всех отрицательных чисел последовательности C++
C++ Найти два последовательных члена последовательности, среднее арифметическое которых ближе всего к определенному числу
C++ В массиве Y1, ... , Yn найти два элемента, среднее арифметическое которых равно заданному числу X
C++ В массиве Y1, ... , Yn найти два элемента, среднее арифметическое которых равно заданному числу X
Добавить к каждому числу, кроме последнего, значение следующего C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mr_mczakenberg
65 / 65 / 31
Регистрация: 10.04.2015
Сообщений: 281
20.06.2015, 19:01     Добавить к каждому числу файла среднее арифметическое максимума и минимума #2
С++ Файл выходной
Yandex
Объявления
20.06.2015, 19:01     Добавить к каждому числу файла среднее арифметическое максимума и минимума
Ответ Создать тему
Опции темы

Текущее время: 09:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru