Инжиниринг және ақпараттық технологиялар факультеті



Дата27.09.2023
өлшемі0,56 Mb.
#110676
Байланысты:
Алг лаб proc


АЛМАТЫ ТЕХНОЛОГИЯЛЫҚ УНИВЕРСИТЕТІ
ИНЖИНИРИНГ ЖӘНЕ АҚПАРАТТЫҚ ТЕХНОЛОГИЯЛАР ФАКУЛЬТЕТІ
АҚПАРАТТЫҚ ТЕХНОЛОГИЯЛАР КАФЕДРАСЫ
СРСП

Орындаған студент:
Батырхан Гулмира
ВТиПО 22-11 тобы
Қабылдаған: лектор
Молдакалыкова А.Ж.



Алматы 2023
Proc14. Оң жақ циклдік ауысуды орындайтын ShiftRight3(A, B, C) процедурасын сипаттаңыз: а мәні B-ге, в мәні с-ге, с мәні А-ға (A, B, C-бір уақытта кіріс және шығыс болатын нақты параметрлер). Осы процедураның көмегімен үш саннан тұратын екі жиынтық үшін оң жақ циклдік ауысуды орындаңыз: (A1, B1, C1) және (A2, B2, C2)

Бұл код үш кіріс аргументін қабылдайтын,оларды өзгертетін және жаңа мәндері бар тізімді қайтаратын ShiftRight 3(A,B, C) функциясын анықтайды. Функция алдымен A және B мәндерін, содан кейін A және C мәндерін ауыстырады және соңында A, B және C бар тізімді жаңа ретпен қайтарады.Содан кейін код random функциясы арқылы -10-дан 10-ға дейінгі диапазонда үш кездейсоқ A, B және C бүтін сандарын жасайды. Ол жолды пішімдеу арқылы A, B және C бастапқы мәндерін шығарады, A, B және C мәндерімен ShiftRight3() функциясын шақырады және жаңа A, B және C мәндерін тағайындайды.Код бұл процесті кездейсоқ мәндердің екінші жиынтығы үшін қайталайды.
Proc24. Логикалық типтегі Even(K) функциясын сипаттаңыз, егер бүтін k параметрі жұп болса, TRUE мәнін қайтарады, әйтпесе FALSE. Оның көмегімен 10 бүтін сандар жиынтығындағы жұп сандардың санын табыңыз.

Бұл код K бүтін санын кіріс ретінде қабылдайтын Even(K) функциясын анықтайды, K жұп екенін тексереді (яғни 2-ге бөлінеді) және егер k жұп болса, ШЫН мәнін қайтарады, әйтпесе жалған.Содан кейін код s айнымалысын 0 мәнімен инициализациялайды және random функциясы арқылы 1-ден 10-ға дейінгі диапазонда 10 кездейсоқ бүтін сандарды құру үшін for циклін қолданады.. Әрбір құрылған бүтін сан үшін X коды Even () функциясын шақырады және нәтижені (1 немесе 0) қосады s. Int () функциясы Even () функциясы қайтарған логикалық мәнді 1 немесе 0-ге тең бүтін мәнге айналдыру үшін қолданылады.Соңында, код жасалған сандарды және жасалған жұп сандардың жалпы санын шығарады.Бұл мысалда бағдарлама 1-ден 10-ға дейінгі (қоса алғанда) 10 кездейсоқ бүтін сандарды жасайды және оларды нүктелі үтір арқылы шығарады. Содан кейін ол 4-ке тең жұп сандардың санын есептейді (бұл жағдайда 8, 8, 2 және 2). "Жұп сандар саны: 4" шығыс хабары бағдарламаның жасалған жұп сандар санын сәтті есептегенін көрсетеді.
Min max 14. B саны (> 0) және он санның жиынтығы берілген. B-ден үлкен жиын элементтерінің минимумын, сондай-ақ оның нөмірін шығарыңыз. Егер B-ден Үлкен сандар болмаса, онда 0-ді екі рет шығарыңыз.

Бұл код алдымен 1-ден 15-ке дейінгі (қоса алғанда) кездейсоқ N бүтін санды жасайды және оны 10-ға орнатады. Содан кейін ол 5-тен 13-ке дейінгі (қоса алғанда) басқа кездейсоқ в бүтін санын жасайды және консольге N және B екеуін де шығарады.Әрі қарай, код тізімді түсінуді қолдана отырып, 1-ден 10-ға дейінгі (қоса алғанда) кездейсоқ бүтін мәндері бар L1 тізімін жұмысқа дайындайды. Содан кейін ол L1 бастапқы тізімін басып шығарады.Содан кейін код жаңа L2 тізімін жасайды, ол тек B-ден үлкен L1 элементтерін қамтитын басқа тізім түсінігін қолданады, содан кейін ол L2 өңделген тізімін басып шығарады.Егер L2 бос болса, яғни в-дан үлкен элементтер жоқ болса, бағдарлама "В-дан үлкен 00, жоқ"хабарын шығарады. Әйтпесе, ол L2-де минималды мәнді табады, оны және оның индексін бастапқы тізімде басып шығарады L1.In бұл мысалда бағдарлама 1-ден 10-ға дейінгі 10 кездейсоқ бүтін сандардың тізімін жасайды және B-ді 10-ға тең етеді. Содан кейін ол 10-ға тең екі элементті қамтитын L1 бастапқы тізімін шығарады.Содан кейін Бағдарлама жаңа L2 тізімін жасайды, онда тек 10-нан асатын L1 элементтері бар, бұл B мәні.Соңында, бағдарлама L2-де минималды мәнді табады (ол да 10-ға тең) және оны бастапқы L1 тізіміндегі индексімен бірге басып шығарады (ол 8-ге тең).

Min max 24. N бүтін сан (> 1) және N сандар жиынтығы берілген. Берілген жиыннан көршілес екі санның максималды қосындысын табыңыз.



Бұл код N ұзындығының бүтін сандарының кездейсоқ тізімін жасайды, содан кейін тізімдегі екі іргелес элементтің максималды қосындысын табады. Максималды соманы табудың екі әдісі бар:
Тізімдегі іргелес элементтердің жұптарын санау үшін zip функциясын пайдалану.
Тізімдегі әрбір элементті сұрыптау және соманы табу үшін оны келесі элементке қосу үшін for циклін пайдалану.
Екі әдіс бірдей нәтижеге қол жеткізеді және Тізімдегі іргелес элементтердің максималды сомасын қайтарады.
Array 14. Алдымен оның элементтерін жұп сандармен (сандардың өсу ретімен), содан кейін тақ сандары бар элементтерді (сонымен қатар сандардың өсу ретімен)шығарыңыз:A2, A4, A6, . . ., A1, A3, A5, . . . .Шартты операторды қолдануға болмайды.

Бұл код N ұзындығының бүтін сандарының кездейсоқ тізімін жасайды, бастапқы тізімді басып шығарады, содан кейін жұп индекстері бар тізім элементтерін (0 индексінен бастап) және тақ индекстері бар тізім элементтерін (1 индексінен бастап) басып шығарады.
Код қалай жұмыс істейді:
N айнымалысына 10-нан 20-ға дейінгі кездейсоқ бүтін сан беріледі.
L1 тізімі тізімді түсінуді қолдана отырып, 1-ден 10-ға дейінгі N кездейсоқ бүтін сандардың тізімі ретінде жасалады.
Бастапқы тізім print () функциясы және L1 тізімі арқылы басып шығарылады.
Жұп индекстері бар тізім элементтері кесілген және басып шығару () функциясы арқылы басып шығарылады. L1 синтаксисі[::2] бірінші элементтен бастап тізімнің әрбір екінші элементін алуды білдіреді (0 индексімен). Бұл [L1[0], L1 [2], L1 [4],...].
Тіпті индекстері бар тізім элементтері де тізімді түсіну арқылы басып шығарылады. Enumerate () функциясы индекстер мен L1 тізім элементтерін санау үшін қолданылады, ал if I%2 == 0 операторы тек жұп индекстері бар элементтерді таңдау үшін қолданылады. Таңдалған элементтер append () әдісі арқылы L2 тізіміне қосылады.
Тақ индекстері бар тізім элементтері кесілген және басып шығару () функциясы арқылы басып шығарылады. L1 синтаксисі [1:: 2] екінші элементтен бастап тізімнің әрбір екінші элементін алуды білдіреді (индексі 1). Бұл [L1[1], L1 [3], L1 [5],...].
Тақ индекстері бар тізім элементтері де тізімді түсіну арқылы басып шығарылады. Enumerate () функциясы индекстер мен L1 тізім элементтерін санау үшін қолданылады, ал if I%2 == 1 операторы тек тақ индекстері бар элементтерді таңдау үшін қолданылады. Таңдалған элементтер append () әдісі арқылы L3 тізіміне қосылады.Тұтастай алғанда, бұл код Python-да тізімді кесу және түсіну арқылы жұп және тақ индекстері бар тізім элементтерін қалай таңдауға және басып шығаруға болатындығын көрсетеді.
Array 24. Бірдей сандарды қамтымайтын n өлшемді бүтін массив берілген. Оның элементтері арифметикалық прогрессияны құрайтынын тексеріңіз Егер олар пайда болса, онда прогрессия айырмашылығын шығарыңыз, егер жоқ болса — 0 шығарыңыз.

Бұл код N ұзындығының арифметикалық прогрессиясын бірінші a мүшесімен және жалпы d айырмашылығымен жасайды, содан кейін прогрессиядағы көрші мүшелер арасындағы минималды және максималды айырмашылықтарды табады. Содан кейін ол минималды және максималды айырмашылықтар арасындағы айырмашылықтың нөлге тең екендігін тексереді, бұл прогрессияның рұқсат етілген арифметикалық прогрессия екенін көрсетеді, егер солай болса, жалпы айырмашылықты шығарады.
Міне, кодтың бөлінуі:
N, A және D үшін кездейсоқ мәндерді жасаңыз.
Тізімді түсіну арқылы арифметикалық прогрессияны қамтитын a тізімін жасаңыз.
Бос d тізімін жасаңыз.
А элементтері бойынша циклды соңғы элементке дейін орындаңыз және D-ге әр элемент пен келесі элемент арасындағы айырмашылықты қосыңыз.
D-де минималды және максималды мәндерді табыңыз.
Егер минималды және максималды мәндер арасындағы айырмашылық нөлге тең болса, жалпы айырмашылықты шығарыңыз; әйтпесе "0?".
Бұл кодтың бір ықтимал проблемасы-бұл прогрессия бос емес деп болжайды, бұл N, A және D үшін кездейсоқ мәндерді тудыратын кодпен кепілдендірілмейді, арифметикалық прогрессияны жасамас бұрын N кем дегенде 2 екеніне көз жеткізу үшін тексеруді қосу жақсы идея болар еді.

Matrix 14. A1,1 элементінен бастап оның элементтерін келесідей шығарыңыз ("бұрыштар"): бірінші бағанның барлық элементтері; бірінші (қазірдің өзінде шығарылған) элементтен басқа соңғы жолдың элементтері; екінші бағанның қалған элементтері; алдыңғы жолдың қалған элементтері және т. б.; соңғысы A1,M элементін шығарады


import random
import numpy
#M = random.randrange(2,10)
M = 6
print("M = ",M)
a = numpy.zeros((M, M))
#a.astype(int)
k = 0
for i in range(M):
for j in range(M-i):
k += 1
a[j][i] = k
k += M-i-1
k = M+1
for j in range(1,M):
for i in range(j,M):
a[M-j][i] = k
k += 1
k += M-j
print(a)
for i in range(M):
for j in range(M-i):
print(a[j][i], end=" ")
for j in range(i+1,M):
print(a[M-i-1][j], end=" ")

M = 6
[[ 1. 12. 21. 28. 33. 36.]


[ 2. 13. 22. 29. 34. 35.]
[ 3. 14. 23. 30. 31. 32.]
[ 4. 15. 24. 25. 26. 27.]
[ 5. 16. 17. 18. 19. 20.]
[ 6. 7. 8. 9. 10. 11.]]
>
Бұл код белгілі бір шаблонмен M X M Өлшем матрицасын жасайды және элементтердің мәндерін белгілі бір ретпен шығарады. Код қалай жұмыс істейді:
M мәні кездейсоқ орнатылады (егер кездейсоқ импортталса) немесе анық (егер numpy импортталса).
NumPy көмегімен M X M өлшеміндегі нөлдік толтырылған матрица жасалады.zeros().
K айнымалысы 0 мәнімен инициализацияланады. Бұл айнымалы матрицаның әрбір элементіне тағайындалатын мәнді бақылайды.
Матрицаны мәндермен толтыру үшін екі кірістірілген цикл қолданылады. Сыртқы цикл матрица жолдары бойынша итерацияны орындайды, ал ішкі цикл ағымдағы жолдағы матрица бағандары бойынша итерацияны орындайды.
Әр жолдың ішінде мәндер k+1-ден басталып, әр қадамда 1-ге көбейту ретімен тағайындалады. Ағымдағы жолдағы бағандар саны әр қадамда 1-ге азаяды.
Ішкі цикл аяқталғаннан кейін k мәні жаңартылады және оның ағымдағы мәні мен ағымдағы жолдағы бағандар санының қосындысына айналады минус 1. Бұл келесі жолдың дұрыс мәннен басталуын қамтамасыз етеді.
Кірістірілген циклдердің екінші жиынтығы матрицаның қалған элементтерін соңғы жолдан және соңғы бағаннан бастап кему ретімен толтыру үшін қолданылады.
Әр жолдың ішінде мәндер k+1-ден басталып, әр қадамда 1-ге көбейту ретімен тағайындалады. Ағымдағы жолдағы бағандар саны әр қадамда 1-ге артады.
Ішкі цикл аяқталғаннан кейін k мәні жаңартылады және оның ағымдағы мәні мен ағымдағы жолдағы бағандар санының қосындысына айналады минус 1. Бұл келесі жолдың дұрыс мәннен басталуын қамтамасыз етеді.
Алынған матрица print (a) пәрмені арқылы басып шығарылады.
Соңында цикл элементтердің мәндерін белгілі бір ретпен шығару үшін қолданылады. Цикл алдымен матрица жолдары бойынша диагональға дейін (қоса алғанда), содан кейін диагональдың оң жағындағы матрица бағандары бойынша итерацияны орындайды (тек). Осы диапазондағы әрбір элемент үшін мән көрсетіледі. Содан кейін цикл диагональдың оң жағындағы матрица бағандары бойынша қайталанады (алып тастау), содан кейін диагональдың астындағы матрица жолдары бойынша (Алып тастау). Осы диапазондағы әрбір элемент үшін мән көрсетіледі.

Matrix4. M, N бүтін оң сандар және N сандар жиынтығы берілген. M × N Өлшем матрицасын құрыңыз, оның әр жолында бастапқы жиынтықтағы барлық сандар бар (сол ретпен).



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

String 14. Жол берілген. Ондағы бас әріптердің санын есептеңіз латын әріптері.


import random
import string
ru_letters = u"абвгдеёзийклмнопрстуфхъыьэАБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЬЭ"
en_letters = u"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
tj_letters = u"ғӣқӯҳҷҒӢҚӮҲҶ"
en_Upper = u"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
N = random.randrange(1,10)
s_ru = random.sample(ru_letters, N)
print("RU:",s_ru)
N = random.randrange(1,10)
s_en = random.sample(en_letters, N)
print("EN:",s_en)
N = random.randrange(1,10)
s_tj = random.sample(tj_letters, N)
print("TJ:",s_tj)
N = random.randrange(1,10)
s_digit = random.sample(string.digits, N)
print("Digits:",s_digit)
s = s_ru + s_en + s_tj + s_digit + [' ',' ']
#print("Random:",s)
random.shuffle(s)
s = "".join(s)
print(s)
k = 0
for c in s:
if c in en_Upper:
k += 1
print("Number of Upper Latin letters:",k)

RU: ['И', 'х', 'ъ', 'г', 'Н']


EN: ['a', 'K', 'P']
TJ: ['Ҷ']
Digits: ['9', '2', '0', '5', '1', '8', '3', '7', '4']
ИP4Н73гKaъ12 х8 Ҷ095
Number of Upper Latin letters: 2
>

Код кирилл, латын, тәжік таңбалары мен сандары бар кездейсоқ жолды жасайды. Содан кейін ол жолды араластырады және аралас жолдағы бас латын әріптерінің санын есептейді.


String 24. Бүтін оң санның екілік жазбасын бейнелейтін жол берілген. Сол санның ондық жазбасын бейнелейтін жолды көрсетіңіз.



Бұл код ұзындығы 1-ден 10-ға дейін (қоса алғанда) 5 кездейсоқ екілік жол жасайды және оларды екі түрлі әдісті қолдана отырып, Ондық бүтін сандарға айналдырады. Бірінші әдіс кірістірілген Int() функциясын қолданады, екінші аргументі 2-ге тең, бұл жолдың екілік форматта екенін көрсетеді. Екінші әдіс түрлендіруді қолмен орындайды, жолды қайталайды және әр екілік цифрдың ондық мәнін есептейді.Әрбір екілік жол үшін шығыста екілік жолдың өзі көрсетіледі, содан кейін Int () функциясы арқылы есептелген ондық мән, содан кейін қолмен есептелген ондық мән көрсетіледі. Бұл екі әдіс олардың баламалы екенін көрсететін бірдей нәтиже береді.

Достарыңызбен бөлісу:




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет