Bonus

   COVID-19 pandemiyası dövlət və özəl şirkətlərin də işini çətinləşdirmişdi. Böyük krizisə baxmayaraq MilliByte kompaniyası uğurlu fəaliyyət göstərərək xalis mənfəət və gəlirlərində artıma nail olmuşdu. Məhz buna görə də şirkətin rəhbəri bu uğurda rolu olan əməkdaşlarını mükafatlandırmaq qərarına gəlmişdi. Ay sonunda işçilər əmək haqqlarına əlavə olaraq bonus da alacaqdılar.

Working Notepad Bonus Salary Growth Success Promotion Concept

   Bu haqda elanlar lövhəsində məlumat da yerləşdirildi. Məlumatda həmçinin qeyd olundu ki, bir neçə günə kimin nə qədər bonus alacağı da elan olunacaq. Lakin rəhbərlik əməkdaşlarına veriləcək mükafatın məbləğinin hər kəs tərəfindən bilinməsini istəmirdi. Ona görə belə bir qərara gəldilər ki, bonus məbləğlərinin yerinə fərqli say sistemlərində verilmiş ədədlər yazsınlar. Əməkdaşların ad və soyadlarının yerinə isə onların yaşını qeyd etsinlər. Hər əməkdaş üçün say sistemi isə belə seçilirdi. Əməkdaşın yaşını götürərək onluq mövqedə duran rəqəmini silib üzərinə 2 gəlirdilər. Və beləcə alınan ədəd say sisteminin əsası qəbul edilirdi.

   İndi Sizdən tələb olunan MilliByte şirkətinin öz əməkdaşlarına nə qədər bonus verdiyini onluq say sistemində tapmaqdır.

   Əməkdaşların sayı 50-dən azdır, yaşları 100-dən çox deyil, aldıqları bonus onluq say sistemində 100000 manatdan çox deyil.

Giriş verilənlərinin formatı

   Birinci sətirdə bonus alacaq əməkdaşların sayı n (n < 50) verilir. Növbəti sətirlərdə isə  arada boşluq olmaqla əməkdaşın yaşı və hansısa say sistemində (rəqəm və böyük ingilis hərfləri ilə ifadə olunan) aldığı bonus miqdarı verilir.

Çıxış verilənlərinin formatı

   Hər əməkdaşın aldığı bonusun miqdarını onluq say sistemində ayrı-ayrı sətirlərdə çap etmək lazımdır.

Nümunə
Giriş verilənləri Çıxış verilənləri

2
28 2800
30 101

2800
5

   Proqramı özünüz tərtib etməyə çalışın. Əgər alınmasa, aşağıdakı həll ilə tanış olun.

Bonus

İkilik say sistemindən onluq say sisteminə keçid

   Nəzərinizə çatdıraq ki, əslində Python proqramlaşdırma dilində ikilik say sistemində verilmiş ədədin onluq say sisteminə çevrilməsi üçün iki parametrli int(x, b) funksiyasından istifadə etmək mümkündür. Burada x digər say sistemində (indiki halda ikilik) olan ədəddir və dırnaq arasında göstərilməlidir. İkinci parametr olan b isə verilmiş ədədin hansı say sistemində (indiki halda 2) olduğunu bildirmək üçündür:

>>> int("1001", 2)
9
>>> int("1011", 2)
11
>>>

  Bu dərsimizdə sözügedən çevrilmənin alqoritmini nəzərdən keçirəcəyik.

   Gəlin nümunə kimi 1001 ikilik ədədini onluq ədədə çevirək. Bildiyiniz kimi ikilik ədədin onluq ədədə çevrilməsi riyazi olaraq aşağıdakı qayda üzrə aparılır:

binary_to_decimal

   Əvvəlcə 1001 ikilik ədədinin sağdan başlayaraq üzərinə 0, 1, 2, 3 nömrələrini yazırıq. Sonra isə rəqəmləri 2-nin uyğun qüvvətinə vurub toplayırıq.

Python dilində bu alqoritm aşağıdakı kimi alınacaq:

n = input()
k = len(n)
s = 0

for i in range(k): 
    s = s + int(n[i])*2**(k-i-1)

print(s)

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

10101001
169
11011010
218

Cırtdanların təqvimi

   Cırtdanlar sərbəst olaraq müxtəlif əsaslı say sistemlərinə sahibdirlər. Onlar buna gündəlik məşqlər sayəsində nail olublar. Məhz buna görə də cırtdanlar hər səhəri cari təqvimdəki tarixi digər say sisteminə çevirməklə başlayırlar.

garden-gnomes

   Sizdən d/m/y şəklində verilmiş tarixi d+1 əsaslı say sisteminə çevirmək tələb olunur. 9-dan böyük rəqəmləri işarələmək üçün latın əlifbasının böyük hərflərindən əlifba sırası ilə istifadə edilir.

Giriş verilənlərinin formatı

  Tək sətirdə onluq say sistemində d/m/y formatında bir tarix verilir.

Çıxış verilənlərinin formatı

  Nəticəni tək sətirdə d+1 say sistemində d/m/y formatında vermək lazımdır.

Nümunə
Giriş verilənləri Çıxış verilənləri

1/10/2000

1/1010/11111010000

   Proqramı özünüz tərtib etməyə çalışın. Əgər alınmasa, aşağıdakı həll ilə tanış olun.

gnomes_prog

Mənbə: https://www.e-olymp.com

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