Qan qrupları

   Bildiyiniz kimi insanlarda 4 qan qrupu vardır. Bunlar O (I qrup), A (II qrup), B (III qrup) və AB (IV) olaraq işarə edilir. Ömür boyu dəyişməz qalan qan qrupları valideynlərdən yeni nəslə irsən verilir. Qan qrupları ilə birlikdə qanın rezus (Rh, Rhesus) amili də vardır. İnsanların 85%-də rezus-amil müsbət, 15%-də isə mənfi olur.

blood_groups

   Qan itirmə hallarında və bir sıra xəstəliklərdə insana qan köçürülməsi lazım gəlir. Bu zaman aşağıdakı qaydalara riayyət olunmalıdır:

  • O (I) qrupu yalnız O (I) qrupundan qan qəbul edə bilər, lakin hamı üçün universal donordur.
  • A (II) qan qrupu A (II) və O (I) qrupundan qan ala bilər, A (II) və AB (IV) qrupları üçün donor ola bilər.
  • B (III) qrupu B (III) və O (I) qrupundan qan qəbul edir, habelə B (III) və AB (IV) qrupları üçün donor ola bilər.
  • AB (IV) qan qrupu digər bütün qan qruplarından qan alır, ancaq öz qrupundan olana donor ola bilər.

   Sizdən verilmiş qan qrupuna görə hansı qruplara donor və hansı qruplardan qan alına biləcəyini müəyyən etmək tələb olunur. Proqramı özünüz tərtib etməyə çalışın. Əgər alınmasa, aşağıdakı həll ilə tanış olun.

blood_groups_program

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

Poçtalyon Peçkin

   Poçtalyon Peçkin öz iş rejimini dəyişmək qərarına gəlir.  Bundan sonra o məktub və bağlamaları sakinlərə hava qaralandan sonra başlayıb hava ağaranadək paylayacaq. İş həcmindən asılı olaraq poçtalyonun hər gün fərqli iş qrafiki vardır. Peçkin hər gün ən çoxu 12 saatını sərf edərək bütün məktub və bağlamaları ünvanına çatdırır.

postman

   Poçtalyon Peçkinin işə başlama və işini bitirmə vaxtı dəqiq olaraq bilinir. Sizdən tələb olunan onun nə qədər çalışdığını tapmaqdır.

Giriş verilənlərinin formatı

  Tək sətirdə t1t2 – Poçtalyon Peçkinin işə başladığı və bitirdiyi vaxt hh:mm:ss formatında verilir.

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

  Poçtalyon Peçkinin məktub və bağlamaları çatdırmaq üçün sərf etdiyi zamanı hh:mm:ss formatında verməli. Zamanın 12 saatı keçmədiyinə zəmanət verilir.

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

19:00:00 21:00:00

02:00:00

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

t1, t2 = input().split()
h1, m1, s1 = map(int, t1.split(":"))
h2, m2, s2 = map(int, t2.split(":"))

if s2 < s1:
    m2 = m2 - 1
    s2 = s2 + 60
sd = s2 - s1

if m2 < m1:
    h2 = h2 - 1
    m2 = m2 + 60
md = m2 - m1

if h2 < h1:
    h2 = h2 + 24
hd = h2 - h1

print("{0:02d}:{1:02d}:{2:02d}".format(hd, md, sd))

   Proqramı datetime modulunun funksiyalarından istifadə etməklə də yazmaq olardı:

import datetime

t1, t2 = input().split()

t1 = datetime.datetime.strptime(t1,'%H:%M:%S')
t2 = datetime.datetime.strptime(t2,'%H:%M:%S')

td = t2-t1

if td.days < 0:
    td = datetime.timedelta(days=0,
                seconds=td.seconds, 
                microseconds=td.microseconds)
    
td = datetime.datetime.strptime(str(td),'%H:%M:%S')
print(td.time())

Uzun il

   Bildiyiniz kimi hazırda istifadə etdiyimiz təqvim Qriqori təqvimidir. Bu təqvimə görə üç il ard-arda Fevral ayı 28 gün, dördüncü il isə 29 gün olur. Beləliklə qısa il 365, uzun il isə 366 gündən ibarət olur. Bunun səbəbi Yer planetinin Günəş ətrafında tam dövretmə vaxtının, yəni astronomik ilin təxminən 365,25 gün (365 gün və 6 saat) olmasıdır. Həmin bu 6 saatlıq fərq hər 4-cü ildə toplanaraq əlavə 1 gün əldə edilir və həmin il uzun il elan olunur.

Leap-Year

Aşağıda uzun ili təyin etməyin qaydası göstərilmişdir:

  1. Əgər il 4-ə bölünmürsə, adi ildir.
  2. Əks halda ilin 100-ə bölünməsini yoxlamaq lazımdır.
  3. Əgər bölünmürsə, deməli bu yüzillik deyil və nəticə etibarilə uzun ildir.
  4. Yox əgər il 100-ə bölünürsə, deməli bu yüzillikdir və onun 400-ə bölünməsini yoxlamaq lazımdır.
  5. Əgər il 400-ə bölünürsə, uzun ildir.
  6. Əks halda adi ildir.
year = int(input()) 

if (year % 4) == 0: 
    if (year % 100) == 0: 
        if (year % 400) == 0: 
            print("uzun ildir") 
        else: 
            print("uzun il deyildir") 
    else: 
        print("uzun ildir") 
else: 
    print("uzun il deyildir")
Nümunələr
Giriş verilənləri Çıxış verilənləri

2017
2020

uzun il deyildir
uzun ildir

 

Fərqli adlar

  Proqramçı Famil uşaq vaxtlarında statistikaya da böyük maraq göstərirdi. Hələ məktəbdə oxuyarkən ağlına müxtəlif suallar gəlirdi. Bu suallara cavab tapmaq üçün proqramlaşdırma bacarıqlarından istifadə edirdi. Günlərin bir günü Famili belə bir sual maraqlandırmağa başladı. Görəsən, siniflərdə neçə müxtəlif adam adı vardır?

school_children

Giriş verilənlərinə nümunə:

Kərim Anar Səbinə Anar Fuad Sevinc Səbinə Anar

   Çıxış verilənlərinə nümunə:

Kərim Anar Səbinə Fuad Sevinc

   Proqramı özünüz tərtib etməyə çalışın. Dublikatları ixtisar etmək üçün bir funksiya təyin edin. Alınmasa, Familin həlli ilə tanış ola bilərsiniz:

unique_names

Rəqəmləri fərqli olan ədədlər

   Hesab aləmində elə ədədlər vardır ki, onları təşkil edən rəqəmlər bir-birindən fərqlidir.  Məsələn götürək 2019 ədədini. Bu ədəddə hər bir rəqəmdən yalnız bir dənədir.

numbermeaning

   Sizdən verilmiş ədədin belə ədəd olub-olmadığını tapmaq tələb olunur. Əgər ədədi təşkil edən rəqəmlər fərqlidirsə, ekrana YES, əks halda NO çıxarın.

Giriş verilənlərinin formatı

   Tək sətirdə N ədədi verilir.

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

   Çıxışa tək sətirdə verilmiş şərtə uyğun olaraq YES və ya NO verməli.

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

2019
1918

YES
NO

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

Screen Shot 2019-04-20 at 17.44.28

Maraqlı ədədlər

   Hesab aləmində çoxlu maraqlı ədədlər vardır. Belə ədədlərə nümunə kimi rəqəmlərinin cəmi onların hasilinə bərabər olanları göstərmək olar. Məsələn 22 ədədi kimi (2+2=2×2).

old-typeset-numbers

   Sizdən N-rəqəmli belə ədədləri tapmaq tələb olunur. Verilmiş N (N < 10) üçün həmin ədədlərin sayını və onlardan ən kiçiyini ekrana çıxarın.

Giriş verilənlərinin formatı

   Tək sətirdə 10-u aşmayan N ədədi verilir.

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

   Çıxışa tək sətirdə bir-birindən boşluq işarəsi ilə ayrılmış iki ədəd ‒ axtarılan ədədlərin sayı və onlar arasından ən kiçiyini verməli.

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

1

10 0

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

Həll – 1

screen shot 2019-01-19 at 14.38.58

Həll – 2

screen shot 2019-01-20 at 19.12.58

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

Kibrit çöpləri

   Tərəfi bir kibrit çöpündən ibarət olan n kvadratı müstəvi üzərinə düzmək üçün minimum hansı sayda kibrit çöpü lazımdır? Kibrit çöplərini sındırmaq və bir-birinin üzərinə qoymaq olmaz. Kvadratların təpə nöqtələri kibrit çöplərinin uclarının birləşdiyi nöqtələr, tərəfi isə kibrit çöplərinin özüdür.

match-head-2147916_1280

   Kvadratların n sayına görə elə proqram tərtib edin ki, onu düzəltmək üçün lazım olan kibrit çöplərinin minimum sayını tapsın.

Giriş verilənlərinin formatı

   Tək sətirdə yeganə bir tam n ( 1 ≤ n ≤ 10) ədədi verilir.

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

   Çıxışa tək sətirdə bir tam ədəd – verilmiş sayda kvadratın qurulması üçün tələb olunan kibrit çöplərinin minumum sayını verməli.

Nümunə

4 

12

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

screen shot 2019-01-13 at 19.43.46

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

Habil, Qabil və hasil

   Habil və Qabil “Vurma” mövzusunda attestasiyaya hazırlaşırdılar. Habil a-dan b-yədək bütün natural ədədlərin hasilini fikirləşir, Qabil isə ilk və sonuncu ədədləri tapmağa cəhd edirdi.

curling-scoreboard-986831426-5be1fa4e46e0fb0026701932

   ab ədədlərinin qiymətini tapmaqda Qabilə kömək edin. Əgər həll bir neçədirsə, onda çıxışa a-sı ən kiçik olanını verin.

Giriş verilənlərinin formatı

   Tək sətirdə bir ədəd – ədədlərin hasili (1 < a ≤ b ≤ 10000) verilir.

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

   Çıxışa tək sətirdə aralarında boşluq işarəsi olmaqla iki ədəd: ab. verilir.

Nümunə

60 

3 5

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

screen shot 2019-01-05 at 02.43.30

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

Gəncləşdirmə siyasəti

   Xoşbəxtlər ölkəsi hər keçən gün daha da inkişaf edirdi. Bunun səbəbi ölkədəki gənclərə etimad göstərilməsi və onların önünün açılması idi. Hətta günlərin bir günü hökmdar belə bir qərar verir ki, dövlət idarəetməsində də gənclər önə çəkilsin.

Marjorie_Cole

   Amma bunun üçün əvvəlcə yaşı çox olan nazir və komitə sədrlərini təqaüdə göndərmək lazım idi. İşin çətin tərəfi bu qoca vəzifəlilərin sayının çox olması idi. Məsələnin müsbət tərəfi isə onların əksəriyyətinin eyni yaşda olmaları idi. Elə hökmdar da gəncləşdirmə siyasətini ilbəil aparmağı düşünürdü. Hər şeyi yüz ölçüb bir biçən müdrik hökmdar belə bir qərar verir: “Bu ilin Bahar Bayramı ərəfəsində Nazirlər Kabineti və Dövlət Komitələrində çalışan ən yaşlı məmurlar təqaüdə göndərilsin”.

   Saray katibi bu qərarı yazıya köçürəndə hökmdardan neçə nəfərin və kimlərin təqaüdə göndəriləcəyini soruşur. Hökmdarın cavabı belə olur: “Ən yaşlı məmuru müəyyən edin, onun yaşında olanların hamısını təqaüdə göndərin”.

   Bu məsələni həll etmək yenə proqramçı Familin öhdəsinə düşür. Saray katibi nazir və komitə sədrlərinin yaşını yazıb proqramçıya verir. Famil qarşıya qoyulan tapşırığa uyğun proqram tərtib edir. Saray katibinə təqaüdə göndərilən ən qocaların yaşı və sayı təqdim edilir.

Giriş verilənlərinə nümunə:

65 84 73 84 68 72 84 59

   Çıxış verilənlərinə nümunə:

84 3

   Proqramı özünüz tərtib etməyə çalışın. Alınmasa, Familin həlli ilə tanış ola bilərsiniz:

Screen Shot 2019-01-02 at 22.50.39