- •2. Методические указания к выполнению лабораторных работ
- •Лабораторная работа №1 Следование
- •Варианты индивидуальных заданий Выполнить поразрядные логические операции над машинными кодами
- •Пример программы
- •Лабораторная работа №2 Операторы ветвления
- •Варианты индивидуальных заданий
- •Пример разработки математической модели и схемы алгоритма решения задачи для варианта задания вида:
- •Текст программы
- •Лабораторная работа №3 Операторы цикла
- •Варианты индивидуальных заданий
- •Пример программы
- •Лабораторная работа №4 Статические массивы
- •Варианты индивидуальных заданий
- •Пример программы на обработку одномерного массива
- •Пример программы на обработку двумерного массива (матрицы)
- •Лабораторная работа №5 Динамические массивы
- •Варианты индивидуальных заданий
- •Пример программы на обработку одномерного массива
- •Пример программы на обработку двумерного массива (матрицы)
- •Лабораторная работа №6 Методы сортировки
- •Варианты индивидуальных заданий Методы сортировки
- •Области сортировки элементов матриц
- •Примеры программ
- •Лабораторная работа №7 Передача имён функций в качестве параметров
- •Текст программы
- •Лабораторная работа №8 Строки и текстовые файлы
- •Варианты индивидуальных заданий
- •Пример программы
- •Лабораторная работа №9 Структуры и файлы структур
- •Пример программы
- •Лабораторная работа №10 Линейные списки
- •Варианты индивидуальных заданий
- •Пример программы
- •Лабораторная работа №11 Стек, дек, очередь
- •Варианты индивидуальных заданий
- •Пример программы
- •Лабораторная работа №12 Классы
- •Варианты индивидуальных заданий
- •Примеры программ
- •Литература
Лабораторная работа №8 Строки и текстовые файлы
Цель лабораторной работы: изучение структурной организации, способов доступа к элементам и других особенностей текстовых файлов; изучение стандартных средств языка C/C++ для работы со строками и текстовыми файлами; совершенствование навыков процедурного программирования на языке C/С++ при решении задач редактирования текстовых файлов.
Задание на программирование: используя технологию процедурного программирования разработать программу обработки текстовых файлов с числом строк не менее пяти, каждая из которых содержит не более 80 символов, в соответствии с индивидуальным заданием.
Порядок выполнения работы:
1) Получить у преподавателя индивидуальное задание на обработку строк текстового файла.
2) Построить схему алгоритма решения задачи с использованием функций обработки строки, функции создания, просмотра и редактирования текстового файла.
3) Составить спецификации функций.
4) Составить программу на языке C/С++.
5) Проверить и продемонстрировать преподавателю работу программы на полном наборе тестов. Обеспечить одновременный показ на экране исходного и отредактированного файлов.
8) Оформить отчет о лабораторной работе в составе: постановка задачи, математическая модель, схема алгоритма решения, спецификации функций, текст программы, контрольные примеры.
Варианты индивидуальных заданий
1.
Дан текст. Словом текста является последовательность букв алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Найти и сохранить в каждой строке только те слова, в которых гласные буквы алфавита образуют симметричную последовательность букв (палиндром). Строчные и прописные буквы считать эквивалентными.
2.
Дан текст. Словом текста является последовательность цифр; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Найти и сохранить в каждой строке только те слова, в которых все чётные цифры образуют неубывающую последовательность. Одну цифру не считать неубывающей последовательностью.
3.
Дан текст. Словом текста является последовательность цифр и букв алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Найти и сохранить в каждой строке только те слова, в которых цифры и буквы алфавита чередуются.
4.
Дан текст. Словом текста считается любая последовательность цифр и букв алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Найти и сохранить в каждой строке только те слова, в которых есть хотя бы одна цифра.
5.
Дан текст. Словом текста считается любая последовательность букв алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Найти и сохранить в каждой строке те слова, которые содержат только прописные буквы.
6.
Дан текст. Словом текста считается любая последовательность цифр; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Найти и сохранить в каждой строке только те слова, которые образованы неубывающей последовательностью символов.
7.
Дан текст. Словом текста считается любая последовательность букв алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Удалить из каждой строки те слова, которые содержат двойные согласные буквы.
8.
Дан текст. Словом текста считается любая последовательность букв алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Найти и сохранить в каждой строке только те слова, в которых буквы образуют симметричную последовательность (палиндром). Строчные и прописные буквы считать эквивалентными.
9.
Дан текст. Словом текста считается любая последовательность цифр; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Поменять местами в каждой строке первое и последнее слово.
10.
Дан текст. Словом текста считается любая последовательность букв алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Найти и сохранить в каждой строке только те слова, которые содержат одинаковое количество гласных и согласных букв алфавита.
11.
Дан текст. Словом текста считается любая последовательность букв алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Найти и сохранить в каждой строке только те слова, количество гласных букв в которых превышает количество согласных.
12.
Дан текст. Словом текста считается любая последовательность букв алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Найти и сохранить в каждой строке только те слова, которые начинаются с прописной буквы.
13.
Дан текст. Словом текста считается любая последовательность букв алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Найти и сохранить в каждой строке только те слова, в которых первая буква слова входит в него еще один раз.
14.
Дан текст. Словом текста считается любая последовательность букв алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Найти и сохранить в каждой строке только те слова, в которых согласные буквы алфавита образуют симметричную последовательность букв (палиндром). Строчные и прописные буквы считать эквивалентными.
15.
Дан текст. Словом текста считается любая последовательность букв латинского алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Найти и сохранить в каждой строке только те слова, которые совпадают с начальным отрезком латинского алфавита (a, ab, abc, abcd,…).
16.
Дан текст. Словом текста считается любая последовательность букв латинского алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Найти и сохранить в каждой строке только те слова, которые совпадают с конечным отрезком латинского алфавита (z, yz, xyz,…).
17.
Дан текст. Словом текста считается любая последовательность букв алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Найти и сохранить в каждой строке только те слова, в которых нет повторяющихся букв.
18.
Дан текст. Словом текста считается любая последовательность букв алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Найти и сохранить в строке только те слова, в которых каждая буква входит в это слово не менее двух раз.
19.
Дан текст. Словом текста считается любая последовательность букв алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Найти и сохранить в строке только те слова, в которых гласные буквы чередуются с согласными.
20.
Дан текст. Словом текста считается любая последовательность букв алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Перенести первую букву каждого слова в его конец.
21.
Дан текст. Словом текста считается любая последовательность букв алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Перенести последнюю букву каждого слова в его начало.
22.
Дан текст. Словом текста считается любая последовательность букв алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Удалить в каждом слове его первую букву.
23.
Дан текст. Словом текста считается любая последовательность букв алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Удалить в каждом слове его последнюю букву.
24.
Дан текст. Словом текста считается любая последовательность букв алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Удалить в каждом слове все последующие вхождения первой буквы.
25.
Дан текст. Словом текста считается любая последовательность букв алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Удалить в каждом слове все предыдущие вхождения последней буквы.
26.
Дан текст. Словом текста считается любая последовательность букв алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Оставить в каждом слове только первые вхождения каждой буквы.
27.
Дан текст. Словом текста считается любая последовательность букв алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Если слово нечетной длины, то удалить его среднюю букву.
28.
Дан текст. Словом текста считается любая последовательность букв алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Изменить в каждой строке порядок слов на обратный порядок.
29.
Дан текст. Словом текста считается любая последовательность букв алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Оставив первое слово без изменения, удалить из строки лишние слова таким образом, чтобы оставшиеся слова были упорядочены по алфавиту.
30.
Дан текст. Словом текста считается любая последовательность букв алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Сохранить в каждой строке только первые вхождения каждого слова.
31.
Дан текст. Словом текста считается любая последовательность букв алфавита; между соседними словами - не менее одного пробела. Перед первым и за последним словом каждой строки произвольное число пробелов. Найти и сохранить в каждой строке только те слова, которые встречаются в ней по одному разу.
