Ақпаратты өңдеу форматтары



бет10/31
Дата24.01.2022
өлшемі1,6 Mb.
#113866
1   ...   6   7   8   9   10   11   12   13   ...   31
Байланысты:
Итн толық жауаптарыменн

Информатика: 
ақпарат жинау, сақтау, жіберу, өңдеу және беру әдістері мен құралдарын зерттеумен байланысты- техникалық

  • ақпараттың мәнін сипаттау тәсілін анықтайтын, оның сипаттау тілдерін зерттейтін- семантикалық; 

  • ақпаратты кодтау әдістерін сипаттайтын – прагматикалық; 

  • ғылыми-ақпараттық іс -әрекеттің кейбір түрлерін, оның ішінде индекстеуді, автоматты реферлеуді, машиналық аударманы формальдау және автоматтандыру мәселелерін шешумен байланысты синтактикалық мәселелер топтарын зерттейді. 

Іздеу және таңдау алгоритмдері

Іздеу алгоритмі мысалы, массив элементін қажет қасиеті бойынша іздеуде қолданылады. Әдетте енгізілген бірінші және соңғы элементтерді табу үшін қойылған есептерді шығаруда ерекшелігін көруге болады. Төменде көрсетілген барлық алгоритмдерде N элементтен және бүтін сандардан тұратын А массивінен Х-қа тең санды іздеу туралы мысалдар келтіреміз.

Тізбектік іздеу

Іздеу алгоритімі, мысалы жиым ішінен белгілі бір қасиеттері бар элементті тауып алу үшін қолданылады. Төменде келтірілген барлық мысалдар нақты N элементтен тұратын A жиымының X-қа тең элеметін табу үшін орындалады.

Тізбектік іздеу алгоритімі екі шарты бар цикл көмегімен іске асырылады (while немесе repeat - until). Бірінші шарт индекстің жиымға кіретіндігін (i<=N) қадағалайды. Екінші шарт – бұл іздеу шарты. Біздің жағдайымызда while циклында іздеуді жалғастыру шарты жазылады: (A[i]<>X), ал repeat - until циклында іздеуді тоқтату шарты: (A[i]=X). Цикл денесінде тек бір ғана оператор жазылады: индекстің жиым ішінде өзгеруі.

Циклдан шыққаннан кейін, қандай шарт бойынша шыққанымызды тексеру керек. If операторында, әдетте циклдың бірінші шарты тексеріледі. Егер цикл while шарты бойынша аяқталса, онда іздеудің ойдағыдай аяқталғандығы жайлы айтуға болады. Ал егер repeat - until шарты бойынша аяқталса, онда іздеудің орындалмағаны.



Мысал: Тізбектік іздеу

program Poisk1;

var A:array[1..100] of integer;

N, X, i:integer;

begin

read(N); {N<=100}

for i:=1 to N do read(A[i]);

read(X);

i:=1; {i:=0;}

while (i<=N) and (A[i]<>X) do i:=i+1;

{repeat i:=i+1; until (i>N) or (A[i]=X);}

if i<=N then write(X,' санының A жиымна бірінші енуі ',i,' орында')

else write('табылмады');

end.


Соңғы енуіді іздеу кезінде енгізу операторынан кейін келесіоператорлар жазылу тиіс:

i:=N; {i:=N+1;}

while (i>=1) and (A[i]<>X) do i:=i-1;

{repeat i:=i-1; until (i<1) or (A[i]=X);}

if i>=1 then write(X,' санының A жиымына соңғы енуі ',i,' орында')

else write('табылмады');

Кедергімен іздеу (поиск с барьером)

Кедергімен іздеу алгоритмі, циклдың әр қадамында жиым шекарасын тексеруді орындамауға негізделген. Бұл алгоритмді жиымға кедергі - іздеу шартын қанағаттандыратын кез келген элемент – қою арқылы жүзеге асыруға болады. Кедергі индекстің өзгеруіне шек қояды.

Бұл алгоритмде тек іздеу шарты ғана қалады, циклдан шығу тек ізделген элемент табылған жағдайда, не кедергімен аяқталады. Сондықтан циклдан шыққан кезде біздің тапқанымыз кедергі емес екендігін тексеру керек, Кедергімен іздеу алгоритімі, тізбектік іздеу алгоритіміне қарағанда жеңіл.

Кедергі қоюдың екі тәсілі бар: қосымша элементпен немесе жиымның соңғы элементінің орнына.



Мысал: Кедергімен іздеу

program Poisk2a;

var A:array[1..101] of integer;

N,X,i:integer;

begin

read(N); {N<=100}

for i:=1 to N do read(A[i]);

read(X);

A[N+1]:=X; {кедергіні қосымша элементпен қою}

i:=1; {i:=0;}

while A[i]<>X do i:=i+1;

{repeat i:=i+1; until A[i]=X;}

if i<=N then write(X,' санының A жиымна бірінші енуі ',i,' орында'))

else write(' табылмады ');

end.

program Poisk2b;



var A:array[1..100] of integer;

N,X,i,y:integer;

begin

read(N); {N<=100}

for i:=1 to N do read(A[i]);

read(X);

y:=A[N]; {соңғы элементті сақтау}

A[N]:=X; { кедергіні жиымның соңғы элементінің орнына қою}

i:=1; {i:=0;}

while A[i]<>X do i:=i+1;

{repeat i:=i+1; until A[i]=X;}

if (i

write(X,' санының A жиымна бірінші енуі ',i,' орында')

else write('табылмады');

A[N]:=y; {восстановление последнего элемента массива}

end.


Компьютерде бүтін,нақты сандарды белгілеу.

Программадағы негізгі амалдардың орындалуына керекті ; мәліметтердің сандық, логикалық немесе символдық (литерлік)  мәндері болады. Олармен жұмыс істеу қолайлы болу үшін алгебра I курсындағы белгілеулерге ұқсас шартты атаулар пайдаланылады.  Бұл атаулар әр түрлі мәндерді (сандық мәндер, символдық мәндер, 1 т.б.) қабылдауы мүмкін, сондықтан оның типі деген ұғым енгізіледі.

1.   Сандар. Сандар мен айнымалылар бүтін және нақты болып екіге ажыратылады.

Бүтін   сандар.    Разрядтылығы    16    биттен   тұратын   дербес  компьютерлер   үшін   қолданылатын   бүтін   сандар   (ағылшынша

INTEGER) -32768 бен +32767 аралығында ғана жазылады. Мысалы, +4, -100, 15743, 0, т.б.

Паскаль тілінде ондық және оналтылық бүтін сандар пайдаланылады. Оналтылық сандардың алдында $ белгісі қойылады. Мысалы, $АВС немесе $8В2.

Нақты сандар кәдімгі табиғи аралас сандар тәрізді санның бүтіні мен бөлшегін нүкте арқылы ажыратылып жазылады. Мысалы, 2.65, 0.5, -0.862, -6.0. Ал өте үлкен немесе өте кіші нақты сандар көрсеткіші бар экспоненциал сандар ретінде mE=p түрінде жазылады. Мұндағы: m- санның мантиссасы деп аталады; Е - оның дәрежесі дегенді білдіреді; р - дәреженің сандық мәні.

Кері код

Жалпы, кодтау –ақпаратты ұсынуға арналған шартты белгілер жиынтығы.Кері кодтау /декодтау –кодталған ақпаратты түсінікті тілге аудару. Кері код (ағылшын тілінің толықтырушысы) - есептеу математикасының әдісі, ол тек табиғи сандар үстінен қосу операциясын қолдана отырып, бір санды басқа саннан алуға мүмкіндік береді. Бұрын бұл әдіс механикалық калькуляторларда (арифмометрлерде) қолданылған. Қазіргі уақытта қазіргі заманғы компьютерлерде қолданылады. Кері код (обратный код; back code) — 1) берілген екілік саннан барлық нөлдерді бірлікпен, ал барлық бірліктерді нөлмен алмастыру арқылы алынады; 2) тура кодты разряд-разряд бойынша терістеу арқылы алынған код. Нөмірдің кері коды қосу, көбейту, бөлу арқылы арифметикалық операцияларды орындау үшін қолданылады.



47 санының тура кодын 00101111 инверциялаймыз 01010000


Мысал. 5 санының екілік жүйеде 101, оның 8-биттік екілік кескіні 0000 0101. Нөмірдің кері-8-биттік екілік коды - 1111 1010

Қосымша код...

Оң санның қосымша коды оның тура кодына сәйкес келеді. Бүтін санның тура коды келесі түрде алынады: сан екілік санау жүйесіне аударылады, содан кейін оның екілік жазбасын сан жататын мәліметтер типі талап ететін 0-дер санымен толықтырылады. Мысалы, егер 37(10) = 100101(2 саны Integer типінің шамасы ретінде жарияланса, оның тура коды 0000000000100101 болады, ал егер 37(10) = 100101(2) саны LongInt типі ретінде жарияланса, онда оның тура коды 00000000000000000000000000100101 болады. Неғұрлым шағын жазба үшін оналтылық кодты жиі қолданады. Алныған кодтарды сәйкесінше 0025(16) и 00000025(16) деп жазуға болады.

Бүтін теріс санның қосымша кодын келесі алгоритммен алуға боолады:

1) санның модулінің тура кодын жазу керек;

2) оны инверттеу (нольдерді бірліктермен, ал бірліктерді нольдермен ауыстыру);

3) инверстік кодқа бірлікті қосу.

Мысалы, (–37) санының қосымша кодын LongInt типті шама ретінде алып жазамыз.

1) 37 санының тура коды 00000000000000000000000000100101 болады;

2) инверттік коды 11111111111111111111111111011010;

3) қосымша коды 11111111111111111111111111011011 немесе FFFFFFDB(16).

Санды оның қосымша коды арқылы алу үшін ең алдымен оның таңбасын анықтап алу қажет. Егер сан оң сан болса, онда оның кодын тек ондық санау жүйесіне аудару қажет болады. Теріс сан болған жағдайда келесі алгоритмді орындау қажет:

1) санның кодынан 1-ді азайту;

2) кодты инверттеу;

3) ондық санау жүйесіне аудару. Алынған санды теріс таңбамен жазу.



Қосулар арқылы сұрыптау. Көпіршіктік сұрыптау



Достарыңызбен бөлісу:
1   ...   6   7   8   9   10   11   12   13   ...   31




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет