Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
тема_27_алгоритм_сызыктык_тармакталган_циклдык.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
474.11 Кб
Скачать

Программалаудың негізгі ережелері

1. Үлкен программалар құрастыру кезінде программаны жеке жазып, өңдеуге болатын модульдерге бөлуге тырысыңыз.

2. Айнымалылар, функциялар мен процедураларға мәнді аттар беріңіз. Мысалы, MAXLONG аты максимал ұзындықты анықтайдығын бірден түсінуге болады.

3. Комментарийлерге уақытыңызды аямаңыз. Әйтпесе біраз уақыттан кейін программаңыздың мән-жайын қайтадан есіңізге салып отыруға уақытыңыз көп кетеді. Сонымен қатар программаңыз басқаларға да түсінікті болады.

4. Программаны жазу кезінде «сол жақ жоғарғы бұрыш» әдісін қолданыңыз. Циклдерді және шартты операторларды жазу кезінде бос жер қалдырып отруды ұмытпаңыз.

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

6. Кіріс ақпаратын бақылаңыз. Пайдаланушының кез келген әрекетіне программаңыздың реакциясын ескеруге тырысыңыз.

Интерактивті программалау

Қазіргі кезде интерактивті программалау кең қолданыс тапты. Қатынасудың негізгі әдісі – диалог. Диалогтың негізгі ережелері:

1. интерактивті әрекеттердің қарапайым және шекті тізбектерін қамтамасыз ету.

2. пайдаланушыны программамен қатынаудың тым көп мүмкіндіктері мен стильдерімен ауырлатпау.

3. интерактивті әрекеттердің әрбір кезеңінде көмек ұйымдастыру

4. пайдаланушының әрекетінің шындығын кері байланыс арқылы ұйымдастыру.

5. қате әрекет жағдайында пайдаланушыға осы қатені түзету мүмкіндігін беру.

Программаны құрастыру кезінде қолданылатын диалогтық орталардың негізгі типтері:

  1. Хабарлама

  2. Меню

  3. Бланк

  4. Кесте

  5. Мәтін

Хабарлама – диалогтық ортаның ең қарапайым типі. Ол экранға қысқаша хабарлама шығарылады және қандай да бір жағдайға дейін көрсетіліп тұрады. Мысалы, «Файл атын енгізіңіз».

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

Сызықтық меню вертикаль және горизонталь болып бөлінеді. Жазықтық менюлердің сызықтық менюлерден айырмашылығы – меню позициялары экран жазықтығының кез келген орнында орналаса алуы. Мысалға екі өлшемді меню – таңдау кестелерін жатқызуға болады.

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

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

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

Программаларды оптимизациялау

Ең маңызды мәселе – ЭЕМ-де орындалу жағынан программаның дұрыс жазылуы. Айнымалыларды бір әріппен атауға немесе NEXT цикл операторын цикл айнымалынсыз жазуға болмайтынын бірден атап өткен жөн.

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

Пуск->Программалар-> Q Basic-> Q basic.exe

Программаның орындалу процессі екі бөлімнен тұрады:

  1. Q Basic мәтіндік редакторының көмегімен машина жадысына мәтінді енгізу

  2. программа орындалу үшін 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

………

………

………

PRINT

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

шартты

оператор немесе таңдау операторы

PRINT

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

Қайталану саны белгілі циклдер және белгісіз циклдер

PRINT

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).