Добавил:
wso_studf
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
#include <iostream>
#include <string>
#include <fstream>
#include <ctime>
using namespace std;
int main(){
setlocale(LC_ALL, "ru");
cout << "Вариант №3" << endl;
cout << "Лабораторная работа №7" << endl;
srand(time(NULL));
int const SIZE = 10;
float average = 0.0f;
int num = 0;
string path = "Input.txt";
string path_out = "Output.txt";
ofstream fout;
fout.open(path, ofstream::app);
if (!fout.is_open()){
cout << "Ошибка открытия файла!";
return 1;
}
else {
cout << "Желаете ввести последовательность из 10 цифр самостоятельно или сгенерировать?\n\tВведите 0 - если сами введете\n\tВведите 1 - если сгенерировать\n";
int choice;
cin >> choice;
while (cin.fail()) {
cin.clear();
cin.ignore(32767, '\n');
cout << "\nВы ввели не допустимое значение.\nВведите 0 - если сами или 1 - если сгенерировать.";
cin >> choice;
}
if (choice == 0){
cout << "Вводите целые числа для последовательности от 10 до 30.\n";
for (int i = 0; i < 10; i++){
cin >> num;
while (cin.fail()) {
cin.clear();
cin.ignore(32767, '\n');
cout << "Вы ввели не допустимое значение. Ожидаются цифры от 10 до 30.\n";
cin >> num;
}
while (num < 10 || num > 30){
cout << "Вы ввели не допустимое значение. Ожидаются цифры от 10 до 30.\n";
cin >> num;
while (cin.fail()) {
cin.clear();
cin.ignore(32767, '\n');
cout << "Вы ввели не допустимое значение.\nОжидаются цифры от 10 до 30.\n";
cin >> num;
}
}
if (num >= 10 || num <= 30){
average += num;
fout << num << "\n";
}
}
average = average / SIZE;
}
else if (choice == 1){
int some = 0;
cout << "Производится генерация последовательности случайных чисел.\n";
for (int i = 0; i < 10; i++)
{
some = 0;
some = rand() % 20 + 10;
average += some;
fout << some << "\n";
}
average = average / SIZE;
}
else {
cout << "Вы ввели недопустимое значение." << endl;
}
}
fout.close();
cout << "Готово!" << endl;
cout << "Среднее арифметическое = " << average << endl;
ifstream fin;
fin.open(path);
if (!fin.is_open()){
cout << "Ошибка открытия файла!" << endl;
return -1;
}
else {
string ch;
int n, old, next;
ofstream file;
file.open(path_out, ofstream::app);
if (!file.is_open()){
cout << "Ошибка открытия файла!";
return 1;
}
else {
int count = 1;
cout << "Числа записанные в файл Output.txt:" << endl;
while (!fin.eof())
{
ch = "";
getline(fin, ch);
if (ch == "") break;
count++;
if (count == 2) {
n = stoi(ch);
old = n;
ch = "";
getline(fin, ch);
count++;
n = stoi(ch);
continue;
}
next = stoi(ch);
if (n < (old + next)){
file << n << '\n';
cout << n << endl;
}
old = n;
n = next;
if (count == 11){
n = old;
if (next < n){
file << next << '\n';
cout << next << endl;
}
}
}
fin.close();
file.close();
ifstream fin2;
fin2.open(path_out);
if (!fin2.is_open()){
cout << "Ошибка открытия файла!" << endl;
}
else{
string ch;
int c = 0;
while (!fin2.eof()){
ch = "";
getline(fin2, ch);
c++;
}
fin2.close();
ifstream fin3;
fin3.open(path_out);
if (!fin3.is_open()){
cout << "Ошибка открытия файла!" << endl;
}
else{
string ch;
int cnt = 0;
int max = 0, b, z;
while (!fin3.eof()){
ch = "";
getline(fin3, ch);
cnt++;
if (ch == "") break;
b = stoi(ch);
if (b % 2 == 0){
if (max < b){
max = b;
z = cnt;
}
}
if (cnt == (c - 1) && max == 0){
cout << "Четных чисел нет." << endl;
}
else if (cnt == (c - 1)){
cout << "Максимальное четное число - " << max << ". Его порядковый номер - " << z << endl;
}
}
}
fin3.close();
}
}
}
return 0;
}