- •Работа с массивами чисел
- •6.1. Структурированные типы данных Turbo Pascal 7.0
- •6.2. Массивы
- •Каждый элемент массива имеет свой индекс.
- •6.3. Фрагменты программ обработки массивов
- •6.3.1 Заполнение массивов
- •6.3.2 Вывод элементов массива на экран
- •6.3.3. Подсчет отрицательных и положительных элементов, их сумм и средних значений
- •6.3.4. Нахождение минимального и максимального элементов двумерного массива
- •6.3.5. Сортировка массива
- •7. Лабораторные задания и методические указания по их выполнению
- •9. Контрольные вопросы
- •6.1. Символьный (char) и строковый (string) тип данных
- •6.2.1. Основные задачи обработки текста
- •6.2.3. Выделение слов из текста (слова разделены несколькими пробелами)
- •6.2.4. Выделение символов в строке и расположение их по алфавиту
- •6.2.5. Выделение символов в строке и подсчет их вхождения
- •6.2.6. Выделение символов в строке и подсчет слов в строке
- •6.2.7. Выделение слов и упорядочение их по длине
- •6.2.8. Расположение слов по алфавиту
- •6.3. Файлы
- •Текстовые файлы определяются в разделе Var следующим образом:
- •7. Лабораторные задания и методические указания по их выполнению
- •9. Контрольные вопросы
7. Лабораторные задания и методические указания по их выполнению
Написать программу обработки текста и чтения/записи в файл.
Варианты заданий приведены в таблице 7.1.
В программе использовать:
- текстовые файлы input.txt и output.txt для чтения и записи текста, соответственно;
- подпрограммы-процедуры (Procedure) для оформления решения отдельных подзадач (например, поиска минимального элемента или вывода элементов на экран);
- дополнительные процедуры и функции модуля Crt для управления режимом отображения текста программы при ее выполнении.
Рекомендуется сначала отдельно написать и протестировать решение задачи, а затем оформить отдельные подзадачи как процедуры.
Общий алгоритм выполнения программы:
1. Связать и открыть файлы input.txt и output.txt для чтения и перезаписи, соответственно.
2. Считать фразу из файла input.txt и вывести ее на экран.
3. Фразу разбить на слова.
4. Вывести фразу на экран по словам.
5. Решить основное задание, согласно варианту из таблицы 7.1 (например, найти упорядочить слова по длине (количеству символов)).
6. Вывести результаты решения основного задания на экран.
При написании программы можно использовать примеры, приведенные в п. 6.2. Процедуры и функции, необходимые для работы с файлами приведены в таблице 6.1.
Таблица 7.1 – Варианты основных заданий
№ |
Основное задание |
1 |
Считать предложение из файла. Слова разделены одним пробелом. Подсчитать количество слов и гласных в нем. В файл записать предложение по словам. |
2 |
Считать предложение из файла. Слова разделены одним или несколькими пробелами. Подсчитать количество слов и количество букв в самом длинном слове. В файл записать предложение по словам. |
3 |
Считать предложение из файла. Слова разделены одним пробелом. Подсчитать количество слов и цифр в нем. В файл записать предложение по словам. |
4 |
Считать предложение из файла. Слова разделены запятыми. Подсчитать количество слов в предложении и упорядочить их по длине. В файл записать предложение по словам. |
5 |
Считать предложение из файла. Слова разделены одним или несколькими пробелами. Подсчитать количество слов в предложении и упорядочить слова по алфавиту. В файл записать предложение по словам. |
6 |
Считать предложение из файла. Слова разделены запятыми. В каждом слове удалить первую и последнюю буквы. В файл записать предложение по словам. |
7 |
Считать предложение из файла. Слова разделены пробелом. Удалить из предложения все слова, стоящие на четных местах. В файл записать предложение по словам. |
8 |
Считать предложение из файла. Слова разделены запятыми. В каждом слове первую букву перенести в конец слова. В файл записать предложение по словам. |
9 |
Считать предложение из файла. Слова разделены одним или несколькими пробелами. Удалить из предложения все слова, стоящие на нечетных местах. В файл записать предложение по словам. |
10 |
Считать предложение из файла. Слова разделены запятыми. Подсчитать количество слов в предложении и упорядочить слова по алфавиту. В файл записать предложение по словам. |
Пример:
Считать предложение из файла. Слова разделены пробелом. Упорядочить слова по длине. В каждом слове последнюю букву перенести в начало слова. В файл записать предложение по словам.
В программе использовать:
- текстовые файлы input.txt и output.txt для чтения и записи текста, соответственно;
Текст программы, реализующей задание, приведен ниже:
program text_file;
uses crt;
var
f,ff:text;
predl,sl,bukva:string;
slovo:array[1..10]of string;
i,j,k:integer;
begin
assign(f,'d:\input.txt');
reset(f);
assign(ff,'d:\output.txt');
rewrite(ff);
while not eof (f) do
read(f,predl);
clrscr;
writeln('Исходное предложение: ');
writeln(predl);
readkey;
writeln(' Предложение по словам, упорядоченным по длине:');
k:=1;
slovo[k]:=' ';
for i:=1 to length(predl) do
if predl[i]<>' ' then
slovo[k]:=slovo[k]+predl[i]
else
begin
k:=k+1;
slovo[k]:=' ';
end;
for j:=1 to k-1 do
for i:=1 to k-j do
if length(slovo[i])<length(slovo[i+1]) then
begin
sl:=slovo[i];
slovo[i]:=slovo[i+1];
slovo[i+1]:=sl;
end;
for j:=1 to k do
writeln(slovo[j]);
readkey;
writeln(' Последняя буква перенесена в начало слова:');
for j:=1 to k do
begin
bukva:=copy(slovo[j],length(slovo[j]),1);
insert(bukva, slovo[j],1);
delete(slovo[j],length(slovo[j]),1);
end;
for j:=1 to k do
begin
writeln(slovo[j]);
writeln(ff,slovo[j]);
end;
readkey;
close(f);
close(ff);
end.
Результаты выполнения программы:
Исходное предложение:
soon winter and vacation
Предложение по словам, упорядоченным по длине:
vacation
session
winter
soon
and
Последняя буква перенесена в начало слова:
nvacatio
nsessio
rwinte
nsoo
dan
8. СОДЕРЖАНИЕ ОТЧЕТА ПО ЛАБОРАТОРНОЙ РАБОТЕ
8.1. Результаты выполнения подготовительного задания: титульный лист, цель и задачи работы, краткие теоретические сведения.
8.2. Результаты выполнения лабораторных заданий, оформленные в виде листинга программы с указанием результата ее выполнения.
8.3. Выводы по результатам выполнения заданий и заключение по работе в целом.