close

Вход

Забыли?

вход по аккаунту

?

04 Текст (2)

код для вставкиСкачать
СОДЕРЖАНИЕ
ВВЕДЕНИЕ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1 ТЕКСТ ПРОГРАММЫ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 ОПИСАНИЕ ПРОГРАММЫ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.1 Общие сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
2.2 Функциональное назначение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3 Описание логической структуры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
2.4 Используемые технические средства . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5 Вызов и загрузка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.6 Входные данные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.7 Выходные данные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
3 ОПИСАНИЕ ПРИМЕНЕНИЯ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1 Назначение программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3 Описание задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4 Входные и выходные данные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4 ТЕСТОВЫЙ ПРИМЕР . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
ЗАКЛЮЧЕНИЕ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ . . . . . . . . . . . . . . . . . . . . . 21
Подпись и дата
Взам. инв. №
Инв. № дубл.
Подпись и дата.
3.2 Условия применения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
ТГТУ.090105.011 ПЗ
Изм. Лист
Инв. № подл.
Разраб.
Проверил
№ документа
Дата
Лит.
Ковылин
Кулаков
Реценз.
Н. Контр.
Утвердил
Подпись
Иванова
Разработка программы
Последовательного поиска
в упорядоченной таблице
по алгоритму Т
Пояснительная записка
Лист
Листов
1
17
ИСиЗИ, гр. СИБ−21
ВВЕДЕНИЕ
«Начать с начала и продолжать, пока не будет найден искомый ключ;
затем остановиться. » Эта последовательная процедура представляет собой
очевидный путь поиска и может служить отличной отправной точкой для
рассмотрения множества алгоритмов поиска, поскольку они основаны на
последовательной процедуре. За кажущейся примитивностью
последовательного поиска скрывается ряд очень интересных и эффективных,
Инв. № подл.
Подпись и дата
Взам. инв. №
Инв. № дубл.
Подпись и дата.
несмотря на их простоту, идей.
Лист
ТГТУ.090105.011 ПЗ
Изм. Лист
№ документа
Подпись
Дата
6
10
1 ТЕКСТ ПРОГРАММЫ
Project2:
#include <vcl.h>
#pragma hdrstop
#include <tchar.h>
Инв. № подл.
Подпись и дата
Взам. инв. №
Инв. № дубл.
Подпись и дата.
USEFORM("Unit1.cpp", Form1);
WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
{
try
{
Application->Initialize();
Application->MainFormOnTaskBar = true;
Application->CreateForm(__classid(TForm1), &Form1);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
return 0;
}
GUI GUI = new GUI();
}
}
Лист
ТГТУ.090105.011 ПЗ
Изм. Лист
№ документа
Подпись
Дата
7
10
Unit1:
#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::Button2Click(TObject *Sender)
Взам. инв. №
Инв. № дубл.
{
Close();
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Инв. № подл.
Подпись и дата
const n=10;
AnsiString FileName;
int i
Лист
ТГТУ.090105.011 ПЗ
Изм. Лист
№ документа
Подпись
Дата
8
10
StringGrid1->ColCount=1;
StringGrid1->RowCount=1;
StringGrid1->Cells[0][0]="";
if (OpenDialog1->Execute()) {
FileName=OpenDialog1->FileName;
}
StringGrid1->RowCount=n+1;
StringGrid1->ColCount=2;
StringGrid1->FixedCols=1;
Подпись и дата.
StringGrid1->Cells[0][n]="";
for (i = 0; i < n; i++) {
StringGrid1->Cells[0][i]=IntToStr(i);
Инв. № дубл.
}
StringGrid1->Cells[0][i]=IntToStr(n+1);
Взам. инв. №
StringGrid1->Cols[1]->LoadFromFile(FileName);
LabeledEdit1->SetFocus();
Инв. № подл.
Подпись и дата
Button3->Visible=true;
}
void __fastcall TForm1::Button3Click(TObject *Sender)
Лист
ТГТУ.090105.011 ПЗ
Изм. Лист
№ документа
Подпись
Дата
9
10
{
int i;
int key;
key=StrToInt(LabeledEdit1->Text);
for (i = 0; i < StringGrid1->RowCount; i++) {
if ((key==StrToInt(StringGrid1->Cells[0][i]))
&&(key!=StrToInt(StringGrid1->RowCount-1)))
{
ShowMessage("Запись найдена: № "+StringGrid1->Cells[0][i]);
break;
}
Взам. инв. №
Инв. № дубл.
Подпись и дата.
}
if (i==StringGrid1->RowCount) ShowMessage("Запись не найдена!");
}
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Инв. № подл.
Подпись и дата
int n,m,i,j;
Лист
ТГТУ.090105.011 ПЗ
Изм. Лист
№ документа
Подпись
Дата
10
10
StringGrid1->ColCount=1;
StringGrid1->RowCount=1;
StringGrid1->Cells[0][0]="";
n=StrToInt(LabeledEdit2->Text
m=StrToInt(LabeledEdit3->Text);
StringGrid1->RowCount=n+1;
StringGrid1->ColCount=m;
StringGrid1->FixedCols=1;
Подпись и дата.
Randomize();
for (i = 0; i < n+1; i++) {
StringGrid1->Cells[0][i]=IntToStr(i); }
Взам. инв. №
Инв. № дубл.
for (j = 1; j <= m; j++) {
StringGrid1->Cells[j][n]="";
}
for (i = 0; i < n; i++) {
for (j = 1; j <= m; j++) {
Инв. № подл.
Подпись и дата
StringGrid1->Cells[j][i]=IntToStr(Random(n*m));
}
}
Лист
ТГТУ.090105.011 ПЗ
Изм. Лист
№ документа
Подпись
Дата
11
10
LabeledEdit1->SetFocus();
Button3->Visible=true;
}
void __fastcall TForm1::Button5Click(TObject *Sender)
{
int n,m,i,j;
n=StrToInt(LabeledEdit2->Text);
m=StrToInt(LabeledEdit3->Text);
Взам. инв. №
Инв. № дубл.
Подпись и дата.
StringGrid1->RowCount=n+1;
StringGrid1->ColCount=m;
StringGrid1->FixedCols=1;
for (i = 0; i < n+1; i++) {
StringGrid1->Cells[0][i]=IntToStr(i);
}
for (i = 0; i < n; i++) {
Инв. № подл.
Подпись и дата
for (j = 1; j <= m; j++) {
StringGrid1->Cells[j][i]="";
}
Лист
ТГТУ.090105.011 ПЗ
Изм. Лист
№ документа
Подпись
Дата
12
10
}
LabeledEdit1->SetFocus();
Button3->Visible=true;
Инв. № подл.
Подпись и дата
Взам. инв. №
Инв. № дубл.
Подпись и дата.
}
Лист
ТГТУ.090105.011 ПЗ
Изм. Лист
№ документа
Подпись
Дата
13
10
9
2 ОПИСАНИЕ ПРОГРАММЫ
2.1 Общие сведения
Данная программа реализует алгоритм Т: последовательный поиск в
упорядоченной таблице.
Средой
разработки
данной
программы
является
объектно-
ориентированный язык программирования С++.
Язык
С++
сочетает
свойства
как
высокоуровневых,
так
и
низкоуровневых языков. В сравнении с его предшественником – языком С –
наибольшее внимание уделено поддержке объектно-ориентированного и
обобщенного программирования.
Являясь одним из самых популярных языков программирования, С++
широко используется для разработки программного обеспечения. Область
прикладных программ, драйверов устройств, высокопроизводительных
серверов, а также развлекательных приложений. С++ оказал огромное
влияние на другие языки программирования, в первую очередь на Java и C#.
Инв. № подл.
Подпись и дата
Взам. инв. №
Инв. № дубл.
Подпись и дата.
его применения включает создание операционных систем, разнообразных
Лист
ТГТУ.090105.011 ПЗ
Изм. Лист
№ документа
Подпись
Дата
14
10
2.2 Функциональное назначение
Назначение программы, реализующей алгоритм последовательного
поиска в упорядоченной таблице, заключается в:
1.
Переборе ключей в порядке возрастания.
2.
Нахождении или не нахождении искомого ключа.
2.3 Описание логической структуры
Алгоритм Т.
K1 < K2 < … < KN – ключи записей R1, R2, … , RN;
i – переменная-счетчик.
Т1. [Инициализация.] Установить i  1.
Т2. [Сравнение.] Если K ≤ Ki то к Т4.
Т3. [Продвижение.] Увеличить i на 1 и к Т2.
Подпись и дата.
Т4.[Равенство?] Если K = Ki, алгоритм заканчивается успешно. В
противном случае – неудачное завершение алгоритма.
Алгоритм предназначен для поиска с заданным ключом K. Для
Инв. № дубл.
фиктивная запись вида RN+1 с ключом вида KN+1 = ∞ > K. В предположении,
Взам. инв. №
удобства и ускорения работы алгоритма в программе присутствует
последовательного поиска; при неудачном же поиске отсутствие нужного
что все входные аргументы-ключи равновероятны, алгоритм по скорости
работы в случае успешного поиска аналогичен алгоритму быстрого
Инв. № подл.
Подпись и дата
ключа определяется примерно вдвое быстрей.
Лист
ТГТУ.090105.011 ПЗ
Изм. Лист
№ документа
Подпись
Дата
15
10
2.4 Используемые технические средства
Процессор: AMD Athlon(tm) 8450 Triple-Core Processor 2.10 ГГц
Оперативная память: 2,00 Гб
Жесткий диск: 350 Гб
2.5 Вызов и загрузка
Адрес загрузки: D: Алгоритм Т.exe
Сведения об использовании оперативной памяти: 2,1 Мб
Объем программы: 6 Кб
2.6 Входные данные
2.7 Выходные данные
12
Программа последовательного поиска в упорядоченной таблице по
алгоритму Т выдает сообщение о найденном или о не найденном ключе,
заданном пользователем.
Инв. № подл.
Подпись и дата
Взам. инв. №
Инв. № дубл.
Подпись и дата.
Входными данными является задаваемая пользователем таблица.
Лист
ТГТУ.090105.011 ПЗ
Изм. Лист
№ документа
Подпись
Дата
16
10
3 ОПИСАНИЕ ПРИМЕНЕНИЯ
3.1 Назначение программы
Назначение данной программы заключается в последовательном13
поиске в упорядоченной таблице.
Алгоритм достаточно эффективен и прост, если требуется искать
заданный пользователем ключ в упорядоченной таблице. Если таблица не
является упорядоченной, то лучше пользоваться другими алгоритмами.
3.2 Условия применения
Данный алгоритм универсален для любой упорядоченной таблицы.
3.3 Описание задачи
таблице ключ K, введенный пользователем.
3.4 Входные и выходные данные
Входными данными является задаваемая пользователем таблица.
Программа выдает сообщение о найденном или о не найденном
ключе, заданном пользователем.
Инв. № подл.
Подпись и дата
Взам. инв. №
Инв. № дубл.
Подпись и дата.
Дано таблица, определяемая пользователем. Необходимо найти в
Лист
ТГТУ.090105.011 ПЗ
Изм. Лист
№ документа
Подпись
Дата
17
10
14
4 ТЕСТОВЫЙ ПРИМЕР
Дана таблица. Выяснить, принадлежит ли таблице ключ 5.
Входные данные:
Файл ( Адрес : «D:/table.txt»)
Инв. № подл.
Подпись и дата
Взам. инв. №
Инв. № дубл.
Подпись и дата.
Сам файл:
Лист
ТГТУ.090105.011 ПЗ
Изм. Лист
№ документа
Подпись
Дата
18
10
Выходные данные: Запись найдена: № 5
Инв. № подл.
Подпись и дата
Взам. инв. №
Инв. № дубл.
Подпись и дата.
Результат работы программы:
Лист
ТГТУ.090105.011 ПЗ
Изм. Лист
№ документа
Подпись
Дата
19
10
ЗАКЛЮЧЕНИЕ
В ходе данной работы мы убедились, что данный алгоритм по поиску
в упорядоченной таблице крайне прост, но, если таблица не упорядочена,
Инв. № подл.
Подпись и дата
Взам. инв. №
Инв. № дубл.
Подпись и дата.
нужно использовать другой, более сложный алгоритм.
16
Лист
ТГТУ.090105.011 ПЗ
Изм. Лист
№ документа
Подпись
Дата
20
10
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
1. Стандарт предприятия. Проекты (работы) дипломные и курсовые.
Правила оформления. − Тамбов: Изд-во ТГТУ, 2003. − 40 с.
2.
Единая
система
программной
документации.
−
М.:
Государственный комитет СССР по стандартам, 1988. − 144 с.
3. Кнут, Д. Искусство программирования для ЭВМ. Т. 1. Основные
Инв. № подл.
Подпись и дата
Взам. инв. №
Инв. № дубл.
Подпись и дата.
алгоритмы / Д. Кнут. – М. : Мир, 1976. – 736 с.
Лист
ТГТУ.090105.011 ПЗ
Изм. Лист
№ документа
Подпись
Дата
21
17
10
Документ
Категория
Программирование, Базы данных
Просмотров
13
Размер файла
251 Кб
Теги
текст
1/--страниц
Пожаловаться на содержимое документа