Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
manchester_alan
2 / 2 / 1
Регистрация: 05.01.2015
Сообщений: 336
#1

Блочный поиск

29.04.2016, 19:11. Просмотров 638. Ответов 2
Метки нет (Все метки)

Как программно реализовать алгоритм блочного поиска?

Добавлено через 1 час 17 минут
C++
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
#include<stdio.h>
void main()
{
    int i, a[100], b[100], j, s = 0, k, x, z;
    int t;
 
    for (i = 0; i < 100; i++)
        a[i] = 0, b[i] = 0;
 
    // Ввод массива (упорядоченного!)
    for (i = 0;; i++)   
    {
        printf("Enter A:");
        scanf("%d", &a[i]);
        if (a[i] == -1)
            break;
    }
 
    // Ввод длинн подмассивов
    for (j = 0;; j++)   
    {
        printf("Enter LEN");
        scanf("%d", &b[j]);
        if ((s += b[j]) >= i)
            break;
    }
 
    printf("Find:");
    scanf("%d", &x);
 
    j = 0;
    // printf("%d  %d  %d\n", k, a[k], b[j-1]);
    for (k = b[j++] - 1; (a[k] < x) && (k <= i); k += b[j++]) ; 
    if (k > i) {
        printf("Error");
        return;
    }
    for (z = k - b[j - 1]; (z <= k); z++) {
        if (a[z] == x) {
            printf("Number:%d\n", z);
            break;
        }
    }
    if (z >= k)
        printf("Not found\n");
}
Или помогите перевести с++ на delphi, а то я тут не все понимаю, как перевести.. Пожалуйста
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2016, 19:11
Ответы с готовыми решениями:

Блочный шифр
Добрый день. в программе выполняется одна функция - суммирование, подскажите,...

Поиск файла, поиск перестает работать
код поиска файла, рабочий. Подсмотрен от...

Поиск отрицательного значения, а так же деление, поиск максимального значения и запись в таблицу
Помогите пожалуйста дорешать две задачки: Вобщем первая задачка заключается...

Блочный поиск в массиве Delphi
Помогите сделать, ничего не получается, очень нужно. Нужно осуществить ...

Реализовать программу через М-блочный поиск
#include &lt;stdafx.h&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt;...

2
manchester_alan
2 / 2 / 1
Регистрация: 05.01.2015
Сообщений: 336
30.04.2016, 21:24  [ТС] #2
Никто не сможет перевести? не понимаю циклы
0
JIeIIIa
726 / 408 / 93
Регистрация: 23.05.2012
Сообщений: 6,590
30.04.2016, 23:48 #3
Лучший ответ Сообщение было отмечено manchester_alan как решение

Решение

Delphi
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
var
   i, j, s, k, x, z, t: integer;
   a, b: array [0..99] of integer;
    
begin    
   s := 0;
   for i := 0 to 99 do
   begin
        a[i] := 0; b[i] := 0;
   end;
 
    // Ввод массива (упорядоченного!)
   i := -1; 
   repeat
      inc(i);
      write('Enter A:');
      readln(a[i]);
   until a[i] = -1;
            
    // Ввод длинн подмассивов
   j := -1; 
   repeat   
      inc(j); 
      write('Enter LEN ');
      readln(b[j]);
      s := s + b[j];
   until s >= i;
            
   write('Find: ');
   readln(x);
 
   j := 0;
   // writeln(k, '   ', a[k], '   ',b[j-1]);
   k := b[0] - 1;
   while (a[k] < x) and (k <= i) do
   begin 
      inc(j);
      k := k + b[j] ;      
   end; 
    
   if k > i then
   begin
       writeln('Error');
       exit;
   end;
 
   for z := k - b[j - 1] to  k do
       if (a[z] = x) then
       begin
           writeln('Number: ', z);
           break;
       end;
        
    
    if z >= k then
        writeln('Not found');
end.
Компилировать код не пробовал.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.04.2016, 23:48

Организовать поиск книги по коду, используя М-блочный метод
Дан массив записей, каждый из которых содержит информацию: код книги, автор,...

Блочный шифр
Здорова всем. Помогите пожалуйста реализовать блочный шифр TEA. Пример шифра...

Блочный отчет
Приветствую! Подскажите пожалуйста как реализовать: Есть форма с набором...


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

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

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