5.Описание работы программы.
В диалоге программы имеется одно поле EDIT, в которое пользователь может ввести количество элементов создаваемого массива.
При нажатии на кнопку «Сгенерировать и отсортировать массив», программа создает массив из случайных чисел, и сортирует его методом выборки.
Сгенерированный и отсортированный массив выводятся в поля Label2 и Label3 соответственно.
Построенные графики массивов выводятся в графические поля Image1 и Image2.
При нажатии на кнопку «сохранить массив», оба массива сохраняются в текстовый файл, выбираемый пользователем, с помощью визуально невидимого компонента Memo1. Сгенерированный и отсортированный массивы копируются в текстовое поле Memo1, и сохраняются в текстовый файл с помощью метода SaveToFile().
6.Вывод.
В ходе выполнения курсовой работы была изучена среда разработки Borland C++ Builder. C++ Builder — это среда быстрой разработки, в которой в качестве языка программирования используется язык C++ Builder.
В результате работы была разработана программа для реализации алгоритма сортировки выбором. Результат был представлен графически в виде двух наборов вертикальных линий: первый – до сортировки, второй – после. Результат записан в файл. О-сложность данного алгоритма– О().
7.Список используемой литературы.
Громов Ю.Ю.,Татаренко С.И. Программирование на языке СИ:
Учебное пособие. -Тамбов,1995.- 169 с.
Г. Шилдт «Самоучитель С++» - СПб.:БХВ-Петербург. 2001. –
670с.
Культин Н.Б. С/С++ в задачах и примерах. – СПб.: БХВ-
Петербург, 2001. – 288с.
Культин Н.Б. Самоучитель С++ Builder. – СПб.: БХВ-Петербург, 2005. – 320 с. :ил.
Приложение.
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int a[50]; //max kol-vo elementov v massive
int x; //kol-vo elementov v massive
int k; //schetchik
int c; //schetchik2
int min; //minimum
int buf; //bufer
int j;
x=StrToInt(Edit1->Text);
randomize();
Memo1->Clear();
Label2->Caption="";
Label3->Caption="";
Image1->Canvas->Brush->Color=clWhite;
Image1->Canvas->Rectangle(0,0,600,300);
Image1->Canvas->Brush->Color=clBlack;
Image2->Canvas->Brush->Color=clWhite;
Image2->Canvas->Rectangle(0,0,600,300);
Image2->Canvas->Brush->Color=clBlack;
for (k=0;k<x;k++)
{
a[k]=random(100)-50;
Label2->Caption= Label2->Caption+IntToStr(a[k])+" ";
Image1->Canvas->MoveTo(10+(k+1)*20,55);
Image1->Canvas->LineTo(10+(k+1)*20,55-a[k]);
Image1->Canvas->Brush->Style=bsClear;
Image1->Canvas->Font->Color=clGreen;
Image2->Canvas->Brush->Style=bsClear;
Image2->Canvas->Font->Color=clGreen;
Image1->Canvas->TextOutA(5+(k+1)*20,57,k+1);
}
for (c=0;c<x-1;c++)
{
min=c;
for (j=c+1; j<x; j++)
if (a[j]<a[min]) min=j;
buf=a[c];
a[c]=a[min];
a[min]=buf;
}
for (k=0; k<x; k++)
Label3->Caption=Label3->Caption+a[k]+" ";
Memo1->Lines->Add("Неотсортированный массив:");
Memo1->Lines->Add(Label2->Caption);
Memo1->Lines->Add("Отсортированный массив:");
Memo1->Lines->Add(Label3->Caption);
Image1->Canvas->TextOutA(3,5,"Y");
Image1->Canvas->TextOutA(500,57,"X");
Image1->Canvas->MoveTo(0,55);
Image1->Canvas->LineTo(500,55);
Image1->Canvas->MoveTo(10,5);
Image1->Canvas->LineTo(10,105);
Image2->Canvas->TextOutA(3,5,"Y");
Image2->Canvas->TextOutA(500,57,"X");
Image2->Canvas->MoveTo(0,55);
Image2->Canvas->LineTo(500,55);
Image2->Canvas->MoveTo(10,5);
Image2->Canvas->LineTo(10,105);
for (k=0; k<x; k++)
{
Image2->Canvas->MoveTo(10+(k+1)*20,55);
Image2->Canvas->LineTo(10+(k+1)*20,55-a[k]);
Image2->Canvas->Brush->Style=bsClear;
Image2->Canvas->Font->Color=clGreen;
Image2->Canvas->TextOutA(5+(k+1)*20,57,k+1);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
if (SaveDialog1->Execute())
{
Memo1->Lines->SaveToFile(SaveDialog1->FileName);
}
}
//---------------------------------------------------------------------------