Главная   Заказать работу Алгоритмы и организация данных | лабораторная работа


Бесплатные Рефераты, дипломные работы, курсовые работы, доклады - скачать бесплатно Бесплатные Рефераты, дипломные работы, курсовые работы, доклады и т.п - скачать бесплатно.
 Поиск: 


Категории работ:
Рефераты
Дипломные работы
Курсовые работы
Контрольные работы
Доклады
Практические работы
Шпаргалки
Аттестационные работы
Отчеты по практике
Научные работы
Авторефераты
Учебные пособия
Статьи
Книги
Тесты
Лекции
Творческие работы
Презентации
Биографии
Монографии
Методички
Курсы лекций
Лабораторные работы
Задачи
Бизнес Планы
Диссертации
Разработки уроков
Конспекты уроков
Магистерские работы
Конспекты произведений
Анализы учебных пособий
Краткие изложения
Материалы конференций
Сочинения
Эссе
Анализы книг
Топики
Тезисы
Истории болезней
 




Алгоритмы и организация данных - лабораторная работа


Категория: Лабораторные работы
Рубрика: Программирование, компьютеры и кибернетика, ИТ технологии
Размер файла: 923 Kb
Количество загрузок:
150
Количество просмотров:
1445
Описание работы: лабораторная работа на тему Алгоритмы и организация данных
Подробнее о работе: Читать или Скачать
ВНИМАНИЕ: Администрация сайта не рекомендует использовать бесплатные Лабораторные работы для сдачи преподавателю, чтобы заказать уникальные Лабораторные работы, перейдите по ссылке Заказать Лабораторные работы недорого
Смотреть
Скачать
Заказать



Федеральное агентство по образованию РФ

ФГОУ СПО «Перевозский строительный колледж»

Лабораторная работа по дисциплине «Базы данных»

на тему: «АЛГОРИТМЫ И ОРГАНИЗАЦИЯ ДАННЫХ»

Подготовил студент 351 группы: Дмитриев А.С.

Проверила: Патлай Н.А.

Задание 3.1

Напишите программу последовательного поиска в последовательном неотсортированном массиве реквизитов единственного значения q. Используйте любой доступный вам язык программирования.

Решение:

Код программы:

unit Proga;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Grids, jpeg, ExtCtrls;

type

TForm1 = class(TForm)

StringGrid1: TStringGrid;

Edit1: TEdit;

Button1: TButton;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Image1: TImage;

Label2: TLabel;

Label1: TLabel;

Label3: TLabel;

procedure Button1Click(Sender: TObject);

procedure FormActivate(Sender: TObject);

procedure Edit2KeyPress(Sender: TObject; var Key: Char);

procedure Edit3KeyPress(Sender: TObject; var Key: Char);

procedure Edit4KeyPress(Sender: TObject; var Key: Char);

procedure Edit5KeyPress(Sender: TObject; var Key: Char);

procedure Edit6KeyPress(Sender: TObject; var Key: Char);

procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);

procedure Edit1KeyPress(Sender: TObject; var Key: Char);

procedure StringGrid1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

{поиск в массиве перебором}

procedure TForm1.Button1Click(Sender: TObject);

Const

SIZE=5;

Var

a:Array [1..SIZE] of Integer; // массив

obr:Integer; // образец для поиска

found:Boolean; // TRUE - совпадение образца с элементом массива

i:Integer; // индекс элемента массива

begin

If Length (StringGrid1.Cells[0,0])>3 then

begin

ShowMessage (Ошибка в P (1) !!! Нельзя ввести число больше "999".);

StringGrid1.Cells[0,0]:=;

Exit;

end;

If Length (StringGrid1.Cells[1,0])>3 then

begin

ShowMessage (Ошибка в P (2) !!! Нельзя ввести число больше "999".);

StringGrid1.Cells[1,0]:=;

Exit;

end;

If Length (StringGrid1.Cells[2,0])>3 then

begin

ShowMessage (Ошибка в P (3) !!! Нельзя ввести число больше "999".);

StringGrid1.Cells[2,0]:=;

Exit;

end;

If Length (StringGrid1.Cells[3,0])>3 then

begin

ShowMessage (Ошибка в P (4) !!! Нельзя ввести число больше "999".);

StringGrid1.Cells[3,0]:=;

Exit;

end;

If Length (StringGrid1.Cells[4,0])>3 then

begin

ShowMessage (Ошибка в P (5) !!! Нельзя ввести число больше "999".);

StringGrid1.Cells[4,0]:=;

Exit;

end;

If Length (Edit1.Text)>3 then

begin

ShowMessage (Ошибка в "Образец" !!! Нельзя ввести число больше "999".);

Edit1.Text:=;

Exit;

end;

If (StringGrid1.Cells[0,0]=) or (StringGrid1.Cells[1,0]=) or (StringGrid1.Cells[2,0]=) or (StringGrid1.Cells[3,0]=) or (StringGrid1.Cells[4,0]=) then

begin

ShowMessage (Введены не все элементы уравнения. ПРОДОЛЖЕНИЕ НЕВОЗМОЖНО!);

Exit;

end;

If (Edit1.Text=) then

begin

ShowMessage (Не введен образец. ПРОДОЛЖЕНИЕ НЕВОЗМОЖНО!);

Exit;

end;

// ввод массива

For i:=1 to SIZE do

a[i]:=StrToInt (StringGrid1.Cells[i-1,0]);

If Length (StringGrid1.Cells[0,0])=0 then

begin

ShowMessage (Введены не все элементы массива!!!);

Exit;

end;

// ввод образца для поиска

obr:=StrToInt (Edit1.Text);

// поиск

found:=FALSE; // пусть нужного элемента в массиве нет

i:=1;

Repeat

If a[i]=obr then

found:=TRUE else

i:=i+1;

Until (i>SIZE) or (found=TRUE);

If found then

ShowMessage (Совпадение с элементом номер P (+IntToStr (i)+).+#13+Поиск успешен.) else

ShowMessage (Совпадение с образцом нет.);

end;

procedure TForm1.FormActivate(Sender: TObject);

begin

Edit2.Text:= P (1) ;

Edit3.Text:= P (2) ;

Edit4.Text:= P (3) ;

Edit5.Text:= P (4) ;

Edit6.Text:= P (5) ;

end;

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);

begin

Key:=Chr(0);

end;

procedure TForm1.Edit3KeyPress(Sender: TObject; var Key: Char);

begin

Key:=Chr(0);

end;

procedure TForm1.Edit4KeyPress(Sender: TObject; var Key: Char);

begin

Key:=Chr(0);

end;

procedure TForm1.Edit5KeyPress(Sender: TObject; var Key: Char);

begin

Key:=Chr(0);

end;

procedure TForm1.Edit6KeyPress(Sender: TObject; var Key: Char);

begin

Key:=Chr(0);

end;

procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);

begin

Case Key of

0..9:;

#8:;

else

Key:=Chr(0);

end;

end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

Case Key of

0..9:;

#8:;

else

Key:=Chr(0);

end;

end;

procedure TForm1.StringGrid1Click(Sender: TObject);

begin

If StringGrid1.Cells[0,0]=StringGrid1.Cells[1,0] then

begin

If Length (StringGrid1.Cells[0,0])<>0 then

begin

ShowMessage (Нельзя ввести одинаковые числа!!!);

end;

If Length (StringGrid1.Cells[1,0])<>0 then

begin

ShowMessage (Нельзя ввести одинаковые числа!!!);

end;

StringGrid1.Cells[0,0]:=;

StringGrid1.Cells[1,0]:=;

end;

If StringGrid1.Cells[0,0]=StringGrid1.Cells[2,0] then

begin

If Length (StringGrid1.Cells[0,0])<>0 then

begin

ShowMessage (Нельзя ввести одинаковые числа!!!);

end;

If Length (StringGrid1.Cells[2,0])<>0 then

begin

ShowMessage (Нельзя ввести одинаковые числа!!!);

end;

StringGrid1.Cells[0,0]:=;

StringGrid1.Cells[2,0]:=;

end;

If StringGrid1.Cells[0,0]=StringGrid1.Cells[3,0] then

begin

If Length (StringGrid1.Cells[0,0])<>0 then

begin

ShowMessage (Нельзя ввести одинаковые числа!!!);

end;

If Length (StringGrid1.Cells[3,0])<>0 then

begin

ShowMessage (Нельзя ввести одинаковые числа!!!);

end;

StringGrid1.Cells[0,0]:=;

StringGrid1.Cells[3,0]:=;

end;

If StringGrid1.Cells[0,0]=StringGrid1.Cells[4,0] then

begin

If Length (StringGrid1.Cells[0,0])<>0 then

begin

ShowMessage (Нельзя ввести одинаковые числа!!!);

end;

If Length (StringGrid1.Cells[4,0])<>0 then

begin

ShowMessage (Нельзя ввести одинаковые числа!!!);

end;

StringGrid1.Cells[0,0]:=;

StringGrid1.Cells[4,0]:=;

end;

If StringGrid1.Cells[1,0]=StringGrid1.Cells[2,0] then

begin

If Length (StringGrid1.Cells[1,0])<>0 then

begin

ShowMessage (Нельзя ввести одинаковые числа!!!);

end;

If Length (StringGrid1.Cells[2,0])<>0 then

begin

ShowMessage (Нельзя ввести одинаковые числа!!!);

end;

StringGrid1.Cells[1,0]:=;

StringGrid1.Cells[2,0]:=;

end;

If StringGrid1.Cells[1,0]=StringGrid1.Cells[3,0] then

begin

If Length (StringGrid1.Cells[1,0])<>0 then

begin

ShowMessage (Нельзя ввести одинаковые числа!!!);

end;

If Length (StringGrid1.Cells[3,0])<>0 then

begin

ShowMessage (Нельзя ввести одинаковые числа!!!);

end;

StringGrid1.Cells[1,0]:=;

StringGrid1.Cells[3,0]:=;

end;

If StringGrid1.Cells[1,0]=StringGrid1.Cells[4,0] then

begin

If Length (StringGrid1.Cells[1,0])<>0 then

begin

ShowMessage (Нельзя ввести одинаковые числа!!!);

end;

If Length (StringGrid1.Cells[4,0])<>0 then

begin

ShowMessage (Нельзя ввести одинаковые числа!!!);

end;

StringGrid1.Cells[1,0]:=;

StringGrid1.Cells[4,0]:=;

end;

If StringGrid1.Cells[2,0]=StringGrid1.Cells[3,0] then

begin

If Length (StringGrid1.Cells[2,0])<>0 then

begin

ShowMessage (Нельзя ввести одинаковые числа!!!);

end;

If Length (StringGrid1.Cells[3,0])<>0 then

begin

ShowMessage (Нельзя ввести одинаковые числа!!!);

end;

StringGrid1.Cells[2,0]:=;

StringGrid1.Cells[3,0]:=;

end;

If StringGrid1.Cells[2,0]=StringGrid1.Cells[4,0] then

begin

If Length (StringGrid1.Cells[2,0])<>0 then

begin

ShowMessage (Нельзя ввести одинаковые числа!!!);

end;

If Length (StringGrid1.Cells[4,0])<>0 then

begin

ShowMessage (Нельзя ввести одинаковые числа!!!);

end;

StringGrid1.Cells[2,0]:=;

StringGrid1.Cells[4,0]:=;

end;

If StringGrid1.Cells[3,0]=StringGrid1.Cells[4,0] then

begin

If Length (StringGrid1.Cells[3,0])<>0 then

begin

ShowMessage (Нельзя ввести одинаковые числа!!!);

end;

If Length (StringGrid1.Cells[4,0])<>0 then

begin

ShowMessage (Нельзя ввести одинаковые числа!!!);

end;

StringGrid1.Cells[3,0]:=;

StringGrid1.Cells[4,0]:=;

end;

end;

end.

Скриншот:

Задание 3.9

Реализует ли приведенная ниже программа алгоритм сортировки простым выбором?

PROGRAM Simple_Select;

Const N=400;

Var J,I,K:Integer;

Max,Ind: Integer;

A: Array [0..N] of Integer;

BEGIN

For I:=0 to N do

Begin

A[I]:=Random (N);

Write (A[I]:4);

end;

For J:=N downto 1 do

begin

Max:=A[J];

Ind := J;

For I:=J downto 0 do

If A[I]>Max then

Begin

Max:=A[I];

Ind:=I;

end;

If Ind<>J then

Begin

К:=A[Ind];

A[Ind]:=A[J];

A[J]:=К;

End;

end;

For I:=0 to N do

Write (A[I]:4);

END.

Решение:

Скриншот:

Приведенная программа не реализует алгоритм сортировки простым выбором.

Задание 3.12

Напишите программу индексирования основного файла по одному реквизиту. Используйте любой доступный вам язык программирования.

Решение:

Индексирование основного файла по одному реквизиту будем делать на примере вот этой таблицы:

А

В

С

1

Первый завод

Стул

2

Второй завод

Стол

3

Третий завод

Компьютер

Индексирование файла будем делать по реквизиту «A».

Индексный файл будет выглядеть так:

А

С

1

Стул

2

Стол

3

Компьютер

Алгоритм программы:

1. Запуск программы.

2. Ввод размеров таблицы, т.е. количество столбцов и строк.

3. Ввод всех записей таблицы.

4. Запись этой таблицы в файл «Baza.txt».

5. Ввод названия реквизитов, по которым нужно индексировать файл.

6. Проверка всех записей основного реквизита на упорядоченность, т.е. расположение по возрастанию или убыванию (по алфавиту или по цифрам):

1) Если все записи упорядочены, то:

1) Если записей в реквизите меньше 10, то в индексе необходимо помещать указатель на каждую запись.

2) Если записей в реквизите больше 10, то в индексе необходимо помещать указатель не на каждую запись, а на ключи, которые будут создаваться, например, с промежутком в 7 записей (промежуток зависит от того, сколько записей в реквизите всего находится).

2) Если все записи не упорядочены, то, в индексе необходимо помещать указатель на каждую запись, а сам индексный файл можно упорядочить по значениям ключа индексирования.

7. Запись индексированной таблицы в файл «Index.txt».

8. Выход из программы.

Задание 3.17

Рассмотрите файл из двух реквизитов А и В с первой записью (11,8) и последующими значениями А и В, получаемыми по формулам:

состоящий из 25 записей. Создайте индексные файлы по реквизитам А и В и двум реквизитам совместно. Необходимые дополнительные параметры выберите самостоятельно.

Решение:












 
Показывать только:
Портфель:
Выбранных работ  



Рубрики по алфавиту:
А Б В Г Д Е Ж З
И Й К Л М Н О П
Р С Т У Ф Х Ц Ч
Ш Щ Ъ Ы Ь Э Ю Я

 

 

Ключевые слова страницы: Алгоритмы и организация данных | лабораторная работа

СтудентБанк.ру © 2017 - Банк рефератов, база студенческих работ, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам, а также отчеты по практике и многое другое - бесплатно.
Лучшие лицензионные казино с выводом денег