Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Tim Djol
3 / 3 / 2
Регистрация: 05.03.2012
Сообщений: 183
1

Массив. Нужно, чтобы в массиве выполнялось 2 поиска: бинарный и последовательный

01.04.2012, 13:32. Просмотров 354. Ответов 0
Метки нет (Все метки)

Нужно сделать так, чтобы в одном и том же массиве выполнялось 2 поиска: бинарный и последовательный. У меня сначала выводится либо бинарный, либо последовательный. Помогите исправить. Буду признателен
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
program my;
uses crt;
const
n2=100;
var
lr,lb,rb,b,j,i,o,ns,ni,n1:integer;
found:boolean;
p,ch:char;
c,a:string[5];
 
 
n:array[1..100] of string[5];
 
label l1;
 
procedure mass_lin;
   var ns,j:integer;
       c:string[5];
   begin
        randomize;
        for i:=1 to n2 do
        begin
          c:='';
          ns:=random(5)+1;
          for j:=1 to ns do
            c:=c+chr(97+random(25));
          n[i]:=c;
        end;
   end;
 
procedure mass_disp;
begin
     for i:=1 to 100 do
     begin
          write(i,'.');
          textcolor(green);
          write(n[i],'  ');
          textcolor(white);
     end;
end;
 
procedure find_lin;
begin
 for i:=1 to 100 do
  if n[i]=a then
  begin
    found:=true;
    break;
    end;
    o:=i;
  if found=true then
  begin
  Writeln('ќ«Ґ¬Ґ*в §**Ё¬*Ґв Ї®§ЁжЁо: ',i);
  Writeln('‚аҐ¬п ў ег¤иҐ¬: ',o);
  end;
  if found=false then
  begin
  Writeln('ќ«Ґ¬Ґ*в ®вбгвбвўгҐв ў ¬*ббЁўҐ.');
  Writeln('‚аҐ¬п ў ег¤иҐ¬: ',o);
  end;
end;
 
 procedure sort;
   var l,q:integer;
       min,p:string[5];
   begin
     for i:=1 to n2 do
     begin
          min:=n[i];
          for l:=i to n2 do
              if n[l]<min then begin min:=n[l]; q:=l;end;
          p:=n[i];
          n[i]:=min;
          n[q]:=p;
     end;
   end;
 
 
procedure find_bin;
   var m,Ub,Lb:integer;
   begin
    i:=0;
    Lb:=1;
    Ub:=n2;
    found:=false;
        repeat
          M:=(Lb+Ub) div 2;
          if n[M]>a then Ub:=M-1
             else if n[M]<a then Lb:=M+1
               else begin   found:=true; end;
          i:=i+1;
        until found or (Lb>Ub);
        if found=true then
  begin
  Writeln('ќ«Ґ¬Ґ*в §**Ё¬*Ґв Ї®§ЁжЁо: ',M);
  Writeln('‚аҐ¬п ў ег¤иҐ¬: ',i);
  end;
  if found=false then
  begin
  Writeln('ќ«Ґ¬Ґ*в ®вбгвбвўгҐв ў ¬*ббЁўҐ.');
  Writeln('‚аҐ¬п ў ег¤иҐ¬: ',i);
   end;
 end;
 
 
begin
  l1:
  clrscr;
  found:=false;
  mass_lin;
  sort;
  mass_disp;
  writeln;
  writeln('‚ўҐ¤ЁвҐ бЁ¬ў®«л ¤«п Ї®ЁбЄ*');
  readln(a);
  writeln('‚лЎҐаЁвҐ ¬Ґв®¤ Ї®ЁбЄ*: B-ЃЁ**а*л© Ї®ЁбЄ, P-Џ®б«Ґ¤ Ї®ЁбЄ');
  ch:=readkey;
  case ch of
   'B','b': find_bin;
   'P','p':find_lin;
  end;
  writeln('‚аҐ¬п ў б।*Ґ¬: ');
  writeln('Ќ*¦¬ЁвҐ: R-Џ®ўв®а,E-‚л室');
  ch:=readkey;
  case ch of
   'R','r':goto l1;
   'E','e':halt;
  end;
end.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2012, 13:32
Ответы с готовыми решениями:

Массив: Выбрать три точки первого множества так, чтобы выполнялось заданное условие...
Даны два множества точек на плоскости. Выбрать три различные точки первого множества так, чтобы...

Посредством двоичного поиска найти такой минимальный элемент, чтобы выполнялось заданное условие
Даны массивы min и max, отсортированные по невозрастанию и число k. С помощью двоичного поиска...

Сколько сомножителей нужно взять в произведении, чтобы равенство выполнялось с точностью эпсилон?
Здравствуйте! Никак не могу написать код к этой задаче : Известно равенство, определить сколько...

Бинарный и последовательный поиск
Бинарный поиск. Найдите значения N, для которых бинарный поиск в массиве целых чисел размером N...

Бинарный и последовательный поиск
Бинарный поиск. Найдите значения N, для которых бинарный поиск в массиве целых чисел размером N...

0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.04.2012, 13:32

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Последовательный и бинарный поиск
нужно сделать 2 программы: 1)которая осуществляет последовательный поиск(без барьера) дан массив...

Записать, чтобы выполнялось два условия
Люди добрые. что то не получается. прошу помощи допустим есть фрагмент кода push @a,...

Массив: поменять элементы в массиве Y так, чтобы они соответствовали элементам в массиве Х.
Друзья, посоветуйте, пожалуйста. Есть 2 массива - X и Y. Они хранят координаты точек, например,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.