Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СРС-АСД.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
437 Кб
Скачать
☆

Теориялық мәліметтер. Жолды типпен орындалатын операциялар

Жолмен - меншіктеу, біріктіру, салыстыру орерациялар орындалады. Турбо Паскаль тілінде STRІNG типті айнымалыны екі жол мен қарастыруға болады: :

1) жолды 1-объект түрінде санап, өңдеуді бір бүтін элементпен орындау. Мысалы: STR1=’БҰЛ ЖОЛ’

2) жолды CHAR типті элементтерден тұратын объект түрінде қарастырып, әр элементті өзінше өңдеуге болады.

1).Функция LENGTH(STR) - ІNTEGER типті функция. Бұл функция текстік жолдың ұзындығын анықтайды.

2).Функция POS(SUBST, ST) - ІNTEGER типті функция, жолдан анықталған бір фрагментті іздеуге мүмкіндік береді.. Егер ізделінген фрагмент табылса функция оның бірінші символы тұрған орнының номерін қайтарады. Егер табылмаса нольді қайтарады.

3) Функция UPCASE - CHAR типті функция. Бұл функция жолды айнымалының кіші әріптерді үлкен әріпке ауыстырады. Бұл функция орыс әріптерін қабылдамайды. Егер басқа да символдар кездессе функция оны өзгеріссіз қайтарады.

4) DELETE процедурасы бір жолдан (мысалы -SL) көрсетілген позициядан(NUM) бірнеше (POS) символдарды жояды. Егер POS >LENGTH (SL) болса онда бұл процедура ешқандай өзгерті орындамайды.

5) ІNSERT процедурасы. Бұл процедура бір жолға көрсетілген позициядан бастап басқа бір жолды енгізеді.

6) STR (x[:WІDTH [:DECІMALS]]ST) - процедурасы. Бұл процедура x -санын (бүтін немесе нақты) символдық жолға айналдырады. Егер WІDTH және DECІMALS параметрлері көрсетілсе олар айналдыру форматын көрсетеді.WІDTH -жалпы жол ұзындығы. DECІMALS - бөлшек бөлігінің ұзындығы.

VAL процедура - cимволдық жолды x-бүтін немесе нақты типтің ішкі көрінісіне айналдырады. Егер айналдыру ойдағыдай аяқталса, онда y=0. Басқа жағдайда y қате символдың позиция нөмірін қайтарады. жолында бос орын тек бас жағында болуы мүмкін.

Мысалы:

Екі жол ретінде екі әртүрлі сөз берілген. Алфавиттік рет бойынша осы сөздерді экранға шығару.

PROGRAM PRIM_13;

{}

Var

t1,t2:string;

BEGIN

Write(‘бірінші сөзді енгіз’);Readln(t1);

Write(‘екінші сөзді енгіз’);Readln(t2);

If t1>t2 Then Writeln (t1,’ ‘,t2) Else Writeln (t2,’ ‘,t1);

End.

Файлдар жайлы жалпы мағлұмат

Текстік файлды символдар тізбегі деп қарастырса болады , 0 ден 256-ға дейін ұзындығы бар жолдарға бөлінген.Жариялау үшін стандартты Text тип қолданылады.

Var F:text; {файлдық айнымалы}

Әр жол соңы маркермен аяқталады. Тәжірбиеде мұндай маркер екі символ маркер тізбегінен тұрады: жолды ауыстыру ch(13) және каретканы қайтару ch(10).

Текстік файлдарды ашу стандартты екі әдіспен жүзеге асады:

файлдық айнымалыға файл атын сәйкестіру (Assign процедурасы) , жаңа текстік файлды ашу (Rewrite процедура)

файлдық айнымалыға файл атын сәйкестіру (Assign процедурасы) , бар текстік файлды ашу (Reset процедура)

Текстік файлдар жұмыс кезінде екі операцияның біреуін істеуге мүмкіндік береді: оқу немесе жазу. Осыған байланысты текстік файлдармен жұмыс істеген кезінде тағы бір процедура пайда болады: Append(var F:text);

Бұл процедура бар файлды ашады және нұсқағышты файлдың соңына қояды. Бұдан кейін ашылған файлды толықтыруға болады. Текстік файлдарды өндеу үшін Read және Write процедуралары қолданылады.

Енгізу-шығару операцияларды жүзеге асырғанда арнайы тілдің құралдары қолданылады , олар келесі функциялар :Eoln , Eof , SeekEoln , SeekEof. Eoln функциясы (var F:text) - True булдік мәнді қайтарады , егер файлдық позиция жолдың соңғы маркерінде тұрса, қалған барлық жағдайда функция мәні False болады. Eof функциясы (var F:text) True булдік мәнді қайтарады , егер файлдық позиция компоненттен кейін тұрса , теріс жағдайда – False мәнді қайтарады. SeekEoln(varF:text) функциясы True мәнін жолдың соңғы маркеріне жеткенде қайтарады , пробел және табуляцияларды қалдырады, кері жағдайда False мәнін қайтарады. SeekEof(var F:text) функциясы True мәнін файлдың соңғы маркерінде болғанда қайтарады , пробел және табуляцияларды қалдырады.

Мысалы:

Білімгерлердің фамилиясы бар текстік файл құру. Құрылған файлды қарап шығу. Файлды ондық бүтін санмен толықтырып, және қайтадан қарап шығу.

Программа мәтіні:

Var f:Text; FileName, Fam : String[20]; i, z : Integer;

{ f — файлдық айнымалы; FileName — файл аты;

Fam — фамилияны енгізу/шығару үшін айнымалы; i — цикл параметрі үшін;

z — бүтін сандарды енгізу/шығару үшін.}

Begin

Write('Файл атын енгіз'); Readln(FileName);

Assign(f,FileName); {файлдық айнымалымен файл арасында байланыс орнату.}

{***Фамилияны жазу***}

Rewrite(f); { Жазба үшін файлды ашу.}

Write('Фамилия ?'); Readln(Fam);

While Fam<>'' Do { фамилия орнына <enter> пернесі басылғанша цикл орындалады.}

Begin

Writeln(f,Fam); {Дискке информацияны жазу.

Әрбір фамилиядан соң — қатар соңын көрсететін символ.}

Write('Фамилия ?'); Readln(Fam); {Клавиатурадан келесі енгізу.}

End;

Close(f); {Файлды жабу.}

{***Файлды қарап шығу***}

Reset(f); { Оқу үшін файлды ашу.}

While Not Eof(f) Do {Файлдың соңы болғанға дейін цикл жұмыс істейді.}

Begin

Readln(f,Fam); {Файлдан қатарды санаймыз.}

Writeln(Fam); {Экранға қатарды бейнелейміз.}

End;

Close(f);

{***10 бүтін санды жазу***}

append(f); {Толықтыру үшін файлды ашу.}

Writeln(f,'10 бүтін сан'); {Файлға символдық тұрақтымен жазу.}

For i:=1 To 10 Do

Begin

Write('Бүтін санды енгіз'); Read(z); {Клавиатурадан бүтін санды енгізу.}

Write(f,z,' '); {Дискке санды жазу. Сандар бірі-бірінен пробел арқылы бөлінген.}

End;

Close(f);

{***Файлды қарап шығу***}

Reset(f);

{Файлдан фамилияны оқимыз және экранға шығарамыз.}

While Fam <> '10 бүтін сан' Do

Begin

Readln(f,Fam);

Writeln(Fam);

End;

{Санды файлдан оқып, экранға шығарамыз.}

For i:=1 To 10 Do

Begin

Read(f,z); Write(z,' ');

End;

Close(f);

End.

Тапсырма варианттары:

  1. Символдық жол берілген. “а” әріпінен басталатын сөздердің санын анықтайтын, “а” әріпінен басталатын ең ұзын сөзді баспаға шығаратын программа құру керек.

  2. Символдық жол берілген. Жолдағы барлық леп белгілерді нүктемен ауыстыратын және әр нүктені үш нүктемен ауыстыратын программа құру керек.

  3. Символдық жолдар берілген . Жолдағы “*” символын жоятын программа құру керек.

  4. Берілген символдық жолда а)abc; b)aba әріптер тобы кездесетін санын анықтау керек.

  5. Символдық жолдар берілген. Бірінші және соңғы символдары бір-бірімен сәйкес келетін сөздердің санын анықтау керек.

  6. Арасында ең болмағанда бір нүкте кездесетін символдық жолдар берілген,. Одан барлық нүктелерді жойып, бірінші нүктеден кейін кездесетін барлық “5” санды “+” белгісімен ауыстыру керек.

  7. Символдық жолдар берілген. “я” әріпінен басталатын ең ұзын сөзді табатын, және оны кері реттімен жазатын программа құру керек.

  8. Символдық жолдар берілген. Жолдағы ең ұзын сөзді тауып, оны жолдағы соңғы сөзбен ауыстыратын программа құру керек.

  9. Текст берілген. (a, e, i, o, u) дауысты латын әріптері ең көп кездесетін сөзді табу керек.

  10. Текст берілген. Ең ұзын цифрлі топты тауып , оны соңғы цифр топпен алмастыратын программа құру керек.

  11. Текст берілген. “а”, “в” әріптері максималды кездесетін барлық сөздерді іздестіретін, және ол сөздерді текстен өшіретін программа құру керек.

  12. Текст берілген. “а” әріпі екі рет кіретін барлық сөздерді табу керек.

  13. Текст берілген. “9” цифрынан басталатын ең ұзын цифр тобын табу керек

  14. Текст берілген. “я” әріпінен басталатын және аяқталатын сөзді текстен өшіру керек.

  15. Текст берілген. “т” әріпінен басталатын және аяқталатын сөзді текстен өшіру керек.

  16. Бос орынмен бөлінген, цифр топтарынан тұратын текст берілген. “1” цифрынан басталатын және аяқталатын ең ұзын топты тауып , оны бірінші цифр тобымен ауыстыр.

  17. Текст берілген. Текстегі бірінші үш сөзден “р” әріптің санын анықтау керек.

  18. Текст берілген. Егер тексте “*” символы жоқ болса, онда бұл тексті өзгеріссіз қалдыру керек, әйтпесе бірінші “*” символд “5”цифрына ауыстырып, қалғанын жою керек.

  19. Символдық жолдар берілген. Бірінші және соңғы символдары бір-бірімен сәйкес келетін сөздердің санын анықтау керек.

  20. Арасында ең болмағанда бір нүкте кездесетін символдық жолдар берілген,. Одан барлық нүктелерді жойып, бірінші нүктеден кейін кездесетін барлық “5” санды “+” белгісімен ауыстыру керек.

2-СӨЖ-дің бесінші тапсырмасы

Сұрыптау әдістерінің бірін қолдану арқылы массив элементтерін реттеу керек және іздеу алгоритмін қолдану керек.

Теориялық мәлімет:

Алгоритмен жұмыс істегенде көбінесе элементтерді реттеу класы қолданады. Бұндай жұмыс реттеу класы деп аталады және есеп шығарған кезде кейбір әдістері қолданылады.

Қарапайым таңдау бойынша сұрыптау – бұл сұрыптаудың қарапайым алгоритмі. Сұрыпталатын массивте ең кіші элемент массивтің басында орналасады. Жұмыс жанында тізімдермен айқын ретте тізім элементтерінің ауыстырып қою қажеттілігі өте жиі көрінеді . Сондай мақсаттағы тізімдерді сұрыптау деп аталады және оның шешіміне арналған әртүрлі әдістерді қолданады.Соларды қарап шығайық.

Көпіршікті сұрыптау. Көпіршікті сұрыптау өзінің қарапайым нұсқауында жай орындалады. Сондықтан оны элементтерді оптималдау үшін қолданады.Барлық көпіркшікті сұрыптаудың ерекшелігі-массив элементтерінің арасындағы алмасу.Массивтің екі көрші арасында орындалады.Көпіршікті сұрыптау келесіден тұрады:тұрақты, бүтін сандар берілген. (Қарапайым түрі)

В тобындағы элементтерді өз орнынп қойып шыққанда В=b тобындағы элементтерді шығарып алу үшін келесі формуланы қолданамыз кез-келген үшін.1<=i<=n элемент K^(1)=”k(i+1)”

Алгоритмді сұрыптау кезінде В тізімінен,В үздіксіз айырбастау кезінде жанында тұрған элемент ретке сәйкес. Сұрыптаудың үздіксіз қарапайымы көршілес тұрған элементтерді ауыстыру кезінде, қарағанда көпіршікті сұрыптауды анықтайды.Максималды элементтер тізімнің соңында тұрады.

Мысалы:

В=<20.-5.10.8.7>,

B1=<-5.10.8.7.20> 1 көрініс

B2=<-5.8.7.10.20> 2 көрініс

B3=<-5.7.8.10.20> 3 көрініс

Келесі мысалда бір өлшемді массивті реттеу класымен (n индексінен m индексіне дейін) өсу ретін байқаймыз.

Есеп. Бүтін санды массив берілген. Элементтерін өсу ретімен сорттау.

Шешімі: А (8, 4, 7, 6) массиві берілген

I

J

Массив

1

1

4, 8, 7, 6

2

4, 7, 8, 6

3

4, 7, 6, 8

2

1

4, 7, 6, 8

2

4, 6, 7, 8

 3

4, 6, 7, 8

3

1

4, 6, 7, 8

 

2

4, 6, 7, 8

 

3

4, 6, 7, 8

Программасы:

program sort;

var A:array[1..100] of integer; N, I, J, P: integer;

begin

write(‘Введите N’); readln (N);

for I:=1 to N do

begin write (‘A[‘,I, ‘]=‘); readln (A[I]) end;

for I:=1 to N-1 do

begin for J:=1 to N-1 do

if A[I]>=A[I+1] then

begin P:=A[J]; A[J]:=A[J+1]; A[J+1]:=P end

end;

for I:=1 to 10 do write (‘A[‘,I, ‘]=‘, A[I])

end.

Тапсырма варианттары

  1. Берілген Х(21) бір өлшемді массивінің алғашқы 10 элементін мәндерінің өсуі бойынша, соңғы 10-ын кемуі бойынша реттеп, Х массивін баспаға беріңіз.

  2. Берілген А(15) массивін элементтерінің кемуі бойынша реттеп, ең үлкен және ең кіші элементтерінің косинустарының қосындысын табыңыз, түрленген А массивін баспаға беріңіз.

  3. Берілген А(13) массивінің ең үлкен элементіне дейінгілерін өсуі бойынша, кейінгілерін мәндерінің кемуі бойынша реттеп баспаға беріңіз.

  4. Берілген А(12) массивін мәндерінің өсуі бойынша реттеп, ең үлкен және ең кіші мәндерін, А реттелген массивін баспаға беріңіз.

  5. Бір өлшемді А(11) массивін мәндерінің өсуі бойынша реттеп, ортаңғы бес элементтерінің қосындысын баспаға беріңіз.

  6. Берілген А(10) массивін мәндерінің өсуі бойынша реттеп, 5-ші, 9-шы және соңғы элементтерінің қосындысының косинусын баспаға беріңіз.

  7. Берілген А(15) массивін ең кіші элементке дейінгілерін кемуі бойынша, кейінгілерін мәндерінің өсуі бойынша реттеп, баспаға беріңіз.

  8. Х(20) массиві берілген. Массив элементтерін мәндерінің өсуі бойынша реттеп, ең үлкен және ең кіші элементтерінің қосындысын табыңыз.

  9. В(30) массивінің элементтерінің тангенстерінен тұратын Х(30) бір өлшемді массивін анықтап, соңғысын элементтерінің кемуі бойынша реттеп баспаға беріңіз.

Берілген А(10) массивінің соңғы 7 элементін мәндерініқ өсуі бойынша реттеп, А массивінің ең үлкен элементі қанша рет кездесетінін анықтаңыз, реттелген А массивін баспаға беріңіз.

  1. Берілген А(21) массивінің алғашқы 11 элементін өсуі бойынша, қалғандарын кемуі бойынша реттеп, шеткі мүшелерінің квадраттарының қосындысын есептеңіз.

  2. Берілген А(21) массивінің алғашқы 7 элементін кемуі бойынша реттеп, А массивінің ең кіші элементі қанша рет кездесетінін анықтаңыз, А массивін баспаға беріңіз.

  3. Берілген А(15) массиві бойынша ві=sіn aі формуласы бойынша В(15) массивін анықтап, баспаға беріңіз. (мұндағы аі+1>=аі барлық і=1,15 үшін)

  4. Берілген Z(19) массивін элементтерінің өсу ретімен реттеп, ең үлкен және ең кіші элементтері қанша рет кездесетінін анықтаңыз.

  5. Берілген В(15) массивінің ең үлкен элементіне дейінгілерін квадраттарымен ауыстырып,кейінгілерін мәндерінің кемуі бойынша реттеп, В массивін баспаға беріңіз.

  6. Берілген В(25) массивінің соңғы 13 элементін мәндерінің кемуі бойынша реттеп,барлық элементтерінің қосындысын және В(25) массивін баспаға беріңіз.

  7. Берілген В(35) массивінің орташа 15 элементін мәндерінің өсуі бойынша реттеп, В массивінің арифметикалық ортасын табыңыз.

  8. Берілген А(30) массивінің алғашқы теріс элементке дейінгілерін(кем дегенде бір теріс элемент бар) өсуі бойынша реттеп, қалғандарын 2 еселеп, А массивін баспаға беріңіз.

  9. Берілген А(9) массивін мәндерінің өсуі бойынша реттеп. Ең үлкен элементін және реттелген А массивін баспаға беріңіз.

  10. Берілген В(11) массивінің элементтерін өсуі бойынша реттеп, ең үлкен және ең кіші элементтерінің мәндерін ауыстырып баспаға беріңіз.

  11. Берілген В(25) массивінің ең үлкен 5 элементінің қосындысын және көбейтіндісін баспаға беріңіз.

  12. Берілген А(15) массивінің ең кіші 3 элементінің арифметикалық ортасын табыңыз.

  13. Берілген Х(20) массивін мәндерінің өсуі бойынша реттеп, алғашқы 10-шы және соңғы элементтерінің арифметикалық орташасын баспаға беріңіз

  14. А(24) массиві берілген. Оның алғашқы теріс элементіне дейінгілерін (кем дегенде бір теріс элемент бар) өсу ретімен, қалғандарын кему ретімен реттеп, А массивін баспаға беріңіз.

  15. Берілген А(20) бір өлшемді массивінің ең үлкен 5 элементінің қосындысын және геометриялық ортасын табыңыз.

Кесте 5. Негізгі және қосымша әдебиеттер тізімі

№

Авторлары

Оқулық немесе оқу құралының аталуы

Баспа, шығарылған жылы

Кітапхана аталуы

Саны

1

2

3

4

5

6

Негізгі оқу құралдары

1

Бөрібаев Б.Б., Махметова А.М.

Алгоритмдеу және программалау тілдері

Алматы: Ассоц

вузов РК, 2011.- 328 б. -

ТарМУ кітапханасы

70

2

Баржаксынова, А.И.

Алгоритмизация и программирование.

Караганда: КарГТУ, 2007.

ТарМУ кітапханасы

6

3

Леонов, В.В.

Алгоритмизация и языки программирования: лабораторный практикум

Караганда: МБА, 2010.

ТарМУ кітапханасы

2

4

Солодовникова, И.В.

Программирование на алгоритмических языках Часть 2 Ч. 2: эл. учебник по курсу " Языки и технологии программирования".-

Караганда: КарГТУ, 2008

ТарМУ кітапханасы

5

5

Томилова, Н.И

Алгоритмизация и языки программирования: учебник

Караганда: КарГТУ, 2008

ТарМУ кітапханасы

5

6

Шаяхметова, Б.К.

Преподавание курса: алгоритмизация и технология программирования: учебное пособие

Астана, 2007.- 147 с

ТарМУ кітапханасы

5

7

Көксеген Ә. Е., Сейфуллина Ә. О.

Алгоритмдеу және программалау тілдері

Алматы: Ассоциация вузов РК, 2011.

ТарМУ кітапханасы

7

8

Шаяхметова, Б.К.

Программалау технологиясы және алгоритмизация оқу курсы Электрон. текстовые дан

Астана, 2007.- 148 б.

ТарМУ кітапханасы

3

Қосымша оқу құралдары

9

Астапенко, Н. В

Методическое указание к выполнению лабораторных работ по дисциплине "Алгоритмизация и языки программирования".

Уральск: ЗКАТУ им. Жангир хана, 2010.

ТарМУ кітапханасы

8

11

Астапенко, Н. В.

УМП Курс лекций по дисциплине «Алгоритмизация, структуры данных и программирование» Учебно-методическое пособие

Петропавловск: ИПО СКГУ, 2013 ж.- 99.

ТарМУ кітапханасы

3

12

Попов, С.Н.

Алгоритмизация и языки программирования.

Караганда: КарГТУ, 2008.- 9/1.

ТарМУ кітапханасы

2

13

Смайлова, У.М.

Программирование на алгоритмических языках

Алматы, 2006.

ТарМУ кітапханасы

14

Жидеқұлова, Г.Е.

Алгоритм және Турбо Паскаль

Тараз: ЖК Байталиев Е, 2010.- 157б.

ТарМУ кітапханасы

2

24