Назар аударыңыз. Бұл материалды сайт қолданушысы жариялаған. Егер материал сіздің авторлық құқығыңызды бұзса, осында жазыңыз. Біз ең жылдам уақытта материалды сайттан өшіреміз
Жақын арада сайт әкімшілігі сізбен хабарласады
Бонусты жинап картаңызға (kaspi Gold, Halyk bank) шығарып аласыз
9-сынып аудандық олимпиадаға дайсындық <Python> есептер жауаптары мен
Дипломдар мен сертификаттарды алып үлгеріңіз!
Материалдың толық нұсқасын
жүктеп алып көруге болады
«PYTHOM»
9 сыныптарға арналған
«Аудандық Кезең» Ге Дайындық
A. Бит++
сынақ уақытының шегі
1 секунд
бір сынақ үшін жад шегі
256 мегабайт
Битландтағы классикалық бағдарламалау тілі - Bit++. Бұл тіл өте ерекше және күрделі!
Bit++ тілінің ерекшелігі оның дәл бір айнымалысы бар, ол x деп аталады . Бұл тілде екі операция да бар:
-
++ операциясы x айнымалысында сақталған мәнді 1-ге арттырады.
-
-- операциясы x айнымалысында сақталған мәнді 1-ге азайтады.
Bit++ тіліндегі сөйлем – дәл бір амалдан және дәл бір x айнымалысынан тұратын тізбек . Сөйлем бос орынсыз жазылады, яғни ол тек келесі таңбаларды қамтуы мүмкін: “ + ”, “ - ”, “ X ”. Сөйлемді орындау сөйлемде қамтылған амалды орындау дегенді білдіреді.
Bit++ бағдарламасы - бұл әрқайсысы орындалуы керек операторлар тізбегі. Бағдарламаны орындау оның барлық ұсыныстарын орындау дегенді білдіреді.
Сізге Bit++ тілінде бағдарлама беріледі. Бағдарлама орындалмас бұрын х айнымалысы 0 мәнін сақтайды. Бағдарламаны орындаңыз және бағдарлама орындалғаннан кейін х айнымалысында сақталатын мәнді басып шығарыңыз .
Деректерді енгізу
Бірінші жолда бір бүтін сан бар n (1 ≤ n ≤ 150) — бағдарламадағы сөйлемдер саны. Келесі n жолдың әрқайсысында сөйлем бар. Әрбір сөйлем дәл бір оператордан ( ++ немесе -- ) және дәл бір x айнымалысынан (« X » арқылы белгіленеді ) тұрады. Осылайша, бос ұсыныстар жоқ. Операция мен айнымалы кез келген ретпен жазылуы мүмкін.
Басып шығару
Бір бүтін санды басып шығару – бағдарлама орындалғаннан кейін х айнымалысында сақталатын мән .
Мысалдар
Деректерді енгізу
Көшіру
1
++X
Басып шығару
Көшіру
1
Деректерді енгізу
Көшіру
2
X++
--X
Басып шығару
Көшіру
0
B. Солдат және банандар
сынақ уақытының шегі
1 секунд
бір сынақ үшін жад шегі
256 мегабайт
Солдат дүкеннен банан сатып алғысы келеді. Ол бірінші банан үшін k доллар, екіншісі үшін 2 мың доллар және т.б. төлеуі керек (басқаша айтқанда, i -ші банан үшін ол i · k доллар төлеуі керек ).
Оның n доллары бар . Ол банан сатып алу үшін солдаттан қанша доллар қарыз алуы керек ?
Деректерді енгізу
Бірінші жолда k , n , w ( 1 ≤ k , w ≤ 1000 , 0 ≤ n ≤ 10 9 ) үш оң бүтін сандар, бірінші бананның құны, сарбазда бар доллардың бастапқы саны және ол банандар саны бар. сатып алғысы келеді.
Басып шығару
Жалғыз бүтін санды басып шығарыңыз — солдаттың әріптесінен қарыз алуы керек доллар саны. Егер сізге қарызға ақша қажет болмаса, 0 шығарыңыз .
Мысалдар
Деректерді енгізу
Көшіру
3 17 4
Басып шығару
Көшіру
13
C. Команда
сынақ уақытының шегі
2 секунд
бір сынақ үшін жад шегі
256 мегабайт
Бір күні үш ең жақын достар Петя, Вася және Тоня команда құрып, бағдарламалау жарысына қатысуға шешім қабылдады. Әдетте, бағдарламалау жарыстары қатысушыларды бірнеше мәселелермен таныстырады. Достар басталмай жатып-ақ, ең болмағанда екеуі ойлап тауып, шешіміне сенімді болса, мәселені жүзеге асырамыз, әйтпесе жігіттер бұл мәселенің шешімін жазбайды деп келіскен.
Бұл байқауда ұйымдастырушылар n мәселені ұсынды. Әрбір мәселе бойынша достардың қайсысы оны ойлап тапқаны және оны шешуге сенімді екені белгілі. Достарыңызға шешімін жазатын есептердің санын табуға көмектесіңіз.
Деректерді енгізу
Енгізудің бірінші жолында бір бүтін n ( 1 ≤ n ≤ 1000 ) бар — жарыстағы есептер саны. Әрі қарай, n жолдар әрқайсысы 0 немесе 1- ге тең үш бүтін саннан тұрады . Егер жолдағы бірінші сан 1 болса , Петя бұл есептің шешіміне сенімді, әйтпесе шешіміне сенімді емес. Екінші сан Васяның пікірін, ал үшіншісі Тонидің пікірін білдіреді. Жолдардағы сандар бос орындармен бөлінген.
Басып шығару
Бір бүтін санды басып шығарыңыз — достар жарыста орындайтын тапсырмалар саны.
Мысалдар
Деректерді енгізу
Көшіру
3
1 1 0
1 1 1
1 0 0
Басып шығару
Көшіру
2
Деректерді енгізу
Көшіру
2
1 0 0
0 1 1
Басып шығару
Көшіру
1
Ескерту
Бірінші мысалда Петя мен Вася бірінші есептің шешімін біледі, ал екіншісінің шешімін үшеуі де біледі. Бұл олардың осы мәселелердің шешімдерін жазатынын білдіреді. Үшінші мәселенің шешімін тек Петя ғана біледі, бірақ бұл жеткіліксіз, достары оны жазбайды.
Екінші мысалда достар тек екінші мәселені ғана орындайды, өйткені Вася мен Тоня оның шешімін біледі.
A. Бит++
сынақ уақытының шегі
1 секунд
бір сынақ үшін жад шегі
256 мегабайт
n=int(input())
t=0
for i in range(n):
a=input()
if a=='++X' or a=='X++':
t=t+1
else:
t=t-1
print(t)
-
Алдымен n деген бүтін сан енгізіледі. Бұл кодтағы операциялар санын білдіреді.
-
t айнымалысы бастапқыда 0 деп қойылады.
-
for циклінде n рет қайталанады, және әр қайталау кезінде a деген айнымалыға қолданушы енгізетін сөздік мән беріледі.
-
Егер a мәні "++X" немесе "X++" болса, онда t мәні 1-ге артады.
-
Басқа жағдайда (яғни, a "--X" немесе "X--" болса), t мәні 1-ге кемиді.
-
Барлық қайталаулар аяқталған соң, t айнымалысының мәні экранға шығарылады.
Қысқаша айтқанда, бұл программа ++X немесе X++ операцияларының жалпы санын 1 қосу арқылы, ал --X немесе X-- операцияларын 1 азайту арқылы санау үшін жазылған.
B. Солдат және банандар
сынақ уақытының шегі
1 секунд
бір сынақ үшін жад шегі
256 мегабайт
k, n, w = map(int, input().split())
t = k * w * (w + 1) // 2
a = max(0, t - n)
print(a)
Бұл код сарбаздың банан сатып алу үшін қанша қарыз алу керектігін есептейді. Міне, оның қалай жұмыс істейтіні:
-
k, n, және w мәндерін оқиды:
-
k — бірінші бананның бағасы.
-
n — сарбаздың бастапқыдағы ақшасы.
-
w — сатып алғысы келетін банандар саны.
-
-
t айнымалысы арқылы банандардың жалпы құнын есептейді. Мұндағы формула k * w * (w + 1) // 2 — арифметикалық прогрессияның формуласы:
t=k×w×(w+1)2t = k \times \frac{w \times (w + 1)}{2}t=k×2w×(w+1)
-
a айнымалысы арқылы қарызға алынатын соманы есептейді. Егер сарбазда бар ақша жеткілікті болса (t - n теріс болса), онда max(0, t - n) нөл шығарады. Егер ақша жеткіліксіз болса, қарыз ретінде қажет соманы басып шығарады.
Мысал:
Енгізу:
Копировать код
3 17 4
Кодтың орындалуы:
-
t = 30 (барлық банандардың жалпы құны).
-
a = 13 (жетіспейтін сома немесе қарыз).
Шығару:
Копировать код
13
Бұл код, яғни, сарбаз банандарды сатып алу үшін қанша қарыз алу керектігін есептейді.
4o
C. Команда
сынақ уақытының шегі
2 секунд
бір сынақ үшін жад шегі
256 мегабайт
n = int(input())
t = 0
for _ in range(n):
m, p, a = map(int, input().split())
if m + p + a >= 2:
t += 1
print(t)
Бұл код берілген есеп бойынша жарыстағы тапсырмалардың қаншасы шешілетінін есептейді. Міне, оның қалай жұмыс істейтіні:
-
Алдымен n мәнін оқиды, ол тапсырмалар саны.
-
t айнымалысы 0-мен басталады және шешілетін тапсырмалар санын есептеу үшін қолданылады.
-
for циклінде n рет қайталап, әр тапсырма үшін үш бүтін санды (m, p, және a) оқиды. Әр сан бір адамның тапсырма шешіміне сенімділігін білдіреді:
-
Егер осы үш санның қосындысы 2 немесе одан көп болса (m + p + a >= 2), онда бұл тапсырманы шешуге болады деп есептеліп, t мәні 1-ге артады.
-
-
Цикл аяқталғаннан кейін t айнымалысының мәні, яғни шешілетін тапсырмалар саны экранға шығарылады.
Мысал:
Енгізу:
Копировать код
3
1 1 0
1 1 1
1 0 0
Кодтың орындалуы:
-
Бірінші жолда 1 + 1 + 0 = 2, сондықтан t мәні 1-ге артады.
-
Екінші жолда 1 + 1 + 1 = 3, сондықтан t тағы 1-ге артады.
-
Үшінші жолда 1 + 0 + 0 = 1, мұнда сенімді адамдар саны жеткіліксіз, t өзгермейді.
Шығару:
Копировать код
2
Бұл код тапсырмаларды кімдер орындайтынын анықтап, қажет болса, жалпы қанша тапсырма шешілетінін көрсетеді.