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

Разбиение функций - C++

Восстановить пароль Регистрация
 
kristi1
10 / 10 / 1
Регистрация: 07.03.2010
Сообщений: 465
06.03.2012, 23:16     Разбиение функций #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
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
#include <cstring>
#include <string>
#include <fstream>
#include <iostream>
#include <conio.h>
#include <malloc.h>
 
struct marked
    {
    char string[255];
    char mark;
    };
struct longed
    {
    char string[255];
    int length;
    };
 
using namespace std;
 
void punkt_1(ofstream &fout, ifstream& fin);
void punkt_2(ofstream &fout, ifstream& fin);
void punkt_3(ofstream &fout, ifstream& fin);
void punkt_4(ofstream &fout, ifstream& fin);
 
int main()
    {
//————————————————————————-
    ifstream fin;
    fin.open("in.txt");
    ofstream fout;
    fout.open("out.txt");
//————————————————————————-
    int Menu=0;
    char symbol='a';
//———————————————————————
    cout << "1. Mark->Mark\n";
    cout << "2. Len->Len\n";
    cout << "3. Mark->Len\n";
    cout << "4. Len->Mark\n";
 
//———————————————————————
    cin >> Menu;
    switch (Menu)
        {
//———————————————————————
        case 1:
        punkt_1(fout,fin);
        break;
//———————————————————————
        case 2:
        punkt_2(fout,fin);
        break;
//———————————————————————
        case 3:
        punkt_3(fout,fin);      
        break;
//———————————————————————
        case 4:
        punkt_4(fout,fin);
        break;
        }
//———————————————————————
}
 
 
void punkt_1(ofstream &fout, ifstream& fin)
{
   marked mark={0};
   int check=0;
   char unMark=0, symbol=0;
   fin >> unMark >> mark.mark;
   cout << "Please Enter 1 SYMBOL\n";
   cin >> symbol;
   fout << mark.mark <<endl;
   fin.getline(mark.string,255);
   for (int l=254;l!=0;l--) 
   mark.string[l]=mark.string[l-1];
   mark.string[0]=' ';
   for (int l=0;mark.string[l];l++)
   {
      if (mark.string[l]==mark.mark)
         break;
      if (check==1)
         fout << mark.string[l];
      if ((mark.string[l]==symbol)&&(mark.string[l-1]==' '))
         {
            fout << mark.string[l];
            check=1;
         }
      if (mark.string[l]==' ')
         check=0;
   }
}
 
void punkt_2(ofstream &fout, ifstream& fin)
{
   longed longed;
   int check=0;
   char symbol=0;
   fin >> longed.length;
   fin.getline(longed.string,longed.length+1);
   cout << "Please Enter 1 SYMBOL\n";
   cin >> symbol;
   for (int l=0;longed.string[l];l++)
   {
      if ((longed.string[l]==symbol)&&(longed.string[l-1]==' '))
         check=1;
      if (check==1)
         fout << longed.string[l];
      if ((check==1)&&(longed.string[l]!=' ')&&(longed.string[l+1]==' '))
      {
         fout << " ";
         l++;
         check=0;
      }
   }
}
 
void punkt_3(ofstream &fout, ifstream& fin)
   {
       longed longed;
   marked mark={0};
   int check=0;
   char unMark=0, symbol=0;
   fin >> unMark >> mark.mark;
   cout << "Please Enter 1 SYMBOL\n";
   cin >> symbol;
   fin.getline(mark.string,255); 
   for (int l=0;mark.string[l];l++)
      if (mark.string[l]==mark.mark)
      {
         longed.length=l;
         break;
      }
   if (mark.string[0]==symbol)
      check=1;
    else mark.string[0]=' ';
   for (int l=0;l<longed.length;l++)
   {
      if ((mark.string[l]==symbol)&&(mark.string[l-1]==' '))
      {
         fout << mark.string[l];
         check=1;
         cout << mark.string[l];
      }
         else if (check==1)
                 fout << mark.string[l];
      if (mark.string[l]==' ')
         check=0;
   }
}
 
void punkt_4(ofstream &fout, ifstream& fin)
{
   longed longed={0};
   int check=0;
   char mark='!', symbol=0;
   fin >> longed.length;
   fin.getline(longed.string,longed.length+1);
   longed.string[longed.length]=mark;
   cout << "Please Enter 1 SYMBOL\n";
   cin >> symbol;
   for (int l=0;longed.string[l];l++)
   {
      if ((longed.string[l]==symbol)&&(longed.string[l-1]==' '))
      {
         fout << longed.string[l];
         check=1;
         cout << longed.string[l];
      }
         else if (check==1)
            fout << longed.string[l];
      if (longed.string[l]==' ')
         check=0;
   }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2012, 23:16     Разбиение функций
Посмотрите здесь:

Разбиение на лексемы C++
C++ Разбиение строк
scanf. Разбиение. C++
Разбиение на слагаемые C++
C++ Объявление функций внутри других функций
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
06.03.2012, 23:26     Разбиение функций #2
так в чем проблема? или программа написана не вами?
kristi1
10 / 10 / 1
Регистрация: 07.03.2010
Сообщений: 465
06.03.2012, 23:27  [ТС]     Разбиение функций #3
panicwassano, Мной, я с функциями не все нормально понимаю( не могу передать из одной в другую, писала сама, функции помогали с объявлением и передачей
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
06.03.2012, 23:30     Разбиение функций #4
заведите переменную, и передавайте ее по указателю в функцию
kristi1
10 / 10 / 1
Регистрация: 07.03.2010
Сообщений: 465
06.03.2012, 23:47  [ТС]     Разбиение функций #5
panicwassano, Я теорию понимаю) просто завтра сдавать, а я с 6 вечера пишу, и уже просто не понимаю как оно делается

Добавлено через 16 минут
Помогите пожалуйста, кто-нибудь, а то завтра сдаваться, а я уже не соображаю как это и что делать
Yandex
Объявления
06.03.2012, 23:47     Разбиение функций
Ответ Создать тему
Опции темы

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