Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
skeivoker
0 / 0 / 0
Регистрация: 27.05.2015
Сообщений: 10
1

Определение четности и замена чисел

27.05.2015, 18:17. Просмотров 395. Ответов 7
Метки нет (Все метки)

Входной файл (input.txt) содержит последовательность целых чисел в диапазоне от -2^31 до 2^31-1 включительно. Замените все чѐтные числа на 1, а нечѐтные на 0 и выведите соответствующую последовательность в выходной файл (output.txt).
***Решить задачу с помощью алгоритмов STL и функциональных объектов. При решении задачи запрещается использовать циклы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2015, 18:17
Ответы с готовыми решениями:

Определение четности числа
Написать программу, которая вводит с клавиатуры число x и выводит сообщение,...

Определение четности числа
#include "iostream" using namespace std; int main () { setlocale(0,"");...

Работа с бинарными файлами. Определение четности
Создать бинарный файл f и записать в него целые числа. Организовать просмотр...

Функции задача на проверку четности введенных последовательно чисел
Здравствуйте! Есть такая задача: Напишите программу, которая вводит...

Вывести произведение четных или нечетных чисел диапазона от 1 до N, в зависимости от четности N
Дане ціле число N (> 0). Якщо N - непарне, то вивести добуток 1×3×...×N; якщо...

7
mymedia
193 / 193 / 120
Регистрация: 27.05.2011
Сообщений: 544
27.05.2015, 18:25 2
C++
1
2
3
4
ifstream in("input.txt");
ofstream out("output.txt");
transform(istream_iterator<int>(in), istream_iterator<int>(), ostream_iterator<int>(out, " "),
        not1(bind2nd(modulus<int>(), 2)));
0
skeivoker
0 / 0 / 0
Регистрация: 27.05.2015
Сообщений: 10
27.05.2015, 19:02  [ТС] 3
А попроще?
C++
1
2
3
FILE* input=fopen("input.txt", "r");
FILE* output=fopen("output.txt", "w");
transform(...................)
а как дальше?
0
mymedia
193 / 193 / 120
Регистрация: 27.05.2011
Сообщений: 544
27.05.2015, 19:43 4
Не используёте ввод-вывод в стиле Си.
Для того, чтобы работать с файлами, в С++ предусмотрены файловые потоки. Обявите переменную типа fstream, в качестве параметра, передайте конструктору имя файла. И далее можно будет работать с только что открытым файлом как с обычным потоком вроде cout, cin. Закрывать явано такой файл необязательно — это за вас сделает деструктор потока.
Функция transform принимает в качестве аргументов какие-нибудь итераторы. В том коде используются итераторы потоков. istream_iterator устроен так, что если его разыменовать, то получим значение, введённое из потока с помощью опереатора правого сдвига >>. ostream_iterator устроен аналогично, но при попытке что-нибудь присвоить этому итератору, произойдёт запись в поток, с которым он связан.
Функтор `not1(bind2nd(modulus<int>(), 2))` делает то же, что и лямбда-функция `[](int val){ return !(val % 2); }`. Однако по заданию требуется использование функциональных объектов.
0
skeivoker
0 / 0 / 0
Регистрация: 27.05.2015
Сообщений: 10
27.05.2015, 19:45  [ТС] 5
то есть подругому никак не написать?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
main.cpp: In function ‘int main():
main.cpp:10:16: error: variable ‘std::ifstream in’ has initializer but incomplete type
     ifstream in("input.txt");
                ^
main.cpp:11:17: error: variable ‘std::ofstream out’ has initializer but incomplete type
     ofstream out("output.txt");
                 ^
main.cpp:12:15: error: ‘istream_iterator’ was not declared in this scope
     transform(istream_iterator<int>(in), istream_iterator<int>(), ostream_iterator<int>(out, " "), not1(bind2nd(modulus<int>(), 2)));
               ^
main.cpp:12:32: error: expected primary-expression before ‘int’
     transform(istream_iterator<int>(in), istream_iterator<int>(), ostream_iterator<int>(out, " "), not1(bind2nd(modulus<int>(), 2)));
                                ^
main.cpp:12:59: error: expected primary-expression before ‘int’
     transform(istream_iterator<int>(in), istream_iterator<int>(), ostream_iterator<int>(out, " "), not1(bind2nd(modulus<int>(), 2)));
                                                           ^
main.cpp:12:67: error: ‘ostream_iterator’ was not declared in this scope
     transform(istream_iterator<int>(in), istream_iterator<int>(), ostream_iterator<int>(out, " "), not1(bind2nd(modulus<int>(), 2)));
                                                                   ^
main.cpp:12:84: error: expected primary-expression before ‘int’
     transform(istream_iterator<int>(in), istream_iterator<int>(), ostream_iterator<int>(out, " "), not1(bind2nd(modulus<int>(), 2)));
0
mymedia
193 / 193 / 120
Регистрация: 27.05.2011
Сообщений: 544
27.05.2015, 19:47 6
Но у вас же задание такое…
0
skeivoker
0 / 0 / 0
Регистрация: 27.05.2015
Сообщений: 10
28.05.2015, 20:30  [ТС] 7
Преподаватель сказал, что это программа не подходил. То есть надо
C++
1
2
FILE* input=fopen("input.txt", "r");
FILE* output=fopen("output.txt", "w");
и так далее
0
mymedia
193 / 193 / 120
Регистрация: 27.05.2011
Сообщений: 544
28.05.2015, 23:44 8
Жаль. Мне просто не интересно писать на Си.
Странно, что-то вчера я не заметил, что вы дополнили предыдущее сообщение. Чтобы исправить эти ошибки, нужно подключить заголовки:
C++
1
2
3
4
#include <algorithm>
#include <fstream>
#include <funclional>
#include <iterator>
0
28.05.2015, 23:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2015, 23:44

Вычислить среднее геометрическое, или среднее арифметическое, или произведение в зависимости от четности чисел
Даны три числа x, y, z. Если значения всех чисел являются четными, то...

Определение кол-ва натуральных чисел
Нужно определить кол-во натуральных чисел из интервала от 100 до 500, сумма...

Определение меньшего из двух чисел
Всем hello!!! Помогите разработать программу для определения меньшего из двух...


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

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

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