ИНФОРМАТИКА / ЛАБ№2 / ЛАБ№2_отчет
.docМИНОБРНАУКИ РОССИЙСКОЙ ФЕДЕРАЦИЙ
Федеральное государственное бюджетное образовательное учреждение
«Ижевский государственный технический университет имени
М.Т. Калашникова»
Кафедра АСОИУ
ОТЧЕТ
По дисциплине «ИНФОРМАТИКА»
Лабораторная работа №2
Выполнил:
Студент группы Б1-782-1з Жигалов А.С.
Проверил:
Преподаватель Ю.В. Шибанова
Ижевск 2012 год
Содержание
Введение. 2
Блок схема программы 6
Скриншоты 7
Введение.
Передо мной была поставлена цель, создать программу для поиска слова в тексте бинарным способом и методом перебора. Для её решения я вывел несколько задач:
-
Создать подпрограмму для поиска методом перебора.
-
Создать подпрограмму бинарного поиска текста.
-
Создать простой и приятный для пользователя интерфейс с возможностьб загрузки и сохранения текстовых файлов(*.txt).
Для достижения этой цели я использовал программный продукт Delphi 7. Характеристики ноутбука, на котором производилось создание и тестирование программы:
Процессор Intel® Core™ i3-2370M Processor (3M Cache, 2.40 GHz);
ОЗУ 8 Гб;
Видеокарта NVIDIA GeForce GT 650M;
OS Windows 7 x64 bit
Описание программы.
Для написания программы было решено написать процедуры «Загрузки текста», «Сортировки текста в массиве», «Поиска текста в массиве», «Очистки массива». Для более удобного восприятия программы были так же подключёны следующие модули: Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls.
В качестве дизайна было решено расположить последовательно следующие поля: входные данные "для ввода/загрузкитекста", "искомый текст", и поле для вывода отсортированного строкового массива. А также кнопки загрузки, очистки, сортировки, выхода, сохранения и поиска.
Исходный код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Memo1: TMemo;
OpenDialog1: TOpenDialog;
Memo2: TMemo;
Button5: TButton;
SaveDialog1: TSaveDialog;
Edit1: TEdit;
Button6: TButton;
procedure Button2Click(Sender: TObject); //Сортировать
procedure Button1Click(Sender: TObject); //Очистить
procedure Button4Click(Sender: TObject); //Выход
procedure Button3Click(Sender: TObject); //Загрузить текст
procedure Button5Click(Sender: TObject); //Сохранить
procedure Button6Click(Sender: TObject); //Поиск
private
{ Private declarations }
public
{ Public declarations }
end;
const bk=['А'..'я','Ё','ё']; //все буквы файла
var Form1: TForm1;
t:TStringlist;//переменная для хранения и сортировки слов
implementation
{$R *.dfm}
//процедура загрузки файла (любой файл формата txt)
procedure TForm1.Button3Click(Sender: TObject);
begin
if Opendialog1.Execute then
//помещаем текст в Memo1
Memo1.Lines.LoadFromFile(Opendialog1.FileName);
end;
//Процедура очистки Memo1 и Memo2
procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.Text:='';
memo2.Text:='';
end;
//сортировка слов
procedure TForm1.Button2Click(Sender: TObject);
var s,s1:string;
i,j,k:integer;
begin
t:=TStringlist.Create; //создаем экземпляр класса
t.Sorted:=true; //подключаем сортировку при добавлении
for i:=0 to Memo1.Lines.Count-1 do
begin
s:=Memo1.Lines.Strings[i];//просматриваем строки
j:=1;
while(j<=length(s)) do //выбираем только слова из букв
if (s[j] in bk) and((j=1)or not(s[j-1] in bk)) then
begin
k:=j;
s1:='';
while(k<=length(s))and(s[k] in bk) do
begin
s1:=s1+s[k];
k:=k+1;
end;
t.Add(s1);
j:=j+length(s1);
end
else j:=j+1;
end;
for i:=0 to t.Count-1 do
Memo2.Lines.Add(t.Strings[i]);//выведем слова
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
if savedialog1.Execute then
memo2.Lines.SaveToFile(savedialog1.FileName);
end;
procedure TForm1.Button6Click(Sender: TObject);
var
FindStr:string; // Искомая строка
i,j:integer; // Счетчик для цикла
begin
findStr:=Edit1.Text; // Записываем в find текст из Edit
For i:=0 to Memo1.Lines.Count-1 do // Запускаем цикл поиска строки
If Pos(FINDStr, Memo1.Lines.Text)<>0
Then
Begin
Memo1.SetFocus();
Memo1.SelStart:=Pos(FINDStr,Memo1.Lines.Text)-1;
Memo1.SelLength:=Length(FINDStr);
End;
end;
end.
Блок схема программы
Да Нет
Сортировка
Поиск текста
Выделяем найденное слово
Да Нет
Скриншоты