Коммерциялық емес акционерлік қоғам
АЛМАТЫ ЭНЕРГЕТИКА ЖӘНЕ БАЙЛАНЫС УНИВЕРСИТЕТІ

Ақпараттық жүйелер кафедрасы

 

АЛГОРИТМДЕУ, ДЕРЕКТЕР ҚҰРЫЛЫМЫ ЖӘНЕ БАҒДАРЛАМАЛАУ
5В070300 - Ақпараттық жүйелер мамандығының студенттері үшін
есептік - графикалық жұмысты орындауға арналған әдістемелік нұсқау

 

Алматы 2013

Құрастырушы: А.Г.Ни. Ш.И.Имангалиев. М.Б.Мухашова.Алгоритмдеу деректер құрылымы және бағдарламалау. Есептеу-графикалық жұмыстарды орындауға арналған әдістемелік нұсқау (5В070300 - «Ақпараттық жүйелер» мамандығында оқитын студенттерге арналған)-Алматы: АЭжБУ, 2013– 46 б.

 

Әдістемелік нұсқау есептік-графикалық жұмыс тапсырмаларынан (ЕГЖ), әдістемелік ұсыныстар мен есептік-графикалық жұмыс мазмұны мен орындау шарттарынан, бақылау жұмыстарынан  және қажетті әдебиеттер тізімінен тұрады.

          Әдістемелік нұсқау 5В070300 - «Ақпараттық жүйелер» мамандығының барлық оқу түрінің студенттеріне арналған.

          Без.7, әдеби көр. – 14 атау.

 

Пікір беруші: Калиева С.А

 

«Алматы энергетика және байланыс университеті» коммерциялық емес акционерлік қоғамының  2013 ж. баспа жоспары бойынша басылды

© «Алматы энергетика және байланыс университеті» КЕАҚ, 2013 ж.

Мазмұны

Кіріспе

1. Есептеу-графикалық  жұмысты орындауға жалпы нұсқаулықтар

1.1. Есеп беру қағазының мазмұны

1.2. Есеп беру қағазын безендіруге қойылатын жалпы талаптар

1.3. ЕГЖ қорғауға қойылатын жалпы талаптар

2 .Есептеу-графикалық жұмыс тапсырмаларының нұсқалары

2.1. Есептеу-графикалық жұмыс  №1. Қарапайым деректер құрылымын өңдеудің алгоритмдерін  кескіндік  және бағдарламалық іске асуы

2.2. Есептеу-графикалық жұмыс №2. Күрделі деректер құрылымын өңдеудің  алгоритмдерін кескіндік және  бағдарламалық  іске асуы

2.3. Есептеу-графикалық жұмыс №3. Деректерді iрiктеудің алгоритмдерін кескін түрiнде және  бағдарламалық  жүзеге асыру

Қорытынды

А қосымшасы. ЕГЖ есеп парағының сыртқы парақшасын толтырудың үлгісі

Б қосымшасы. Мазмұнының үлгісі

В қосымшасы. Қолданушы интерфейсі сұлбасының үлгісі

Г қосымшасы. Тапсырманың шешуінің нәтижесінің үлгісі

Әдебиеттер тізімі

Кіріспе

«Алгоритмдеу, деректер құрылымы және бағдарламалау» пәні 5B070300 - Ақпараттық жүйелер мамандығының оқу жоспарындағы негізгі міндетті пән. Оқу бағдарламасының барысында оқытудың екі  түрі қарастырылған: дәріс және зертханалық жұмыс. Оқу бағдарламасында машықтық жұмыс өту уақытының болуына байланысты есептік-графикалық жұмыстың (ЕГЖ) орындалуы “Алгоритмдеу, деректер құрылымы және бағдарламалау” пәні бойынша өзіндік жұмыстың негізгі бір түрі болып табылады.

Тапсырманы орындау кезінде студентке  қойылатын негізгі мақсат-тәжірибе жүзінде компьютерде есепті шешу үшін сенімді бағдарламалау құру кезеңдерін меңгеру.Тапсырманың шартына талдау жасаудан басталып жазылған бағдарлама бойынша есеп берумен аяқталады. Студент  ЕГЖ-мен жұмыс істеу кезінде күрделі тапсырмаларды орындау арқылы болашақта пайдалы тәжірибелер жинайды (дипломдық жұмыс,диссертация,ғылыми зерттеулер), бұлар:

- оқулықтармен және басқа да дерек көздерімен жұмыс істеу тәжірибелерін жинау;

- есепті шешу үшін ақпараттық және компьютерлік технологияларды қолдана алу;

- арнайы бағдарламалық жабдықтарды үйренудің дағдыларын қалыптастыру.

5B070300-Ақпараттық жүйелер мамандығының  жұмыс-оқу жоспарына сәйкес «Алгоритмдеу, деректер құрылымы және бағдарламалау» пәнін оқып-үйрену студенттерден үш ЕГЖ орындалуын ескереді.

Нақты жұмыста үш есептік-графикалық жұмысқа келесі тақырыптар бойынша жеке тапсырмалар жасалған:

- қарапайым деректер құрылымын өңдеудің алгоритмдерін кескіндік және бағдарламалық іске асуы;

- күрделі деректер құрылымын өңдеудің алгоритмдерін кескіндік және бағдарламалық іске асуы;

-деректерді iрiктеудің алгоритмдерін кескін түрiнде және бағдарламалық жүзеге асыру.

Әр ЕГЖ қиындық деңгейімен ерекшеленетін А және В тапсырмаларынан тұрады. Студент А тапсырмасын орындап, оны қорғаған жағдайда 80% тең жоғарғы балл алады, В тапсырмасын орындап, қорғаған жағдайда-100% балл алады. А тапсырмасын жоғарғы балға қорғаған жағдайда ғана   В тапсырмасын қорғай алады.

Әрбір есептеу-графикалық жұмыста қысқаша әдістемелік нұсқаулар және ұқсас есептер шешімінің үлгісі,сосын әр тапсырмаға жеке нұсқа келтіріледі (барлығы 25 түрлі нұсқа құрастырылған). Тапсырма нұсқаларын оқытушы береді.

Сонымен қатар нақты жұмыста есептік-графикалық жұмысты орындауға жалпы талаптар құрастырылған.

Әдебиеттер мен басқа да ақпарат көздерімен жұмыс істеу дағдысын қалыптастыру мақсатында студент ЕГЖ орындау кезінде ЕГЖ тақырыбына байланысты әдебиеттер көзінен теориялық зерттеулерді жүргізу қажет және нәтижелеріне есеп беруі қажет.

Тапсырмаларды орындауға арналған теориялық материал дәрістер өтілген конспектте, зертханалық жұмысқа арналған әдістемелік нұсқаулықтарда және жұмыс бағдарламасы бойынша көрсетілген әдебиеттерде беріледі. Теориялық материал бөлімі студенттердің қолдануы үшін «Ақпараттық жүйелер» кафедрасында электронды түрде тұрады.

1 Есептеу-графикалық жұмысты орындауға жалпы нұсқаулықтар

 

Есептеу-графикалық жұмысты орындауда , жұмысты безендіруде  және бағдарламаны құру кезінде негізгі кезеңдер орындалуы тиіс: әрлеу, жобалау және жүзеге асыру.

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

Жобалау кезеңінде есептің шешімінің сөзбен және кескіндік блок-сұлба түріндегі алгоритмі құрастырылады. Осы кезеңде деректер бағдарламаға қалай жазылатындығын, қолданушы бағдарлама қалай хабар беретіндігі, не істеу керек екендігі және бағдарлама нәтижесі қолданушыға қандай түрде көрсетілу керектігін анықтайтын қолданушының интерфейсі жасалады.

Бағдарламаның жүзеге асу кезеңінде бағдарламалаудың С/С++ тілінде жазылған алгоритмдік қадамнан қадамдық бағдарламаға ауысуы орындалады.

 

1.1 Есеп беру қағазының мазмұны

 

ЕГЖ бойынша есеп беру қағазы көрсетілген тізбек бойынша келесі мәліметтерді қамту тиіс:

- сыртқы парақ;

- бөлімдердің беттерін сілтейтін мазмұны;

- кіріспе;

- теориялық бөлім;

          - жобалық бөлім;

- қолданбалы бөлім;

- қорытынды;

- пайдаланылған әдебиеттер көзінің тізімі.

Сыртқы парақ А қосымшасында көрсетілгендей толтырылады.

«Мазмұнында» бөлімдердің нөмірі және олардың бастапқы нөмірі көрсетіледі. Мазмұн үлгісі Б қосымшасында келтірілген.

Кіріспе тақырыпты және тапсырманы қысқаша сипаттауы тиіс.

Теориялық бөлімінде есептік-графикалық жұмыстың тақырыбы бойынша әдебиеттерден қысқаша шолу келтірілуі тиіс.

«Жобалық бөлімде»  маңызды мiндет қоюды сипаттауы және дерек демалыс және қолданбалы интерфейстiң сұлбасы жасалуға кiретiн мiндет шешiмнiң алгоритмін блокты жасалуы, сипаттауы керек. Қолданбалы интерфейстің сұлбасының үлгісі В қосымшасында келтірілген.

«Қолданбалы бөлімде» бағдарламаның мәтіні және оған түсініктемелер бағдарламалаудың С/С++ тілінде сипатталуы тиіс, тапсырманың шешуі экранда скриншот түрінде бағдарламалық жұмысының  нәтижелерімен бірге көрсетілуі тиіс.Үлгісі Г қосымшасында көрсетілген.

Қорытынды бөлімінде ЕГЖ орындау барысында алынған жұмыс нәтижелерінің талдауы келтіріледі.

Қолданылған дерек көздері тізімінде әдебиеттер мен сайттардың адресі көрсетілуі тиіс.

 

1.2 Есеп беру парағын рәсімдеуге жалпы талаптар

 

Есеп беру қағазы А4 өлшемді ақ қағазының парағында  компьютер және принтердiң пайдалануымен бiр аралық арқылы атқарылуы  керек. Шрифт - кәдiмгi, кегль - 14. Есеп беру  мәтiнiн  келесi өлшемдерді сақтай отырып баспаға шығару керек: сол жағы- 30 мм, жоғарғы жағы - 20 мм, оң жағы - 1, 5 мм және төменгiсi - 25 мм. Беттiң енiн бойымен тегістеу керек.

Құрылымдық элементтердiң басын жолдың ортасына бас әрiптермен баспаға нүктесiз шығару керек.

Бөлімдер, бөлімшелер және пункттердің тақырыпшалары жаңа жолдан басталып, бас әріппен соңына нүкте қойылмай, асты сызылмай жазылуы тиіс (1,25 см).

Әр құрылымдық элемент және бөлімді жаңа беттен бастап жазу керек.

Кестелердің тақырыпшалары болуы керек және нөмірленуі тиіс. Блок-схемалар мен қолданушы интерфейсінің сұлбасының қолтаңбасы болу керек және нөмірленуі керек.  

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

 

1.3 ЕГЖ  қорғауға  жалпы шарттар

 

Студент келесі шарттарды орындаған жағдайда ЕГЖ қорғай алады:

- бағдарламалаудың С/С++ тілінде іске асырылған бағдарлама оқытушымен тексерілуі тиіс;

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

Есептеу-графикалық жұмысты қорғау мерзімі оқытушымен бекітіледі. Уақытында өткізілмеген жағдайда баға 30 балға кемиді.

2 Есептік-графикалық жұмыс тапсырмаларының нұсқалары

 

2.1 Есептік-графикалық жұмыс №1. Қарапайым деректер құрылымын өңдеудің алгоритмдерін  кескіндік және бағдарламалық іске асуы

 

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

 

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

А тапсырмасы. Есептеу процесінің сызықтық алгоритмін құрастыру және бағдарламалық жүзеге асыру.

А тапсырмасының тапсырмалары.

1. Үш мәнді бүтін сан берілген. Оның сандарының қосындысын табу керек.

2. Үш мәнді бүтін сан берілген. Оның сандарының орташа арифметикалық мәнін табу керек.

3. Дөңгелектің ауданы берілген. Дөңгелекке іштей сызылған шаршының (квадрат) ауданын табу керек.  Pi  мәніне 3.14 қолдану керек.

4. Дөңгелектің ауданы берілген. Дөңгелекке сырттай сызылған шаршының (квадрат) ауданын табу керек.  Pi  мәніне 3.14 қолдану керек.

5. Дөңгелектің ауданы берілген. Дөңгелекке іштей сызылған теңбүйірлі үшбұрыштың ауданын табу керек. Дөңгелек диаметрі үшбұрыштың табаны болып табылады.  Pi  мәніне 3.14 қолдану керек.

6. Тікбұрышты үшбұрыштың периметрін және ауданын табыңыз, егер оның a және b катеттерінің ұзындығы берілген болса.

7. Кубтың бүйірінің ұзындығы берілген. Жақтың ауданын,толық бетінің ауданын және осы кубтың көлемін табу керек. 

8. Радиусы  R  болатын дөңгелектің ауданын және шеңбердің ұзындығын табу керек. Pi мәніне 3.14 қолдану керек.

 9. Ішкі радиусы R1, aл сыртқы радиусы R2(R1<R2) тең болатын сақинаның ауданын табу керек. Pi мәніне 3.14 қолдану керек.

10. Теңбүйірлі үшбұрыштың қабырғасы берілген. Осы үшбұрыштың ауданын және осы үшбұрышқа іштей және сырттай сызылған шеңбердің радиусын табу керек.

11. Шеңбердің ұзындығы берілген. Осы шеңбермен шектелген дөңгелектің ауданын табу керек. Pi мәніне 3.14 қолдану керек.

12. Дөңгелектің ауданы берілген. Осы дөңгелекті шектеп тұрған шеңбердің ұзындығын табу керек. Pi мәніне 3.14 қолдану керек.

13. Табандары а және b (a > b) болатын және  бұрыш  alpha  болатын теңбүйірлі трапецияның ауданын табу керек (бұрыш радианмен берілген).

14. Табаны а және b (a > b) болатын және бұрыш  alpha  болатын тікбұрышты трапецияның периметрі мен ауданын табу керек. (бұрыш радианмен берілген).

 15. Екі нүктенің берілген координаттарымен (x1, y1) және (x2, y2) арақашықтығын табу керек.

16. Үшбұрыштың үш төбесінің координатасы берілген  (x1, y1), (x2, y2), (x3, y3). Оның периметрі мен ауданын табу керек.

17. Өзінің А, В, С  (А коэффиценті 0-ге тең емес) коэффициенттерімен берілген, A·x2 +B·x +C = 0 квадрат теңдеудің түбірін табу керек, егер теңдеудің дискриминанты теріс болмайтындығы белгілі болса .

18. Өзінің   A1, B1, C1, A2, B2, C2  коэффициенттерімен берілген  A1·x + B1·y = C1, A2·x + B2·y = C2  түріндегі теңдеу жүйесінің шешімін табу керек, егер берілген жүйенің бір ғана шешімі бар болса.

19. Төрт мәнді бүтін сан берілген. Оның сандарының қосындысын табу керек.

20. Төрт мәнді бүтін сан берілген. Оның сандарының туындысын табу керек.

21. Нөлдік емес екі сан берілген. Осы сандардың қосындысын, айырмасын тап. Екі нөлдік  сан берілген. Жиілігін, айырмашылығын және қосындысын табу керек.

22. Екі сан берілген. Осы сандардың квадраттарының арифметикалық орташасын және модульдерінің арифметикалық орташа мәнін табу керек.

23. Қайықтың тынық судағы жылдамдығы V км/сағ, өзен ағысының жылдамдығы  U км/сағ (U < V).  Қайықтың көл ағысы бойынша қозғалысының уақытын Т1 сағ, ал өзен бойынша - Т2 сағ. Қайықтың жүріп өткен S жолын анықтаңыз.

24. Бірінші автомобильдің жылдамдығы V1 км/сағ, екіншісінікі - V2 км/сағ болса, олардың арақашықтығы S км. Автомобильдер бір-бірінен алыстай бастаса, олардың  Т сағаттан кейінгі арақашықтығын анықтаңыз.

25. Бірінші автомобильдің жылдамдығы V1 км/сағ, екіншісінікі -V2 км/сағ болса, олардың арақашықтығы  S  км. Автомобильдер бір-біріне қарай қозғала бастаса олардың Т сағаттан кейінгі арақашықтығын анықтаңыз.

 Б тапсырмасы.

Тармақталған және циклдік есептеу процесінің алгоритмін құрастыру және жүзеге асыру. 1-4 нұсқалары үшін тапсырманың шешімін табу керек және оны if-then-else операторының көмегімен жүзеге асыру керек. Таңдау операторын қолдана отырып 5-8 нұсқалардың тапсырмаларының шешімінің бағдарламасын құрастыру керек. 9-10 нұсқалар үшін тексеру бағдарламасын құрастыру керек. 11-25 нұсқалар үшін F функциясының мәнін Хбасы - тан Хсоңы - на дейінгі аралықта dX қадаммен есептеп экранға шығару керек,  a,  b,  c – нақты сандар.  a,  b,  c, Хбасы, Хсоңы, dX мәндерін клавиатурадан енгізу керек.

 

Б тапсырмасының нұсқалары.

1 нұсқа.

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

2 нұсқа.

 Теңіз шайқасы. Машина 0-ден 9-ға дейін екі сан ойлайды. Ойыншы өзінің ойлаған екі санын енгізу арқылы осы сандарды табуға тырысады. Егер сандар сәйкес келсе (кез келген үйлесімде), онда ойыншы жеңеді.

3 нұсқа.

Атлант мұхитында жолаушылар тасымалдайтын «Теңізші» теплоходы апатқа ұшырады. Егер көмекке екі қайық үлгеріп келер болса барлық жолаушылар құтқарылады. Қайық суда  t уақыт тұра алады. Құтқарушылардың қайықтарының жылдамдығы 40 түйінді. Жолаушылар құтқарылатындығын анықтайтын бағдарлама құру керек. Үш құтқарушы қайықтан батып бара жатқан қайыққа дейінгі арақашықтық белгілі.

4 нұсқа.

Ескі көпір арқылы автокөліктердің ағыны жүріп өтеді. Бір мезгілде көпірде 3 көлік бола алады. Егер  көпірдің  үстімен 3 жеңіл немесе 2 жеңіл және жүк көлігі жүріп өтсе, онда көпір шыдайды. Егер 2 жүк және жеңіл немесе 3 жүк көлігі жүріп өтсе, көпір опырылып құлайды.

5 нұсқа.

Апта күнінің нөмірі бойынша бүгін жұмыс немесе демалыс күні екенін басып шығару керек.  

6 нұсқа.

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

7 нұсқа.

Ай нөмірі бойынша сол айда қанша күн болатынын басып шығару.

8 нұсқа.

Масса өлшемі келесі түрде нөмірленген: 1 - килограмм, 2 - миллиграмм, 3 - грамм, 4 - тонна. М масса және дене массасы бірлігінің нөмірі осы бірліктермен берілген. Берілген дененің массасын килограммен шығару керек.

9 нұсқа.

Нақты  a,  b,  c,  x,  y  сандары берілген. Кірпіш a, b, c бүйір жақтарымен тікбұрышты саңылаудан  x және y қабырғаларымен өте алатындығын анықтау керек. Кірпішті оның әрбір бүйірі саңылаудың әрбір қабырғасына параллель немесе перпендикуляр болатындай етіп енгізу керек.

10 нұсқа.

Радиусы R шар ромб тәріздес саңылаудан P қабырғасымен және Q сүйір бұрышымен өте алады ма?

11 нұсқа.

   

 

 
 ax2 +                        х < 1  және  c ¹ 0

F =                  х > 1,5 және c = 0

                                   қалған жағдайда.

 

12 нұсқа.

 

 

 
                 ax2 + b2 + c             х < 0,6  және  b + c ¹ 0

 

F =                         х > 0,6  және b + c = 0

                 +                  қалған жағдайда.

 

13 нұсқа.

 

 

 ax2 + b         x - 1 < 0   және   b - x ¹ 0

F =                 х – 1 > 0   және   b+x = 0

                                    қалған жағдайда.

14 нұсқа.

 


 

 
                - ax2 - b                  x + c < 0   және  a ¹ 0

F =         

                        х + c > 0   және  a = 0

                  +            қалған жағдайда.

15 нұсқа.

 


 

 
               - ax2 + b                   x < 0   және b ¹ 0

F =         (x + c)2 - b + 5,5         х > 0   және b = 0

                                     қалған жағдайда.

            16 нұсқа.

 


 

 
                a(x + c)2 - b            x < 0   және  b ¹ 0

F =                            х > 0   және   b = 0

                a +                   қалған жағдайда.

 

17 нұсқа.

  

 

 
 ax2 –  cx + b            x + 10 < 0   және  b  ¹ 0

F =                       х + 10 > 0   және   b = 0

                                  қалған жағдайда.

 

18 нұсқа.

 


 

 
                ax3 + bx2                     x  < 0   және  b  ¹ 0

F =                       х  > 0   және b  = 0

                         қалған жағдайда.

 

19 нұсқа.

 


 

 
                  a(x + 7)2 - b            x  < 5   және  b ¹  0

F =                          х  > 5   және   b = 0

                                         қалған жағдайда.

20 нұсқа.

 


 

 
               -                 x  < 0   және  b ¹  0

F =                            х  > 0   және   b = 0

               -  +          қалған жағдайда.

 

 

 

 

21 нұсқа.

                 a -        х < 0  және b ¹ 0

F =                         х > 0  және b = 0

                  3x +           қалған жағдайда.

 

22 нұсқа.

 


              ax2 + b2x         c < 0  және b ¹ 0

F =                          c > 0  және b = 0

                                    қалған жағдайда.

 

23 нұсқа.

 


 

 
               сх - ax2 - b            х < 5  және с ¹ 0

F =                           х > 5  және с = 0

                             қалған жағдайда.

 

24 нұсқа.

 


 

 
              - ax2 +bх                 х < 0  және b ¹ 0

F =                 х > 0  және b = 0

                             қалған жағдайда.

 

25 нұсқа.

 

 

 
                 ax2                      a < 0  және  x ¹ 0 болғанда

F =           x -          a > 0  және  x = 0болғанда

                 cos(x) +               қалған жағдайда.

 

 

 

А тапсырмасын орындаудың үлгісі. 

          Ішкі радиусы  R1, aл сыртқы радиусы  R2(R1<R2)  тең болатын сақинаның ауданын  табу керек.  Pi  мәніне 3.14 қолдану керек.

Алгоритмді  сөзбен сипаттау:

1)      R1, R2 енгізу;

2)      S1=3.14·(R1^2) есептеу;

3)      S2=3.14·(R2^2) есептеу;

4)      S3=S2 – S1 есептеу;

5)      S3 шығару.

Алгоритмнің кескінін сипаттау:

 

2.1 сурет – А тапсырма шешімінің блок- сұлбасы

Бағдарламалық алгоритмі:

#include <stdio.h>

#include <math.h>

void main(void)

{

    int R1,R2;

    float S1,S2,S3;

printf ("\енгіз  R1 \n R1 =");

scanf("%f",& R1);

printf ("\n енгіз R2 \n R2 =");

scanf("%f",& R2);

puts("ЕСЕПТІК - ГРАФИКАЛЫҚ ЖҰМЫС - СЫЗЫҚТЫҚ БАҒДАРЛАМА ");

    puts("============================================");

      S1=3.14*pow(R1,2);

    S2=3.14*pow(R2,2);

    S3=fabs(S1-S2);

    printf("\a\n ЖАУАП:  S =%f", S);

   getch( );  /* экранның тоқтатылуы*/

}

 

Бағдарламаның орындалуының нәтижесі:

 

ЕСЕПТІК - ГРАФИКАЛЫҚ ЖҰМЫС - СЫЗЫҚТЫҚ БАҒДАРЛАМА ============================================

R1 енгізіңіз

R1 =3.

R2 енгізіңіз

R2 =4.

ЖАУАБЫ:  S =8.437500

 

Б тапсырмасының орындалу үлгісі. F функциясының мәнін X басы - тан Хсоңы  дейінгі аралықта  dX   қадаммен есептеп экранға шығару,  a,  b,  c  - нақты сандар.  a,  b,  c,  Xбасы, Xсоңы, dX мәндерін пернетақтадан енгізу керек.

 

қалған жағдайда.

 

x >  0 және b = 0

 

 x < 0 және b ¹ 0

 
               

 

  Б тапсырмасының шешімін сөзбен сипаттау алгоритмі:

1)      a, b, c, Xбасы, Xсоңы, dX енгізу ;

2)      х= X басы  циклдің басын енгізу;

3) егер х нөлден кіші және b нөлге тең болмаса, онда  F=ax2+b мәнін есептеп 6 бөлімде, басқа жағдайда 7 бөлімде өту керек.

4) егер  х  нөлден кіші және  b  нөлге тең болмаса, онда   мәнін есептеп 6 бөлімде, басқа жағдайда 7 бөлімде өту керек.

5)  мәнін есептеу керек;

3)      F шығару;

4)      циклдің қадамын ұлғайту  х=х+ dX;

5)             тексеру:  егер х  Хсоңы. - тен кіші немесе тең болса, онда 3 бөлімде не болмаса 9 бөлімге өту керек;

         6) циклдің соңы;

         7) алгоритмнің соңы.

      

 Б тапсырмасының алгоритмін графикалық сипаттау

 

           1

2.2 сурет - Б тапсырмасының блок-сұлбасы

Б тапсырмасының бағдарламалық сипаттамасы:

#include <stdio.h>

#include <math.h>

int main()

{

   float    a, b, c;

    float    StartX, EndX, dX;

    float    F;

 

       /* Айнымалылар мәнін енгіземіз */

 

 printf("Енгізіңіз:");

    printf("\ta = "); scanf("%f", &a);

    printf("\tb = "); scanf("%f", &b);

    printf("\tc = "); scanf("%f", &c);

 

       /* Циклдің параметрлерін енгіземіз*/

 

 printf("\tX басы. = "); scanf("%f", &StartX);

    printf("\tX соңы. = "); scanf("%f", &EndX);

    printf("\tdX = "); scanf("%f", &dX);

 

    /* Циклді  Х бастапқы мәнінен соңғы Х мәніне дейін  dX  қадаммен орындаймыз*/

 

    for (float x = StartX; x <= EndX; x += dX)

    {

        /* Есептің берілгені бойынша F функциясының мәнін есептейміз */

  

     if (x < 0 && b != 0)

            F = a * (float)pow(x, 2) + b;

        else if (x > 0 && b == 0)

            F = (x - a) / (x - c);

        else

            F = x / c;

            printf("x = %.2f\tF = %.2f\n", x, F);

    }

 

    return 0;    /* бағдарламаның сәтті аяқталуы */

}

Бағдарламаны орындаудың нәтижесі:

Енгізіңіз: 

          a = 3.5

          b = 8

          c = 293

          X басы. = -4

          X соңы. = 2.5

          dX = 0.5

 

 

x = -4.00       F = 64.00

x = -3.50       F = 50.88

x = -3.00       F = 39.50

x = -2.50       F = 29.88

x = -2.00       F = 22.00

x = -1.50       F = 15.88

x = -1.00       F = 11.50

x = -0.50       F = 8.88

x = 0.00        F = 0.00

x = 0.50        F = 0.00

x = 1.00        F = 0.00

x = 1.50        F = 0.01

x = 2.00        F = 0.01

x = 2.50        F = 0.01

 

 

Бақылау сұрақтары:

1) Алгоритм деген не?

2) Алгоритмнің қандай түрлерін білесіңдер?

3) Деректер құрылымы деген не?

4) Қандай деректер құрылымын білесіз?

5) Сызықтық алгоритмге тән сипаттамалар.

6) Циклдік алгоритмге тән сипаттамалар.

7) Тармақталған алгоритмге тән сипаттамалар.

8) Циклдің қандай түрлерін білесіз?

 9) Циклдің параметрмен алгоритмі.

10) Циклдің шартқа дейінгі алгоритмі.

11) Циклдің шарттан кейінгі алгоритмі.

2.2 Есептеу-графикалық жұмыс №2. Алгоритмдердің күрделі деректер құрылымын өңдеудегі кескіндік және бағдарламалық жүзеге асуы

 

Мақсаты: күрделі деректер құрылымын өңдеудің: бірөлшемді массивтер мен матрицаларды Си тілінде құрастыру және бағдарламалаудың дағдыларын бекіту. Көрсеткіш айнымалылар түрімен бағдарламалауды қалыптастыру.   

 

Әдістемелік нұсқалар. Тапсырманы орындау барысында есептеу-графикалық жұмысының тақырыбы бойынша теориялық материалды оқып-үйрену, есептің шешімінің алгоритмін құрастыру, блок-сұлбасын сызу және есепті әдістемелік нұсқауда көрсетілгендей рәсімдеп жазу керек.

А тапсырмасы.

Бір өлшемді массивті өңдеудің блок-сұлбасын және бағдарламасын құрастыру. Массивтің элементтерін сәйкес сандар генераторының функциясын қолдана отырып толтыру керек. Бағдарламаны екі тәсілмен: 1) индекс көмегімен массив элементтеріне қол жеткізу арқылы жүзеге асыру; 2) нұсқаулардың көмегі  арқылы массив элементтеріне қол жеткізу арқылы жүзеге асады.

А тапсырмасының нұсқалары.

1. A[N] массиві берілген. В[N] массивін A[N] массивінің элементтерімен келесі түрде толтыру керек:алдымен жұп индексті элементтермен  толтыру керек, одан кейін индексті элементтермен. Берілген элементті  k  позицияға жылжыту, мұндағы   k - теріс элементтер саны.

2. A[N] массиві берілген. В[N] массивін A[N] массивінің элементтерімен келесі түрде толтыру керек:алдымен тақ индексті элементтермен, сосын жұп индексті элементтермен толтыру керек.  k позициясын оңға ығысуы бойынша жүзеге асыру,  k - теріс элементтер саны.

3. A[N] массиві берілген. В[N] массивін A[N] массивінің екілік теңсіздігін қанағаттандыратын: A[1] < A[i] < A[10] элементтерімен толтыру керек. В[N] массивінің толтырылмаған элементтерін A[N] массивінің қалған элементтерімен толтыру керек. Солға қарай ығысуды  k  позициясы бойынша жүзеге асыру, k – A[N] массивінің қалған элементтерінің саны.

4. A[N] массиві берілген. В[N] массивін A[N] массивінің екілік теңсіздігін қанағаттандыратын: A[1] < A[i] < A[10] элементтерімен толтыру керек. В[N] массивінің толтырылмаған элементтерін A[N] массивінің қалған элементтерімен толтыру керек. Оңға қарай ығысуды  k  позициясы бойынша жүзеге асыру,   k  -  A[N]   массивінің қалған элементтерінің саны.

5. N өлшемді бүтін санды массив берілген. Жұп сандарға бірінші элементін қосу арқылы оны түрлендіру керек. Массивтің алғашқы элементін өзгертпеу керек. Оңға қарай ығысуды   k   позициясы бойынша жүзеге асыру,      k   -  жұп элементтер саны.

6. N өлшемді бүтін санды массив берілген. Тақ сандарға бірінші элементін қосу арқылы оны түрлендіру керек. Массивтің алғашқы элементін өзгертпеу керек. Оңға қарай ығысуды k позициясы бойынша жүзеге асыру, k – жұп элементтер саны.

 7. N өлшемді бүтін санды массив берілген. Жұп сандарға соңғы элементін қосу арқылы оны түрлендіру керек. Массивтің соңғы элементін өзгертпеу керек. Солға  қарай ығысуды   k   позициясы бойынша жүзеге асыру,   k  - тақ элементтер саны.

9. N өлшемді бүтін санды массив берілген. Жұп сандарға бірінші элементін қосу арқылы оны түрлендіру керек.  Массивтің алғашқы элементін өзгертпеу керек. Оңға қарай ығысуды   k   позициясы бойынша жүзеге асыру,  k   -   тақ элементтер саны.

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

11. A[N] массиві берілген. Барлық оң элементтерді төменгі элемент мәніне дейін кішірейту керек. Оңға қарай ығысуды  k  позициясы бойынша жүзеге асыру,   k  -  оң элементтер саны.

12. A[N] массиві берілген. Барлық теріс элементтері жоғарғы элемент мәніне дейін ұлғайту керек. Солға  қарай ығысуды   k   позициясы бойынша жүзеге асыру,   k   -  теріс элементтер  саны.

13. 10 өлшемді массив берілген. Оның төменгі және жоғарғы элементтерінің  арасындағы массив элементтерін кері тәртіппен орналастыру керек. Циклдік солға  қарай ығысуды k позициясы бойынша жүзеге асыру,   k     - массивтің төменгі және жоғарғы элементтерінің арасында орналасқан элемент  саны.

14.  N  өлшемді массив берілген. Массив элементтерінің циклдік солға қарай ығысуын  k позициясы бойынша жүзеге асыру керек, k - төменгі элемент индексі. 

15.  N  өлшемді массив берілген. Массив элементтерінің циклдік оңға қарай ығысуын  k позициясы бойынша жүзеге асыру керек,  k - жоғарғы элемент индексі. 

16. N өлшемді массив берілген. Массив элементтерінің циклдік оңға қарай ығысуын  k  позициясы бойынша жүзеге асыру керек, k - A[N] оң массив элементінің орташа арифметикалық мәнінің бүтін бөлігі.

17. N өлшемді массив берілген. Массив элементтерінің циклдік оңға қарай ығысуын  k позициясы бойынша жүзеге асыру керек, k - A[N] теріс массив элементінің орташа арифметикалық мәнінің бүтін бөлігі.

18. N өлшемді массив берілген. Массив элементтерінің циклдік оңға қарай ығысуын  k  позициясы бойынша жүзеге асыру керек, k - A[N] жұп массив элементінің орташа арифметикалық мәнінің бүтін бөлігі.

19. N өлшемді массив берілген. Массив элементтерінің циклдік оңға қарай ығысуын  k  позициясы бойынша жүзеге асыру керек, k - A[N] тақ  массив элементінің орташа арифметикалық мәнінің бүтін бөлігі.

20. A[N] массиві берілген. Барлық теріс элементтерді төменгі элемент мәніне дейін кішірейту керек. Оңға қарай ығысуды k позициясы бойынша жүзеге асыру, k –оң элементтер саны.

21. A[N]   массиві берілген. Барлық жұп элементтерін  жоғарғы элемент мәніне дейін кішірейту керек. Оңға қарай ығысуды   k  позициясы бойынша жүзеге асыру,  k - оң элементтер саны.

22. A[N]  массиві берілген. Барлық нөлдік элементтерді жоғарғы элемент мәніне дейін ұлғайту керек. Солға қарай ығысуды k позициясы бойынша жүзеге асыру,  k  - теріс элементтер саны.

23. 10 өлшемді массив берілген. Оның төменгі және жоғарғы элементтерінің  орнын ауыстыру керек. Циклдік солға  қарай ығысуды  k позициясы бойынша жүзеге асыру, k - массивтің төменгі және жоғарғы элементтерінің арасында орналасқан элемент  саны. 

24. A[N] массиві берілген. В[N] массивін A[N] массивінің жұп элементтерімен, сосын тақ элементтерімен толтыру керек. Массив элементтерінің циклдік солға қарай ығысуын   k  позициясы бойынша жүзеге асыру керек,  k - төменгі элемент индексі. 

25. A[N] массиві берілген.  В[N]  массивін  A[N]  массивінің жұп элементті индекстерімен, сосын тақ элементтерімен толтыру керек. Массив элементтерінің циклдік оңға қарай ығысуын  k позициясы бойынша жүзеге асыру керек, k - жоғарғы элемент индексі. 

Б тапсырмасы .

Матрицаны өңдеудің блок-сұлбасын және бағдарламалық құрастыру. Матрицаның элементтерін генератордың кездейсоқ сандар функциясын қолдана отырып толтыру.

Бағдарламаны екі әдіспен жазу керек:

1) индекстер көмегімен матрицаның элементтеріне қол жеткізу;

2) нұсқаулар көмегімен матрицаның элементтеріне қол жеткізу.

Б тапсырмасының нұсқалары.

1. Бүтін  санды тікбұрышты матрица берілген. Анықтау керек:

а) бірде-бір нөлдік элементі жоқ жол санын;

б) берілген матрицада бірнеше рет кездесетін үлкен сан.

2. Бүтін  санды тікбұрышты матрица берілген.

а) бірде-бір нөлдік элементі жоқ бағандар санын анықтау керек.

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

3. Бүтін  санды тікбұрышты матрица берілген. Анықтау керек:

а) нөлдік элементі бар қатар саны;

б) ең ұзын бірдей элементтер сериясы орналасқан жол нөмірі.

4. Бүтін санды тікбұрышты матрица берілген. Анықтау керек:

а) теріс элементтері жоқ жолдардағы элементтердің туындысы;

б) матрицаның бас диагоналіна параллель диагональ элементтердің жоғарғы қосындысы.

5. Бүтін санды тікбұрышты матрица берілген. Анықтау керек:

а) теріс элементі жоқ бағандардағы элементтердің қосындысын табу керек;

б) матрицаның қосымша диагоналіна параллель диагональ элементтердің төменгі қосындысы.

6. Бүтін  санды тікбұрышты матрица берілген. Анықтау керек:

а) теріс элементі бар  жолдардағы элементтердің қосындысын;

б) матрицаның барлық тағайындалған нүктесінің жолдары мен бағандарының нөмірлерін.

Ескерту:

Егер  Aij  i-ші жолда минималды в -ші бағанда жоғарғы элемент болса, А матрицасы Аij қайқы нүктесіне ие бола алады.

7. 8х8 өлшемді берілген матрица үшін:

а)  k  табу керек, егер матрицаның  k - ші жолы k - ші қатарына сәйкес келсе;

б) теріс элементі бар жолдардағы элементтердің қосындысын табу керек.

 8. Бүтін санды матрицаның жолының сипаттамасы деп оның теріс модульдерінің тақ элементінің қосындысы дейміз.

а) берілген матрицаның бағандарын қайта орналастыра отырып, оларды сипаттамаларының өсу реті бойынша орналастыру керек;

б) теріс элементі бар бағандардағы элементтердің қосындысын табу керек.

 9.  Аij   элементінің көршісі деп  Аi-1,j-1. Аi-1,j, Аi-1,j+1, Аi,j-1, Аi,j+1, Аi+1,j-1. Аi+1,j, Аi+1,j+1   элементтерін айтамыз.  Матрицаны тегістеу операциясы әрбір элементі бастапқы матрицаның көрші элементтерінің орташа арифметикалық мәніне сәйкес келетін сол өлшемдегі жаңа матрицаны береді:

а) 10х10 өлшемді заттық  матрицаның тегістеу нәтижесін құрастыру керек;

б) тегістелген матрицада бас диагональдан төмен орналасқан элемент модулінің қосындысын табу керек.

 10. Матрица элементі локальді төменгі деп аталады,егер ол өзінің барлық көрші элементтерінен қатаң кіші болса.

а) берілген 10х10 өлшемді матрицаның локальді төменгі мәндерінің санын есептеу керек ;

б) бас диагональдан жоғары орналасқан элемент модульдерінің қосындысын табу керек.

11. Сызықтық матрицаның жүйесінің коэффициенті тікбұрышты матрица түрінде берілген.

а) рұқсат етілген түрлендірудің көмегімен жүйені үшбұрыш түріне келтіру керек;

б) берілген шамадан кем жолдардың орташа арифметикалық санын анықтау керек.

12.  n   ретті нақты  квадрат матрица берілген.

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

б) бірінші  жолдан оң элементі бар санды табу керек.

13.  n   ретті нақты  квадрат матрица берілген.

а) тікбұрышты матрицаның элементтерін п элементтеріне  циклдік оңға немесе солға ығысуын (енгізілген режимге байланысты) жүзеге асыру керек.  n   жол немесе бағандардағы элементтерден артық бола алады;

б) нөлге тең емес элементтерден тұратын соңғы жолдардағы нөмірді табу керек .

14.  n   ретті нақты  квадрат матрица берілген.

а) М×N өлшемді квадрат матрицаның оңға   k   элементіне қарай циклдік ығысуын мына түрде іске асыру керек: 1-ші элементтің жолдары соңғы жолдарға төменнен жоғарыға қарай ығысады, одан - соңғы жолға солдан оңға қарай, одан - бірінші жолға төменнен жоғарыға, одан-бірінші жолға; қалған элементтер үшін - аналогті (үйлесімді) түрде;

б) тақ жолдардың оң элементтерінің қосындысын табу керек.

15. Бүтін  санды тік бұрышты матрица берілген.

а) бірінші жолдан нөлдік элементі бар элементтерді табу керек;

б) бүтін санды матрицаның сипаттамасы деп оның теріс жұп элементтерінің қосындысын айтамыз.

16. Бүтін  санды тік бұрышты матрица берілген.

а) тікбұрышты бүтін  санды матрицаның жолдарын әр жолдағы бірдей элементтердің өсу реті бойынша ретпен орналастыру керек;

б) жолдардағы нөлдік элементі жоқ бірінші нөмірді табу керек.

17. Заттық квадрат матрица берілген.

а) матрицаның элементтерінің орын ауыстыру әдісімен оның жоғарғы элементі сол жақ бұрышында болуын, келесі шама бойынша-(2,2) позициясында, келесі шама бойынша - (3,3)  позициясында болуы үшін бас диагоналін осылай толтыру арқылы қол жеткізу керек;

б) жолдардағы оң элементі жоқ бірінші нөмірді табу керек.

18. Бүтін  санды тікбұрышты матрица берілген. Анықтау керек:

а) нөлдік элементі бар жол санын;

б) ең ұзын бірдей элементтер сериясы бар баған нөмірін .

19. Бүтін санды тікбұрышты матрица берілген.

а) теріс элементтері жоқ жолдардағы элементтердің қосындысын анықтау керек;

б) бас диагоналға параллель болатын диагональ элементтерінің қосындысының төменгі мәнді табу керек.

а) берілген матрицаны қысқарту, ондағы нөлдермен толтырылған жолдар мен бағандарды алып.

б) жолдан бірінші нөмірді тап, ең болмағанда бір оң элементтен тұратын.

13. n тәртіпті дұрыс квадратты матрица берілген.

а) тік  төртбұрышты матрицаның циклдық n элементін оңға немесе төменге жылжыт (берілген тәртіпке байланысты).   n   жолда және бағанда элементтер санынан көп болуы мүмкін.

14.  n тәртіпті дұрыс квадратты матрица берілген.

а) квадратты матрицаның элементтерін циклдық МхN өлшемімен оңға k элементіне жылжыту сонымен: 1-ші жолдың элементтері соңғы бағаннан төменнен жоғарыға жылжиды, одан соңы жолдан оңнан солға, одан бірінші төменнен жоғарыға, одан бірінші жол; ал қалған элементтері – ұқсас.

б) тақ жолдан оң элементінің қосындысын тап.

15. Бүтін санды тік төртбұрышты матрица берілген.

а) ең болмағанда бір элементі нөлден тұратын бірінші бағанның нөмірін анықтау.

б) бүтін санды матрицаның жолының сипаттамасынан теріс жұп элементтерді атау. Берілген матрицаның жолын ескеріп, сипаттамада кемитіндей етіп орналастыру керек.

16. Бүтін санды тік  төртбұрышты матрица берілген.

а) бүтін санды тік  төртбұрышты матрицаның жолы кемитіндей бірдей элементтің өсу өлшемін әр жолға жаз.

б) бірде-бір теріс элементтен тұрмайтын нөмірді бірінші бағаннан табу.

17. Заттай квадратты матрица берілген.

а) матрицаның элементтерін қайта құру жолымен, оның жоғарғы элементі сол жақтағы жоғарғы бұрышында тұру керек, келесі көлемі бойынша - айқындама (2.2), келесі көлемі бойынша  -  айқындама (3,3) және т.б., осындай жолмен барлық бас диагоналін толтыру керек.

б) бірде - бір оң элементтен тұрмайтын бағаннан бірінші нөмірді табу.

18. Бүтін санды тік  төртбұрышты матрица.  Анықтау керек:

а) ең болмағанда бір нөлдік элементі бар жол санын

б) ең ұзын бірдей элементтер бөлімінен тұратын баған нөмірін

19. Бүтін санды тік төртбұрышты матрица. Анықтау керек:

а) оң элементтен тұрмайтын элемент санын

б) диагональ элементтері өлшемінен ең кішісін, матрицаның бас диагоналіна параллель.

20. Бүтін санды тіктөртбұрышты матрица. Анықтау керек:

а) ең болмағанда бір элементі нөл тақ элементтің саны

б) жол мен баған нөмірі барлық тағайындалған нүкте матрица.

Ескерту: А  матрицасында бар  нүкте    Aij   егер   Aij   төменгі элементі і-ші жолда және жоғарғы элементі   j  - ші   бағанда болса.

21. Берілген бүтін санды матрицадан баған, тек мынадай элементтерден тұратын: модулі бойынша 10-нан үлкен емес, төменгі көбейтінді элементті бағанды табу.

22. Берілген бүтін санды матрицадан жол, тек тақ элементтен тұратын, жоғарғы қосындылық модулді элементтік жолды табу.

23. Берілген 10×10 өлшеміндегі матрицаның элементін келесі тәртіппен басып шығару керек:

  

1  сурет  -   Матрица өлшемінің үлгісі

 

24. Берілген 10×10 өлшемідегі матрицаның элементін келесі тәртіппен басып шығару керек:

2 сурет  -  Матрица өлшемінің үлгісі

 

25. Бағанның сипаттамасын бүтін санды матрицаның модульді қосындысы деп атаймыз, оның теріс тақ элементі болады. Берілген матрицаның бағандарын өзгертіп қою, сипаттамалық бойы бойынша орналастыру.

А тапсырмасына мысал көрсету.

a[n] массиві берілген. a[n] массивін b[n] массивінің элементімен алмастыру, соңынан бастап және  k позициясынан оңға қарай кемуді жүзеге асыру, k – элементі оң сан болғанда.

 А тапсырмасының алгоритміне ауызша сипаттамасы:

1) алгоритмнің басы;

2) а[n] массивін кез келген санмен толтыру;

3) pol және j=n айнымалыны нөлге келтіру;

4) циклді ұйымдастыру берілген параметрден  i=1; n;1:

         - b[n] массив элементін а[n] массив элементіне меншіктеу, яғни

b[j]=а[i];

         - j= j-1;

         - тексеру: егер b[j]>=0, олай болса оң санды элементін 1 ге ұлғайту, pol= pol+1 болмаса циклдің келесі бөлігіне өту.

5)  b[n] массив элементтерін оң сан ету.

6) b[n] массив элементтерін шығару.

7) берілген параметрден i=1; pol;1  циклді ұйымдастыру:

          - buf= b[n] соңғы элементін есте сақтау;

          - берілген параметрден j = n; 1;-1 циклді ұйымдастыру.

Цикл іші:

-       кейінгі элементті алдыңғыға меншіктеу, яғни b[j]=b[j-1];

-       циклдің соңындағы j бірінші элементке соңғы мәнін меншіктеу, яғни b[1]= b[n] және келесі циклға i бойынша меншіктеу.

8)  b[n] массив элементтерін шығару.

9) алгоритмнің соңы.

 

А тапсырмасының алгоритмді кескіндік бейнесі

 


2.3  сурет - А тапсырмасының блок-сұлбасы

А тапсырмасының алгоритмінің бағдарламадағы бейнесі

(массив элементтеріне мүмкіндік индекстің көмегімен)

 

#include <stdlib.h>

# include <conio.h>

# include <stdio.h>

#define n 10

int main ()

{  int buf,j,pol,i,b[n], a[n];

       for (i = 0; i < n; i++)

         a[i]=rand()%10-5;

pol=0;

   printf ("\n \a[n] \n");

 for (i=0;i< n;i++)

   printf ("%d ",a[i]);

  j=n-1;

  for (i=0;i< n;i++)

    {b[j]=a[i];

      j=j-1;

       if (a[i]>=0)pol++;

    }

printf ("\n теріс элементтердің элементі \n pol=%d",pol);

printf ("\n \n массивті шығару b[n] \n");

for (i=0;i< n;i++)

   printf ("%d ",b[i]);

     for (i=0;i<pol;i++)

   { buf=b[n-1];

      for(j=n-1;j>0;j--)

      b[j]=b[j-1];

      b[0]=buf;

    }

    for (i=0;i< n;i++)

      printf ("%d ",b[i]);

    printf ("\n");

  system("PAUSE");      

  return 0;

}

 

А тапсырмасының алгоритмінің бағдарламадағы бейнесі

 (массив элементтеріне мүмкіндік сілтеменің көмегімен)

 

#include <stdlib.h>

# include <conio.h>

# include <stdio.h>

#define n 10

int main ()

{  int buf,j,pol,i,b[n], *pa,*pb,*p, a[n];

 for (i = 0; i < n; i++)

         a[i]=rand()%10-5;

pol=0;

pa=&a[0];

pb=&b[9];

     for (i=0;i< n;i++)

      printf ("%d ",*pa++);

  pa=&a[0];

  for (i=0;i< n;i++)

    {*pb=*pa;

     if (*pa>=0)pol++;

       --pb;

       ++pa;

    }

    printf ("\n теріс элементтер саны \n pol=%d",pol);

printf ("\n \nмассивті шығару b[n] \n");

 pb=&b[0];

for (i=0;i<n;i++)

      printf ("%d ",*pb++);

     pb=&b[9];

     p=&b[0];

 for (i=0;i<pol;i++)

   { buf=*pb;

      for(j=0;j<n;j++)

      *pb=*(--pb);

        *p=buf;     

       p=&b[0];

       pb=&b[9];

      }

    printf ("\n \n  b[n] массивін  %d позициясына жылжыт \n", pol);

    pb=&b[0];

    for (i=0;i< n;i++)

     printf ("%d ",*pb++);

    printf ("\n");

  system("PAUSE");      

  return 0;

}

 

 

 

 

А тапсырмасының орындалу нәтижесі:

         a[n] массиві

1      2  3 -4 -5 -1 -2 -3 -7 9

Оң сан элементі

pol=4

          b[n] массивін шығару

9 -7 -3 -2 -1 -5 -4 3 2 1

           b[n] массивінің элементін 4 позицияға жылжыту

-4 3 2 1 9 -7 -3 -2 -1 -5

 

    Б тапсырмасына мысал көрсету.

Көлемі 8 де 8 бүтін санды матрица берілген. Табу керек:

1) Қандай  k -шы матрицаның жолы   k - шы бағанға сәйкес келеді.

2) Элементтің қосындысы сол жолға, ең болмағанда бір теріс элементі бар.

Б тапсырмасының алгоритміне ауызша сипаттамасы:

1)    Алгоритмнің басы.

2)    Матрицаның өлшем бірлігін беру.

3)    а[n][m] массивін кездейсоқ санмен толтыру.

4)    а[n][m] массивін шығару.

5)               берілген параметрден  i=1;  n;1  циклді ұйымдастыру:  і  бойынша циклдің іші:

-       сәйкестік белгісін бірлікке  Р=1  үйлестіру;

-       берілген параметрден j =1; m; 1 циклді ұйымдастыру.

ј   бойынша циклдің іші:

-       тексеру: егер а[i][j]= а[j][i], онда j бойынша циклдің келесі қадамына өту, болмаса  і  циклі бойынша k қадамына өту;

-       j  бойынша циклдің соңын тексеру: егер Р=1, жолдар мен бағандардың сарынды нөмірін шығару;

-       і циклі бойынша келесі қадамға өту.

6)               і циклі бойынша соңы берілген параметрлер i=1; n;1 қайта ұйымдастыру.

і  бойынша циклдің іші:

-       ең болмағанда бір теріс элементі бар болу белгісі жолды нөлге теңестіру  Р1=0 және нөлге айналдыру қосындысы s=0;

-       берілген матрица бойынша  j =1;m;1 циклді ұйымдастыру.

j  бойынша циклдің іші:

-       жолдың элементтерін жинақтау; тексеру: егер а[i][j]<0, онда Р1=1 және j бойынша циклдің келесі қадамына өту;

-       j  бойынша циклдің соңын тексеру: егер Р1=1  і - ші жолдың қосынды элементін шығару;

-       і   бойынша циклдің келесі қадамына өту.

7)    алгоритмнің соңы.

 

  Б тапсырмасының алгоритмінің кескіндік бейнесі

 

                                           1

Б тапсырмасының алгоритмінің бағдарламадағы бейнесі

          (массив элементтеріне мүмкіндік индекстің көмегімен)

 

#include <stdio.h>

#include <stdlib.h>

#define m 8

#define n 8

int main()

{  int     matrix[n][m];    /* nхm матрицасын жариялаймыз */

   int     i, j, p;  / 

int  p1, iSumm;

/* матрицаны толтырамыз */

    for (i = 0; i < m; i++)

    for (j = 0; j < n; j++)

      matrix[i][j]=rand()%10-1;

printf("\n   генерацияланған матрицаның түрі:\n ");

 /* матрицаны шығару */

for (i = 0; i < m; i++)

   { for (j = 0; j < n; j++)

      printf(“%d  “,matrix[i][j]);

      printf("\n ");

    }

    printf("\n \t\t\tТАПСЫРМАНЫҢ БІРІНШІ БӨЛІМІНІҢ ЖАУАБЫ");

     for (i = 0; i < m; i++)

      { p=1; 

         for (j = 0; j < n; j++)

                   if (matrix [i][j] != matrix [j][i])

            { p=0; 

                break;

            }

        }

    /* p=1болған жағдайда сәйкес келетін элементті экранға шығарамыз */

        if (p==1) printf("\n k = %d ", i+1);

    }

if (p==0) printf("\n бірдей жол мен баған жоқ");

printf("\n \t\t\t ТАПСЫРМАНЫҢ ЕКІНШІ БӨЛІМІНІҢ ЖАУАБЫ");

    printf("\n\n");

    for (i = 0; i < m; i++)

    {

        iSumm = 0;

        p1=0;

        for (j = 0; j < n; j++)

               

/*Ең болмағанда бір теріс элемент табылғанда р1 теңестіреміз, қосындысын экранға шығару үшін*/

           if (matrix [i][j] < 0) p1=1;            

        }

        /*Ең болмағанда жолдан бір теріс элемент табылса і-ші жолдағы элементтерді экранға шығарамыз */

    if (p1==1) printf("Баған элементінің қосындысы  #%d = %d\n", i+1, iSumm);

    }

system("PAUSE");/* экранда тұрып қалу*/     

      return 0;

}

 

              Б тапсырмасының бағдарламадағы алгоритмі:

 

#include <stdio.h>

#include <stdlib.h>

#define m 8

#define n 8

void main()

   int     matrix[n][m];    /* nхm матрицасын жариялаймыз */

   int     i, j, p;   

    int *mat; /* matrix[n][m] матрицасын көрсеткішпен жариялаймыз*/

mat=&matrix[0][0]; /* матрицаны кез келген санмен өрнектейміз */

    for (i = 0; i < m; i++)

    for (j = 0; j < n; j++)

      {

       *mat=rand()%10-1;

         mat++;

      }

mat-= n*m;

for (i = 0; i < m; i++)

   {

         for (j = 0; j < n; j++)

         {

          printf(“%d  “,*mat);        

          mat++;

          }

      printf("\n ");

     }   

mat-= n*m;

printf("\n \t\t\tТАПСЫРМАНЫҢ БІРІНШІ БӨЛІМІНІҢ НӘТИЖЕСІ ");

printf("\nсәйкес келген жолдар мен бағандар ");

for (i = 0; i < m; i++)

      {

         p=1; 

         for (j = 0; j < n; j++)

       {        

            if (*(mat+i * m + j) != *(mat+j * m + i))

             {

                p=0; 

                break;

              }

         }

    /* p=1 жағдайында сәйкес келген жолдың нөмірін экранға шығарамыз*/

        if (p==1) printf("\n k = %d ", i);

     }

if (p==0) printf("\n бірдей баған мен жолдар жоқ ");

printf("\n \t\t\tТАПСЫРМАНЫҢ ЕКІНШІ БӨЛІМІНІҢ ЖАУАБЫ");

mat=&matrix[0][0];

int  p1, iSumm; 

    printf("\n\n");

    for (i = 0; i < m; i++)

    {

         iSumm = 0;

        p1=0;

        for (j = 0; j < n; j++)

        {     /*  i-ші жолдың элементтерінің мағынасын қосындылаймыз*/

            iSumm += *mat;

        if (*mat < 0) p1=1;   mat++;          

          }

    if (p1==1) printf("Жол элементтерінің қосындысы  #%d = %d\n", i+1, iSumm);

    }

system("PAUSE");/* экранда тұрып қалу*/     

      return 0;

}

 

Б тапсырмасының орындалу нәтижесі:

 

Генерацияланған матрицаның түрі:

2 7 2 7 1 4 0 3

1 0 7 6 0 -8 3 5

2 7 1 8 1 4 9 3

9 2 8 5 2 0 0 6

7 1 1 3 9 3 9 1

8 2 4 9 1 -6 4 9

0 3 9 0 9 4 8 8

1 8 3 2 8 2 8 0

 

Тапсырманың бірінші бөлімінің нәтижесі

 

Бірдей жолдар мен бағандар:

k = 2;

k = 6.

                        

Тапсырманың екінші бөлімінің нәтижесі

Жол элементтерінің қосындысы #1 = 14.

Жол элементтерінің қосындысы #5 = 31.

 

Қорытынды сұрақтар:

1) Деректердің күрделі құрылымдары дегеніміз не?

2) Массивті қайта құру кезінде қандай ереже бар?

3) Массивта ізденістің ережелерін не болжайды?

4) Массивта алмастыру ережелерін не болжайды?

5) Массивта алмастырып қайта қою ережелерін не болжайды?

6) Массивта іріктеу ережелерін не болжайды?

7) Массивтің екі элементінің орнын қалай ауыстырады?

8) Салынған цикл дегеніміз не?

9) Жоғарғы (төменгі) элементін қалай табуға болады?

10) Массив элементінің ізденісінің алгоритмін графикалық түрде салу.

11) Массив элементінің ауыстыруының алгоритмін графикалық түрде салу.

12) Массив элементінің алмастырып қайта қою алгоритмін  графикалық түрде салу.

2.3 Есептік - графикалық жұмыс №3. Алгоритмнің кескіндік және бағдарламалық жүзеге асу деректерін сұрыптау

 

Мақсаты: Си тіліндегі бағдарламада массивтің алгоритмін дағдылы баяндау.

 

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

Қысқаша теориялық бөлім: алгоритм ережесі бойынша сандық (есептеуші) және сандық емес (есептеуіш емес). Сандық алгоритмдер математикалық санды есептеу үшін арналған, сандық емес алгоритмдер әр түрлі деректердің құрылымдарымен жұмыс жасайды. Есептеуіш емес алгоритмдердің маңызды түрі – сұрыптау және іздеу болып табылады. Сұрыптау барысы деп берілген белгілі бір тәртіппен топтау. Сұрыптау мақсаты – элементтің кейінгі ізденісінің көпшілікке сұрыптауын жеңілдету. Алгоритмді сұрыптау мағлұмат құрылымын таңдауға байланысты, сондықтан сұрыптау тәсілі 2-ге бөлінеді: ішкі сұрыптау (массивті сұрыптау) алгоритмдері және сыртқы сұрыптау (файлды сұрыптау) алгоритмдері. Сұрыптау әдісі орнықты деп аталады, егер элементтің салыстырмалы тәртібі бірдей кілттермен сұрыптауда өзгермесе. Ішкі сұрыптау алгоритмі - бұл алгоритм деректемелерінің ішкі жадын сұрыптау, бұл жағдайда ыңғайлы құрылым массив болып табылады. Массивті сұрыптау әдісінің негізгі талаптары – жадының үнемді қолданылуы. Сұрыптаудың жай әдістері: сұрыптауды жай қою, сұрыптауды жай таңдау, сұрыптауды жай айырбастау (көпіршік әдісі).

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

Сұрыптау 3 түрлі әдіспен жасалады:

а)жай айырбастау әдісі;

б)жай таңдау әдісі;

в)жай айырбастау  әдісі.

Б тапсырмасы. Матрица элементтерін сұрыптаудың, бағдарламасын құру.

а) қосымша диагональдің элементтерін жай айырбастау әдісімен сұрыптау;

б) бас диагональдің элементтерін жай таңдап қою әдісімен сұрыптау;

в) бірінші жолдың элементтерін жай айырбастау әдісімен сұрыптау.

Б тапсырмасының нұсқалары. Тапсырманың нұсқалары Б тапсырмасына сәйкес келеді, №2 есептік-графикалық жұмыс деректеріне.

Жай айырбастау әдісімен алгоритм деректерін ауызша сұрыптау.

1)  Массивтің бірінші элементін екіншісімен салыстырамыз:егер 1-шісі 2-шісіне қарағанда үлкен болса олардың орнын алмастырамыз; осы әрекетті 2-ден 3-ке де орындаймыз, 3 пен 4 үшін де, ... (n-1) және n элементтері үшін. Бұл әрекеттердің нәтижесінде ең үлкен n-ші элемент соңғы орында тұрады.

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

3)  Барлық массив реттелгенше осылай қайталаймы

                                    1

2.5 сурет  - Деректер алгоритмінің жай айырбастау әдісімен сұрыптаудың кескіндік суреттемесі

 

Деректер алгоритмінің жай таңдау әдісімен сұрыптаудың ауызша сипаттамасы:

1) Массивтің ең кіші (ең үлкен) элементін табамыз.

2) Оның орнын бірінші (соңғы) элементпен алмастырамыз.

3) Ең кіші (ең үлкен) элементінің ізденіс алгоритмін қайталаймыз, қаралған элементтің санын бірлікке азайтамыз.

4) Оның орнын екіншімен алмастырамыз (соңғының алдындағы).

5) Үлкен ізденістің суреттеу әдісін массивке дейін элементтің толық ізденісін жасаймыз.

 

2.6 сурет- Деректер алгоритмінің жай таңдау әдісімен сұрыптаудың      кескіндік суреттемесі

 

Деректер алгоритмінің жай қою әдісімен сұрыптаудың ауызша сипаттамасы:  

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

2) Сұрыпталмаған бөлімнің бірінші элементін алып, сұрыпталған бөлімнің элементімен салыстырамыз.

3)  Сұрыпталмаған массивтің элементін сұрыпталған санды ыңғайлы етіп қоямыз. Сонымен, сұрыптаудың бір қадамы массивтің сұрыпталған бөлімі бір санға көбейеді, ал сұрыпталмаған бөлігінде бір сан кемиді.

4)    Қою әдісінің үлкен ізденісінің нәтижесінде массив санының толық реттелуін жасаймыз.

            1

Ромб: buf<a[j]

2.7 сурет- Деректер алгоритмінің жай қою әдісімен сұрыптаудың кескіндік суреттемесі

 

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

 

#include <stdio.h>

#include <stdlib.h>

#define N 10

int main()

   int a[N],min,i,j,buf;

   for (i=0;i<N;i++)

    a[i]=rand()%10-1;

    printf("n\n sgenerirovanni massiv\n" );

    for (i=0;i<N;i++)

     printf("%d " , a[i]);

   printf("\n");

   printf ("\n Massiv otsortirovanii metodom prostogo obmena ");

   for (i=0;i<N-1;i++)

   for (j=0;j<N- i -1;j++)

   if (a[j]>a[j+1])

   {     

       buf=a[j];

       a[j]=a[j+1];

       a[j+1]=buf;

    }    

printf ("\n");

for (i=0;i<N;i++)

printf (" %d ",a[i]);

 

  system("PAUSE");      

  return 0;

}

 

           Деректер  алгоритмінің жай таңдау әдісімен сұрыптаудың бағдарламадағы бейнесі  

 

#include <stdio.h>

#include <stdlib.h>

#define N 10

int main()

{int a[N],min,i,j,buf;

for (i=0;i<N;i++)

    a[i]=rand()%10-1;

  printf("n\n sgenerirovanni massiv\n" );

    for (i=0;i<N;i++)

     printf("%d " , a[i]);

   printf("\n");

 for (i=0 ;i<N;i++)

 {

    min=a[i];  

    for (j=i+1;j<N;j++)

      if (a[j]<min )

       {  min=a[j];a[j]=a[i];

         a[i]=min;

       }

 }

printf ("\n");

for (i=0;i<N;i++)

printf (" %d ",a[i]);

  system("PAUSE");      

  return 0;

}

  

 Деректер алгоритмінің жай қою әдісімен сұрыптаудың бағдарламадағы бейнесі 

 

    #include <stdio.h>

#include <stdlib.h>

#define N 5

int main()

{int a[N],min,i,j,buf,k;

for (i=0;i<N;i++)

    a[i]=rand()%10-1;

  printf("n\n sgenerirovanni massiv\n" );

    for (i=0;i<N;i++)

     printf("%d " , a[i]);

   printf("\n");

printf ("\n Massiv otsortirovanii metodom prostoi vstavki");

  for (i=1;i<N;i++)

{    buf= a[i];

   for ( j= i - 1;j>=0;j--)

     if (a[j]>buf)

      { a[j+1]=a[j];

       a[j]= buf;

      }

}

  printf ("\n");

for (i=0;i<N;i++)

printf (" %d ",a[i]);

getch ();

return 0;

}

Қорытынды сұрақтар:

     1) Массивті сұрыптау деп нені түсінесің?

2) Кемушілік сұрыптау мен өспейтін сұрыптау несімен ажыратылады?

3) Массивтің жай таңдау әдісімен сұрыптаудың тұжырымдамасы.

4) Массивтің жай қою әдісімен сұрыптаудың тұжырымдамасы.

5) Массивтің жай алмастыру әдісімен сұрыптаудың тұжырымдамасы.

6) Неге бір қадамның орындалу уақыты массивтің реттелмеген бөлігіне тура пропорционал?

7) Массивтің екі элементінің орнын қалай алмастырады?

8) Салынған цикл дегеніміз не?

9) Жай қою әдісі мен жай алмастырудың ұқсастығы мен айырмашылығы неде?

 

                                        Қорытынды

 

Таныстырылған тапсырма  негізінен  студенттің өздігінен есептік-графикалық  жұмысты орындауға арналған. Барлық  ЕГЖ-ның басында толық берілген мысалдар студенттің белгілі бір пән бойынша өздігінен тапсырманы түсінуге және оны сапалы түрде орындауға арналған.

 Әр ЕГЖ  тапсырмадан тұрады А және Б, әр тапсырмада 25 нұсқадан, күрделілігіне байланысты ажыратылады. Студенттің таңдауы бойынша бірінші тапсырманы қорғағанда максималды бал 80% ала алады, ал екінші тапсырмадан -100%. Студент бірінші тапсырманы жоғарғы балға қорғағанда ғана екінші тапсырмаға көше алады.

А қосымша

ЕГЖ есеп беру титул бетінің үлгісі

 

АЛМАТЫ ЭНЕРГЕТИКА және БАЙЛАНЫС УНИВЕРСИТЕТІ

«Ақпараттық технологиялар» факультеті

«Ақпараттық жүйелер» кафедрасы

 

 

 

 

 

 

 

ЕСЕП

Есептеу-графикалық жұмысы №1

«Алгоритмдер,  деректердің құрылымдары және бағдарламалау»

 

 

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

Вариант № 1

                                                                               Орындаған БИС-13-2гр.ст.

                                                                       Петров И.И.

                                                                        Тексерген  ассистент                                                                          

                                                                                   ________Ни  А.Г

                                                                                    “______”__________20__ж

 

 

 

Алматы, 20__ж

 

Б қосымша

 

Мазмұнының үлгісі

 

Мазмұны

 

Кіріспе

1)    Теориялық бөлім

2)    Жобалық бөлім

2.1Тапсырманың берілгені

2.2Тапсырманың жауабының блок-сұлбасы

2.3 Кіретін деректердің сипаттамасы

2.4 Қолданбалы интерфейстің сипаттамасы

3)  Қолданбалы бөлім

3.1 Бағдарламаның листингі

3.2 Тапсырманың шешімінің нәтижесі

3.3 Тестілеудің нәтижесі

Қорытынды

Пайдаланған әдебиеттер тізімі

В қосымшасы

 

Интерфейсті қолдану үлгісі

В.1  суретте интерфейсті қолдану сұлбасы келтірілген

№2  Есептеу- графикалық жұмыс

 

№ 3 нұсқа

 

1-ді енгізіңіз, оңға жылжыту үшін, 2, төменге

Енгізу ->

 

Аралас сан енгізу

Енгізу ->

1-ді енгізіңіз  А тапсырмасын таңдау үшін, 2 Б тапсырмасы үшін

Енгізу - >

 

Бастапқы массив

 

 

Нәтиже:

 

 

 

В.1 сурет – интерфейсті қолдану сұлбасы

Г қосымша

 

Тапсырманың шешімінің қорытынды үлгісі

 

Г.1 және Г.2 суретте тапсырманың жауабы бейнеленген

 

 

Г.1 сурет - Бірінші әдіс бойынша тапсырманың жауабы

 

 

Г.2 сурет - Екінші әдіс бойынша тапсырманың жауабы

Әдебиеттер тізімі

 

1.  Эпштейн М.С. Программирование на языке С. - М.: «Академия», 2011.

2. Эпштейн М.С. Практикум по программированию на языке С. - М.: «Академия», 2007.

3. Уэйт М и др. Язые Си. Руководство для начинающих. - М.: «Мир», 1988.

4. Керниган Б. Язык программирования Си. - М.: «Финансы и статистика», 1992.

5. Вирт Н. Алгоритмы и структуры данных. - М.: «Мир», 1989.

6. Березин Б.И. Начальный курс С и С++. - М.: «Диалог-Мифи», 2004.

7. Архангельский А.Я. Язык С++ в С++ BUILDER. - М., 2008.

8. Ишкова Э.А. С++ начала программирования. - М.: «Бином», 2011.

9. Коплиен Дж. Программирование на С++. - СПб., 2005.

10 Либерти Дж. Освой самостоятельно С++ за 21 день. - М., 2007.

11. Павловская Т.А. С/С++. Структурное  программирование. - СПб.: «Питер», 2010.

12. Подбельский В.В. Программирование на языке Си. – М., 2000.

13. Полубенцева М. С/С++ процедурное программирование. - СПб., 2008.

14. Культин Н. С/С++ в задачах и примервх.-СПб.: «БХВ-Петербург», 2011.

Жиынтық жоспар 2013ж. реті 192

Анна Генадьевна Ни
Шынар Ихсанович Имангалиев
Мулдир Бертилековна Мухашова

 

АЛГОРИТМДЕУ, ДЕРЕКТЕР ҚҰРЫЛЫМЫ ЖӘНЕ БАҒДАРЛАМАЛАУ
5В070300 - Ақпараттық жүйелер мамандығының студенттері үшін
есептік- графикалық жұмысты орындауға арналған әдістемелік нұсқау

 

Редактор Дүйсебаева А.А
Стандарттау бойынша маман Н. Қ. Молдабекова

___.___.___. басуға қол қойылды
Пішімі 60х84 1/16
Таралымы 30 дана.
№1 типографиялық қағаз
Көлемі 3,0 оқу.-бас.ә.
Тапсырыс___.Бағасы300т.

“Алматы энергетика және байланыс университеті”
коммерциялық емес акционерлік қоғамының
көшірмелі-көбейткіш бюросы
050013, Алматы, Байтұрсынұлы көшесі, 126