- •14 Июнь 2007 ж қарағанды мемлекеттік медицина университеті
- •Практикалық сабаққа арналған әдістемелік нұсқау
- •Білімдердің бастапқы деңгейінің тест-бақылауы.
- •Келесі сұрақтар бойынша сұрау:
- •III. Есептерді шығару
- •1 Қосымша алгоритмдер теориясы Алгоритмдер және негізгі алгоритмдік құрылымдар
- •Алгоритмдерді құрастыру
- •Алгоритмдерді блок-схема түрінде көрсету
- •Ақпаратты өңдеу есептері
- •Программалаудың негізгі ережелері
- •Интерактивті программалау
- •Программаларды оптимизациялау
- •Қайталану саны белгілі циклдер
Программалаудың негізгі ережелері
1. Үлкен программалар құрастыру кезінде программаны жеке жазып, өңдеуге болатын модульдерге бөлуге тырысыңыз.
2. Айнымалылар, функциялар мен процедураларға мәнді аттар беріңіз. Мысалы, MAXLONG аты максимал ұзындықты анықтайдығын бірден түсінуге болады.
3. Комментарийлерге уақытыңызды аямаңыз. Әйтпесе біраз уақыттан кейін программаңыздың мән-жайын қайтадан есіңізге салып отыруға уақытыңыз көп кетеді. Сонымен қатар программаңыз басқаларға да түсінікті болады.
4. Программаны жазу кезінде «сол жақ жоғарғы бұрыш» әдісін қолданыңыз. Циклдерді және шартты операторларды жазу кезінде бос жер қалдырып отруды ұмытпаңыз.
5. Операторларда арифметикалық немесе логикалық әрекеттер орындаған кезде орындалу ретінде күмәндансаңыз, барлық жағдайда да жақшалар қолданыңыз.
6. Кіріс ақпаратын бақылаңыз. Пайдаланушының кез келген әрекетіне программаңыздың реакциясын ескеруге тырысыңыз.
Интерактивті программалау
Қазіргі кезде интерактивті программалау кең қолданыс тапты. Қатынасудың негізгі әдісі – диалог. Диалогтың негізгі ережелері:
1. интерактивті әрекеттердің қарапайым және шекті тізбектерін қамтамасыз ету.
2. пайдаланушыны программамен қатынаудың тым көп мүмкіндіктері мен стильдерімен ауырлатпау.
3. интерактивті әрекеттердің әрбір кезеңінде көмек ұйымдастыру
4. пайдаланушының әрекетінің шындығын кері байланыс арқылы ұйымдастыру.
5. қате әрекет жағдайында пайдаланушыға осы қатені түзету мүмкіндігін беру.
Программаны құрастыру кезінде қолданылатын диалогтық орталардың негізгі типтері:
Хабарлама
Меню
Бланк
Кесте
Мәтін
Хабарлама – диалогтық ортаның ең қарапайым типі. Ол экранға қысқаша хабарлама шығарылады және қандай да бір жағдайға дейін көрсетіліп тұрады. Мысалы, «Файл атын енгізіңіз».
Меню – шешімнің бірнеше варианты ұсынылғанда, пайдаланушының біреуін таңдайтын диалогтық орта. Таңдауды сәйкес пернені басу немесе тышқанмен көрсету арқылы орындалады. Менюдің экранда орналасу тәсіліне қарай сызықтық және жазықтық түрлері болады.
Сызықтық меню вертикаль және горизонталь болып бөлінеді. Жазықтық менюлердің сызықтық менюлерден айырмашылығы – меню позициялары экран жазықтығының кез келген орнында орналаса алуы. Мысалға екі өлшемді меню – таңдау кестелерін жатқызуға болады.
Бланк ақпаратты енгізу және түзету үшін қолданылады. Толтыру графалары экранның кез келген бөлігінде орналасып, түрлі ұзындыққа ие бола алады. Мысалы, анкета, мінездеме және т.б.
Кестелер де ақпаратты енгізу және түзету үшін қолданылады. Айырмашылығы – кестеде құрылымды ақпарат сақталады, оның мәндері элементтерден тұрады, ал әртүрлі жолдарда орналасқан осы элементтердің бір типке жататындары бағандар құрады. Мысалы, «сессия нәтижелері» кестесі.
Мәтін экранға кез келген мәтінді шығару үшін қолданылады. Мысалы, пайдаланушы инструкциясы, көмек және т.б.
Программаларды оптимизациялау
Ең маңызды мәселе – ЭЕМ-де орындалу жағынан программаның дұрыс жазылуы. Айнымалыларды бір әріппен атауға немесе NEXT цикл операторын цикл айнымалынсыз жазуға болмайтынын бірден атап өткен жөн.
Программаның орындалуы кезінде жады көлемі және орындалу уақытын оптимизациялау мәселесін дұрыс шешу керек. Бұл екі критерий бір-бірі арқылы оптимизацияланады, яғни программа орындалуын тездету үшін көбірек мәндерді, көбірек аралық нәтижелерді есте сақтап отыру керек, олардың қайта-қайта есептеле бермеуін қадағалау керек, яғни жады көбірек шығындалады.
Пуск->Программалар-> Q Basic-> Q basic.exe
Программаның орындалу процессі екі бөлімнен тұрады:
Q Basic мәтіндік редакторының көмегімен машина жадысына мәтінді енгізу
программа орындалу үшін Q Basic интерпретаторын қосу.
Интерпретатор қосылған соң, компьютер экраны келесідей болады: Бұл экран үш бөліктен тұрады: жоғарғы бөліктегі меню жолы, ортадағы терезе аймағы және төмендегі статус жолы.
Q basic.exe файлын іске қосқаннан кейін экранда басты менюдің жоғарғы жағында, редактрлеу терезесі және төменгі жағында подсказка, функционалдық пернетақтамен орындалатын әрекеттер (1.1 сурет).
File Edit View
Search Run Debug Options
<Shift+F1=Help>
<F6=Window> <F2=Subs> <F5=Run> <F8=Step>
1.1 сурет. QBasic экранының жүктелгеннен кейінгі түрі
Вход в главное меню QBasic-тің басты менюіне кіру Alt+F (File менюін ашу) немесе Alt+R (Run менюін ашу), Esc батырмасы редакторлеуге оралу.
File (файл) – файлмен және жүйеден шығу әрекеті;
Edit (редактировать) – уақытша буфермен және бүлінген мәтінді қайтадан қалпына келтіру (Cut қию, Copy көшіру , қою, тазалау);
View (түр) - Бағыныңқы программаларды қарау
Search (іздеу) - функцияны немесе қатенің орнын, процедураны, мәтінді іздеу;
Run (машина жұмысы) - компиляция және программаның орындалуы;
Debug (отладка) - отладка программы;
Options (варианты)- Қосымша мүмкіндіктер;
FILE менюінің опциясы
New
Open …
Save
Save As …
Print …
Exit
New. Жаңадан редактрлеу терезесін ашу және NAME.BAS аттарымен байланыстыру.
Open... диалогтық терезені ашу, керек файлдың атын жазуды енгізу.
SAVE. Жаңа файлдың атын сұрау ортасы осы тереземен NAME.BAS аттарымен байланысты болған жағдайда ағымдағы редактрлеу терезесіндегі мазмұнын дискілік файлға жазу.
SAVE АS. Ағымдағы редактрлеу терезесінің мазмұнын дискілік файлға басқа атпен жазатын жағдайда сақтау.
PRINT. Ағымдағы редактрлеу терезесінің мазмұнын баспаға жіберу.
EXIT. QBASIC жұмысын аяқтау.
RUN менюінің опциясы
Start Shift+F5
Restart
Continue F5
RUN. Программаны орындау.
REM программаның басы.
END прграмманың соңы.
Мысал: Q BASIC- те программа құруды қарастырайық. Екі санның қосындысының программасын жазу.
REM екі санның қосындысы
CLS
INPUT “ Бірінші санды енгізу:”;Х
INPUT “Екінші санды енгізу:”;Y
Z= X+Y
PRINT “Қосындысы тең:”;Z
END
Программаны орындау үшін менюден Запуск (RUN) Старт немесе Shift F5 пернесін басу.
Алгоритм құрылымы:
Сызықтық алгоритм
блок-схема |
QBasic тілінде программаны жазу |
шешімі
|
REM
INPUT
……… ……… ………
END |
Тапсырма. Дұрыс үшбұрыштың ауданын есептейтін программа жазу және блок-схема құру қажет. Берліген шеңбердің радиусы мына формула бойынша есептеледі. R=abc/4S
Шешімі:
R=abc/4S ауданның мәнін шығару
S=abc/4R
блок-схема
басы
a, b, c, R
S= (a*b*c)/ (4*R)
S
аяғы
QBasic тілінде программаны жазу
REM
INPUT «1 мәнді енгізу»; a
INPUT «2 мәнді енгізу»; b
INPUT «3 мәнді енгізу»; c
R=4.5
PRINT «үшбұрыштың ауданы,»; S
END
Тармақталған алгоритм
блок-схема |
QBasic программасында жазылу түрі |
басы
Дерек енгізу
шарт
Серия
2
Серия
1
енгізу
соңы |
REM
INPUT
шартты оператор немесе таңдау операторы
END |
Алгоритмдерді көрсету құралдарында тармақталу командасы бар, оның көмегімен алгоритмнің қандай да бір тармағын орындау, осы жолды жүзеге асыру таңдалады. Тармақталуды жүзеге асыру формасы:
Блок-схема |
Алгоритм тілі |
QBasic |
|
Тармақталу командасы: а) толық пішіні: егер шарт онда серия 1 әйтпесе серия 2 болды |
Шартты көшу операторы: IF шарт THEN серия1 ELSE серия 2 IF шарт THEN серия 1 ELSE серия 2 END IF |
|
б) қысқартылған пішіні: егер шарт онда серия болды |
Қысқартылған пішінде ELSE қызмет етуші сөзі және тиісті командалар сериясы жоқ. Сөзсіз көшу операторы. GOTO N N нөмірлі (таңбалы) жолға көшу. Таңба ретінде сан немесе қос нүктелі мәтін қолданылады. |
Көрсетілген конструкцияларда орындау жолын көрсету шартты орындауға байланысты болады. Егер шарт орындалса, онда орындаушы 1 серияны орындайды, кері жағдайда 2 серияны орындайды. Тармақталу командасының қысқартылған формасын қолданған жағдайда командалар сериясы тек шарт орындалғанда ғана орындалады.
Шарттарды жазу кезінде қолданылатын қатынас опреациялардың белгілерін көрсетейік
Қатынас белгісі |
QBASIC-те қатынас белгісінің жазылуы |
Қатынас операциясының аты |
= |
= |
тең |
≠ |
<>, >< |
тең емес |
> |
> |
көп |
≥ |
>= |
көп немесе тең |
< |
< |
аз |
≤ |
<= |
аз немесе тең |
Тармақталған алгоритмі бар есепті шығару мысалы:
Есеп: Пернетақтадан Х санын енгізіп, А нәтижесін Х-тің енгізілген мәніне қарай түрлі формулалар бойынша есептеп шығаратын программа жазу.
Программаны жазу үшін бірінші есепті шығарудың блок-схемасын құрастырайық:
басы
енгізу Х
Х
< -1
X<5
A
=
X+ Sin X
A=1
шығару
А
соңы
QBASIC-те программа кодын жазайық:
REM вычисление по формуле
CLS
INPUT “X=”;X
IF X <-1 THEN
A=X+SIN (X)
ELSE
IF X<5 THEN
A=3*SQR(X+1)
ELSE A=1
END IF
END IF
PRINT “A=”;A
END
Программаны орындау үшін RUN=>Start менюін таңдау немесе Shift+F5 пернелер комбинациясын қолдану керек.
Бұл конструкция келесідей орындалады. Алдымен 1 шарт тексеріледі. Егер ол орындалса, онда 1 серия орындалады, содан кейін басқару END IF сөзінен кейін жазылған инструкцияларға беріледі. Егер 1 шарт орындалмаса, онда 2 шарт тексеріледі, ол орындалған жағдайда 2 серия орындалады. Егер ол да орындалмаса, онда 3 шарт тексеріледі және т.с.с. Егер осы шарттардың ешқайсысы орындалмаса, онда ELSE сөзінен кейін орналасқан серия орындалады. ELSE сөзі болмауы да мүмкін. Бұл жағдайда егер шарттарды тексеру «жоқ» нәтижесін берсе, онда сериялардың ешқайсысы да орындалмайды.
Барлық жағдайда да командалардың сәйкес сериясы (операторлар топтары) орындалған соң, басқару END IF сөзінен кейін жазылған инструкцияларға беріледі
QBASIC тіліндегі логикалық операцияларды енгізейік:
Алгоритмдік тілдегі жазба |
QBASIC тіліндегі жазба |
Және |
AND |
Немесе |
OR |
емес |
NOT |
Тек екі қарапайым шарт орындалып жатқан жағдайда AND (және) логикалық операциясы бар күрделі шарт нағыз ақиқат болып саналады. Егер қарапайым шарттардың ең болмаса біреуі орындалып жатса, OR (немесе) логикалық операциясы бар күрделі шарт ақиқат болып саналады. NOT А = 0 логикалық операциясы А = 0 шартына тең.
REM
CLS
INPUT “X=”;X
IF X <-1 THEN A=X+SIN (X)
IF -1<=X AND X<5 THEN A=3*SQR(X+1)
IF X>=5 THEN A=1
PRINT “A=”;A
END
Өздігінен орындауға арналған тапсырма:
ТАҢДАУ КОМАНДАСЫ
Егер тармақталу командасында әрекеттердің екі вариантынан аса көрсетілсе, оның жазбасы ыңғайсыз болып қалады. Бұл жағдайларды алгоритмде көрсетудің құралы таңдау командасы болып табылады, оның көмегімен алгоритм қарапайым және көрнекті болып көрінеді.
Таңдауды жүзеге асыру формалары келесі кестеде келтірілген.
Блок-схема |
Алгоритм тілі |
QBasic |
|
Таңдау командасы: а) толық пішін таңдау егер шарт 1: серия 1 егер шарт 2: серия 2 әйтпесе серия болды |
Таңдау операторы: SELECT CASE өрнек CASE шарт 1 серия 1 CASE шарт 2 серия 2 CASE ELSE серия N END SELECT Шарт жазылуы мүмкін: 1) үтірден кейін; 2) мәндер ауқымы ретінде ТО сөзі көмегімен; 3) IS сөзі көмегімен. |
|
б) қысқартылған: таңдау егер шарт 1: серия 1 егер шарт 2: серия 2 болды |
Қысқартылған пішінде ELSE қызмет етуші сөзі және тиісті командалар сериясы жоқ |
Орындаушы таңдау командасының барлық шарттарын бірінен соң бірін тексеріп, оның ең бірінші орындалатынын табады. Осындай шартты тауып, орындаушы оның артында тұрған командалар сериясын орындайды, осымен таңдау командасының орындалуы аяқталады. Егер, мысалы, 1 шарт әрі 2 шарт орындалса, онда орындаушы 1 серияны ғана орындайды.
Шарттардың ешқайсысы орындалмаған жағдайда «кері жағдайда» сөзінен кейін жазылған команда орындалады. Қысқартылған формада бұл жағдайда ештеңе орындалмайды.
Тармақталған алгоритмі бар есепті шығару мысалы.
Есеп: Пернетақтадан енгізілген апта күнінің номеріне сәйкес монитор экранына орыс тілінде бұл күннің не жұмыс күні, не демалыс күні екенін шығаратын программа жазу.
QBASIC-те программа кодын жазайық:
REM апта күнін таңдау
CLS
INPUT”День=”;Day
SELECT CASE Day
CASE 1,2,3,4,5
Print “Рабочий день”
CASE 6,7
PRINT “Выходной день”
END SELECT
Программа келесідей орындалады:
Алдымен CLS функциясы экранды тазартады, сосын День=? хабарламасы шығады, осыдан кейін апта күнін енгізу керек. Енгізілген күн Day айнымалысына жазылады.
Барлық шарттардың орындалуын тізбектей тексеріп, SELECT CASE орындалатын шарттарды іздейді. Осындай шартты тауып, орындаушы оның артында тұрған командалар сериясын орындайды, сонымен таңдау командасының орындалуы аяқталады
Қайталану алгоритмі
Блок-схема |
QBasic тілінде программаны жазу |
басы
Айнымалыны
енгізу
Циклдың басы
|
REM
INPUT
Қайталану саны белгілі циклдер және белгісіз циклдер
END |
Есептерді шығару кезінде әрекеттерді анықтайтын параметрлердің әртүрлі мәндерінде біртипті әрекеттерді бірнеше рет қайталау қажеттілігі туындайды.
Осындай әрекеттерді жүзеге асыратын алгоритмдер циклдік деп, ал бірнеше рет қайталанатын әрекеттер тізбегі (цикл денесі) циклдер деп аталады. Циклдерді қолдану арқылы көлемі жағынан шағын программалардың көмегімен есептеулердің үлкен көлемдерін орындауға мүмкіндік бар.
Қайталанулар саны алдын ала берілген және белгісіз циклдер деп бөлінеді
FOR. . .NEXT операторларының қайталануы:
FOR . NEXT операторларының қайталану ережелері:
Параметрі бар қайталау командасы циклдік құрылымы бар алгоритмдерді жазуды көрнекті етеді
Алдымен FOR операторы параметрдің бастапқы, соңғы мәндерін және қадам мәнін орнатады. Одан кейін параметрдің көрсетілген бастапқы мәні үшін цикл денесі орындалады. Сосын NEXT операторы алдымен параметр мәніне қадам шамасын қосып өзгертеді де, циклдің аяқталу шартын тексереді
Егер параметрдің ағымдағы мәні соңғы мәнінен аспаса, NEXT операторы есептеу процесін FOR операторынан кейін орналасқан жолға ауыстырады, кері жағдайда – NEXT операторынан кейін орналасқан жолға ауыстырады.
Қайталанулар саны алдын ала белгісіз циклге қарағанда бұл циклде параметр тек қадам шамасына ғана өзгере алады, яғни Х=Х+Х.
Есеп: Әрбір бактерия бір минут ішінде екіге бөлінеді. Уақыттың бастапқы мезетінде бір ғана бактерия бар. Уақыттың сіз көрсеткен мезетінде (7 мин., 15 мин.,) бактериялар санын есептейтін программа жазыңыз.
CLS
INPUT “уақытты енгіз: “; T
B = 1
FOR I = 1 TO T
B = B + B
NEXT I
PRINT “Через “; T; “минут болады “; B; “бактерия”
Қайталану саны белгісіз циклдер
Блок-схема |
Алгоритм тілі |
QBasic |
|
Қайталану командасы: әзірше шарт цб цикл денесі цс |
Циклдің шартты операторы: WHILE шарт цикл денесі WEND
DO WHILE немесе UNTIL цикл денесі LOOP
DO цикл денесі LOOP WHILE немесе UNTIL Шарт ақиқат болған шақта цикл орындала береді (WHILE) немесе жалған болған шақта (UNTIL). |
