0 / 0 / 0
Регистрация: 17.12.2015
Сообщений: 49

Не выполняется функция

01.06.2017, 16:11. Показов 1107. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Где ошибка, не подскажете?

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function bin(){
    var arr = [2,8,12,18,25,36,41];
    var start = arr[0]; end = arr.length-1; mid = (start+end)/2;
    var f = prompt ("Zahl zu suchen?");
    
    if (f<arr[mid]){
        end = mid-1;
    }
    
    else if (f>arr[mid]){
        start = mid+1;
    }
    
    mid = (start+end)/2;
    
    if (f===mid){
    document.write("<br/><br/>Gefunden: " + f);
    }
}
 
bin();
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.06.2017, 16:11
Ответы с готовыми решениями:

Функция выполняется несколько раз
Доброго дня, имеется такая функция. Так вот почему-то эти функции отрабатываются несколько раз и в базу заносится сразу несколько значений,...

Функция bind textchange выполняется дважды
Объясните пожалуйста, почему следующий код: $(document).ready(function() { $('#find_field_label').bind('textchange', function() { ...

определение файла, в контексте которого выполняется функция
Есть ли возможность в JS определять текущий файл скрипта, в котором выполняется код? Т.е., к примеру, одна и таже функция запускается из...

4
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
01.06.2017, 16:15
Не очень понятно, в чём идея алгоритма.
0
0 / 0 / 0
Регистрация: 17.12.2015
Сообщений: 49
01.06.2017, 21:53  [ТС]
Это итеративный двоичный поиск. Дан отсортированный массив. Пользователь по запросу вводит искомое число и алгоритм его ищет. Алгоритм берёт число в середине массива и сравнивает с вводом пользователя. Если введенное число меньше - отсекает числа справа и снова идет в середину левой части и сравнивает. И так до тех пор, пока не найдется искомое. Или не найдется.
Проблема у меня в том, что функция не выдает ничего.
0
Эксперт JS
2463 / 1769 / 625
Регистрация: 11.07.2016
Сообщений: 4,067
02.06.2017, 09:28
JavaScript
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
function bin(){
    var arr = [2,8,12,18,25,36,41];
    var start = 0, end = arr.length-1, mid = Math.round((start+end)/2);
    var f = +prompt("Zahl zu suchen?");
    
    while (start != end) {
      if (f<arr[mid]){
        end = mid-1;
      }
    
      else if (f>arr[mid]){
        start = mid+1;
      }
      
      if (f===arr[mid]){
        document.write("<br/><br/>Gefunden: " + f);
        return;
      }
      
      mid = Math.round((start+end)/2);
    }
    
    if (f===arr[start]) {
      document.write("<br/><br/>Gefunden: " + f);
    } else {
      document.write("<br/><br/>Не найдено");
    }
}
 
bin();
Из ошибок:
1) Отсутствует преобразование строковой переменной f в числовую. В связи с этим строгое сравнение числовой переменной со строковой всегда даёт false (строка 4);
2) Число f сравнивается с индексом массива, а не с элементом массива (строка 16);
3) Индекс массива может быть только целым числом. Деление на 2 может давать дробное число. Отсутствует округление среднего индекса массива (строки 3 и 14);
4) Вычисление нового среднего индекса массива начиналось перед сравнением искомого числа с элементом по этому индексу. В связи с этим алгоритм мог некорректно работать в некоторых случаях (строка 14);
5) Данный метод является итеративным, а значит должен выполняться в цикле. Цикл отсутствует вообще.
Из недочётов:
1) Переменные end и mid заведены в глобальном скоупе (строка 3);
2) Отсутствует обработка ситуации, когда искомое число не найдено в массиве.
1
0 / 0 / 0
Регистрация: 17.12.2015
Сообщений: 49
02.06.2017, 11:37  [ТС]
Ёкарный бабай, сколько мне еще учиться надо..

Отличное объяснение, спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.06.2017, 11:37
Помогаю со студенческими работами здесь

Функция выполняется один раз
Есть HTML: &lt;html&gt; &lt;head&gt; &lt;title&gt;Contact's&lt;/title&gt; &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot;...

Функция выполняется только один раз
Как заставить функцию, которая забирает в переменную содержимое .topBlock работать и когда переменная меняется. Сейчас когда меняется...

Объявленная функция выполняется сама, без вызова
Привет! Я делаю слайдер. Вот простой код. Перепробовал много чего, встречаюсь постоянно в одними проблемами. И так, этот код (не...

Функция выполняется при клике только на первый элемент
Нужно, чтобы при клике на элемент с id set_api выполнялась функция. $(document).ready(function(){ ...

Не выполняется функция
Program Password_man; uses crt; type mas=array of integer; var i,nfact:integer ; Mas4islFact:mas; MasBukvFact:mas; ...


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

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

Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru