Автор: Пользователь скрыл имя, 26 Февраля 2013 в 18:26, лекция
Егер сіз берілген есепті шешу үшін қандай да бір программалау тілінде программа жазғыңыз келсе, онда алдымен есепті шешудің алгоритмін құруыңыз керек. Алгоритм – математикадағы ең бір іргелі ұғымдардың бірі. Алгоритм сөзі ІХ ғасырда өмір сүрген, адамдардың квадрат теңдеулерді жүйелей құрып оны шеше білуге үйреткен ұлы математик Әл- Хорезмидің атының латынша жазылуы algorithmi сөзінен алынған. Осылайша алгоритм ұғымы математикада ертеден қолданыла бастағанымен, математикалық теорианың объектісі ретінде кейбір проблемаларды зерттеуге байланысты ХХ ғасырдың 30-шы жылдарында зерттеле бастады.
онда олардың мәні анықталмайды.
Сырттан басқаруды берудің мүмкін еместігіне мысал;
.
30. FOR I = N + 2 TO 20
40. Y (I) = X (I) + 5
50. NEXT I
60. A =A -3
70. IF A I=15 THEN 40
Мұнда 70-операторымен басқаруда 40-қатардағы циклдің ішкі параметірге беруге болмаиды.
2. Кез келген уақытта цикілден шақыруға рұқсат етіледі. Мысалы;
20. K = 1
30. FOR I = 1 TO 10
40. K = K + 1
50. IF K – 10 THEN 70
60. NEXT I
70. PRINT K, I
.
программа үзіндісіне циклдің программасын қателікпен алып келіуі мүмкін болғандықпен алдын ала анықтауға кеңес беруге болмайды.
3. Циклдің санын қатаң сақтауы, бүтін болуы тиіс.
.
30. FOR I % = 1 TO 2 %
90. NEXT I %
.
Циклден шығаруда цикл программаның сонғы мәні сақталады.
Пайдаланушы анықтайтын функция
Есептер
шығару барысында элементар
Кейде есеп шығаруда осы аталған стандартты математикалық функцияларға ұқсамайтын алгебралық өрнектер кездесуі мүмкін. Мұндай жағдайда BASIC программалау тілі пайдаланушыға өзінің функциясын құруға мүмкіндік береді. Мұндай функцияларды пайдаланушы анықтайтын функциялар немесе стандартты емес функциялар деп атайды. Оларды анықтау үшін, DEF (Define Function) операторы қолданылады. Оператордың жазылу пішімі:
K DEF FN v(x1,x2,…,xN)=e
Мұнда k-қатар нөмірі; DEF (анықта)- оператордың аты; FNV- пайдаланушы анықтайтын функцияның аты; (v- программалаушы таңдап алатын латын әріпі); х1, х2, …,хN- формальды аргументтер тізімі; е- арифметикалық өрнек. Мысалы,
30 DEF FN B(X,Y)=X^ 2+Y^2
Стандартты емес, яғни пайдаланушы анықтайтын функцияның аты барлық уақытта үш латын әріпінен құралады, ал үшінші әріпті пайдаланушы өзі таңдайды. Тек қарапайым, (индекстері жоқ) үтірлерімен бөлінген айнымалылар (х1, х2, …,хN) ғана формальды аргументтер бола алады.
Ереже бойынша формальды аргументтер е арифметикалық өрнегіне де енеді. Оған санымен бірге басқа да айнымалылар мен тұрақтылар да енеді. е арифметикалық өрнегі формальды аргументтермен және басқа да оған енетін шамалар мен қандай амалдарды, қандай реттілікпен, орындау керектігін көрсетеді. Сонымен, жоғарыда келтірілген мысалдарға 30-операторда қандай екендігі бәрі бір кейбір шаманың х-ты квадраттау және оған басқа формальды шама у-тің квадратын қосу арқылы анықталатындығы көрсетілген. Стандартты емес функция программада DEF операторымен сипатталғаннан соң, оның бұл программадан стандартты функцияларды пайдалануға, яғни BASIC тілінің әр түрлі операторларында пайдалана беруге болады.
Мысалы,
мына төмендегі функцияны
Мұнда түрінде жазуға болатын формула көптеген рет пайдаланылған. Программа бұл формуланы DEF операторының көмегімен функция ретінде анықтау орынды. Сонда программаның түрі мынандай болады:
10 REM
20 DEF FNY (X)=3*X^2+COS (X)
30 REM CD
40 INPUT C,D
50 REM Z
60 Z=(FNY(C)-FNY(D))/FNY(C+D)^3
70 PRINT “Z=”; Z
80 END
60-операторда көрсетілген FNY функциясының аргументтері шын аргументтер деп аталады. Олар 20-оператордағы формальды аргументтердің орындарына қойылатын нақты сандық мәндерді береді. Пайдаланушы анықтайтын, яғни стандартты емес функцияларды программалауда пайдаланғанда ескерілуге тиісті бір қатар ерекшеліктерді атап өтейік.
Формальды
аргументтер, аргументтерді
.
20 DEF FNC (X,Y)=SQR (X^2+Y^2)
.
50 DEF FND(X)=SIN (X)/X
.
80 LET Z=Y+B*3
.
FNC жєне FND функцияларын анықтаудағы х аргументі өзара байланысты емес тәуелсіз шамалар. Компьютерде оларға оперативті жадтың әр түрлі ұялары бөлінеді. Дәл осы сияқты 20-оператордағы у формальды аргументінің программаның 80-операторындағы у айнымалысына ешқандай қатысы жоқ. Мыналар шын аргументтер бола алады: тұрақтылар, айнымалылар (жай және индексті), өрнектер. Орындалатын оператордың формуласында шын аргументті стандартты емес функцияның аты оперант ретінде кездескен кезде ғана стандартты емес функцияны пайдалану орындалады. Функцияны пайдалануда алдымен барлық шын аргументтердің мәндері есептеледі, одан әрі олар функцияның анықтамасындағы формальды аргументтердің сәйкес орындарына қойылады және функция анықтамасының оң жағына жазылған өрнектің мәні есептеледі. Осы мән функциясының мәні болып табылады.
Пайдаланушының анықтайтын функциясы бүтін, нақты немесе символдық бола алады. Функцияның атынан соң % символы тұрса, онда ол бүтін деп, ал $ символы тұрса, онда ол символдық деп аталады. Бүтін санды функцияның мәні бүтін саны болып табылады, ал символдық функцияның мәні символдар қатары болады. Егер % және $ таңбалары жоқ болса, онда функция нақты функция болады, яғни нәтижесі нақты сан болады.
Мына
төменде пайдаланушының
20 DEF FNA % (X,Y,R%)=X*K% +Y*10*K%
20 DEF DNB% (A$,L)=SWG (A$,I,L)+”A”
20 DEF FNC (X)=SIN (X) /X
М±нда:
Пайдаланушы
функцияны анықтауда деректерді
20 DEF FNB (X)=2*X/SQR (X)
30 PRINT FNB (5,2)
орындалуының
нәтижесінде экранға
Мысалдар келтірейік:
.
50 DEF FNB (X,Y)=FNA (X)+(CJS(Y)^2-1
55 X=2.5
60 Z=FNB (4.7124,3.I4I6)*EXP (X)
70 PRINT Z
.
Бұл программа үзіндісі орындалғанда мына төмендегідей нәтиже алынады:
Z=(| sin 4.7124| + cos2 3.1416-1).e2.5= 12.1825
және
екі функцияны анықтау керек және олардың мәні х=5 мәнінде есептелсін.
10 DEF FNY (x) =LOG (x+SQP(x^2+1)
20 DEF FNY =B^2 (((X-A)^2+B^2
30 A=2: B=3
40 X=5
50 Y=FNY (X): F=FNF (X)
60 PRINT X,Y,F
70 END
Бұл программада 30-қатарда А және В-ның мәндері анықталған, олай болмаған жағдайда f(x) функциясының мәні есептелінбейді. 40-қатарда х-тың мәні, ал 50-қатарда у және F-тің мәндері есептеледі.
Массивтер және оларды өңдеу.
Массив ұғымы
BASIC тілінде бірыңғай шамаларды массивке біріктіруге болады. Жалпы аты бар бірыңғай элементтердің реттелген жиыны массив болып табылады. Ол математикада вектор ұғымына, ал мектептік алгоритмдік тілде сызықтық кестеге сәйкес келеді. Массивтің аты жай айнымалының атын құрғандағы ережелерге сүйеніп құрылады.
Массивтің әрбір элементіне соңынан индексі келетін массивтің аты меншіктеледі. Сондыќтан да массив элементтерін индексті айырмалар деп те атайды.
Ұйымдастыру тәсілдері бойынша BASIC тілінде бір өлшемді екі өлшемді және көп өлшемді массивтер пайдаланылады. Бір өлшемді массивтің элементі массивтегі элементтің реттік нөмірін анықтайтын бір индекспен көрсетіледі. Мысалы:
Осылайша, индекстер массивінің атынан соң жақша ішіне орналасады.
Енді
екі өлшемді массивке алып
келетін мынадай есепті
Айталық,
11-мөлтек ауданда тұратын
Бұл
есепті шешуде екі өлшемді
массивті пайдалану ыңғайлы.
Екі
өлшемді массивке математикада
матрица, алгоритмдік тілде
Сонымен, екі өлшемді массивтердің элементтері екі индекспен көрсетіледі, оның біріншісі қатардың нөмірін, ал екіншісі бағанның нөмірін анықтайды, екеуінің қиылысында массивтің сәйкес элементі орналасқан болады. Мысалы, А(0,0) екі өлшемді А массивінің нөлдік қатары мен нөлдік бағанына орналасқан элемент; В3(2,3) екі өлшемді В3 массивінің екінші қатары мен үшінші бағанына орналасқан элемент екендігін білдіреді. Екі өлшемді массивтерде индекстер үтірмен бөлінеді. BASIC тілінде индекстер нөлден бастап нөмірленеді.