Обработка текстовых файлов в среде Lazarus
Курсовая работа, 03 Декабря 2011, автор: пользователь скрыл имя
Описание работы
Цель работы: Обработка текстовых файлов в среде Lazarus. Исходным файлом для проверки является текст программы на языке Паскаль.
В данной курсовой работе написана программа для определения возрастания слов по порядку, если возрастают – нумерование нечетных строк и выделение самой длинной строки, и строки с самым длинным словом звездочками также указать количество слов в каждой строчке.
Программа разработана с использованием среды визуального программирования Lazarus и языка Object Pascal. Результаты работы программы выводятся на экран.
Содержание
Введение 5
1. Постановка задачи 6
2. РАЗРАБОТКА АЛГОРИТМА 8
3. ОПИСАНИЕ СТРУКТУРЫ ПРОГРАММЫ 9
4. ИНСТРУКЦИЯ ОПЕРАТОРУ 10
5. ОПИСАНИЕ ПОЛУЧКНЫХ РЕЗУЛЬТАТОВ……………………………………..14
6. ВЫВОД………………………………………………………………………………..14
ПЕРЕЧЕНЬ ССЫЛОК 15
ПРИЛОЖЕНИЕ А 16
ПРИЛОЖЕНИЕ Б 19
Работа содержит 1 файл
Моя курсовая работа2.doc
— 1.30 Мб (Скачать)ПЕРЕЧЕНЬ
ССЫЛОК
- Галисеев Г.В. Программирование в среде Delphi 7. Самоучитель
- Шупрута В.В. Delphi 2005. Учимся программировать, НТ ПРЕСС ООО МОСКВА, – 352 с.
- Самофалов К.Г. Прикладная теория цифровых автоматов, Киев, "Вища школа", 1987г.
Приложение А
Приложение Б
Листинг
основной программы
- unit Unit1;
- interface
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, StdCtrls;
- Type
- TForm1 = class(TForm)
- GroupBox1: TGroupBox;
- Button1: TButton;
- Button2: TButton;
- Button3: TButton;
- Button4: TButton;
- txt_source: TMemo;
- dlg_open: TOpenDialog;
- Button5: TButton;
- dlg_save: TSaveDialog;
- procedure Button2Click(Sender: TObject);
- procedure Button4Click(Sender: TObject);
- procedure Button1Click(Sender: TObject);
- procedure Button5Click(Sender: TObject);
- procedure Button3Click(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
- var
- Form1: TForm1;
- implementation
- {$R *.dfm}
- procedure TForm1.Button2Click(Sender: TObject);
- begin
- Form1.Close();
- end;
- procedure TForm1.Button4Click(Sender: TObject);
- begin
- txt_source.Clear();
- end;
- procedure TForm1.Button1Click(Sender: TObject);
- begin
- if (dlg_open.Execute) then
- txt_source.Lines.LoadFromFile(
dlg_open.FileName); - end;
- procedure TForm1.Button5Click(Sender: TObject);
- var
- x:integer;
- s:String; sl:TStringList; n,p:integer;
- f:boolean;
- words:TStringList;//Массив количества слов в строке
- words_len:TStringList;//Массив длины последних слов строк
- begin
- //Создаем разделитель слов и необходимые массивы
- sl:=TStringList.Create;
- words:=TStringList.Create;
- words_len:=TStringList.Create;
- sl.Delimiter:=' ';
- p:=0;
- f:=false;
- //Проверяем расположены ли слова по возврастанию
- for x:=0 to txt_source.Lines.Count-1 do
- begins:=txt_source.Lines[x];
- sl.DelimitedText:=s;
- p:=0;
- //Массив количества слов в строках
- words.Add(IntToStr(sl.Count));
- //Непосредственно проверка на правильность возрастания
- for n:=0 to sl.Count-1 do
- begin
- if length(sl.Strings[n])>=p then
- p:=length(sl.Strings[n])
- else
- begin
- f:=true;
- break;
- end;
- end;
- if f then break;
//Массив длины последнего слова в строках
- words_len.Add(IntToStr(Length(
sl.Strings[sl.Count-1]))); - end;
- if f then
- begin
- messageBox(Form1.Handle,'Слова не расположены по возврастанию','',0);
- exit;
- end;
//Выделяем строки с наибольшим количеством слов
- n:=0;
- //Находим максимум количества слов
- for x:=0 to words.Count-1 do
- if StrToInt(words.Strings[x])>n then
- n:=StrToInt(words.Strings[x]);
//Непосредственно выделяем строки с наибольшим количеством слов
- for x:=0 to words.Count-1 do
- if StrToInt(words.Strings[x])=n then
begin
txt_source.Lines[x]:='*'+txt_
end;
//Выделяем строки с самым длинным словом
- n:=0;
- //Находим максимум длины слова
- for x:=0 to words_len.Count-1 do
- if StrToInt(words_len.Strings[x])
>n then n:=StrToInt(words_len.Strings[ x]);
//Непосредственно
выделяем строки с самым
- for x:=0 to words_len.Count-1 do
- if StrToInt(words_len.Strings[x])
=n then - begin
- txt_source.Lines[x]:='*'+txt_
source.Lines[x]+'*'; - end;
//Добавляем информацию о строках
- for x:=0 to txt_source.Lines.Count-1 do
- begin
//Проверяем нечетность
- if x mod 2<>0 then
- txt_source.Lines[x]:=IntToStr(
x)+txt_source.Lines[x]; - txt_source.Lines[x]:=txt_
source.Lines[x]+words.Strings[ x]; - end;
- end;
- procedure TForm1.Button3Click(Sender: TObject);
- begin
- if (dlg_save.Execute) then
- txt_source.Lines.SaveToFile(
dlg_save.FileName+'.txt'); - end;
- end.
Приложение В
Результаты выполнения программы
Исходный файл
Результирующий файл.