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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ найти наибольшее число из 3 http://www.cyberforum.ru/cpp-beginners/thread513703.html
вот код с помощью которого ищу наибольшее int max, num1, num2, num3; cin >> num1 >> num2 >> num3; if(num1 > num2){ max = num1; } else { max = num2;
C++ Исправить ошибки в простой программе 4-угольник задан координатами вершин. Вычислить его площадь. Вроде бы как должно считать..а в результате постоянно выдает 0. #include<stdio.h> #include<stdlib.h> #include<math.h> int main() http://www.cyberforum.ru/cpp-beginners/thread513702.html
программа для начинающих C++
Помогите выполнить задание из книжки(не знаю када че использовать и как): Объявите переменную типа char с именем friend_sex и инициализируйте его нулем. Предложите пользователю ввести значение m, если ваш друг -мужчина, и f - если женщина. Присвойте переменной friend_sex введенное значени. Затем с помощью двух инструкций if запишите следующее: Если друг мужчина, то напишите строку: "Если ты...
C++ Вопрос по классам
Вообщем есть два класса, TTriangular и TPoint. В TTriangular есть метод, который должен вводить координаты заданной точки. В TPoint всего два поля x и y. Не понимаю, почему не получается, вроде бы ничего сложного:( #include "TPoint.h"; #include <conio.h>; #include <iostream>; using namespace std;
C++ случайное значение из enum, c++ http://www.cyberforum.ru/cpp-beginners/thread513673.html
Дано условие const string obj={"Stone", "Scissors", "Paper"}; enum bo{Sto, Sci, Pap}; bo ms_; string player;
C++ Problem 3: Wrong Directions [Brian Dean, 2012] Problem 3: Wrong Directions Фермер Джон купил программируемый трактор. Чтобы заставить трактор двигаться, он пишет строку длиной N (1 <= N <= 100,000), состоящую только из символов F, L, R. Символ 'F' заставляет трактор двигаться на единицу вперед, символы 'L' и 'R' заставляют трактор повернуться на 90 градусов влево или вправо, соответственно. Трактор начинает движение в точке (0,0)... подробнее

Показать сообщение отдельно
kristi1
10 / 10 / 1
Регистрация: 07.03.2010
Сообщений: 465
06.03.2012, 23:16     Разбиение функций
Добрый вечер, помогите пожалуйста разбить каждую из функций на две - первая часть ТОЛЬКО считывает строку посимвольно, а вторая - делает все остальное
Вот рабочая программа:
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;
   }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru