Onluq say sistemindən ikilik say sisteminə keçid

   Nəzərinizə çatdıraq ki, əslində Python proqramlaşdırma dilində verilmiş ədədin onluq say sistemindən ikilik say sisteminə çevrilməsi üçün bin() adlı funksiya nəzərdə tutulmuşdur:

>>> bin(5)  
'0b101'
>>> bin(10) 
'0b1010'
>>>

  Bu dərsimizdə sözügedən çevrilmənin alqoritmini nəzərdən keçirəcəyik. Onluq say sistemindəki ədədi ikilik say sisteminə çevirmək üçün 2-yə bölünmələrdən əldə olunan qalıqları tapmaq lazımdır. Bu zaman öncəki addımda tam bölmədən əldə olunan qismət sonrakı addımda bölünən rolunda çıxış edir. Bölmə əməliyyatı bölünən ədəd sıfıra çevrilənə qədər davam etdirilir. Alınmış qalıqları sondan əvvələ doğru ardıcıllıqla yazmaqla  onluq ədədin ikilik say sistemindəki yazılışını əldə edirik.

   Gəlin 10-luq say sistemindəki 8 ədədini 2-lik say sisteminə çevirək:

  • 8 / 2 = 4, qalıq 0
  • 4 / 2 = 2, qalıq 0
  • 2 / 2 = 1, qalıq 0
  • 1 / 2 = 0, qalıq 1
  • 0 – bölmənin sonu
  • Nəticə: 10002

   Alqoritmi proqramlaşdırma dilində tərtib edərkən alınan qalıqları bir araya toplamaq üçün sətir tipli dəyişəndən istifadə edə bilərsiniz.

n = int(input())
b = ''

while n > 0:
    b = str(n % 2) + b
    n = n // 2
 
print(b)

Proqram icrasının nümunələri:

8
1000
11
1011

Binar axtarış alqoritmi

  Proqramlaşdırmada verilmiş bir qiymətin massiv daxilində olub-olmadığını, varsa neçənci mövqedə yer aldığını müəyyən etmək üçün bir sıra axtarış alqoritmlərindən istifadə olunur. Binar (ikili) axtarış belə alqoritmlərdən biridir, və o sıralanmış massivlərdə axtarış aparmaq üçün nəzərdə tutulmuşdur.

Alqoritmin izahı

  1. Əvvəlcə massivin orta elementi tapılır. Bunun üçün ilk və son elementlərin indeksləri dəyişənlərə mənsimsədilir, orda elementin indeksi isə hesablanır.
  2. Axtarılan qiymət orta elementin qiyməti ilə müqayisə edilir. Əgər axtarılan qiymət orta elementin qiymətindən böyükdürsə, aşağı sərhəd orta elementin bir element sağına sürüşdürülür və sonrakı axtarış massivin sağ tərəfində aparılır. Əgər axtarılan qiymət orta elementin qiymətindən kiçikdirsə, yuxarı sərhəd orta elementin bir element soluna sürüşdürülür və sonrakı axtarış massivin sol tərəfində aparılır. Əgər bərabərlik qeydə alınarsa, axtarış dayandırılır.
  3. Massivin orta elementi yenidən, amma bu dəfə seçilmiş yarı hissədə tapılır. Yuxarıdakı alqoritm cari yarı hissə üçün təkrarlanır.

Alqoritmin kodu

   Proqramda massivin elementləri təsadüfi qaydada verilmişdir. Bunun üçün random modulundan randint() funksiyası çağırılmışdır. Lakin istəsəniz massivin elementlərini klaviaturdan da daxil edə bilərsiniz. Massiv meydana gətirildikdən sonra sort() funksiyası vasitəsilə elementlər azdan çoxa doğru sıralanır.

from random import randint

mas = []
for i in range(15):
    mas.append(randint(1, 50))
mas.sort()
print(mas)
 
value = int(input())
mid = len(mas) // 2
low = 0
high = len(mas) - 1
 
while mas[mid] != value and low <= high:
    if value > mas[mid]:
        low = mid + 1
    else:
        high = mid - 1
    mid = (low + high) // 2
 
if low > high:
    print("Qiymət tapılmadı")
else:
    print("ID =", mid)

Proqram icrasının nümunələri:

[6, 9, 13, 16, 22, 23, 24, 28, 28, 29, 32, 34, 34, 35, 44]
48
Qiymət tapılmadı
[3, 11, 17, 20, 31, 33, 38, 38, 39, 42, 43, 44, 44, 46, 50]
20
ID = 3

 

Üçbucağın sahəsi (Heron düsturu)

   Aşağıdakı proqram üçbucağın sahəsini Heron düsturu ilə tapmaq üçün tərtib olunmuşdur:

import math 

a=float(input('a-nı daxil edin: ')) 
b=float(input('b-ni daxil edin: ')) 
c=float(input('c-ni daxil edin: ')) 
s=(a+b+c)/2
area=math.sqrt(s*(s-a)*(s-b)*(s-c)) 
print('Üçbucağın sahəsi: {:.2f}'.format(area))

   Biz burada sqrt() funksiyasından istifadə etmək üçün standard modullardan olan math modulunu daxil etməliyik.