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