Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as C++ by registered user Alleshka ( 13 years ago )
//Максимальная длина отрезков с заданным свойством
 //Какая-то фигня
 //Ограниченный сверху и снизу заданными порогами d1 и d2, состоящий из элементов x, таких что d1<=x1<=d2

 #include <iostream>
 #include <fstream>
 #include <iomanip>
 using namespace std;

 ifstream ch; 
 ofstream res; // Занесение максимального отрезка
 ofstream r; // Все отрезки

 int main()
 {
  setlocale(LC_ALL, "");

  double d1, d2, max, x;
  int i=0;

  ch.open("D://files//1lab2sem//chisla.txt"); // Файл с последовательностью
  res.open("D://files//1lab2sem//result.txt"); // Файл с результатом максимального отрезка
  r.open("D://files//1lab2sem//resultall.txt");// Файл со всеми отрезками
  i=0;


  // Ввод порогов - начало
  cout << "Введите нижний порог" << endl;
  cin >> d1;
  cout << endl;

  cout << "Введите верхний порог" << endl;
  do // Проверка на соответствие порогов - начало
  {   
   cin >> d2;
   cout << endl;
   if(d1>=d2)
   {
    i++;

    if(i<3)
    {
    cout << "Ошибка ввода" << endl;
    cout << "Верхний порог должен быть больше нижнего" << endl;
    cout << endl;
    }

    if(i==3) 
    { 
    d2=d1+2; 
    cout << endl;
    cout << "Ок. Сам." << endl;
    cout<< "Верхний порог равен: " << d2 << endl;
    }
   }
  }while(d2<=d1); // Проверка на соответствие порогов - конец
 //Ввод порогов - конец

  r << setw(5) << d1 << "<=x<=" << d2 << endl << endl;

  i=0;
  max=0;

  r << "Число" << setw(13) << "Длина"  << setw(17) << "Максимум" << endl << endl;

  while(1)// Фигачим
  {
   ch>>x; // Взятие элемента последовательности из файла

   if(ch.eof()==1)
    {
     break;
    }

   if((x<=d2)&&(x>=(d1))) // Проверка на подлинность условия
   {
   i++; // Плюсуем, если принадлежит
   if(max<i) {max=i;} // Сравниваем с максимум
   } // Фигачим заного, если принадлежит
   else // Если не принадлежит
   {
   i=0; // Обнуляем счётчик
   } // Также фигачим заного

   r << x << setw(15) << i << setw(15) << max << endl; // Заносим часть отрезка в файл

  }// Конец цикла


  if(max==0) 
   {
    cout << "Отрезков не найдено" << endl;
    res << "Отрезков не найдено" << endl;
    r << "Отрезков не найдено" << endl;
   }
  else // Вывод максимального отрезка в файл и на экран
  {
  cout << "Максимальный отрезок: " << max << endl;
  res << "Максимальный отрезок: " << max << endl;
  r << endl << endl << endl << "Максимальный отрезок: " << max << endl;
  }

  //Закрытие файлов
  r.close();
  res.close();
  ch.close();
 }

 

Revise this Paste

Your Name: Code Language: