Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ИНФОРМАТИКА / ЛАБ№2 / ЛАБ№2_отчет

.doc
Скачиваний:
7
Добавлен:
14.03.2015
Размер:
124.42 Кб
Скачать

МИНОБРНАУКИ РОССИЙСКОЙ ФЕДЕРАЦИЙ

Федеральное государственное бюджетное образовательное учреждение

«Ижевский государственный технический университет имени

М.Т. Калашникова»

Кафедра АСОИУ

ОТЧЕТ

По дисциплине «ИНФОРМАТИКА»

Лабораторная работа №2

Выполнил:

Студент группы Б1-782-1з Жигалов А.С.

Проверил:

Преподаватель Ю.В. Шибанова

Ижевск 2012 год

Содержание

Введение. 2

Блок схема программы 6

Скриншоты 7

Введение.

Передо мной была поставлена цель, создать программу для поиска слова в тексте бинарным способом и методом перебора. Для её решения я вывел несколько задач:

  1. Создать подпрограмму для поиска методом перебора.

  2. Создать подпрограмму бинарного поиска текста.

  3. Создать простой и приятный для пользователя интерфейс с возможностьб загрузки и сохранения текстовых файлов(*.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.

Блок схема программы

Да Нет

Сортировка

Поиск текста

Выделяем найденное слово

Да Нет

Скриншоты

Соседние файлы в папке ЛАБ№2