ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 05.09.2021
Просмотров: 258
Скачиваний: 2
CLS
INPUT «Введите размер массива»; razmer
razmer= razmer-1
DIM Massiv(razmer)
PRINT «Введите числа в массив»
FOR i=0 TO razmer
INPUT Massiv(i)
NEXT i
REM массивті сұрыптау
DO
schetchik2= schetchik
FOR i=0 TO razmer-1
IF Massiv(i)< Massiv(i+1) THEN
buf=Massiv(i)
Massiv(i)= Massiv(i+1)
Massiv(i+1)=buf
schetchik= schetchik+1
END IF
NEXT i
LOOP WHILE schetchik<>schetchik2
FOR i=0 TO razmer
PRINT Massiv(i)
NEXT i
END
Программа жұмысын сипаттау:
Программа басында массив өлшемін анықтап алу керек, себебі жадыда массвике орын бөлу керек. Массив өлшемін razmer айнымалысына жазамыз. Сосын масситі белгілеп, DIM процедурасының көмегімен массив үшін жады көлімен бөлеміз. Құрылған массивке пернетақтадан мәндер енгіземіз. Массивтің бір емес, бірнеше ұяшығы болғандықтан, қайталанылар саны алдын ала белгілі цикл операторларын FOR, TO қолданамыз.
Массивті сұрыптау бірінің ішіне бірі салынған екі цикл көмегімен жүзеге асырылады. Ішкі цикл массивтің көрші элементтерін салыстырып, біріншісі екіншісінен кіші болған жағдайда ғана олардың орындарын ауыстыруға мүмкіндік береді, сонымен қатар schetchik айнымалысының мәнін 1-ге арттырып отырады. Сыртқы цикл тексеру кезінде массивте болған өзгерістерді тексереді (schetchik және schetchik2). Цикл жұмысы массив элементтерін салыстырғанда ешқандай өзгеріс болмаған жағдайда аяқталады.
3. РЕТТЕЛГЕН МАССИВТЕРДЕГІ БИНАРЛЫҚ ІЗДЕУ
Компьютерлерді қолдану тиімділігін қандай да бір тізімде ақпаратты іздеуді жүзеге асыратын есептер көрсетеді. Үлкен сұрыпталған массивтерде іздеу әдістерінің ең тиімдісінің бірі бинарлық іздеу немесе екіше бөлу әдісімен іздеу болып табылады. Бұл әдістің негізінде ізделінетін элементтің жобаланған орналасуы туралы болжамдардың бағытталған тізбегі идеясы жатыр. Мысал ретінде Африкада арыстанды іздеу әзіл есебін келтіруге болады. Алдымен Африканы екіге бөлеміз. Арыстан бір бөлігінде ғана орналасқаны белгілі. Арыстан орналасқан бөлікті тағы да екіге бөлеміз, т.с.с. Африканың ауданы шамамен 30 млн.км2. яғни біз 45 рет ауданды бөлеміз де, 1 м2-тан аспайтын ауданшық аламыз. Бұл ауданда арыстан табу қиын емес.
Осылайша сұрыпталған массивте элементті бинарлық әдіспен іздеу жүзеге асырылады. Маситвің барлық элементтерін қарап шығудың орнына, оны қақ екіге бөліп қарастырамыз. Массив сұрыпталғандықтан, ізделінетін элементті массивтің ортаңғы элементінің мәнімен салыстыра отырып, осындай мәнді элемент массивте барын және ол массивтің қай бөлігінде орналасқанын анықтай аламыз. Содан кейін элемент орналасқан массивтің бөлігін тағы да қақ екіге бөлеміз, осылайша масивтің бөлігі бір ғана ізделінген элементтен құралғанға дейін бөлеміз.
Есеп: Пернетақтадан енгізілген бас орыс әрпін массивтен іздейтін және оның реттік нөмірін шығаратын программа құрыңыз.
QBASIC – те массивтің элементін бинарлық іздеу программасын мысалға келтірейік:
REM бинарлық іздеу
CLS
DIM massiv$(31)
FOR i=0 TO 31
massiv$(i)=CHR$(128+i)
NEXT i
INPUT «Введите заглавную букву русского алфавита для поиска»; a$
nachalo=0
konec=31
middle=konec\2
DO
IF a$<massiv$(middle) THEN
konec=middle
middle=middle\2
ELSE
IF a$>massiv$(middle) THEN
nachalo=middle
middle=(konec+nachalo)\2
END IF
END IF
LOOP WHILE a$<>massiv$(middle)
FOR i=0 TO 31
PRINT “ ”;massiv$(i)
NEXT i
PRINT “Порядковый номер элемента”; middle+1
END
Программа келесідей жұмыс істейді:
32 ұяшықтан тұратын массив белгілейміз (ұяшықтар нөмірленуі 0-ден басталады). Масивті пернетақта кодировкасының мәндерімен толтырамыз, олар кез келген пернені басқанда пернетақтамен генерацияланады және нақты символға сәйкес келеді. Біздің жағдайымызда массивті ASCII кодироваксының 128-159 диапазонында орналасқан орыс алфавитінің бас әріптерімен толтыру керек.
Массивті толтырған соң, ізделінетін символды анықтап, оның мәнін a$ айнымалысына береміз. Массивтің қарастырылатын учаскесінің шекарасын береміз, басында бұл массивтің бірінші және ақырғы мәндері. Ортасын анықтаймыз.
Массивтен элементті іздеуді цикл арқылы орындаймыз. Цикл ізделінетін элемент=массивтің ағымдағы элементі шарты орындалғанша жүреді.
Аяғында массивті және ізделінген элементтің массивтегі реттік нөмірін экранға шығарамыз.
Сабақтың мазмұны:
Бастапқы білім деңгейін тексеруге
Сабақтың басында оқытушы студенттердің бастапқы білім деңгейін тексереді, арнайы тестіні қолданып, 1 қосымшада берілген.
Оқытушымен жұмыс
Оқытушы алгоритмдерді Q BASIC программалау тілін және программаларды компьютермен орындауын көрсету және үйрету. Студенттер оқытушымен программа жазу және Q BASIC жүйесінде файлдармен жұмыс істеу.
Программалар мәтіндерін енгізу және редакциялау.
Өзіндік жұмыс
Есеп: Жоғарыда суреттелген әдістерді қолданып, массивке студенттердің туған жылдарын енгізіп, оларды жасының үлкендігіне қарай сұрыптап, экранға шығаратын программа құрыңыз.
Әдебиеттер:
-
А.Г. Гейн, А.И. Сенокосов, К.В. Тұрмағамбетова “Информатика” 2004 ж
-
Задачи по программированию/ С.А. Абрамов, Г.Г. Гнездилова, Е.Н. Капустина, М.И. Семон – М.: Наука. Гл.ред. физ.-мат. Лит., 1988-224 с.
-
Касаткин В.Н. Информация, алгоритмы, ЭЕМ. – М.: Просвещение, 1991-192с.
Қорытынды білімді тексеруге арналған бақылау сұрақтары
-
Массивтің анықтамасын беріңіз?
-
Массив қалайша суреттеледі?
-
Массив не білдіреді?
-
Массив элементінің орналасуы қалай анықталады?
-
Массивтің бірінші элементінің индексі қандай?
-
Массивті белгілеген кезде дөңгелек жақшадағы цифр не үшін қажет?
-
IF, THEN, ELSE операторлары қандай функция орындайды?
-
FOR, TO, NEXT операторлары қандай функция орындайды?
-
DO, WHILE, LOOP операторлары қандай функция орындайды?
-
Сұрыптау дегеніміз не?