Автор работы: Пользователь скрыл имя, 13 Марта 2014 в 21:31, реферат
Көптеген жылдар бойы алгоритмге деген қызығушылық өсу үстінде .Ол ғылыми зертеулерде, техникада, эконмикада және т.с.с. көптеген салаларда есептеуіш машиналарда қолданумен байланысты. Бұл есептеуіш машиналары берілген алгоритмдерге сәйкес оның кейбір өлшемдерінің құрылымен дәл орындайды. Бұл мүмкіндіктің тартымды болу себебі, айтып кеткен зертеулер көлеміндегі зерттелінетін процестер көп жағдайда математикалық функция, теңдеулер жүйесі, теңсіздіктер көмегімен сипатталады және осы зерттелінетін процестердің нақты мәліметтерін алу үшін математикалық объектіде кейбір іс - әрекеттер жасау қажет. Адамға тек, керекті түрлендірулер мен есептеулердің алгоритмдерін сипаттаса болғаны, қалғанын есептеуіш машинасы өзі орындайды. Есептеуіш машиналары тек сандық алгоритмдерді орындайды деп ойламау керек. Сонымен қатар бұл машиналар алгебралық формулалар, текстер және т.б. символдарының нәтижелерін түрлендіре алады.
КІРІСПЕ
ТАРАУ 1. ЖИЫНДАР
Жиындар туралы түсінік.
“ Жиын ” типті типтелген константалар.
Жиынның қасиеттері.
Жиындарға амалдар қолдану.
Жиында қолданылатын процедуралар.
ҚОРЫТЫНДЫ
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР
ҚОСЫМША
Сонымен қатынас амалдардың нәтижесі типі Boolean логикалық типті болады.
> және < қатынас амалдары жиындар үшін анықталмаған.
1.5. Жиынға қолданылатын процедуралар.
Турбо Паскальда жиындық типтер үшін төмендегі стандартты процедуралар қолданылады.
INCLUDE – бұл процедура жиынға жаңа элементті тіркеу немесе жалғау үшін қолданылады.
Программадағы жазылуы немесе шақырылуы:
INCLUDE ( S, i )
Мұндағы, S – жиын;
i – жалғанатын немесе
INCLUDE (S,i) конструкциясы S:=S+[i] өрнегімен сәйкес келеді, бірақ INCLUDE процедурасы ықшамдырырақ кодты генерациялайды.
EXCLUDE – бұл процедура
жиыннан элментті шығару
Программадағы жазылуы немесе шақырылуы:
EXCLUDE (S,i);
Мұндағы, S-жиын;
i - жиыннан шығатын элемент.
Осы процедураларды қолданғанда S жиынды құрайтын базалық тип пен i элементтің типі сәйкес болуы қажет.
ҚОРЫТЫНДЫ.
Кез келген прогроммист жүйемен практикалық жұмысқа кірісуде, алдымен Турбо Паскаль ортасымен соқтығысады. Себебі, жоғарыда айтып кеткендей, Паскаль тілі кез-келген саладағы күрделі есептері шешу үшін пайдалануға болатын кең таралған стандартты программалау тіліне айналды.
Турбо Паскальда бір типке жататын бірнеше элементтерден тұратын объектілерді де пайдалануға болады. Осындай бір типке жататын элементтерден құрылған құрылымдық типке “жиындар” жатады.
Жоғарыда жазылған курстық жұмысымда “жиынды” негізгі тақырып ретінде ала отырып қарастырдым.
Алдымен кіріспе бөлімінде алгоритм, программалау тілі деген ұғымдарға түсініктеме беріп кеттім. Программалау тілдері ішіндегі Паскаль тілінің даму тархына тақталдым.
Негізгі бөлімде жиындарға толық түсініктеме беріп, оның қасиеттеріне, оған қолданылатын операциялар мен процедураларға тоқталдым. Сонымен қатар жиындарды қолданып бірнеше есептер қарастырып, оған программалар құрдым. Есептерге түсініктемелер берілді.
Сонымен, қорыта келгенде жиындар көптеген есептерді шешуде икемді де көрнекті механизм болып табылатындығын білдік. Және оларды жеке жағдайда жолдар мен тексттерді өңдеуге қолдануға ыңғайлы. Дегенмен, Турбо Паскальда оның өлшемінің қуаты шектеулі болғандықтан, оны N>255 мәні үшін қолдануға болмайтынын ескерген жөн.
ПАЙДАЛАНҒАН ӘДЕБИЕТТЕР
1. Абрамов С. А., Зима Е.В.
Начало программирования на
2. Епанешников А. М., Епанешников В. П. Программирование в среде Турбо Паскаль. Диалог мифе ,1996.
3. Зубов В.С. Турбо Паскаль.
4. Лапчик М.П. Вычисление. Алгоритмизация. Программирование.
5. Марченко Турбо Паскаль 7.0
6. Мұқашева М.Ө. Турбо Паскаль тілінде программалау негіздері.
7. Фаронов Турбо Паскаль 7.0
ҚОСЫМША
Есептердің берілуі.
Жиындарды қолданып, бірнеше есептерді қарастырайық.
Есеп 1.
Есеп 2.
Тек жолдық латын әріптерінен тұратын екі символды жолдар берілген. Алфавит тәртібімен және қалауынсыз S1 және S2-ге ортақ символдар кіретін S3 жолды құру керек.
Есеп 3.
Символдар жолы берілген. Берілген жол идентификатор болыып табылатынын я табылмайтынын анықтайтын праграмма құру керек. Программада жиынның базалық типі CHAR болып табылады. Сондықтан элементтін жиынға тиістілігін тексеру амалын орындауда IN амалының оң жақтаңы элементі CHAR типін талап етеді. Символдарды бөліп шығаратын COPY функциясы STRING типті нәтиже беретіндіктен, жолдан символды бөліп шығару үшін индекстеу қолданылады. Ал бұл жиын үшін мүмкін емес.
Есеп 4.
2..N-ге (1<N<255) дейінгі натурал сандардан барлық жай сандарын анықтайтын программа құру керек. Бұндай типті есепті шешу үшін «Решето Эратосфен» деп аталатын танымал алгоритм бар. Онығ мәнісі мынада:
Бұндай алгоритмнің жұмысы N=15 тең болғандағы мысалы (таңдалған жай сандардың астары сызылған):
2 3 4 5 6 7 8 9 10 11 12 13 14 15
5 7 9 11 13
3 5 7 9 11 13 15
7 11 13
11 13
13
Есеп 5.
1..n – ға дейінгі сандар берілген. Осы сандардың ішінен екіге және үшке бөлінетін сандарды бір бөлек, төртке бөлінетін сандарды бөлек экранға шығару.
Бұл есепті шешудің программасы төмендегі алгоритм бойынша құрылады:
Кез келген берілген сандардан m элементен құрылған кездейсоқ жиынды құру программасын жазу керек.
Бұл есепті шешу үшін келесі алгоритмдерді қолдануға болады. Жиынның бірінші элементін S1 деп ал соңғы элементін Sn деп белгілейік.
ПРОГРАММА ПАРАҒЫ.
Program esep1;
S: string;
I,K: byte;
ReadLn(S); K:=0;
For I:=1 To Lengtn(S) Do
If S[I] In [‘.’,’_’,’,’,’:’,’;’,’!’,’*’,’
Then K:=K+1;
WriteLn(‘тыныс белгілер саны мынаған тең ‘, K);
End.
жолды құру программасы.
Program esep2;
Mset=Set of ‘a’..’z’;
Var S1, S2, S3: string;
MS1, MS2, MS3: Mset;
C: Char;
Procedure SM(S:string; Var MS: Mset );
{процедура S жолының барлық символдарын қамтитын MS жиынын құрады }
Var I: byte;
MS:=[];
For I:=1 To Length(S) Do
MS:= MS+[S[I]];
End;
{жолдарды енгізу}
ReadLn(S1); ReadLn(S2);
{ S1 және S2 символдар жолдарынан MS1 және MS2 жиындарын құру }
SM(S1,MS1); SM(S2, MS2);
{жиындардың қиылысуы – ортақ элементтердің MS3 жиынына бөлініп шығуы}
MS3:=MS1*MS2;
S3:=’’; { S3 нәтижелік жолының құрылуы}
For C:=’a’ To ‘z’ Do
If C In MS3 Then S3:=S3+C;
WriteLn(‘нәтиже:’, S3);
End.
Листинг 3. Енгізілген символды жолдың
идентификатор бола ма
анықтайтын программа.
Program esep3;
Var Sim: Char;
Fl: Boolean;
S: String[127];
I,L: Byte;
Bеgin
ReadLn(S);
L:=Length(S);
Sim:=S[I];
If Not ( Sim In [‘A’..’Z’]) Then Fl:=False
Else Fl:=True;
I:=2;
While (I<=L) and Fl Do
Begin
Sim:=S[I];
IF Not ( Sim In [‘A’..’Z’, ‘0’..’9’, ‘_’])
Then Fl:=False else I:=I+1;
End;
If Fl Then WriteLn(‘идентификатор’) else WriteLn(‘нет’);
End.
Листинг 4. Натурал сандардан
жәй сандарды анықтайтын
Program Erotosfen;
Const N=201;
{ 1<N<256 аралығындағы кез келген мәнді алуға болады}
Var A, B: SET OF 2..N;
I, P: Integer;
Begin
A:=[2..N]; B:=[ ]; P:=2; {A жиынның құрылуы, В жай сандардың ізделінді жиыны, бастапқысы бос жиын}
Repeat
{A жиынынан минималды санды іздеу}
While Not (P In A ) Do P:=P+1;
B:=B+[P]; {табылған санды В жиынға қосу}
K:=P;
{ P-болінетін сандарды А- дан шығару}
While K<= N Do
Begin
A:=A-[K];
K:=K+P;
End;
Until A:=[ ]
{нәтижені шығару, яғни В жиынынан барлық сандарды өсу ретімен шығару}
For P:=2 To N Do
If P In B Then WriteLn(P):
End.
экранға шығаратын программа.
Program esep5;
Uses crt;
Const n=50;
Type
Tupe1= Set of 1..n;
Var
g, g2, g3, g4: type;
n1, i: Byte;
Begin clrscr;
g:=[2..50]; n1:=1
While g<>[ ] Do Begin
If n1 mod 3=0 Then Include(g3, n1); { санның 3-ке бөлінетіндігін тексеру}
If n1 mod 4=0 Then Include(g4, n1); { санның 4-ке бөлінетіндігін тексеру}
If n1 mod 2=0 Then Include(g2, n1); { санның 2-ге бөлінетіндігін тексеру}
n1:=n1+1;
Exclude (g, n1);
End;
g:=g3+g2; { g3 және g2 жиындарын g жиынға біріктіру}
WriteLn (‘3-ке және 2-ге бөлінетін сандар:’);
For i:=1 To n Do
If I In g Then Write(i:3, ‘,’);
WriteLn; WriteLn;
WriteLn( ‘4-ке бөлінетін сандар:’);
For i:=1 To n Do
If i In g4 Then WriteLn( i:3, ‘,’);
End.
Program random_subsets;
Uses crt;
Char_set=Set of Char;
S: Char_set;
i, j, k: Integer;
first, last, ch, stop: Char;
Procedure print (name: String; S: Char_set);