Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмдеу жане багдарламалау негиздери 4 г.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
2.73 Mб
Скачать

2.4. Оқытушы жетекшілігімен жүргізілетін студенттердің өзбетіндік жұмысы

1 жұмыс

Тақырыбы: Алгоритм қасиеттері.

Тапсырмалар:

Алгоритмдердің барлық қасиеттерін жазып, қысқаша сипаттама беру.

Алгоритмдердің негізгі түрлерін атап, әр түріне өмірден мысал келтіру.

Картопты тазалаушыға командалар жүйесін ойлап шығару.

Төмендегі тізбектерде әр келесі элемент қатаң алгоритммен алынған. Алгоритмді тауып, қатарды жалғастыру:

а, в, д, ё, з, й;

1, 2, 4, 8, 16, 32;

1, 4, 9, 16, 25;

1, 1, 2, 3, 5, 8, 13, 21, 34;

1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0, 1, 1, 1, 2, 1;

победа, обеда, беда, еда;

о, д, т, ч, п, ш, с, в, д, д.

5. Қара жәшіктің жұмыс алгоритмін табу.

Сөз алгоритмдерінде орыс алфавиті "ё" әрпісіз, яғни 32 әріп қолданылатынын есепке алу керек.

1-мысал.

Кіріс

А

1

3

7

5

Шығыс

Не могу

2

4

8

6

Кіріс

16

23

34

42

57

Шығыс

15

22

35

41

58

2-мысал.

Кіріс

Пар

Коля

Кркркркрк

Ru

Тrue

Шығыс

3

4

9

2

4

3-мысал.

Кіріс

23

5

12

21

132

56

9

20

100

24

Шығыс

47

11

25

43

265

113

19

41

201

49

4-шығыс.

Кіріс

23

5

12

21

132

56

9

20

100

24

Шығыс

45

9

23

41

263

111

17

39

199

47

5-мысал.

Кіріс

Корона

Село

Винт

Молоко

Революция

Шығыс

2

1

0

3

1

Әдістемелік нұсқау:

Қара жәшік деп құрылғысы мен алгоритмі белгісіз объект қарастырылады. Оның алгоритмін түсіну үшін бірнеше тәжірибе жасау – кіріске ақпарат беріп, оның өңделген шығысын зерттеу керек. Бірнеше тәжірибе негізінде қара жәшіктің жұмысы алгоритмі туралы гипотеза шығаруға болады. Гипотезаны жаңа тәжірибелермен тексеріп, бекіту керек. Олар ұзақ немесе әртүрлі болуына байланысты гипотеза не бекітіледі, не бекітілмейді.

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

Орындаушы тәжірибе аяқталғаннан кейін шығыс ақпаратын немесе екі хабардың бірін береді.

Түсінбеймін – егер кіріске басқа типті ақпарат берілсе (мысалы, кіріске әріптер беріліп, алгоритм сандарды өңдейтін не керісінше болса).

Мүмкін емес – егер Орындаушы берілген ақпаратпен алгоритмді орындау алмаса (мысалы, Орындаушы санды 2-ге бөлетін болып, ал оған 3 саны берілсе, өйткені алгоритм тек оң бүтін сандармен жұмыс жасайды).

әдебиет:

Негізгі – 1, 4, 8-9

Қосымша - 4

2 жұмыс

Тақырыбы: Қадамдық құрылымы.

Тапсырмалар:

Берілген тақырыптың негізгі түсініктерін жазу.

Бағдарламаның әр қасиетіне қысқаша сипаттама беру (дұрыстығы, сенімділігі, оқымдылығы, пайдалылығы, әмбебаптылығы, тасымалданушылығы).

Сұрақтарға жауап беру:

Есепті қалай өрнектеу керек?

Алгортим құрғанда неге назар аудару қажет?

Есепті бөлшектенудің әр қадамында қарастыру.

1-мысал: Нүктенің бірқалыпты айнымадлы қозғалысындағы t жылдамдықты, s жолын анықтау программасын құру.

Жылдамдық пен жолды есептеудің жоғарыда келтірілген құрылымын қарастырайық. Табу керек:

1. Қандай объектілер белгілі.

2. Олардың арақатынасы қандай.

3. Олармен қандай әрекет жасауға болады.

4. Не табу керек.

Жауаптары:

1. 0 — бастапқы уақыт мезетіндегі жылдамдық (t= 0), а — қозғалушы нүктенің үдеуі және t —уақыт.

2. t t мезетіндегі жылдамдық және s t уақытта жүрген жол, vt = v0 + at и s = v0t + at2/2 өрнегімен беріледі.

3. Арифметикалық.

4. t және s.

Алгоритм құру кезінде:

1.Қолданылатын объектілерді анықтау (0, а, t, t, , s ).

2. Оларды бастапқы, қосымша (ағымдық, аралық) және ізделінді деп топтау керек. (0, а, t- бастапқы, t – қосымша шама бола алады, t және s –ізделінді шамалар).

3. Бастапқы объектілерге мән беріледі: (0 = 7 м/с, а =0.6 м/с2, t = 10 с).

4. Ізделінді нәтижеге жетелейтін әрекеттер тізімін көрсету (vt = v0 + at, s = vQt + at'2/2).

Алдымен «ірі» командалардың алгоритмін құру керек (бұл жерде Орындаушының мүмкіндігінен тыс командалар болуы мүмкін):

алгоритм Жылдамдық және жол

деректерді жариялау

басы

енгізу бастапқы деректер

шығару есептің тақырыбы және бастапқы деректер

жылдамдықты есептеу

жолды есептеу

шығару шығыс деректерінің тақырыбы және нәтижелері

соңы

Бөлшектеудің екінші қадамынан кейін жобаның жаңа нақты түрін келтіреді:

алгоритм Жылдамдық және жол

заттық айнымалылар

басы

енгізу0, a, t

шығару жылдамдық пен жүрген жолды есептеу

бастапқы деректер:

0 = 7 а = 0.6 t = 10

t 0 + at

s 0 t + at2/2

шығару Жауабы:

жылдамдық = цц.ц

жол= ццц.ц

соңы

жолды табудың нәтижелі алгоритмін құруға болады. Қазір 0 t + at2/2 мәнін есептеу сегіз операциямен жүргізіледі. Олаордың санын (0 + vt) t/2 түрінде жазып, екі есе кемітеміз. Және бөлу операциясын көбейту оперциясымен алмастырып, жол (vo + vt)t х 0.5 болатынын аламыз.

2-мысал. h сағат, m минут, s секундта ұшып, ауада t секунд болған ұшақтың қону уақытын анықтау. Келесі тәулікке өту мүмкіндігін ескеру қажет. (сағат, минут, секунд)

3-мысал. Екі күн арасындағы уақытты анықтау) мысалы, 1969 жылдың 1-қарашасы мен 2069 жылдың 1-қарашасы арасындағы күнді).

Әдістемелік нұсқау:

Алгоритм құру шығармашылық жұмыс болып табылады және эрудицияны қажет етеді. Программалау – нәтижесі белгілі бір бағытқа бағытталған нақты жауап болатын құрылымдық процесс.

Жобаны жасақтау кезінде қадамдық бөлшектеу әдісі қолданылады. Алгоритм әруақытты жетілдіріліп отыратын объект болып қарастырылады: бастапқы түрінен (қысқа болатын) тізбектік өзгертулер арқылы жоғарыда аталған қасиеттерге сай түрге өтеді.

Келесі екінші қадамда алгоритмнің жеке бөліктерін нақтылайды: «деректерді нұсқау» орнына айнымалыларды жазады, бұндағы айнымалылар тізімі анықталмаған; енгізу командасын нақтылайды, сәйкесінше бекіту және шығару командаларын жазады.

Бөлшектеудің үшінші қадамында айнымалыларды атайды. Орындаушыға түсінікті командалардан тұратын алгоритм аламыз.

Сонымен, кез келген, тіпті қарапайым есепті шешу үшін оны абстракция деңгейлеріне, яғни «логикалық қабаттарға» бөлуді және тізбектік жаңарту әдісін қолдануды

әдебиет:

1. Негізгі – 1-2, 6

2. Қосымша – 3

3 жұмыс

Тақырыбы: Ішкі ақпаратты тасушы берілгендер түрі. Кодтау. Программаны орындау.

Тапсырмалар:

№3 дәріспен танысу. Берліген есепті шешудің әр қадамына мысал келтіру.

Интерпретатор мен транслятор арасында параллель жүргізу.

Тексеру (отладка) дегеніміз не және ол не үшін қажет?

Енгізу/шығарудың қандай форматтары бар?

Мысал: Нүкте бірқалыпты айнымалы қозғалғандағы t жылдамдық пен s жолды анықтау программасын есепті қадамдап шығару бойынша құру(СРСП №2).

1 қадам. Есептің қойылымы.

Берілгені: 0 — бастапқы жылдамдық(t= 0), а — қозғалушы нүктенің үдеуі және t — уақыт. Ізделінді нәтиже t t мезетіндегі жылдамдық және s t уақытта жүрген жол.

2 қадам. Математикалық модель құру.

Бастапқы деректер мен нәтиженің арақатынасы vt = v0 + at және s = v0t + at2/2.

3 қадам. Алгоритм құрылымы

алгоритм Жылдамдық және жол

заттық айнымалылар

басы

шығару0, a, t

шығару Жылдамдық пен жүрген жолды есептеу

Бастапқы деректер

0 = 7 а = 0.6 t = 10

t 0 + at

s 0 t + at2/2

шығару Жауабы:

жылдамдық = цц.ц

жол= ццц.ц

соңы

4 қадам. Жобаны тексеру

өрнегін өрнегіне қоямыз, сонда , ол бірқалыпты айнымалы қозғалыс кезінде нүктесі жүріп өтетін жолды есептейді. Есепке ыңғайлы кейбір мәндерінде алгоритм жұмысын кезінде бақылауға болады (сонда , ) (мысалы, , онда , ). Ерекше жағдай: . Есепте берілген мәндермен де тексеруге болады: (онда , ).

5 қадам. Кодтау – алгоритмды программалау тілінде жазу.

Program Fizika;

Var 0, a, t, t, s:real;

Begin

Writeln(‘Бастапқы деректерді енгізіңіз’);

Readln(0, a, t);

t :=0 + a*t;

s:=0* t + a*sqr(t)/2;

writeln(‘жылдамдық=’, t:5:3, ‘қашықтық=’, s:5:3);

end.

6 қадам. Программаны орындау.

turbo.exe файлы қосылады. Мәзірді F10 немесе Alt+мәзірдің ерекше әрпі арқылы қолдануға болады. Мәзірден шығып, редактор терезесіне өту үшін Esc пернесі қолданылады. Ең қажетті командалар: түзетілген мәтіндік файлды сақтау (үнсіз келісім бойынша.pas) - F2; файлды редактор терезесіне шығару- F3; қарапайым программаны тексеру - Alt+F9 немесе F9; программаны жүргізу - Ctrl+F9; программа нәтижесін экранда көру - Alt+F5 (IDE экранға қайтару үшін кез келген символдық перне); қадамдық жүру - F7 немесе F8; айнымалы атын ағымдық мәнін көру терезесіне енгізу - Ctrl+F7 (бұл терезе редактор терезесін жаппау үшін Window пунктінен Cascade таңдауға болады); IDE-ден шығу - Alt+X.

Әдістемелік нұсқау:

IDE қосылғанна кейін экранда мәзір мен мәтін редакторы терезесі пайда болады. Жиі қолданылатын командалар орнына пернелер жиынтығын қолдануға болады.

Файл атын өзгерту үшін FileSave_as қолданылады.

IDE өзгертулерін басқа қолданушыларға кедергі келтірмес үшін өз каталогында сақтау керек. Ол үшін алғашқы сақтау кезінде OptionsSave_as, ал келесі жолы OptionsSave қолдану керек.

Программалар мысалдарын қолдану үшін оларды IDE буфері арқылы көшіру қажет. Ол үшін мысалды ерекшелеп (Shift+ немесе Shift+Page_Down), буферге көшіріп(Ctrl+Insert), өз терезеңізге өтіп (F6), буферден қою (Shift+Insert) және блок түсін өзгерту (Ctrl+K,H) керек.

әдебиет:

1. Негізгі – 1,2 6

2. Қосымша – 3

4 жұмыс

Тақырыбы: Шартты циклдер. Алғышартты және соңғышартты цикл.

Тапсырмалар:

№4 дәріс мазмұнымен танысу.

Алғышартты және соңғышартты циклдар арасынан параллель жүргізу.

Соңы 0 болатын натурал сандардың бос емес тізбегі берілген. Осы тізбектегі ең кіші элементтің нөмірін анықтайтын программа құру.

Екі теріс емес санның ең үлкен ортақ бөлгішін (ЕҮОБ) табу программасын құру.

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

5-тен үлкен бүтін сандардың қосындысын табу.

Бүтін сан цифрларының үлкенін табу.

Алғышартты циклдың кез келген операторын шартты оператор және соңғышартты оператордың көмегімен жазуға болатыны көрсету.

1-мысал. Алғышартты цикл. П натурал саны берілген. Берілген санның цифрлар санын есепеңіз.

Шешуі. Цифрлар санын есептеуді санның соңынан бастаймыз. Цифр есептегішін бірге арттырамыз. Санды 10-ға бөлу арқылы санның соңғы цифрынан арыламыз, кейін алынған сағы осы әрекет тізбегін сан нөлге тең болғанға дейін қайталаймыз.

Program Example;

Var m, n: Longint;

k: Integer; { цифр есептегіші}

Begin

Writeln('Бүтін сан енгізіңіз'); { n бүтін санын енгіземіз}

Readln(n);

m:=n;

k:=0;

While m<>0 Do {m<> 0 болғанда орындалады (Do)}

Begin

Inc(k); {немесе k:=k+l;}

m:=m Div 10; {санның соңғы цифрын азайтамыз}

End;

Writeln('В числе',n,' - ',k,' цифр !'); {цифрлар санын шығару} Readln;

End.

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

Программаны 65387 саны үшін қадамдап қарастырайық, программа нәтижесінде экранда келесі сөйлем шығады: