JavaScript Создать форму с использованием форм, составить программу поиска с использованием структуры данных – массива (простой и двоичный поиск)
- Создать форму с использованием необходимых элементов управления, составить программу поиска с использованием структуры данных – массива (простой и двоичный поиск);
- Реализовать поиск числа при разделении массива на 3 части. Сравнить по времени для разных размеров массива и длины части. вот мой код html формата
<html>
<head>
<meta charset="utf-8" />
<title> Алгоритм циклической структуры </title>
<script src = "mylab.js">
</script>
</head>
<body>
<div id="block1">
<form name = 'alg1' id = 'algorithm1'>
<div>
<label for ="name"> Количество элементов массива </label>
</div>
<input type="text" id ="a" name="input" size="16" class="display">
</form>
<form>
<div>
<input type = "button" value='Заполнить' onclick = "hope()">
</div>
<label for = "name"> Массив </label>
<div id ="lost">
<input type="text" name="lol" size="16" class="display">
</div>
<br>
</form>
<form>
<div>
<label for ="name"> Найти число: </label>
</div>
<input type="text" id="need" name="yes" size="16" class="display">
<br>
</form>
<form>
<div>
<label for ="name"> Результат </label>
</div>
<div id = "answer">
</div>
<div id="result">
<input type="text" id = 'my_Clear' name="good" size="16" class="display">
</div>
<input type = "button" value='Вычислить' onclick = "bynar_search()">
</form>
<form>
<input type = "button" value='Очистить' onclick = "">
<input type = "button" id = "clear" value='Выход' onclick="">
</form>
</div>
</body>
</html>
Вот код js
function hope() {
var a = parseInt(document.getElementById('a').value);
let arr = []
for(i = 1; i <= a; i++){
b = arr.push(Math.floor(Math.random()*100));
document.getElementById('lost').innerHTML = arr;
}
return arr
}
function bynar_search(){
var list = hope()
var number = parseInt(document.getElementById('need').value);
let found = false;
let position = -1;
let index = 0;
var b = 0;
while(!found && index < list.length) {
if(list[index] == number) {
found = true;
position = index;
} else {
index += 1;
}
}
b = position
if (b>=0){
b = 'Да'
}else{
b = 'Нет'
}
document.getElementById('answer').innerHTML = b;
}
document.getElementById("clear").onclick = function(e) {
document.getElementById("my_Clear").value = "";
}
С чем мне нужно помочь? Я создал две функции:
- Первая функция считывает данные введёные пользователем, по поводу количества элементов в массиве и выводит на экран эти случайные элементы массива.
- Вторая функция реализует бинарный поиск введёного пользователем элемента массива и выводит в результате есть данный элемент в этом массиве, или же нет. Проблема в том, что я так и не понял, как во вторую функцию вызвать значение массива из первой функции, чтобы произвести бинарный поиск. Всё что более менее я смог сделать это вызвать во второй функции первую функцию, но поэтому элемент будет искаться в совершенно новом массиве, так что прошу помочь именно с этим вопросом. Если не трудно могли бы ещё помочь реализовать эффективное очищение всех текстовых строк и выход из данной программы.
Ответы (1 шт):
Автор решения: Aziz Umarov
→ Ссылка
Не совсем понял. Но думаю так
bynar_search(hope())
function hope() {
var a = parseInt(document.getElementById('a').value);
let arr = []
for(i = 1; i <= a; i++){
b = arr.push(Math.floor(Math.random()*100));
document.getElementById('lost').innerHTML = arr;
}
return arr
}
function bynar_search(list){
var number = parseInt(document.getElementById('need').value);
let found = false;
let position = -1;
let index = 0;
var b = 0;
while(!found && index < list.length) {
if(list[index] == number) {
found = true;
position = index;
} else {
index += 1;
}
}
b = position
if (b>=0){
b = 'Да'
}else{
b = 'Нет'
}
document.getElementById('answer').innerHTML = b;
}
document.getElementById("clear").onclick = function(e) {
document.getElementById("my_Clear").value = "";
}
<h2> Алгоритм циклической структуры </h2>
<div id="block1">
<form name = 'alg1' id = 'algorithm1'>
<div>
<label for ="name"> Количество элементов массива </label>
</div>
<input type="text" id ="a" name="input" size="16" class="display">
</form>
<form>
<div>
<input type = "button" value='Заполнить' onclick = "hope()">
</div>
<label for = "name"> Массив </label>
<div id ="lost">
<input type="text" name="lol" size="16" class="display">
</div>
<br>
</form>
<form>
<div>
<label for ="name"> Найти число: </label>
</div>
<input type="text" id="need" name="yes" size="16" class="display">
<br>
</form>
<form>
<div>
<label for ="name"> Результат </label>
</div>
<div id = "answer">
</div>
<div id="result">
<input type="text" id = 'my_Clear' name="good" size="16" class="display">
</div>
<input type = "button" value='Вычислить' onclick = "bynar_search(hope())">
</form>
<br/>
<input type = "button" value='Очистить' onclick = "">
<input type = "button" id = "clear" value='Выход' onclick="">
</div>
