referaty.sk – Všetko čo študent potrebuje
Elvíra
Štvrtok, 21. novembra 2024
Pascal - vyhľadávanie v poli
Dátum pridania: 30.11.2002 Oznámkuj: 12345
Autor referátu: sova
 
Jazyk: Slovenčina Počet slov: 418
Referát vhodný pre: Stredná odborná škola Počet A4: 1.3
Priemerná známka: 2.97 Rýchle čítanie: 2m 10s
Pomalé čítanie: 3m 15s
 
Vyhľadávanie
-je proces prezerania zložiek poľa s cieľom zistiť.či pole obsahuje zložku s danými vlastnosťami.
Rozoznávame dva druhy vyhľadávania: lineárne
binárne
Lineárne vyhľadávanie
-používa sa v neutriedených poliach
-je nutné porovnat každú zložku poľa
Binárne vyhľadávanie
-používa sa v utriedených poliach
-stačí zistiť,v ktorej polovici sa hľadaná zložka môže vyskytovať,tým zmenšiť interval...

Lineárne vyhľadávanie môžme uskutočniť pomocou cyklu so známym počtom opakovaní, ak potrebujeme zistiť počet opakujúcej sa hľadanej zložky (napr.koľkokrát sa v poli vyskytuje číslo.2). Cyklus s podmienkou na konci alebo na začiatku je výhodné použiť,ak nás zaujíma iba výskyt a miesto neopakujúcej sa zložky.

príklad na vyhľadávanie pomocou cyklu so známym počtom opakovaní
Dané je 10 prvkové pole naplnené celými čislami. Zaujíma nás výskyt a počet opakovaní hľadanej
zložky (čísla n).N je zadané z klávesnice.

var j,i,n:integer;
a:array [1..10] of integer;
begin
randomize;
for i:=1 to 10 do a[i]:=random(20);
readln(n);
j:=0;
for i:=1 to 10 do
if a[i]=n then j:=j+1;
if j>0 then writeln(´Číslo', n,' sa v poli vyskytuje ´,j,´ krát.´)
else writeln(´Číslo n sa v poli nevyskytuje.´);
readln;
end.

príklad na vyhľadávanie pomocou cyklu s podmienkou na konci
Dané je 20 prvkové pole naplnené celými číslami. Zaujíma nás výskyt a miesto hľadanej zložky (čísla n)
zadanej z klávesnice.

var i,n:integer;
a:array [1..20] of integer;
begin
randomize;
for i:=1 to 20 do a[i]:=random(50);
readln(n);
i:=0;
repeat
i:=i+1;
until (a[i]=n) or (i=20);
if a[i]=n then writeln(´Číslo n sa v poli nachádza na ´,i,´. mieste.)
else writeln(´Číslo n sa v poli nenachádza.);
readln;
end.
Binárne vyhľadávanie sa dá použiť iba v utriedenom poli. Zisťuje,v ktorej polovici
poľa sa hľadaná zložka môže vyskytovať a potom zmenšuje interval hľadania posunutím
dolnej alebo hornej hranice poľa. Využíva sa tu cyklus s podmienkou na konci alebo na
začiatku.

príklad s podmienkou na konci

var j,i,n,k,z:integer;
a:array [1..10] of integer;
begin
randomize;
readln(n);
for i:=1 to n do a[i]:=random(20);

i:=1;
j:=n;
repeat
k:=(i+j) div 2;
if a[k]<>z then
if a[k] else j:=k-1;
until (a[k]=z) or (i>j);
if z=a[k] then writeln(´Číslo sa v poli nachádza na ´,k,´.
 
   1  |  2    ďalej ďalej
 
Copyright © 1999-2019 News and Media Holding, a.s.
Všetky práva vyhradené. Publikovanie alebo šírenie obsahu je zakázané bez predchádzajúceho súhlasu.