Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ_Инф_Паскаль_3_2007.doc
Скачиваний:
5
Добавлен:
14.08.2019
Размер:
338.94 Кб
Скачать

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. Выводы по результатам выполнения заданий и заключение по работе в целом.