Іздеу алгоритмі

Мазмұны

1. Кіріспе

2. Есептің қойылымы

3. Теориялық мағлұматтар 3.1 Іздеу алгоритмі
3.1.1 Интерполяциялық іздеу әдісі
3.1.2 Сызықты іздеу әдісі.
3.1.4 Қарапайым алгоритм.
3.2.1 Сұрыптау тәсілі
3.2.2 Сұрыптау алгоритмі
3.2.3 Орналастыру әдісі арқылы сұрыптау.
3.2.4 Көпіршік тәсілі

4 Программаның жазылуы

Қорытынды Қолданылған әдебиеттер
КІРІСПЕ

Техниканың даму жетістіктеріне сай ЭЕМ – біздің өміріміздің әр алуан салаларында қызмет етуде. Айталық компьютердің көмегімен көптеген салалардың қызметі жеңілдеді десек те болады. Компьютерде автоматтандырылған программа жасауға арналған жаңа технологияларға сай көптеген программалау тілдері пайда болды, солардың негізінде компьтердің қолданылу ауқымы кеңейді, себебі программалау тілдері арқылы құрылған программалар қызметкерге бұрынғыдай көптеген қағаздарды ақтарып, іздеген дерегін таба алмай шаршауынан құтылуына көмектесті. Мысалы, кітапхананы алайық, әрине кімнің болса да, картотеканы пайдалана алғаны дұрыс. Дегенмен де өзімізге керекті кітапты табу үшін оны жазған авторды білуің керек, кітаптың атын, шыққан жылын білуің керек, ал бұл кей кездері ыңғайсыздық тудырады, әсіресе ең алғаш келген адамдарға немесе кітап туралы ақпараты аз адамға қиындық әкелуі әбден мүмкін. Ал қазіргі озық технологиялармен жабдықталған кітапханаға барсаңыз ЭЕМ-ның көмегімен оп-оңай өзіңізге қажетті кітапты, оның тек жылын немесе ұқсас атын білу арқылы ғана табуыңызға болады.
Программист мұндай программаларды жасаған кезде барлық мәліметті компьютерге енгізіп сақтайды да, кітаптардың параметрлері бойынша, мысалы авторлардың фамилиясын алфавит бойынша сұрыптау арқылы сұраныс жасай алады. Кітапханаға келген адам өзіне қажетті кітапты бірнеше параметрлері бойынша кітапханашыға жеткізеді, ол өз кезегінде программаға енгізіп, керекті кітаптың шифрын тез арада тауып алады. Осы арада, әрине сұрыптау және іздеу алгоритмі қолданылады.
Іздеу алгоритмі – барлық қолданбалы програмаларда пайдаланылған десек қателеспейміз. Аты шулы интернеттің өзін алып қарасақ та жеткілікті, онда кірген әрбір қолданушы өзіне керекті мәліметті сұраныс жіберу арқылы тауып алады.
Мәтіндік редактормен жұмыс жасау - өте күрделі программалауды талап етеді. Өзімізге қажетті сөзді табу үшін көптеген тәсілдердің ең тиімдісін таңдап алу да қиын, себебі, мәтіндік редактордың күрделілігіне қарай оған сәйкес іздеу-сұрыптау әдіс-тәсілдері қолданылады. Мен осы курстық жобада сол әдіс-тәсілдерге тоқталамын. Менің программамның мақсаты – енгізілетін мәліметтегі кейбір сөздерді іздеп тауып, оны жоюға немесе өзгертуге негізделген.
Есептің қойылуы.
Тапсырма: Жол берілген. Барлық «de» жалғауын өшіру керек; барлық «an» жалғауын «en» жалғауымен, ал барлық «ol» сөзін «alar сөзімен алмастыру керек.
Мысалы: mende erten mamamen birge bolamin сөйлемі енгізілсе, алынатын нәтиже келесідей болады: men erten mamaman birge alarmin.
Қолданылған әдебиеттер тізімі

1. Фаронов В. В.
Turbo Pascal 7.0 – Москва, издат. «Нолидж», 2000 г.

2. Turbo Pascal – Интернет-руководство.

3. Чинер Р. Язык Турбо Си. «Мир», 1991 г.

4. Немнюгин С. Pascal: Учебный курс. Санкт-Петербург: "Питер", 1999 г.

5. Рюттен Т., Франкен Г. Turbo Pascal 7.0. Киев: Изд. гр. "BHV", 1998 г.

6. Уэйт М., Прата С., Мартин Д. Язык СИ. Москва: "Мир", 1998 г.
        
        Тақырыбы: Іздеу алгоритмі
Мазмұны
1. Кіріспе
2. Есептің қойылымы
3. Теориялық мағлұматтар ... ... ... ... ... Сызықты іздеу әдісі.
3.1.4 Қарапайым алгоритм.
3.2.1 Сұрыптау тәсілі
3.2.2 Сұрыптау алгоритмі
3.2.3 Орналастыру әдісі арқылы сұрыптау.
3.2.4 Көпіршік тәсілі
4 Программаның жазылуы
Қорытынды
Қолданылған әдебиеттер
КІРІСПЕ
Техниканың даму ... сай ЭЕМ – ... ... әр ... ... ... Айталық компьютердің көмегімен ... ... ... ... те болады. Компьютерде
автоматтандырылған программа ... ... жаңа ... ... ... тілдері пайда болды, солардың негізінде компьтердің
қолданылу ауқымы кеңейді, себебі программалау тілдері ... ... ... ... ... ... ақтарып, іздеген
дерегін таба алмай шаршауынан құтылуына көмектесті. Мысалы, кітапхананы
алайық, әрине ... ... да, ... пайдалана алғаны дұрыс. Дегенмен
де өзімізге керекті кітапты табу үшін оны жазған авторды білуің ... ... ... ... ... керек, ал бұл кей кездері ... ... ең ... ... ... ... ... туралы ақпараты аз
адамға қиындық әкелуі әбден ... Ал ... озық ... ... барсаңыз ЭЕМ-ның көмегімен ... ... ... оның тек ... ... ... атын білу арқылы ғана
табуыңызға болады.
Программист мұндай программаларды жасаған кезде барлық ... ... ... да, ... ... ... мысалы
авторлардың фамилиясын алфавит бойынша сұрыптау арқылы ... ... ... ... адам ... ... ... бірнеше параметрлері бойынша
кітапханашыға жеткізеді, ол өз ... ... ... керекті
кітаптың шифрын тез арада тауып алады. Осы арада, әрине ... және ... ... ...... ... програмаларда пайдаланылған десек
қателеспейміз. Аты шулы интернеттің өзін алып қарасақ та ... ... ... ... ... ... ... сұраныс жіберу арқылы тауып
алады.
Мәтіндік редактормен жұмыс жасау - өте күрделі программалауды талап
етеді. Өзімізге қажетті сөзді табу үшін ... ... ең ... алу да ... ... ... редактордың күрделілігіне қарай оған
сәйкес іздеу-сұрыптау әдіс-тәсілдері қолданылады. Мен осы курстық жобада
сол ... ... ... программамның мақсаты – енгізілетін
мәліметтегі кейбір сөздерді іздеп тауып, оны жоюға ... ... ... Жол ... ... «de» ... өшіру керек; барлық
«an» жалғауын «en» жалғауымен, ал ... «ol» ... «alar ... ... mende erten mamamen birge bolamin сөйлемі енгізілсе, алынатын
нәтиже келесідей болады: men erten mamaman birge ... ... ... ... және динамикалық деп қарастыруға болады.
Массивтен статикалық әдіспен ... ... оның ... өзгермейді.
Массивтен динамикалық әдіспен іздеу ... оның ... ... ... ол ... ... Біз көбінде статикалық әдісті қолданамыз,
үйткені мәтіндік редактордағы ... ... ... ал динамикалық
тәсіл ойын құрғанда пайдаланылады.
Іздеу әдістерін сондай-ақ нақты кілттерді пайдаланатын және туындаушы
кілттерді пайдаланатын деп екіге бөледі. Бұл ... кілт деп ... ... сөзді айтады. Мәтіндік редакторға қолданылатын кілт – туындаушы
болып ... ... ... ... ... ... ... Бұл рет іздеуді жеңілдету үшін пайдаланылады.
Интерполяциялық іздеу әдісі
Кейбір кітаптарда бұл әдіс «экстраполяция ... деп ...... ... тыс ... анықтау әдісі, ал
интерпояция – сол ... ... ... ... ... да
«экстраполяция әдісі» деп атау қате, үйткені ... ... ... ... іздеу мүмкін емес.бұл әдісті сипаттамас бұрын сізге ағылшын
тіліндегі «treasure» сөзінің аудармасы қажет ... ... Яғни ... ... – осы ... ... ... Біздің келесі іс-
әркеттеріміз қандай да бір ... ... ... ... ... алфавит бойынша сұрыпталған массивтен іздейміз, ал керекті сөз ... Оны тез ... ... ... ... Енді осы ... ... Бізге керекті сөз «т» әрпінен басталады, яғни алфавиттің екінші
бөлігінде, немесе біз ол қандай ... ... ... ... ... Яғни ... дым ... болатынын анықтап аламыз. Егер ізделінетін
массив үлкен болса осы әдіс арқылы оның шекрасын көрсетіп, тек осы ... ... ... Ол үшін ... ек ... ...... элементтердің саны.
M – рет іздеуге болады.
Тура ауытырудың алгоритмі жасайтын операция саны M*N-ге тең. ... ... ... ... тең, оған тағы 2M*Log(2)N дихотомия
әдісін қосамыз. T1=T2 кезінде екі алгоритм де тиімді ... ... ... ... linearsearch (сызықты іздеу) деген шағын порграмма
құрастырайық. Оның үш ... ... Strings – ... ... қптпры,
newstring – жолдың өрнек, осыны іздеу қажет және size – қаралатын қатардың
элемпенттер саны.
Біздің басты программамызда екі тип ... және ... ... параметрін баяндауда қолданамыз:
Type StrType=String[20]
ArrayStrType=Array[1..100] Of StrType;
Енді біз шағын прогарамманың басын жаза аламыз:
Function linearsearch(Strings:ArrayStrType; NewString:String;
Size:Integer):Integer;
{……………………………………………………………………….}
{Сызықты іздеу әдісін қолдана отырып, String қатарының ... ... ... ... позициясын қайтару керек, ол жоқ болса, 0-
ді ... ... әр ... ... – пен ... Егер де
мәндері сәйкес келсе, онда ... ... ... (индексі)
қайтарылады. Ал егер NewString – ті барлық элементтермен салыстырып болған
соң, керекті жолдың өрнек ... онда 0 мәні ... бұл ... түк ... ... сөз. Сипатталған процессте барлық элементтер
кезекпен салыстырылады. ... бұл ... ... немесе тізбектелген
іздеу әдісі деп атайды.
әр элемент Strings жодың өрнегінде бір-бірден ... ... ... ... онда олардың бірінші рет ... ... Егер ... ... әрі ... процесс тоқтатылады,
сондықтан логикалық Found айнымалысын ... ... (not Found) And ... ... Strings ... ... {If…Then}
Position:=position+1;
End; {While циклінің соңы}
If not Found Then linearsearch:=0;
End; {linearsearch}
Егер сіз көңіл аударсаңыз, While ... мына ... ... жүре ... not Found ... ... болмағанша не position
мәні size-дан асып кетпегенше.
LinearSearch функциясының қолданылуы.
Біздің linearsearch функциямызда басты программада ... ... ... n ... ... ... қатарда іздеу жүргізу керек
болсын, осы ... ... ... names ... ... ... ізделінді есімді сақтайтын NewName айнымалысы да баяндалған. ... ... ... ... ... ... болады:
Type StrType=String[20];
ArrayStrType=Array[1..100] Of StrType;
Var Names:ArrayStrType;
NewName:StrType;
N,location:Integer;
…….
Location:=linearsearch(names,n);
If location>0
Then WriteLn(NewName,’орны’,location)
Else WriteLn(newName,’табылған жоқ’)
Қарапайым алгоритм.
Алгоритмді қарау үшін бір мысалды ... ... ... ... ... мәтін берілген, оны Т деп атайық немесе T[i] және оның ... ... деп ... да ... m ... ... жолды немесе сөзді S
деп немесе S[i] және оның i-ші ... деп ... ... берілген жол
берілген мәтінде бар ма, бар болса ... ... ... табу ... m ... мәтіннің жолының қай символдарымен сәйкес келетіндігін
тексереміз. Оны іске ... үшін ... ... ... ... ... T:array[1..40000] of char;
{мәтін ролін анықтайды}
S: array[1..10000] of char; {жолдың ролін атқарады}
i, j:longint;
m, ... ... ... ... ... жаздық, енді осы программаның тиімділігін тәжірибе
жүзінде тексеруге болады.
Сұрыптау алгоритмі
Сұрыптаудың Шелл әдісі бойынша сұрыптау, Хоар әдісі бойынша ... ... ... ... ... ... жиынның элементтерін ... ... ... ... Оның ... көздеген мақсаты – сұрыпталған
жиыннан керек элементтерді іздеуді жеңілдету. Сұрыптауды көбіне массивтерді
және ... ... көп ... Бұл екеуін әдетте ішкі және
сыртқы сұрыптаулар деп ... ... ... ... ... ішкі ... болады. Бұл жадыға тез ... ... ... ... ... ... ... “сыртқы” жадыда, яғни
есте сақтау құрылғыларында (диск, лента т.б.) сақталатындықтан, оны ... деп ... ... де ... ... ... байланысқан. Әсіресе,
біз бинарлы әдісті, егер ... ... ... ... қолдана
алмаймыз. Мысалы, біз бинарлы іздеу әдісін миллиондаған ... ... ... Ал ол ... ... алфавит әріптері
бойынша сұрыпталған. Яғни, іздеу бар ... ... ... ... ... ... орналастыру арқылы сұрыптау түрі бар. Бұл ... мәні ... ... ... соңғы элементтерді бір-бірлеп
қосып отыруда. Әрине, бұл сұрыптаумен танысқан адам, көп уақытқа ... деп ... ... ... олай ... ... ... элементтер
сұрыпталған күйде болады да, ... ... ... кез-келген жерге
қоямыз.
Орналастыру әдісі арқылы сұрыптау.
Бұл әдістің негізгі мәні ... ... ... ... бір-бірімен қосып отыруда. Бірінші қадамға алғашқы екі элемент
сұрыпталады. Содан кейін осы екі элементпен салыстырылып, ... ... ... ... Үш ... элементтерге төртінші
элементті қосамыз. Ол жаңа төрттіктегі өз орнына ... ... n-1 ... соңғы n-ші элемент қосылғанша жалғаса береді.
Осы әдіске мысал ретінде мына процедураны қарастырайық:
Procedure ins(var x:Array Of Integer; ... ... i:=1 To n-1 ... (j>=0) And ... then ... ... ... *t[j+1] = ... ... ... ... ... ... ... ... ... ... ... ... Ол ... циклында орындалуында және көршілес тұрған элементтерін
ауыстыруға қажеттігіне негізделген. Оның ... ... ... ... қозғалу кезіндегі процесске ұқсас болғандықтан
олай аталды. Әрбір көпіршік өз жиегін ... ... ... ... ең қарапайым программаның формасы көрсетліген:
{Көпіршік тәсілімен сұрыптаудың басталуы}
procedure Bubble(var item: DataArray; ... ... ... i := 2 to count ... j := count downto i do
if item[j-1]>item[j] then
begin
x := item[j-1];
item[j-1] := ... := ... { ... ... сұрыптаудың аяқталуы }
Бұл мысалда берілген «item» «Dataitem» элементінің массиві болып
табылады. Ол ... да, ал ... ... ... ... бар. ... ... сұрыптаудың екі циклі бар. Массив элементінің
саны «count» айнымалымен ... ... цикл count ... 1 рет ғана ... Бұл ... аяқталғаннан кейін әрбір
элементтің өз позициясында тапқанын қамтамасыз етеді. Ішкі цикл салыстыру
және ... ... ... ... ... ... сұрыптаудың осы версиясы символдық массивтегі ... өсу реті ... ... ... Мысалы, келесі қысқа программа
«test.dat» дисктік файлынан ... ... ... ... ... ... дисктік файлынан 80 немесе одан да аз символдарын
сұрыптайды да, нәтижені ... ... ... = char;
DataArray = array [1..80] of char;
var
test: DataArray;
t, t2: integer;
testfile: file of char;
{ ... ... ... ... item: ... ... integer;
x: DataItem;
begin
for i := 2 to count do
begin
for j := count downto i do
if item[j-1]>item[j] then
begin
x := item[j-1];
item[j-1] := ... := ... ... := 1;
{ ... ... ... ... not Eof(testfile) do begin
read(testfile, test[t]);
t := t+1;
end;
t := t-2; {есептелген элементтердің санын дұрыстау }
Bubble(test, t); { массивті сұрыптау}
{ сұрыпталған сиволдық ... ... ... t2 := 1 to t do ... ... сұрыптауының бір ерекшелігі бар: ... өз ... ... ... ... «dcab» массивіндегі «а»
элементі) бір өту арқылы өз орнына жетеді, ал ... ... ... ... «d» ... өз орнына өте баяу жетеді. Барлық
қарауларын бір бағытта істеу ... ... Оның ... ... ... ... ... істеуге болады. Бұл жағдайа өз орнынан қатты
алыстап кеткен элементтер тез ... өз ... ... ... ... жасай отырып мен Паскаль тілінің ... бар ... ... ... уақытта компьютерлік технологиялардың мүмкіндіктері өсті. Кез-
келген ірі немесе ұсақ өндіріс орындарын алып қарасаңыз ... ... ... олардың өздері арнайы тапсырыс беріп жасатқан программалары
бар. Бұл программада осы өндіріс орнының бүкіл ... ... ... Оның ... да бір ... ... мен ... білу қажет болған
жағдайда оператор арнайы ... ... оған ... ... қас ... ... керекті ақпараттты шығарады. Міне ... ... ... іске ... Бұл дегеніміз іздеу алгоритмі –
программаның негізгі тірегі десек те болады.
Іздеу және сұрыптау алгоритмінің тиімділігі – ... ... ... ... табуға кететін уақытты үнемдеуі. Сіз сол деректі шаң
басқан архивтен іздесеңіз жоқ дегенде бір күніңіз кетер ... ... ... ...... күнделікті өмірде
пайдаланылуын көбейтеді. Себебі ондағы барлық программаларда ... ... үшін ... тілдерінде осындай курстық жұмыстарды жасау,
оларға үлкен практикалық сабақтар ретінде ... деп ... ... ... Фаронов В. В.
Turbo Pascal 7.0 – Москва, издат. «Нолидж», 2000 г.
2. Turbo Pascal – ... ... Р. Язык ... Си. ... 1991 г.
4. Немнюгин С. Pascal: Учебный курс. Санкт-Петербург: "Питер", 1999 г.
5. ... Т., ... Г. Turbo Pascal 7.0. ... Изд. гр. "BHV", 1998 ... Уэйт М., ... С., Мартин Д. Язык СИ. Москва: "Мир", 1998 г.
Программаның листингісі
1. PROGRAM IZDEU;
2. uses crt;
3. VAR ... ... ... ... ... ... ENGIZ');
9. READLN(SOILEM);
10. COZ:='de';
11. REPEAT
12. K:=POS(COZ,SOILEM);
13. IF K0 THEN
14. BEGIN
15. DELETE(SOILEM,K,2);
16. END;
17. UNTIL K=0;
18. REPEAT
19. K:=POS('an',SOILEM);
20. IF K0 THEN
21. BEGIN
22. ... ... ... K1:= ... IF K10 ... ... DELETE(SOILEM,K1,2);
29. INSERT('alar',SOILEM,K1);
30. END;
31. UNTIL (K=0) AND (K1=0);
32. WRITELN(SOILEM);
33. readkey;
34. END.
Логикалық структураның баяндалуы
1. программаның аты;
2. crt ... ... ... баяндау бөлімі:
3. енгізілетін сөйлемнің типі;
4. жойылатын сөздің типі;
5. көмекші ... ... ... k, k1- символдардың орнын
анықтауға қолданылады,
6. программаның негізгі денесінің басталуы;
7. экранды тазалау;
8. «мәтінді енгіз» сөзін экранға шығару;
9. ... ... ... ... ... оқу;
10. меншіктеу операторын қолдану арқылы жойылатын сөзді көрсету
11. циклдің басталуы;
12. жойылатын создің сөйлемдегі ... яғни ... ... егер жойылатын сөз табылса, онда
14. жақшаның ашылуы
15. сөйлемнен k ... ... 2 ... жою;
16. жақшаны жабу;
17. циклдің шарты: позиция 0-ге тең болғанша орында;
18. циклдің басталуы;
19. ‘an’ сөзін сөйлемнен іздеп, оның ... ... ... егер k ... 0-ге тең болмаса, онда;
21. жақшаның ашылуы;
22. сөйлемнен k позициясынан ... 2 ... ... сөйлемнің k позициясынан бастап ‘en’ сөзін қою;
24. жақшаның жабылуы;
25. ‘ol’ сөзін сөйлемнен іздеп, оның ... ... ... егер k1 позициясы 0-ге тең болмаса, онда;
27. жақшаның ашылуы;
28. сөйлемнен k1 позициясынан бастап 2 символды өшіру;
29. ... k1 ... ... ‘alar’ сөзін қою;
30. жақшаның жабылуы;
31. циклдің шарты: k және k1 ... 0-ге тең ... ... өзгертілген мәтінді экранға шығару;
33. нәтижені ‘Enter’- ді басқанда ... ... ... ... ... ... мәліметтер мен алынған нәтиже

Пән: Информатика
Жұмыс түрі: Реферат
Көлемі: 14 бет
Бұл жұмыстың бағасы: 400 теңге









Ұқсас жұмыстар
Тақырыб Бет саны
8 Ферзі21 бет
Turbo Pascal жүйесінде массивтерді ұйымдастыру технологиясы39 бет
Turbo Pascal-да программалау13 бет
«Санды тап» ойыны17 бет
Іздеу және сұрыптау алгоритімдері5 бет
Алгоритмдер теориясы және берілгендер құрылымы27 бет
Алгоритмдерді талдау 35 бет
Жоғары деңгейлі тілдерінде программалау12 бет
Интерпол картотекасы13 бет
Крест пен нөл ойынын программалау10 бет


Исходниктер
Пәндер
Көмек / Помощь
Арайлым
Біз міндетті түрде жауап береміз!
Мы обязательно ответим!
Жіберу / Отправить


Зарабатывайте вместе с нами

Рахмет!
Хабарлама жіберілді. / Сообщение отправлено.

Сіз үшін аптасына 5 күн жұмыс істейміз.
Жұмыс уақыты 09:00 - 18:00

Мы работаем для Вас 5 дней в неделю.
Время работы 09:00 - 18:00

Email: info@stud.kz

Phone: 777 614 50 20
Жабу / Закрыть

Көмек / Помощь