Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 29.05.2017
Сообщений: 12
1

После каждого положительного числа файла F1 вставить 0, а каждое отрицательное заменить на его модуль

30.05.2017, 16:19. Показов 1887. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, помогите пожалуйста!!!
Заполнить случайными целыми числами файл F1(предусмотреть и отрицательные элементы). Сформировать новый файл F2, выполнив над элементами файла F1 следующие действия: после каждого положительного числа файла F1 вставить 0, а каждое отрицательное заменить на его модуль.
Буду очень благодарна за помощь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.05.2017, 16:19
Ответы с готовыми решениями:

Вставить 1 после каждого четного отрицательного числа и 0 после каждого нечетного положительного исходного массива
нужно Вставить 1 после каждого четного отрицательного числа и 0 после каждого нечетного...

После каждого положительного элемента исходного массива, вставить его копию
помогите решить, очень необходимо. 1) Дано:массив целых чисел. Требуется преобразовать его...

Вставить после каждого положительного числа в одномерном массиве число 0
Вставить после каждого положительного числа в одномерном массиве число 0

После каждого отрицательного краткого трем элемента вставить его модуль
Хочу исправить ошибку в массиве где В вставить после каждого отрицательного краткого трем элемента...

6
MrGluck
30.05.2017, 17:06
  #2
 Комментарий модератора 
cherny922, запрещено дублировать темы
0
1505 / 968 / 812
Регистрация: 30.04.2016
Сообщений: 3,334
30.05.2017, 17:18 3
Лучший ответ Сообщение было отмечено MrGluck как решение

Решение

cherny922, здравствуйте! Вот программа. Надеюсь, все работает.

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
#include <iostream>
#include <locale>
#include <cstdlib>
#include <vector>
#include <algorithm>
#include <fstream>
#include <windows.h> //Шрифт консоли - Lucida Console
 
using namespace std;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    srand((unsigned)time(NULL));
    ofstream F1("F1.txt");
    ofstream F2("F2.txt");
    const int N = 10; //Количество случайных чисел
    vector<int>A;
    //Запись в файл F1.txt
    for (int i = 0; i < N; i++)
    {
        A.push_back(-10 + rand() % 31);
        F1 << A[i] << " ";
    }
    //Заданные преобразования
    for (int i = 0; i < A.size(); i++)
    {
        if (A[i] > 0)
            A.insert(A.begin() + (++i), 0);
        else
            A[i] = abs(A[i]);
    }
    //Запись в файл F2.txt
    for (int i = 0; i < A.size(); i++)
    {
        F2 << A[i] << " ";
    }
    F1.close();
    F2.close();
    system("pause");
    return 0;
}
1
0 / 0 / 0
Регистрация: 29.05.2017
Сообщений: 12
30.05.2017, 17:27  [ТС] 4
да всё работает, спасибо огромное))))
0
243 / 268 / 219
Регистрация: 14.11.2016
Сообщений: 1,043
30.05.2017, 19:03 5
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
/*
                ВНИМАНИЕ!
    Файл создаются в папке с проектом.
 
    Примечание:
    - Допускается ввод имени файла с форматом .txt (НИ КАКОЙ ДРУГОЙ)
    - Допускается ввод имени файла без формата (ПРОСТО ИМЯ)
    - После первого ввода предложит посмотреть на файл (f1) - после просмотра обязательно закрыть файл (F1)!
*/
#include <iostream> // cin  cout
#include <fstream>  // ifstream ofstream
#include <ctime>    // time()
#include <cstdlib>  // system() srand() rand()
#include <string>   // string
#include <cmath>    // abs()
#include <vector>   // vector<>
//**** ДЕФАЙНЫ ****
#define     MAX_RAND_VALUE      100 // Максимальное рандомное значение для записи
#define     NUM_RAND_VALUES     100 // Кол-во рандомных чисел
//**** ПОТОТИПЫ ***
void inputFileValues(std::string Filename);                             // Запись рандомных чисел в файл F1
void outputFileValues(std::string inFilename, std::string outFilename); // Взятие чисел из файла F1 и запись в F2 c требуемыми условиями
void check_format(std::string &Filename);                               // Имя файла с форматом '.txt' ?
//*****************
int main(void)
{
    std::string file_f1, file_f2;
    std::cout << "[F1] Enter the file name to create: "; std::cin >> file_f1;
    inputFileValues(file_f1);
    std::cout << "[Message] You can to check file and continue...\n" << std::endl;
    system("pause");
    std::cout << "\n\n[F2] Enter the file name: "; std::cin >> file_f2;
    outputFileValues(file_f1, file_f2);
    std::cout << "[Message] Success! Check out the file '" << file_f2 << "'...\n" << std::endl;
    system("pause");
    return 0;
}
 
void check_format(std::string &Filename)
{
    if (Filename.size() < 5 || (Filename.substr(Filename.size() - 4, Filename.size()) != ".txt"))
        Filename += ".txt";
}
 
void inputFileValues(std::string Filename)
{   
    //******* F1 *********
    check_format(Filename);
    std::ofstream outFile(Filename.data(), std::ios_base::out | std::ios_base::trunc);
    srand(time(0));
    for (int i(0); i < NUM_RAND_VALUES; i++) {
        outFile << (MAX_RAND_VALUE * (-1)) + rand() % (MAX_RAND_VALUE*2 + 1) << " "; // Собственно сама генерация рандомных чисел и запись в файл
    }
    outFile.close();
}
 
void outputFileValues(std::string inFilename, std::string outFilename) {
    check_format(inFilename);
    check_format(outFilename);
    //******* F1 *********
    std::ifstream inFile(inFilename.data());
    if (!inFile.is_open()) {
        std::cout << "[Error] File '" << inFilename << "' not found!\n" << std::endl;
        exit(1);
    }
    std::vector<int> temp;
    while (!inFile.eof()) {
        int num;
        inFile >> num;
        temp.push_back(abs(num));
        if(num > EOF)
            temp.push_back((int)NULL);
    }
    inFile.close();
    // ******* F2 *********
    std::ofstream outFile(outFilename.data(), std::ios_base::out | std::ios_base::trunc);
    for (auto it = temp.begin(); it < temp.end(); it++)
        outFile << *it << " ";
    outFile.close();
}
0
0 / 0 / 0
Регистрация: 29.05.2017
Сообщений: 12
01.06.2017, 16:24  [ТС] 6
а можно как нибудь программу без vector и string написать??
0
1718 / 567 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
01.06.2017, 20:57 7
Цитата Сообщение от cherny922 Посмотреть сообщение
а можно как нибудь программу без vector и string написать??
Я вообще не понимаю зачем они тут нужны.

Добавлено через 4 часа 27 минут
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
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <random>
 
int main()
{
    int a, n;
    std::mt19937 gen{ std::random_device()() };
    std::uniform_int_distribution <> dist(-50, 50);
    std::cout << " Input n = "; std::cin >> n;
 
    std::ofstream inp("F1.txt");
    for (int i = 0; i < n; i++) {
        inp << dist(gen) << " ";
    }
    inp.close();
 
    std::ofstream out("F2.txt");
    std::fstream inp1("F1.txt", std::ios::in);
    if (!inp1)
        return 1;
 
    for (int i = 0; i < n; i++) {
        inp1 >> a;
        if (a <= 0)
            out << abs(a) << " ";
        if (a > 0)
            out << a << " " << 0 << " ";
    }
    inp1.close();
    out.close();
    system ("pause");
}
0
01.06.2017, 20:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.06.2017, 20:57
Помогаю со студенческими работами здесь

После каждого отрицательного числа вставить модуль этого числа
После каждого отрицательного числа вставить модуль этого числа.

Добавить после каждого положительного числа его квадрат, нули удалить
Здравствуйте)помогите пож с 2 задачками: -компоненты тип файла целые числа.Добавить после каждого...

В одномерном массиве нужно после каждого отрицательного элемента вставить его модуль
Всем доброго времени суток! Необходима Ваша помощь. Я недавно начала изучать С# и уже возникли...

Вставить после каждого непростого числа его наибольший делитель
Дан массив из N целых чисел, где N&lt;=16, каждое число в диапазоне от –32000 до 32000. Вставить...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru