Алгоритм бинарного поиска




 
 

Текст программы

program Bynar;

uses

crt;

const

n = 20;

type

Mass = array [1..n] of Integer;

var

i, j, k,

temp: Integer;

a: Mass;

x: integer;

L,R: Integer;

begin

clrscr;

randomize;

for i:=1 to n do

begin

A[i]:=random(1000);

write(a[i]:3, ' ');

end;

 

write('X = ');readln(x);

 

for i:=2 to n do

begin

temp:= a[i];

j:=1;

while(temp>a[j]) do

j:= j+1;

 

for k:=i-1 downto j do

a[k+1]:= a[k];

 

a[j]:= temp;

end;

 

writeln;

for i:=1 to n do

write(a[i]:3, ' ');

 

L:=1; R:=n;

while (L<=R) do

begin

i:= (L+R) div 2;

 

if a[i]=X then

break

else

if a[i]<X then L:= i+1

else R:= i-1;

end;

 

if a[i]=x then

write('Element is finded on pos',i:3)

else

write('Element is not finded');

 

readln;

end.


МОДУЛЬ SYSTEM

 

Процедура Val

Procedure Val (s: String; var v; var Code: Integer);

Назначение: преобразует строковое значение в его числовое представление. Параметр і представляет собой выражение строкового типа. Параметр v является переменной целого или вещественного типа. Параметр Code – это переменная целого типа, которая формирует все число со знаком. Функция Val преобразует строку s в ее численное представление и сохраняет результат в v. Если где-либо в строке встречается недопустимый символ, то его номер сохраняется в параметре Code. В противном случае этот параметр равен нулю. Предшествующие пробелы должны быть удалены.

 

Процедура Str

Procedure Str (x [: Size [: Dec]], var s: String);

Назначение: преобразует численное значение в его строковое представление. Параметр х является выражением целого или вещественного типа. Параметры size и Dec представляют собой выражения целого типа. Параметр s – строковая переменная. Данная функция преобразует х в его строковое представление в соответствии с параметрами форматирования Size (размер) и Dec. Результирующая строка сохраняется в параметре s.

 

МОДУЛЬ CRT

Цветовые константы

Константа Число Цвет
Black   Черный
Blue   Синий
Green   Зеленый
Cyan   Голубой
Red   Красный
Magenta   Фиолетовый
Brown   Коричневый
LightGray   Ярко-серый
DarkGray   Темно-серый
LightBlue   Ярко-синий
LightGreen   Ярко-зеленый
LightCyan   Ярко-голубой
LightRed   Ярко-красный
LightMagenta   Ярко-фиолетовый
Yellow   Желтый
White   Белый
Blink   Мерцание (как слагаемое в TextColor)

Переменная TextAttr

Переменная TextAttr имеет тип Byte и может принимать значения от 0 до 255. В ней хранятся текущие цветовые атрибуты для фона, символов и атрибут мерцания символов. Каждый из восьми битов переменной TextAttr содержит определенную информацию.

 

Номер бита   6 5 4 3 2 1 0
Что определяет Мерцание 1 – да; 0 - нет Цвет фона (8 значений) Цвет символов (16 значений)
Компонент цвета (RGB)   Красный Зеленый Синий Яркость Красный Зеленый Синий

Процедура ClrEol

Procedure ClrEol;

Назначение: стирает все символы, начиная от позиции курсора, до конца строки. Курсор при этом не перемещается. Все позиции символов заполняются пробелами. При этом используется текущее определение текстовых атрибутов. Таким образом, если в TextBackGround не задан черный цвет, то в позициях, начиная от курсора и до правой границы, экран приобретает фоновый цвет.

 

Процедура ClrScr

Procedure ClrScr;

Назначение: очищает экран и помещает курсор в верхний левый угол экрана. Все позиции символов заполняются пробелами. При этом используется текущее определение текстовых атрибутов. Таким образом, если для TextBackGround не задан черный цвет, то для всего экрана устанавливается фоновый цвет.

 

Процедура Delay

Procedure Delay (msec: Word);

Назначение: выполняет задержку на заданное число миллисекунд. Параметр msec задает число миллисекунд интервала ожидания.

 

Процедура GotoXY

Procedure GotoXY (X,Y: Byte);

Назначение: позиционирует курсор в точку с заданными координатами. Курсор перемещается в ту позицию внутри текущего окна, которая задана координатами X и Y (X задает столбец, Y задает строку). Верхний левый угол задается координатами (1,1). Если задаются недопустимые координаты, то обращение к процедуре игнорируется.

 

Функция KeyPressed

Function KeyPressed: Boolean;

Назначение: возвращает значение true, если на клавиатуре нажата клавиша и false в противном случае. Символ (или символы) остаются в буфере клавиатуры. Данная процедура не распознает клавиш перевода регистра таких, как Shift, Alt, NumLock и т.д. Клавишу можно считать с помощью функции ReadKey.

 

Функция ReadKey

Function ReadKey: Char;

Назначение: считывает символ с клавиатуры. Считываемый символ не отображается на экране. Если перед обращением к функции ReadKey функция KeyPressed имела значение true, то символ считывается немедленно, в противном случае функция ожидает нажатия клавиши.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-05-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: