Автор работы: Пользователь скрыл имя, 22 Ноября 2012 в 20:30, реферат
Егер сіз берілген есепті шешу үшін қандай да бір программалау тілінде программа жазғыңыз келсе, онда алдымен есепті шешудің алгоритмін құруыңыз керек. Алгоритм – математикадағы ең бір іргелі ұғымдардың бірі. Алгоритм сөзі ІХ ғасырда өмір сүрген, адамдардың квадрат теңдеулерді жүйелей құрып оны шеше білуге үйреткен ұлы математик Әл- Хорезмидің атының латынша жазылуы algorithmi сөзінен алынған.
110 A (I)=94
120 A(2*I-1)=A(J)+A(I)
орындалуы 100 – оператор орындалғанан соң массивтің А(4) төртінші элементі бұрынғы 15 санының орына 27 санының ендірілуіне алып келеді.
110 – оператор бойынша массивтің А(І), (І=3) үшінші элементіне 94 саны меншіктеледі, ал 120 – оператордың орындалуы нәтижесінде А (2*3-1)=А(5) элементіне массив элементтерінің қосындысы А(1)+А(3)=-8+94=86 мәні меншіктелетін болады.
Осылайша, келтірілген программа үзіндісінің орыдалуы нәтижесінде жоғарыда келтірілген А массивінің түрі мынадай болып өзгереді.
А(1) |
А(2) |
А(3) |
А(4) |
А(5) |
-8 |
3.2 |
94 |
27 |
86 |
Көптеген
жағдайларда массивтерді
Сонымен,
массивті хабарлағаннан және
оның элементтеріне жадтан
Массивтің
өлшемі шағын болатын ең
Массивтерді ендіру мысалдарын қарастырайық.
1. А массив берілсін. Оны мына төмендегідей жолмен ендіруге болады.
10 DIM A(5)
20 INPUT A(1), A(2), A(3), A(4), A(5)
•
•
•
100 END
А массивіне жадтан қажетті орынды сақтап қоюшы 10 – оператор орындалғанан соң, 20 – оператордың жүзеге асырылуы монитор экранына «?» таңбасын шығарады. Компьютер А массивінің элементтерінің сан мәндерін, ол 20 – операторда индексті айнымалылар қандай реттілікпен берілсе, дәл сондай реттілікпен ендіруді күтіп тұрады. Компьютердің пернетақтасынан А массиві элементтерін мына түрде енгізу керек:
В – 7,6.3,5,17,9 <ЕП> Осымен массивті ендіру аяқталады.
А массивіне жадтан орын бөлінгенен соң оның элементтерін ендіру компьютерді пайдаланушылардан сұрамай – ақ жүзеге асырылады. Мысалы, мына программа:
10 DIM A(5)
20 READ A(1), A(2), A(3), A(4), A(5)
30 DATA -7,6.3,5,17,9
•
•
•
100 END
орындалғанда READ операторының тізімінде бірінші тұрған А(1) айнымалыға DATA операторындағы бірінші мән – 7 меншіктеледі, А(2) айнымалысына 6.3 мәні, А3 айнымалысына 5 мәні т.с.с. меншіктеледі.
Массив элементтеріне қатынас жасаудың екң ыңғайлы құралы, массив элементінің индексі ретінде циклді басқарушы айнымалыны пайдалану болып табылады.
Мұндай тәсіл массивтермен жұмыс істеуді оңай тәртіпке келтірілетіндіктен массивтерді өңдеудегі негізгі тәсілдердің бірі болып табылады. Бұл жағдайда FOR – NEXT операторларындағы цикл айнымалысы индекстің алғашқы және соңғы мәндерінің аралығында бір бірлікке артады, ал массивтің кезектегі элементі автоматты түрде алынады.
Мұны А массивін ендіру мысалы арқылы бейнелеп көрсетуге болады.
А массивін ендірудің блок – схемасын келтірейік.
--------- [ массивті хабарлау
--------- [ индекстің алғашқы мәнін беру
-------- [ элементті ендіру
--------- [ индексті өзгерту
ия ---------- [ тексеру: барлық элементтер ендірілген бе?
жоқ
А массивін диалогтық режімде ендіруді мына программа арқылы орындауға болады.
10 DIM A(5)
20 FOR І=1 TO 5
30 INPUT A(I)
40 NEXT I
•
•
•
100 END
20 – оператормен ендіру циклі басталады. Онда І айнымалысы 1 – ге тең мәнді меншіктейді. Бұдан әрі INPUT операторы бойынша А(1) айнымалысының мәнін сұрайтын экранда «?» таңбасы пайда болды. Оған бірінші санды ендіру арқылы жауап береміз:
Бұдан соң NEXT операторы І – ді бір бірлікке арттырады, яғни І=2 болады, бұл мән басқарушы және басқару қайтадан 30 – операторға беріледі. Монитор экранында қайтадан «?» таңбасы пайда болады. Пернетақтадан екінші санды ендіреміз:
? 6.3 < ЕП >
Осылайша компьютер жадына А массивінің қалған үш элементі ендіріледі:
? 5 < ЕП >
? 7 < ЕП >
? 9 < ЕП >
Массивті ендіруді жүзеге асыратын мына төмендегі програма:
10 DIM A(5)
20 FOR І=1 TO 5
30 READ A(І)
40 NEXT I
50 DATA -7,6.3,5,17,9
•
•
•
1 ден 5 – ке өзгеретін І – дің әр түрлі мәндері үшін А(І) айнымалысына мәндер DATA операторындағы сандардан алынып ретімен меншіктеледі.
Өлшемдері әр түрлі бірнеше массивтерді ендіруде бірдей өлшемді массивтерді бір циклмен ендіру есебінен циклдер санын азайтуға болады.
Айтайық, А массивінен басқа В={2.3, 3.4, 8.3} және С={0.7, -3.1, 5.7} массивтерін ендіру қажет болсын.
Программа мына төмендегідей түрде берілуі мүмкін:
10 INPUT «В және А массивтерінің өлшемдерін енгізіңдер»; K,L
20 DIM B(K), C(K), A(L)
30 FOR І=1 TO K
40 INPUT B(I), C(I)
50 NEXT I
60 FOR J=1 TO L
70 INPUT A(J)
80 NEXT J
•
•
•
150 END
Программаны орындау В және А массивтерінің өлшемдерінің мәндерін сұраудан басталады.
В және А массивтерінің өлшемдерін енгізіңдер.
? 3,5 < ЕП >
Барлық массивтерге жадтан орын бөлінгенен соң В және С массивтерін ендіру циклі жұмысын бастайды. Пайда болған сұрақ «?» таңбасына В және С массивтерінен алынған жұп сандармен жауап беру керек:
? 2.3, -7 < ЕП >
? 3.4, -3.1 < ЕП >
? 8.7, 5.7 < ЕП >
Келесі бес «?» таңбасына А массивінің бес санын ендіріп жауап береміз.
? -7 < ЕП >
? 6.3 < ЕП >
? 5 < ЕП >
? 17 < ЕП >
? 9 < ЕП >
READ, DATA ендіру
операторларын пайдалану
•
•
•
40 READ B(L), C(L)
•
•
•
70 READ A (J)
•
•
•
90 DATA 2.7, .7, 3.4, -3.1, 8.7, 5.7, -7, 6.3
100 DATA 5, 17, 9
•
•
•
Массивтердің элементтерін баспаға шығарған кезде элементтері бойынша барлық уақытта массивтің атын және индекстердің мәндерін циклде көрсету арқылы жүзеге асырылады. Мұнда массив өзін қалыптастырған циклде, сондай – ақ оны баспаға шығару үшін арнайы ұйымдастырылған жеке циклде баспаға шығарылыуы мүмкін.
Мысалы, а массивінің мәндерін монитор экранына шығару үшін мына циклді пайдалануға болады:
•
•
•
160 FOR І=1 TO 5
170 PRINT A(I)
180 NEXT I
•
•
•
Бұл жағдайда А массиві элементтерінің мәндері баған түрінде баспаға шығарылады. 170 – оператор шығарылатын сандар үшін мынадай:
170 PRINT “A(“;I;”)=”;A(I) мәтінмен толықтыру шығарылған нәтижені түсінуді жақсартады:
A(1)=-7
A(2)=6.3
A(3)=5
•
•
•
А массивінің элементтерін қатар түрінде де баспаға шығаруға болады. Ол үшін 170 – қатардағы PRINT операторын нүктелі үтірмен аяқтау керек.
Қатынас жасау талап етілетін массив элементтерінің индекстерінің мәндерін есептейтін формуланы құру массивтің жеке элементтері жұмыс істеудің басқа маңызды тәсілі болып табылады.
Мысалы, А массивінің барлық жұп элементтеріне 4-ке тең сандық мән меншіктеу талап етілсін.
А массивін хабарлағаннан соң және оның мәндерін компьютер жадына ендіргеннен кейін программаның мынадай үзіндісі пайдаланылуы мүмкін:
•
•
•
70 FOR І=1 TO 2
80 А (2*І)=4
90 NEXT I
•
•
•
80 – оператордағы индексті есептеуші формула А массивінің тек жұп элементтерімен ғана қатынас жасауға мүмкіндік береді.
Бұл жағдайда массивтің хабарланбаған элементтерімен қатынас жасамас үшін барлық уақытта индекс мәндерінің төменгі және жоғары шекараларын қадағалап отыруға тура келеді.
Массивтерді өңдеудің типтік
процедуралары
Массивтермен жұмыс істеу процедуралары әр түрлі және көптеген жағдайларда компьютерде шығарылатын есептердің арнайы ерекшеліктерімен анықталады. Бірақ әр түрлі көп есептердің және оларды шешу үшін пайдаланылатын алгоритмдердің ішінен массивтерді өңдеудің типтік тәсілдерінің және алгоритмдерінің белгілі жиынын бөліп алуға болады.
Осы аталғандардың ішінен бір өлшемді массивке қолданылатын кейбіреулерін қарастырайық.
Массивтермен жұмыс істеу тәсілдерінің өзіне назар аудару үшін хабарлау операциясы, массивтер информациясын ендіру және шығару операциялары түсінік келтірмей беріледі және массив элементтерінің сандық мәндері анықталмайды.
Массив элементтерінің қосындысын есептеу
К элементі бар А массивінің элементтерінің қосындысын есептеу талап етілсін, яғни
Анықтау керек.
Қосындыны есептеу алгоритмін
нәтижесі өсіп отыратын
жинау принципі бойынша құрамыз. S қосындының алғашқы мәнін анықтаймыз. Әрине алғашқы кезде S=0 болады. Оған массивтің А(І)-бірінші элементін қосамыз және қосындының жаңа мәні S=S+A(1)-ді есептеп шығарамыз. Оның сандық жағынан А (1) элементтің мәнін тең екендігін көру қиын емес. Келесі қадамда алынған қосындыға А(2) элементін мына түрде S=S+A( 2)=(0+A(1))+A(2) қосып А массивінің алғашқы екі элементінің қосындысын аламыз.
Әрбір І-ші қадамда массивтің жаңа элементін мына S=S+A(1) пішінде қоса отырып, К қадамнан соң ізделініп отырған қосындыны аламыз.
Ұсынылған осы процедура S=S+A(1) шамасын есептеуді К рет қайталанатын цикл түрінде қосындыны жинауды ұтымды ұйымдастыруға мүмкіндік береді.
S қосындысын
есептеу алгоритімнің блок-
Математика алгоритм S=A(1)+A(2)+A(3)+ …+A(K) формуласы бойынша тікелей есептеуді, есептеудің К-қадамы қайталанатын процедурасымен алмастырылады.
S=(…(((0+A(1))+A(2))+A(3))+…+
1-қадам
2-қадам
• 3-қадам
•
•
Программа қосындыны жинаудың К-қадамды процедурасын К рет қайталанатын цикл түрінде ұйымдастыру ыңғайлы болады.
Программаның түрі мынадай болады: