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

Два файла объединяются по принципу: строчка из одного, строчка из другого(2 задачи) - C++

Восстановить пароль Регистрация
 
Hi3iK
0 / 0 / 0
Регистрация: 14.03.2012
Сообщений: 2
14.03.2012, 21:46     Два файла объединяются по принципу: строчка из одного, строчка из другого(2 задачи) #1
Всем доброго времени суток!
Помогите написать 2 программки.
Теоретически (по моему мнению) они довольно просты, но реализовать их, у меня не получается.
Помогите пожалуйста их написать.

1)Написать программу с использованием функции, вычисляющей наименьшее по модулю из чисел (от 3 до 5 чисел). Значение чисел задавать с использованием генератора случайных чисел (генератор уже есть, а вот модули чисел и их вычисления не могу сделать).

2)Два файла объединяются по принципу: строчка из одного, строчка из другого. Но первой из двух строчек берется та, которая короче. Результат записывается в первый файл (тут я вообще туплю что и как все делать).

Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2012, 21:46     Два файла объединяются по принципу: строчка из одного, строчка из другого(2 задачи)
Посмотрите здесь:

Что ета строчка значит? C++
Что означает следующая строчка? C++
Что означает строчка ??? C++
C++ Что означает строчка ???
Одна строчка кода, Pascal на C++ C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
15.03.2012, 12:12     Два файла объединяются по принципу: строчка из одного, строчка из другого(2 задачи) #2
2.
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
#include <iostream>
#include <fstream>
#include  <string>
//  FSIZE  КОЛИЧЕСТВО СТРОК 
// В  КАЖДОМ  ФАЙЛЕ С КОТОРОГО СЧИТЫВАЕМ 
#define FSIZE 5   // УСТАНОВИТЕ     СКОЛЬКО    НУЖНО  
 
 int main(){
     size_t j = 0;                 
     size_t i = 0;
     std::string *datafile1 = NULL;
     std::string *datafile3 = NULL;
     std::string *datafile2 = NULL;
        datafile1 = new std::string[FSIZE];
        datafile2 = new std::string[FSIZE];
 
     std::cout << "Text from first file :\n" << std::endl;
 
     std::ifstream fileOne;
     fileOne.open("fileOne.txt");
     if(!fileOne) std::cout << "Error in opening file -'fileOne'\n";
     //////////////////////////////////////////////////////////////////
     //  ПЕРВЫЙ ФАЙЛ В МАССИВ 
     //              ВЫВОД НА ЭКРАН 
 
     else{
     while(!fileOne.fail() && i < FSIZE){
      getline(fileOne,datafile1[i]);
      std::cout << datafile1[i] << std::endl;
      i++;}}
     fileOne.close();
     i = 0;
         std::cout << "\nText from second file :\n" << std::endl;
     
     std::ifstream fileTwo("fileTwo.txt");
     if(!fileTwo) {std::cout << "Error in opening file -'fileTwo'\n";}
     //////////////////////////////////////////////////////////////////
     //  ВТОРОЙ ФАЙЛ ВО ВТОРОЙ МАССИВ 
     //              ВЫВОД НА ЭКРАН 
 
     else{
         
     while(!fileTwo.fail() && i < FSIZE){
      getline(fileTwo,datafile2[i]);
      std::cout << datafile2[i] << std::endl;
     i++;}
 
     }
     fileTwo.close();
     /////////////////////////////////////////////////////////////
     //  ДВА МАССИВА В ТРЕТИЙ МАССИВ 
    
      j = 0;
     size_t j2 = 1;
 
        datafile3 = new std::string[FSIZE * 2];
 
     for(i = 0; i < FSIZE ; i++,j += 2,j2 += 2)
 
         if(datafile1[i].size() < datafile2[i].size() ) {
 
              datafile3[j] = datafile1[i]; 
              datafile3[j2] = datafile2[i]; 
                                              }
      else{
             datafile3[j] = datafile2[i]; 
             datafile3[j2] = datafile1[i]; }
 
       /////////////////////////////////////////////////////////////
     //              ВЫВОД НА ЭКРАН ТО ЧТО ЗАПИШЕТСЯ  В ФАЙЛ
 
       std::cout << "\n\nText for rewriting :\n" << std::endl;
 
             for(j = 0; j < FSIZE * 2 ; j++){
                 std::cout << datafile3[j];
                 std::cout << std::endl;    }   
 //////////////////////////////////////////////////////////////////
     // ПЕЗАПИСЬ  
      std::ofstream outfile("fileOne.txt");
     
           for(j = 0; j < FSIZE * 2 ; j++){
                  outfile  << datafile3[j] << std::endl;}           
         
     outfile.close();
 
     delete[]datafile1;
     delete[]datafile2;
     delete[]datafile3;
     std::cout <<std::endl;
 
system("pause");
 
    return 0;
 }
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
15.03.2012, 12:19     Два файла объединяются по принципу: строчка из одного, строчка из другого(2 задачи) #3
Изображение
Миниатюры
Два файла объединяются по принципу: строчка из одного, строчка из другого(2 задачи)  
Hemull
47 / 47 / 1
Регистрация: 12.03.2012
Сообщений: 108
15.03.2012, 12:32     Два файла объединяются по принципу: строчка из одного, строчка из другого(2 задачи) #4
1. как-то так
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
#include <iostream>
#include <math.h>
using namespace std;
 
int minmod(int,int,int);
int main()
{
        int a,b,c,x,y,z,res;
        a=rand()%20+(-20);
        b=rand()%20+(-20);
        c=rand()%20+(-20);
        x=abs(a);
        y=abs(b);
        z=abs(c);
        res=minmod(x,y,z);
 
        cout<<res<<endl;
        system("pause");
}
 
int minmod(int x, int y, int z)
{
        int min=0;
        if (x<y) min=x; else min=y;
        if (z<min) return z; else return min;
}
Добавлено через 1 минуту
если по заданию нужно, что модуль вычислялся непосредственно в функции, перенесите строки 12-14 туда и передавайте не xyz а abc
Yandex
Объявления
15.03.2012, 12:32     Два файла объединяются по принципу: строчка из одного, строчка из другого(2 задачи)
Ответ Создать тему
Опции темы

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