Алгоритм трассировкасы. Информатика, 8 сынып, дидактикалық материал.
Тармақталу құрылымының алгоритмдерінің трассировкасы
Компьютерде орындалу барысында тармақталу құрылымы арқылы жүзеге асатын бірнеше есептің алгоритмін қарастырайық.
Тапсырма 1: Екі сан берілген, олардың арасындағы үлкенін анықтау қажет.
Бастапқы берілгендер: А және В айнымалылары. Олардың мәндері программа орындалу барысында енгізіледі. Салыстыру барысында анықталған үлкен мән С айнымалысына меншіктеледі және экранға шығарылады. Мысалы, егер А = 5, В = 8, онда шығарылатын мән: С = 8.
Есепті шығарудың блок-схемасы:
Сурет 1. Екі санның үлкенін табу (толық тармақталу құрылымы) |
Бұл алгоритмнің мағынасы: егер А айнымалысының мәні үлкен болса, С айнымалысына А айнымалысынң мәні меншіктеледі, әйтпесе, егер А < В, онда С айнымалысына В айнымалысының мәні меншіктеледі.
Алгоритмді тармақтайтын шарт А > В теңсіздігі. Мәліметтер қорын және электрондық кестелерді оқыған кезде, бұндай қатынастар логичкалық өрнек болып табылатынын білесіңдер. Егер қатынас дұрыс болса, нәтижесі логикалық "ақиқат" және алгоритм осы тармақтағы "ия" сөзі арқылы жалғасады; басқаша жағдайда логикалық өрнек мәні "жалған" және алгоритм "жоқ" тармағы арқылы жалғасады.
Компьютерде тексермес бұрын алгоритмнің дұрыс орындалуын трассировка кестесін толтыру арқылы тексеруге болады
А = 5, В = 8 болғандағы алгоритм үшін трассировка кестесі төмендегідей.
Қадам | Операция | А | В | С | Шартты тексеру |
1 | енгізу А, В | 5 | 8 |
|
|
2 | А>В | 5 | 8 |
| 5 > 8, жоқ (жалған) |
3 | С:=В | 5 | 8 | 8 |
|
4 | шығару С | 5 | 8 | 8 |
|
Тармақталу құрылымдық команда болып табылады. Оның орындалуы бірнеше қадамдардан тұрады: шарттың тексерілуі (логикалық өрнектің орындалуы) және команданың "ия" немесе "жоқ" тармақтарының бірімен жалғасуы. Сондықтан, трассировка кестесінде алгоритмнің командалары емес, компьютерде әрбір қадамда орындалатын жеке операциялар жазылады.
Жоғарыдағы суретте тармақталудың толық түрі көрсетілген. Осы есепті, құрылымдық толық емес тармақталуды пайдалана отырып та шығаруға болады. Бұндай алгоритмнің блок-схемасы Сурет 2 көрсетілген.
Сурет 2. Екі санның үлкенін таңдау алгоритмі (толық емес құрылым) |
Өз беттеріңізбен әртүрлі нұсқалар үшін трассировкалау кестесін толтырыңыз 1) А = 0,2, В = 0,3; 2) А = 7, В = 4; 3) А = 5, В = 5. Егер сіз барлығын дұрыс орындасаңыз, алгоритм құрылымынң дұрыстығына көз жеткізіңіз.
Енді қарастырылған алгоритмдерді алгоритмдік тілде қарастырайық. Біріншіден, алгоритмде айнымалыларды қалай жариялайтынымызды анықтап алу қажет. Есіңізде сақтаңыз, алгоритмдік тілде барлық айнымалыларды жариялауымыз қажет.
А, В, С айнымалылары- сандық мәнге ие болады. Бұл есепте олар кез-келген мәнді қабылдай алады - бүтін, бөлшек – бұл тип нақты деп аталады. Оларға сәйкесінше нақты тип меншіктеледі. Алгоритмдік тілде бұл тип нақты қызметші сөзі арқылы жарияланады.
Тармақталу командасы қалай жазылатынын білесіңдер. Алгоритмдік тілдегі Сурет1 және Сурет2 блок-схемаға сай алгоритмдер:
алг ЕСҮ1нақты А, В, Сбасы енгізу А, В егер А>В онда С:=А әйтпесее С:=В кв шығару Ссоңы | алг ЕСҮ1нақты А, В, Сбасы енгізу А, В С:=А егер В>А онда С:=В кв шығару Ссоңы
|
ЕСҮ дегеніміз "Екі санның үлкені".
Программалау барысында бір есеп бірнеше жолмен шешілуі мүмкін. Есеп қиындаған сайын оның шешілуінің әртүрлі алгоритмдерін ұсынуға болады. Үлкен есептеулер үшін (өндірістік, ғылыми) алгоритмдердің бірдей болуы мүмкін емес.
Келесі есеп: 2 айнымалы X және Y мәндерін өсу реті бойынша орналастырыңыз. Бұл есептің мағынасы: егер бастапқы енгізілген мәндер үшін X < Y салыстыру операциясы ақиқат болса (мысалы, X = 1, Y = 2), онда өзгеріссіз қалдыру, ал егер X > Y (мысалы, X = 2, Y = 1), онда мәндерінің орынын ауыстыру.
Мәндерді ауыстыру алгоритмі үшін 3-ші айнымалы қажет.
Есепті шешу алгоритмінде толық емес тармақталуды пайдалануға болады. Сурет 3 осы есептің алгоритмі және блок-схемасы берілген.
алг СҰРЫПТАУ нақты X, Y, С басы енгізу X, Y егер X>Y онда С:=Х Х:=Y Y:=С кв шығару X, Y соңы | |
Сурет 3 Екі санды тізімдеудің алгоритмі | |
Бұл жерде ауыстыру үшін пайдаланылатын қосымша айнымалы - С.
Күрделі тармақталған алгоритмдер
Қарастырылатын есеп: Берілген үш санның А, В, С арасындағы ең үлкенін табу.
Бұл жағдайда алдымен 2 санның А және В арасындағы үлкенін тауып оны қандай да бір D айнымалысына меншіктеп, сонан соң осы D және соңғы мән С арасындағы үлкенін тауып оны қайтадан D айнымалысына меншіктеуге болады
Есепті шешу үшін екі санның үлкенін табу алгоритмін екі рет қолдану арқылы нәтижені табуға болады
алг ҮСҮ1нақты А, В, С, Dбасы енгізу А, B, С егер А>В онда D:=A әйтпесе D:=B кв егер C>D онда D:=C кв шығару D соңы | |
Сурет 4. "ҮСҮ" алгоритмінің тізбектей тармақталуды пайдалану арқылы шешілуі | |
"ҮСҮ" – үш санның үлкені. Бұл алгоритмнің құрылымында 2 рет кезекпен тармақталуды пайдалану бар: біріншісі - толық, екіншісі – толық емес.
Бұл есепті кірістірілген тармақталу арқылы да шығаруға болады.
Алг ҮСҮ2 нақты А, В, С, D басы енгізу А, В, С егер А>В онда егер A>C онда D:=A әйтпесе D:=С кв әйтпесе егер В>С онда D:=B әйтпесе D:=С кв кв шығару Dсоңы
Осы есептің А = 5,В = 7,С = 2 мәндері үшін трассировка кестесімен толықтырайық.
Қадам | Операция | А | В | С | D | Шартты тексеру |
1 | енгізу А, В, С | 5 | 7 | 2 | - |
|
2 | А>В | 5 | 7 | 2 | - | 5 > 7, жоқ |
3 | В>С | 5 | 7 | 2 | - | 7 > 2, ия |
4 | D:=B | 5 | 7 | 2 | 7 |
|
5 | Шығару D | 5 | 7 | 2 | 7 |
|
Сұрақтар мен тапсырмалар
1. Екі санның үлкенін табу үшін қандай алгоритмдік құрылым пайдалануға болады?
2. Қандай жағдайда сандық айнымалы типін нақты немесе бөлшек деп көрсету керек?
3. Үш санның кішісін табатын алгоритм құрастырып, қандай да бір мәндер үшін трассировка кестесін толтырыңыз
4. Компьютерде келесі әрекеттер орындалатын алгоритм құрастырыңыз: S айнымалысына Саматтың жасы, ал М айнымалысына Мараттың жасы енгізіген. Нәтиже ретінде "Самат Мараттан үлкен" немесе "Марат Саматтан үлкен" хабарламасын алуымыз керек (біреуінің жасы үлкен болуы міндетті)
5. Жоғарыдағы есепті егер Самат пен Мараттың жастары бірдей болғанғы жағдаймен қарастырыңыз. Яғни жауап: "Самат пен Марат - құрдастар".
6. Үш санды өсу ретімен орналастыратын алгоритм құрастырыңыз
Әлеуметтік желілерде бөлісіңіз:
Facebook | VK | WhatsApp | Telegram | Twitter
Қарап көріңіз 👇
Пайдалы сілтемелер:
» Туған күнге 99 тілектер жинағы: өз сөзімен, қысқаша, қарапайым туған күнге тілек
» Абай Құнанбаев барлық өлеңдер жинағын жүктеу, оқу
» Дастархан батасы: дастарханға бата беру, ас қайыру