Uploaded by Даниил Косюк

ОАИП13

advertisement
,
Специальность «Программное обеспечение информационных технологий»
Учебная дисциплина «Основы алгоритмизации и программирования»
ОТЧЕТ
по лабораторной работе №13
Тема работы: «Разработка различных по эффективности, применяемым
средствам алгоритмов и программ обработки строк»
,
Минск 2022
Лабораторная работа № 13
Тема работы: «Разработка различных по эффективности,применяемым
средствам алгоритмов и программ обработки строк»
Цель работы: Формирование умений и навыков в разработке сложных
циклических алгоритмов обработки строк с использованием стандартных
процедур и функций над строками; изучение типа данных «множество» и
операций над данными этого типа
Оснащение работы: Задание по варианту, ЭВМ, среда разработки
VisualStudio.
Результат выполнения работы:
Дана строка символов, состоящая из произвольного текста, слова
разделены пробелами. Выведите на экран порядковый номер слова
максимальной длины и номер позиции с которой оно начинается.
#include <iostream>
using namespace std;
int* arrayPtr;
int length;
int** arr;
int x;
void insertionSort() // сортировка вставками
{
int temp, // временная переменная для хранения значения элемента сортируемого массива
item; // индекс предыдущего элемента
int* tempar;
for (int counter = 1; counter < length; counter++)
{
temp = arrayPtr[counter]; // инициализируем временную переменную текущим
значением элемента массива
tempar = arr[counter];
item = counter - 1; // запоминаем индекс предыдущего элемента массива
while (item >= 0 && arrayPtr[item] > temp) // пока индекс не равен 0 и предыдущий
элемент массива больше текущего
{
arrayPtr[item + 1] = arrayPtr[item]; // перестановка элементов массива
arrayPtr[item] = temp;
arr[item + 1] = arr[item]; // перестановка элементов массива
arr[item] = tempar;
item--;
}
}
}
void KolvoOdnEl(int s) {
int* a = arr[s];
int* a1 = new int[x];
for (int i = 0; i < x; i++) {
a1[i] = 0;
}
for (int i = 0; i < x; i++) {
for (int j = i + 1; j < x; j++) {
if (a[i] == a[j]) {
a1[i]++;
}
}
}
int max = 0;
for (int i = 0; i < x; i++) {
max = max < a1[i] ? a1[i] : max;
}
arrayPtr[s] = max;
}
int main()
{
cin >> length;
cin >> x;
arrayPtr = new int[length];
arr = new int*[length];
for (int i = 0; i < length; i++) {
arr[i] = new int[x];
for (int j = 0; j < x; j++) {
cin >> arr[i][j];
}
}
for (int i = 0; i < length; i++) {
KolvoOdnEl(i);
}
insertionSort();
cout << "\n";
for (int i = 0; i < length; i++) {
for (int j = 0; j < x; j++) {
cout<<arr[i][j]<<" ";
}
cout << "\n";
}
}
Download