// Plik searchbin.html.
// Wyszukiwanie binarne w celu ustalenia opisu i ceny produktu.
// Przyjęto, że tablice zostały w innym miejscu zapełnione i
// POSORTOWANE według wartości z tablicy PartNum
// Ten kod powinien być częścią większego programu do obsługi magazynu.
// ** W programie przyjęto, że zmienna TotalNumber zawiera
// łączną liczbę produktów w magazynie, a tym
// samym i elementów w tablicy
// Najpierw należy pobrać numer części szukanej przez użytkownika
searchPt = prompt("Podaj numer szukanej części:");
first = 0; // Określanie dolnej wartości przeszukiwanego przedziału
last = TotalNumber – 1; // Górna wartość przeszukiwanego przedziału
found = 0; // Flaga informująca, czy część została znaleziona
while (first <= last)
{
mid = Math.floor((first + last) / 2) // Set the middle and make it an int
if (searchPt == PartNo[mid])
{
document.write("Oto opis części o numerze "+searchPt+": ");
document.write(Desc[mid]+"
");
document.write("Cena tej części to: "+price[mid]);
found = 1; // Ustawianie flagi na wartość jeden
break; // Wyjście z pętli while
}
else if (searchPt < PartNo[mid]) // Sprawdzanie dolnej połowy tablicy
last = mid - 1;
else
first = mid + 1 // Sprawdzanie górnej połowy tablicy
}
if (found == 0) // Część o danym numerze nie występuje w tablicy
{
document.write("
"); document.write("** Niestety, części o podanym numerze nie ma w tablicy."); }