Муодилаи хаттӣ
Аз алгебра: муодилаи хаттӣ ба намуди оварда мешавад (, – коэффитсиентҳо, – номаълум). Агар , реша Барои ин кор китобхонаи иловагӣ лозим нест: барномаи Python кифоя аст.
1 соат
Аз алгебра: муодилаи хаттӣ ба намуди оварда мешавад (, – коэффитсиентҳо, – номаълум). Агар , реша Барои ин кор китобхонаи иловагӣ лозим нест: барномаи Python кифоя аст.
Мисоли 1. . Ҳалли аналитикӣ: , , . Санҷиш: , .
Ҳалли барномавӣ – ҷустуҷӯ: ҳар як -ро дар диапазон месанҷем.
Натиҷа:
Барои = 0, 1, …, 9 шарти 3 * x == x + 8 санҷида мешавад. Танҳо барои ҳақ аст; он гоҳ реша ва санҷиш чоп мешавад.
Мисоли 2. дар диапазони .
Натиҷа:
, , .
Мисоли 3. Решаи дар рӯйхати додашуда ҳаст ё не? Бо root = None оғоз мекунем; агар бо for реша ёфта шавад, root-ро иваз мекунем.
Натиҷа:
Мисоли 4. .
Натиҷа:
Дар ин ҷо ададҳои ҳақиқӣ ҳастанд, вале барои ҳисоб дақиқ мешавад: .
Усули ҷустуҷӯ танҳо як роҳ аст. Ду маҳдудият:
== барои ададҳои ҳақиқӣ эътимоднок нест.Масалан, решаи дорад, вале:
Натиҷа:
Ҳисоб медиҳад (ададҳои ҳақиқӣ дар компютер дуӣ нигоҳ дошта мешаванд) ва == 4 ноҳақ мемонад. Барои ҳамин ададҳои ҳақиқиро бо abs(a - b) < 1e-9 муқоиса мекунанд: «фарқ хеле хурд аст».
Натиҷа:
Агар реша бутун набошад, формула беҳтар аст:
Натиҷа:
1. Ҳал кардани муодилаи хаттӣ чӣ маъно дорад?
2. Зимни барномасозӣ дар Python кадом операторҳо дар ҳалли муодилаҳои хаттӣ истифода мешаванд?
3. Бо кадом мақсад дар ҳалли муодилаҳои хаттӣ аз оператори шартӣ истифода мебаранд?
4. Вазифаи оператори даврӣ дар раванди ҳалли муодилаҳои хаттӣ аз чӣ иборат аст?
5. range(-100, 100) чиро ифода мекунад?
6. Чӣ тавр муайян кардан мумкин аст, ки решаи муодилаи хаттӣ дар рӯйхати ададии додашуда ҳаст?
7. Бо таҳлили барномаҳои овардашуда усулҳои барномасозии муодилаҳои хаттиро фаҳмонед.
8. Бо усули барномасозӣ муодилаҳои зеринро ҳал кунед:
а) ;
б) ;
в) .
Нишондод: муодилаи б) ва в) решаи бутун надоранд – ҷустуҷӯи бутун онҳоро намеёбад. Бо формулаи ҳал кунед ва санҷед.
for x in range(a, b) + if – танҳо бутунҳо дар диапазон; реша берун аз он ёфт намешавад.abs(a - b) < 1e-9 муқоиса кунед, на бо ==.== муқоиса намекунанд.for x in range(-3, 3):?= ва ==?= – супоришдиҳӣ; == – санҷиши баробарӣ. 3. .Ҷустуҷӯ (давр + if) – барои санҷиш ва вақте реша бояд аз рӯйхат бошад. Формула – ҳамеша ва дақиқ. Дар ин ҷо ададҳо мустақиман ба формула мегузаранд: .
abs(…) < 1e-9 нависед. Агар == гузоред, санҷиш муваффақ намешавад – чаро?Кадомашро аллакай метавонед ва кадомашро боз машқ мекунед?
Нависед: дар кадом ҳолат формуларо афзалтар мешуморед?
Чӣ чоп мешавад: print(0.1 + 0.2 == 0.3)?
Чаро ҷустуҷӯи бутун дар range(-100, 100) муодилаи -ро ҳал намекунад?
x = 4
Санҷиш: 12 = 12
x = -7
x = 6
Реша дар рӯйхат мавҷуд аст.
x = 45
4.000000000000001
False
True
26
k = 1
b = 0.6
x = -0.6
for x in range(0, 10):
if 3 * x == x + 8:
print('x =', x)
print('Санҷиш:', 3 * x, '=', x + 8)
for x in range(-100, 100):
if x - 25 == 5 * x + 3:
print('x =', x)
ruyhat = [2, 5, 6, 7, 9, 10, 12, 15, 18, 24]
root = None
for x in ruyhat:
if 5 * x - 3 == x + 21:
root = x
if root is None:
print('Реша дар рӯйхат нест.')
else:
print('x =', root)
print('Реша дар рӯйхат мавҷуд аст.')
for x in range(-100, 100):
if x / 2 + (3 - x) / 4 == 12:
print('x =', x)
x = 26
print((x - 1) / 3 - x / 6)
print((x - 1) / 3 - x / 6 == 4)
print(abs((x - 1) / 3 - x / 6 - 4) < 1e-9)
for x in range(-100, 100):
if abs((x - 1) / 3 - x / 6 - 4) < 1e-9:
print(x)
k = float(input('k = '))
b = float(input('b = '))
print('x =', -b / k)
for x in range(0, 10):
if 2 * x == 20:
print(x)
for x in range(0, 20):
if 2 * x + 3 == x + 11:
print(x)