WWW.REFERATCENTRAL.ORG.UA - Я ТУТ НАВЧАЮСЬ

... відкритий, безкоштовний архів рефератів, курсових, дипломних робіт

ГоловнаІнформатика, Компютерні науки → Демонстрація сортування методом спливаючих бульбашок - Курсова робота

Демонстрація сортування методом спливаючих бульбашок - Курсова робота

таймер:
Timer1.Enabled:=False;
Тепер перейдемо до розробки безпосередньо частини де виконуватиметься сортування даних .
2.3.Розробка частини для виконання сортування.
Частина буде містити сім компонентів Edit для введення даних для сортування.В кожного компонента максимальну кількіст символів які будть введені обмеженні до двох, шляхом вказання значення 2 в властивості MaxLength.Для авоматичного переходу на наступий компонент в обробниках події onChange кожного компонента помістимо код:
if Length((Sender as TEdit).Text)=2 then
keybd_event(VK_TAB,0,0,0);
Тобто компонент який викликав даний код буде розглядатися як компонент TEdit.При введенні більш ніж двох елементів фокус введнення буде автоматично переходити на наступний компонент.
Приступимо до занесення даних в масив який буде сортуватися.
Запустивши цикл обробки даних будемо перевіряти коректність введених даних користувачем в захищеному блоці:
for i:=1 to 7 do
try
b[i]:=StrToInt((FindComponent('Edit'+IntToStr(i)) as TEdit).Text);
Flag:=True;
except
ShowMessage('Перевірте дані в полі № '+IntToStr(i));
Flag:=False;
end;
В разі коректності введених даних значення змінять тип з String на Integer та занесуться в масив,коли ж дані не правильні виведеться повідомлення в якому полі введені не правильні дані.Змінна Flag буде визначати чи правильно введені дані в масив.При умові коректної обробки даних змінна міститиме значення True і далі розпочнеться сорутвання масиву.
for k:=1 to 6 do
for i:=1 to 7-k do
if b[i]>b[i+1] then
begin
Application.ProcessMessages;
if E then Exit;
d:=b[i+1];
b[i+1]:=b[i];
b[i]:=d;
Label9.Caption:='';
for j:=1 to 7 do
begin
Label9.Caption:=Label9.Caption+IntToStr(b[j])+' ';
sleep(200);
end;
end;
Перший цикл буде переглядати масив ,другий цикл буде розміщувати кожен наступний елемент на відповідну позицію шляхом порівняння з наступим.Перед порівнянням обробляться всі повідомлення які передались програмі та перевіриться необхіність виходу з програми в залежкності від значення Е.
Після переміщення кожного елементу буде виводиться поточне положення елементів в масиві для візуалізації переміщень значень в масиві.
for j:=1 to 7 do
begin
Label9.Caption:=Label9.Caption+IntToStr(b[j])+' ';
sleep(200);
end;
Після остаточного розміщення всіх елементів виведеться відсортований масив на екран.
III Лістинг програмного коду.
3.1.Головний модуль
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
3.2.Модуль програми
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, XPMan, ExtCtrls, Mask, jpeg;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
XPManifest1: TXPManifest;
Timer1: TTimer;
Button1: TButton;
Button3: TButton;
Label9: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Button4: TButton;
Label10: TLabel;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Edit2Change(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
Var
f:textfile;
E:Boolean;
k:integer;
procedure TForm1.FormCreate(Sender: TObject);
begin
Label1.Font.Color:=rgb(200,190,198);
Label2.Font.Color:=rgb(120,110,96);
Label3.Font.Color:=rgb(45,54,50);
Label6.Font.Color:=rgb(45,54,50);
Label7.Font.Color:=rgb(120,110,96);
Label8.Font.Color:=rgb(200,190,198);
AssignFile(f,'text.txt');
Reset(f);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
s:string;
begin
Readln(f,s);
if s='' then Timer1.Enabled:=False;
Label1.Caption:=Label2.Caption;
Label2.Caption:=Label3.Caption;
Label3.Caption:=Label4.Caption;
Label4.Caption:=Label5.Caption;
Label5.Caption:=Label6.Caption;
Label6.Caption:=Label7.Caption;
Label7.Caption:=Label8.Caption;
Label8.Caption:=s;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
Com:TComponent;
begin
Reset(f);
for i:=1 to 8 do
begin
Com:=FindComponent('Label'+inttostr(i));
(Com as TLabel).Caption:='';
end;
Timer1.Enabled:=True;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
Flag:Boolean;
b:array[1..7]of integer;
i,d,j:integer;
begin
Label9.Caption:='';
for i:=1 to 7 do
try
b[i]:=StrToInt((FindComponent('Edit'+IntToStr(i)) as TEdit).Text);
Flag:=True;
except
ShowMessage('Перевірте дані в полі № '+IntToStr(i));
Flag:=False;
end;
if not(Flag) then exit else
for k:=1 to 6 do
for i:=1 to 7-k do
if b[i]>b[i+1] then
begin
Application.ProcessMessages;
if E then Exit;
d:=b[i+1];
b[i+1]:=b[i];
b[i]:=d;
Label9.Caption:='';
for j:=1 to 7 do
begin
Label9.Caption:=Label9.Caption+IntToStr(b[j])+' ';
sleep(200);
end;
end;
Label9.Caption:='';
for j:=1 to 7 do
Label9.Caption:=Label9.Caption+IntToStr(b[j])+' ';
end;
procedure TForm1.Edit2Change(Sender: TObject);
begin
if Length((Sender as TEdit).Text)=2 then
keybd_event(VK_TAB,0,0,0);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Timer1.Enabled:=False;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
E:=True;
end;
end.
Висновок
Результатом створення курсової роботи стала програма для демонстрації сортування методом "бульбашок".Програма має простий інтерфейс ,зрозумілий кожному , та розриває як теоретичну так і практичну сторони сортування.
Теоретична частина містить детальний опис методу сортування, а практична дає можливість побачити на власні очі процес сорування масиву причому ввівши власні дані для сортування.
До основни переваг програми можна віднести:
1. Простий та зручний інтерфейс;
2. Високу інформативність програми;
3. Реалізована можжливість змінити теоретичні частину виконашши зміни в файлі text.txt
4. Можливість використання для навчання в школах та вищих навчальних закладах.
Проте існують і недоліки:
1. Програма демонструє роботу не найефективнішого методу сортування;
2. Програму не можна використати для демонстрування роботи інших методів.
Список використаних джерел та програмних засобів
Інтернет сайти:
1. www.citforum.ru
2. http://realcoding.net
3. www.code.net
4. Delphi 7 EnterPrise Edition
5. Методи сортування та пошуку С.Д.Кузнецов, Центр Інофрмаційних технолгій , 2001р.
Loading...

 
 

Цікаве