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

последовательность "пила" - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти минимальные элементы каждой строки матрицы http://www.cyberforum.ru/cpp-beginners/thread443170.html
Задание: Найти минимальные элементы каждой строки матрицы X и поместить их на главную диагональ, а диагональные элементы записать на место минимальных. Я только одного не могу понять, каким образом диагональные элементы записать на место минимальных?
C++ Как поменять порядок следования элементов в массиве на противоположный? Есть код: #include <iostream> #include <ctime> using namespace std; int kontrmas(int mass,int size); int main() { const int a=10; int mas={}; http://www.cyberforum.ru/cpp-beginners/thread443164.html
C++ Задача на proc помогите плз
Описать процедуру Minmax(X, Y), записывающую в переменную X ми- нимальное из значений X и Y, а в переменную Y — максимальное из этих значений (X и Y — вещественные параметры, являющиеся одновременно входными и выходными). Используя четыре вызова этой процедуры, найти минимальное и максимальное из данных чисел A, B, C, D.
Перегрузка операторов С++ C++
Задание: Написать код на языке С++ где реализуется перегрузка операторов. Тематика: База данных института(студенты, аспиранты, преподаватели) Помогите понять как и где можно использовать перегрузку операторов в моей тематике. Спасибо.
C++ Как передать массив в функцию? http://www.cyberforum.ru/cpp-beginners/thread443133.html
Помогите написать функцию, которая возвращает значение true, если символ, полученый функцией как аргумент, является гласной буквой английского алфавита. Вот мой нерабочий вариант: #include <cstdlib> #include <iostream> #include <string> using namespace std; char giasn(char *l) { if ((l='a') || (l='i') || (l='e') || (l='u') || (l='y') || (l='o')){ return true;
C++ Найти элементы, которые по модулю меньше некоторого значения, введенного с клавиатуры задано матрицу размерностью N * M с произвольным многочисленных элементов. Найти элементы, которые по модулю меньше некоторого значения, введенного с клавиатуры Помогите плис срочно надо прога подробнее

Показать сообщение отдельно
Kirill Losev
3 / 3 / 0
Регистрация: 01.10.2011
Сообщений: 249
08.02.2012, 22:39     последовательность "пила"
помогите, пожалуйста, написать код, который бы помог мне в решении этой >>>>>миссия - f: сигма1(Z) -> N0. вроде это индуктивные функции<<<<< задачи
честно уже 3 дня мучаю, но ничего не получается. точнее получается, но не правильно

вот все мои попытки:

Попытка 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
#include <iostream>
#include <fstream>
using namespace std;
 
void mission()
{
 cout << "Задание: \tВывести на экран количество отрезков с заданным свойством "
      << endl << "\t\tf: сигма1(Z) -> N0. Свойство - \"пилообразный\", т.е. "
      << endl << "\t\tкаждый элемент является строгим локальным минимумом "
      << endl << "\t\tили максимумом."; 
}
 
void test()
{
 float x;
 cout << endl << "Последовательность: ";
 ifstream input("/media/wind/forlabs/2_sem/l1/input.txt");
 while(true)
 {
  input >> x;
  if(!input.eof())
  {
   cout << x << " ";  
  }  
  else 
   break;
 }  
}
 
 
void processing()
{
 float x,
       v = 0,
       c = 0;
 int col_s = 0;
 ifstream input("/media/wind/forlabs/2_sem/l1/input.txt");
 
 ofstream output("/media/wind/forlabs/2_sem/l1/output.txt");
 output << "| x |      кол-во элементов       |";
 
 while(!input.eof())
 {
  int col_e = 0;
  input >> x;
   {
    v = x;
    col_e++;
    output << endl << "| " << x << " |    " << col_e << "|";
   }
  input >> x;
   {
    if((x > v)||(x < v))
    {
     c = x;
     col_e++;  
     output << endl << "| " << x << " |    " << col_e << "|"; 
    }
   }
  while(!input.eof())
  {
   input >> x;
   {
    if((c > v)&&(c > x))
    {
     v = x;
     col_e++;
     output << endl << "| " << x << " |    " << col_e << "|";
    }
    if((c < v)&&(c < x))
    {
     v = x;
     col_e++;
     output << endl << "| " << x << " |    " << col_e << "|";  
    }
    else
    {
     col_s++;
     output << " отрезок закончен ";
     break;
    }
   }
   input >> x;
    {
     if((v < c)&&(v < x))
     {
      c = x;
      col_e++;
      output << endl << "| " << x << " |    " << col_e << "|";
     }
     if((v > c)&&(v > x))
     {
      c = x;
      col_e++;
      output << endl << "| " << x << " |    " << col_e << "|";  
     }
     else
     {
      col_s++;
      output << endl << "| " << x << " |    " << col_e << "|"
             << endl << "        отрезок закончен ";
      break;
     }
    }  
  }
 } 
output << endl << "Количество отрезков: " << col_s;
cout << endl << "Количество отрезков: " << col_s;
output.close();
input.close();
}
 
int main()
{
  mission();
  test();
  processing();
return 0;
}
Попытка 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>
using namespace std;
 
void mission()
{
 cout << "Задание: \tВывести на экран количество отрезков с заданным свойством "
      << endl << "\t\tf: сигма1(Z) -> N0. Свойство - \"пилообразный\", т.е. "
      << endl << "\t\tкаждый элемент является строгим локальным минимумом "
      << endl << "\t\tили максимумом."; 
}
 
 
 
void processing(int *col_s)
{
 float x,
       v = 0,
       c = 0;
 *col_s = 0;
 ifstream input("/media/wind/forlabs/2_sem/l1/input.txt");
 
 ofstream output("/media/wind/forlabs/2_sem/l1/output.txt");
 output << "| x |      кол-во элементов       |";
 
 while(!input.eof())
 {
  int col_e = 0;
  input >> x;
   v = x;
   col_e++;
   output << endl << "| " << x << " |    " << col_e << "|";
  input >> x;
   if(x != v)
   {
    c = x;
    col_e++;  
    output << endl << "| " << x << " |    " << col_e << "|"; 
   }
   else
   {
    output << endl << "| " << x << " |    " << col_e << "|"
           << endl << "| отрезок закончен |"; 
    break;  
 
  while(!input.eof())
  {
   input >> x;
   if(((c > v)&&(c > x))||((c < v)&&(c < x)))
   {
    v = x;
    col_e++;
    output << endl << "| " << x << " |    " << col_e << "|"; 
   }
   else
   {
    output << endl << "| " << x << " |    " << col_e << "|"
           << endl << "| отрезок закончен |";
    *col_s++;
    break;
   }
   input >> x;
    if(((v < c)&&(v < x))||((v > c)&&(v > x)))
    {
     c = x;
     col_e++;
     output << endl << "| " << x << " |    " << col_e << "|";   
    }
    else
    {
     output << endl << "| " << x << " |    " << col_e << "|"
            << endl << "|        отрезок закончен |";
     *col_s++;  
     break;
    }
  }
  } 
output << endl << "Количество отрезков: " << *col_s;
output.close();
input.close();
}
 
 
 
int main()
{
  int col=0;
  mission();
  processing(&col);
  cout << endl << "Loading... Результат работы программы расположен по адресу "
       << endl << "/media/wind/forlabs/2_sem/l1/output.txt";
  cout << endl << endl << "Программа завершила работу."<< endl <<"Количество отрезков: " << col <<endl<<"Можете закрыть консоль.";
return 0;
}
Попытка 3:
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
#include <iostream>
#include <fstream>
using namespace std;
 
 
 
void test()
{
 float x;
 
 cout << "Последовательность: ";
 ifstream input("/media/wind/forlabs/2_sem/l1/input.txt");
 while(true)
 {
  input >> x;
  if(!input.eof())
  {
   cout << x << " ";     
  }
  else
  {
   break;  
  }
 }  
}
 
 
 
void processing()
{
 float now = 0, 
       v = 0,
       c = 0;
 int col_e = 0,
     col_s = 0;
 ifstream input("/media/wind/forlabs/2_sem/l1/input.txt");
 ofstream output("/media/wind/forlabs/2_sem/l1/output.txt");
 
 cout << endl << "| x | кол-во элементов |";
 output << "| x | кол-во элементов |";
 
 while(true)
 {
  col_e = 0;
  input >> now;
   if(!input.eof())
   {
    v = now;
    col_e++;   
    cout << endl << "| " << now << " | " << col_e << " |";
    output << endl << "| " << now << " | " << col_e << " |";
   }     
   else
   {
    cout << endl << " >>>> не отрезок <<<<< ";
    output << endl << " >>>> не отрезок <<<<< ";
    continue;   
   }
  input >> now;
   if(!input.eof())
   {
    if(v != now)
    {
     c = now;
     col_e++;
     cout << endl << "| " << now << " | " << col_e << " |";
     output << endl << "| " << now << " | " << col_e << " |";   
    }   
    else
    {
     cout << endl << " >>>>> не отрезок <<<<< ";
     output << endl << " >>>>> не отрезок <<<<< ";
     continue;  
    }
   } 
   else
   {
    break;   
   } 
  
  while(true)
  {
   input >> now;
    if(!input.eof())
    {
     if(((c<v)&&(c<now))||((c>v)&&(c>now)))
     {
      col_e++;
      cout << endl << "| " << now << " | " << col_e << " |";
      output << endl << "| " << now << " | " << col_e << " |";  
      v = now; 
     }  
     else
     {
      col_e++;
      col_s++;
      cout << endl << "| " << now << " | " << col_e << " |"
           << endl << " >>>>> конец отрезка <<<<<< ";
      output << endl << "| " << now << " | " << col_e << " |"
             << endl << " >>>>> конец отрезка <<<<<< ";
      continue;  
     }
    }
    else
    {
     break; 
    }
   input >> now;
    if(!input.eof())
    {
     if(((v>c)&&(v>now))||((v<c)&&(v<now)))
     {
      col_e++;
      cout << endl << "| " << now << " | " << col_e << " |";
      output << endl << "| " << now << " | " << col_e << " |";  
      c = now; 
     }  
     else
     {
      col_e++;
      col_s++;
      cout << endl << "| " << now << " | " << col_e << " |"
           << endl << " >>>>> конец отрезка <<<<<< ";
      output << endl << "| " << now << " | " << col_e << " |"
             << endl << " >>>>> конец отрезка <<<<<< ";
      continue;  
     }
    }
    else
    {
     break; 
    }   
  }
 }  
}
 
 
 
int main()
{
 test();
 processing();  
}
Попытка 4:
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
#include <iostream>
#include <fstream>
using namespace std;
 
 
 
void test()
{
 float x;
 cout << "Последовательность: ";
 ifstream input("/media/wind/forlabs/2_sem/l1/input.txt");
 while(true)
 {
  input >> x;
  if(!input.eof())
  {
   cout << x << " ";  
  }  
  else 
   break;
 }  
}
 
 
 
void processing()
{
 float now = 0,
        _1st = 0,
        _2th = 0;
 int col_e = 0,
     col_s = 0;
 
 ifstream input("/media/wind/forlabs/2_sem/l1/input.txt");
 ofstream output("/media/wind/forlabs/2_sem/l1/output.txt");
 
 cout << endl << "| x | кол-во эл. |";
 output << endl << "| x | кол-во эл. |";
 
 while(!input.eof())
 {
  input >> now;
  {
   col_e++;
   _1st = now;
   cout << endl << "| " << now << " | " << col_e << " |";
   output << endl << "| " << now << " | " << col_e << " |";
   cout << " <- начало отрезка";
  } 
  input >> now;
  {
   if(now != _1st)
   {
    col_e++;
    _2th = now;
    cout << endl << "| " << now << " | " << col_e << " |";
    output << endl << "| " << now << " | " << col_e << " |";   
   }  
  }      
  input >> now;
  {
   if((_2th > now)&&(_2th > _1st))
   {
    col_e++;
    cout << endl << "| " << now << " | " << col_e << " |";
    output << endl << "| " << now << " | " << col_e << " |";
    _1st = now;   
   }  
   if((_2th < now)&&(_2th < _1st))
   {
    col_e++;
    cout << endl << "| " << now << " | " << col_e << " |";
    output << endl << "| " << now << " | " << col_e << " |";
    _1st = now;   
   }
   else
   {
    col_e = 0;
    cout << "отрезок окончен";
    col_s++;   
    continue;
   }  
  }
  input >> now;
  {
   if((_1st > now)&&(_1st > _2th))
   {
    col_e++;
    cout << endl << "| " << now << " | " << col_e << " |";
    output << endl << "| " << now << " | " << col_e << " |";
    _2th = now;   
   }  
   if((_1st < now)&&(_1st < _2th))
   {
    col_e++;
    cout << endl << "| " << now << " | " << col_e << " |";
    output << endl << "| " << now << " | " << col_e << " |";
    _2th = now;   
   }
   else
   {
    col_e = 0;
    cout << "отрезок окончен";
    col_s++;   
    continue;   
   }  
  }
  
 }
cout << endl << endl << "Количество отрезков, обладающих заданным свойством: " << col_s;
output.close();
input.close();
}
 
 
 
int main()
{
 test();
 processing();
return 0;   
}

Попытка 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
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
 float now = 0,
       _1st = 0,
       _2th = 0,
       max = 0,
       min = 0;
 int col_s = 0,
     col_e = 0;
 
 ifstream input("/media/wind/forlabs/2_sem/l1/input.txt");
 
 
 while(!input.eof())
 {
  input >> now;
  {
   _1st = now;
  }
  input >> now;
  {
   if(now != _1st)
   {
    _2th = now;   
   }      
   else
   {
    continue;   
   }
  }
  input >> now;
  if(_2th < _1st)
  {
   if(now > _2th)
   {
    _1st = now;   
   }  
   else
   {
    col_s++;
    continue;   
   }
  }
  else
  {
   if(now < _2th)
   {
    _1st = now;   
   }  
   else
   {
    col_s++;
    continue;   
   }
  }  
 }
 cout << col_s;
 input.close();         
}
Попытка 6:
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
#include <iostream>
#include <fstream>
using namespace std;
 
void processing()
{
 float now = 0, 
       _1st = 0, 
       _2th = 0;
 int col_s = 0;
 ifstream input("/media/wind/forlabs/2_sem/l1/input.txt");
 while(!input.eof())
 {
  input >> now;
  {
   _1st = now;
  }
  input >> now;
   {
    if(now != _2th)
    {
     _2th = now;      
    }
    else continue;
   }
  
  while(!input.eof())
  {
   input >> now;
    if(((_2th < now)&&(_2th < _1st))||((_2th > now)&&(_2th > _1st)))
    {
     _1st = now;   
    }  
    else
    {
     col_s++;
     break;   
    }
   
   input >> now;
    if(((_1st < now)&&(_1st < _2th))||((_1st > now)&&(_1st > _2th)))
    {
     _2th = now;   
    }
    else
    {
     col_s++;
     break;   
    }
   }
  } 
cout << "Количество секторов с заданным свойством: " << col_s;
input.close();
}
 
int main()
{
 processing();
return 0;   
}
так же вкладываю вариант файла input.txt (может кому-то надо будет)
спасибо заранее за помощь
Вложения
Тип файла: txt input.txt (36 байт, 17 просмотров)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru