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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
gudovanets
1 / 1 / 0
Регистрация: 12.02.2015
Сообщений: 51
#1

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

20.06.2015, 18:01. Просмотров 304. Ответов 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++
Пожалуйста, помогите с задачкой. Проблема в составлении цикла do while (добавив к каждому числу, кроме последнего, значение следующего) ...

Добавить к каждому введённому числу типа double единицу измерения - C++
Здравствуйте. Уже долго бьюсь над эти заданием и никак не могу понять как его делать. вот условие из книги: Добавьте к каждому...

Добавить к каждому числу полусумму всех отрицательных чисел последовательности - C++
совсем не понимаю с++, а задача такая: для последовательности из 50 случайных чисел (deque) добавить к каждому числу полусумму всех...

Добавить к каждому числу корень квадратный из абсолютного значения произведения - C++
Есть задание на шаблоны функции я слаб в си++, прощу помощи, по заданию, оставляйте комментарии по возможности что делаете в коде ...

Для последовательности из 50 случайных чисел (vector), добавить к каждому числу первое нечетное, по абсолютной величине, число. - C++
Для последовательности из 50 случайных чисел (vector), добавить к каждому числу первое нечетное, по абсолютной величине, число. Помогите...

В массиве Y1, ... , Yn найти два элемента, среднее арифметическое которых равно заданному числу X - C++
Даны натуральное число n, действительное число x и массив действительных чисел y1, ... , yn. В массиве y1, ... , yn найти два элемента,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
mr_mczakenberg
65 / 65 / 31
Регистрация: 10.04.2015
Сообщений: 281
20.06.2015, 19:01 #2
С++ Файл выходной
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2015, 19:01
Привет! Вот еще темы с ответами:

В массиве Y1, ... , Yn найти два элемента, среднее арифметическое которых равно заданному числу X - C++
Даны натуральное число n, действительное число x и массив действительных чисел y1, ... , yn. В массиве y1, ... , yn найти два элемента,...

Найти два последовательных члена последовательности, среднее арифметическое которых ближе всего к определенному числу - C++
Здравствуйте, помогите сделать задание, ни как не могу в него вникнуть: Компоненты файла f – целые (отличные от нуля) числа: х, y1, ......

Поиск максимума и минимума - C++
Уважаемые форумчане помогите с задачей немогу понять как её зделать. Задание:N точек на площаде заданы своими координатами (xi,yi)....

Вычисление минимума/максимума - C++
Даны действительные числа Х,У,Z.Вычислить 1)max (x+y+z;xyz) 2)min (x+y+z/2;чня)+1


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru