Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Лаба2_МЛиТА.cpp: определяет точку входа для консольного приложения.
- //
- // МЛиТА лр №2 функции.cpp: определяет точку входа для консольного приложения.
- //
- #include "stdafx.h"
- #include <iostream>
- #include <fstream>
- #include <cctype>
- using namespace std;
- int sentence_punct[30] = { 0 },
- index[30] = { 0 },
- max_punct[30] = { 0 };
- ifstream inp("input.txt");
- // Подсчет кол-во символов в файле.
- int number_Symbol(int N)
- {
- inp.seekg(0, inp.end);
- streampos place = inp.tellg();
- N = place;
- inp.seekg(0, inp.beg);
- return N;
- }
- // Подсчёт количества знаков препинания в каждом предлжении и поиск максимального из них.
- int Counting_Numb_Punct_Count(char *array, int N)
- {
- inp.seekg(0, inp.beg);
- int number_Sentence = 0, max = 0, i;
- for (i = 0; (!inp.eof()); i++)
- {
- array[i] = inp.get();
- // Проверка на наличие знаков препинания
- if (array[i] == ',' || array[i] == ';' || array[i] == ':' || array[i] == '-')
- {
- index[number_Sentence]++;
- }
- // Проверка на конец предложения
- if (array[i] == '.' || array[i] == '!' || array[i] == '?')
- {
- if (max<index[number_Sentence])
- {
- max = index[number_Sentence];
- }
- number_Sentence++;
- sentence_punct[number_Sentence] = inp.tellg();
- }
- }
- int k, good_sentence;
- // Поиск предложений с максимальным кол-м знаков пунктуации и подсчет их кол-ва.
- for (k = 0, good_sentence = 0; k < number_Sentence; k++)
- {
- if (max == index[k])
- {
- max_punct[good_sentence] = k;
- good_sentence++;
- }
- }
- return good_sentence;
- }
- // Вывод на консоль искомых предложений
- void Output(char *array, int Good_Sentence_2)
- {
- for (int i = 0; i < Good_Sentence_2; i++)
- {
- int max_index = sentence_punct[max_punct[i]];
- while (true)
- {
- if (array[max_index] != '.')
- {
- cout << array[max_index];
- max_index++;
- continue;
- }
- else
- {
- cout << "." << endl;
- break;
- }
- }
- }
- }
- int main()
- {
- setlocale(LC_ALL, "RUS");
- if (!inp)
- {
- cout << "MISTAKE!!" << endl;
- exit(1);
- }
- int N = 1, j;
- N = number_Symbol(N);
- char *array = new char[N];
- int Good_Sentence_2;
- Good_Sentence_2 = Counting_Numb_Punct_Count(array, N);
- Output(array, Good_Sentence_2);
- delete[] array;
- inp.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement