CodeStep
Mavzu masalalariga qaytish

1.3.1 · MAVZU

Namuna masalalar

Sodda shartli jarayonga oid masalalar

Bu namunalarda shart operatorlari yordamida son raqamlarini solishtirish va berilgan sonlar ichidan musbatlarini sanash ko‘rib chiqiladi.

1-NAMUNAVIY MASALA

Uch xonali son raqamlarini tekshirish

Masala sharti

Uch xonali son berilgan. Quyidagilarni aniqlash dasturini tuzing: a) uning barcha raqamlari bir xilmi; b) hech bo‘lmaganda ikkita raqami bir xilmi.

Bosqichma-bosqich yechim

  1. Uch xonali x sonini kiritamiz. Yuzlik raqamini butun bo‘lish orqali, o‘nlik va birlik raqamlarini esa qoldiq olish orqali ajratamiz.

    A = x // 100
    B = (x // 10) % 10
    C = x % 10
  2. Barcha raqamlar bir xil bo‘lishi uchun yuzlik, o‘nlik va birlik raqamlari o‘zaro teng bo‘lishi kerak.

    A = B = C
  3. Hech bo‘lmaganda ikki raqam teng bo‘lishi uchun uchta juftlikdan bittasi teng bo‘lishi kifoya.

    A = B yoki B = C yoki A = C

Python yechimi

Son raqamlarini ajratib, avval uchtalasi tengligini, keyin esa kamida bir juft raqam tengligini tekshiramiz.

# Uch xonali sonni kiritish
x = int(input("Uch xonali sonni kiriting: "))

# Raqamlarni ajratib olish
A = x // 100  # Yuzlik xonasi
B = (x // 10) % 10  # O'nlik xonasi
C = x % 10  # Birlik xonasi

# a) Barcha raqamlar bir xilmi?
if A == B == C:
    print("Barcha raqamlar bir xil.")
else:
    print("Barcha raqamlar bir xil emas.")

# b) Hech bo'lmaganda ikkita raqam bir xilmi?
if A == B or B == C or A == C:
    print("Hech bo'lmaganda ikkita raqam bir xil.")
else:
    print("Barcha raqamlar har xil.")

Namuna kirishi

777

Konsoldagi namuna

Uch xonali sonni kiriting: Barcha raqamlar bir xil.
Hech bo'lmaganda ikkita raqam bir xil.

C++ yechimi

Butun bo‘lish va qoldiq olish orqali raqamlarni topib, ularni shartlar yordamida taqqoslaymiz.

#include <iostream>
using namespace std;

int main() {
    int x;
    cout << "Uch xonali sonni kiriting: ";
    cin >> x;

    // Raqamlarni ajratib olish
    int A = x / 100;
    int B = (x / 10) % 10;
    int C = x % 10;

    // a) Barcha raqamlar bir xilmi?
    if (A == B && B == C) {
        cout << "Barcha raqamlar bir xil." << endl;
    } else {
        cout << "Barcha raqamlar bir xil emas." << endl;
    }

    // b) Hech bo'lmaganda ikkita raqam bir xilmi?
    if (A == B || B == C || A == C) {
        cout << "Hech bo'lmaganda ikkita raqam bir xil." << endl;
    } else {
        cout << "Barcha raqamlar har xil." << endl;
    }
    return 0;
}

Namuna kirishi

777

Konsoldagi namuna

Uch xonali sonni kiriting: Barcha raqamlar bir xil.
Hech bo'lmaganda ikkita raqam bir xil.

Yakuniy javob

Uch xonali sonning raqamlari x // 100, (x // 10) % 10 va x % 10 orqali olinadi. Uchtalasi teng bo‘lsa, barcha raqamlar bir xil; juftliklardan kamida bittasi teng bo‘lsa, kamida ikkita raqam bir xil bo‘ladi.

2-NAMUNAVIY MASALA

Uchta son orasidagi musbatlarni sanash

Masala sharti

Uchta butun son berilgan. Ular orasidan musbatlarini sanash dasturini tuzing.

Bosqichma-bosqich yechim

  1. A, B va C butun sonlarini kiritamiz va musbat sonlar sonini saqlash uchun count o‘zgaruvchisini nolga tenglaymiz.

  2. Har bir sonni alohida tekshiramiz. Son noldan katta bo‘lsa, count qiymatini bittaga oshiramiz.

    A > 0, B > 0, C > 0
  3. Uchala tekshiruvdan so‘ng count ichida musbat sonlarning umumiy soni bo‘ladi va uni ekranga chiqaramiz.

Python yechimi

Uch sonni bitta qatordan o‘qib, har birining musbatligini alohida tekshiramiz.

A, B, C = map(int, input("Uchta butun sonni kiriting: ").split())

# Musbat sonlarni sanash
count = 0
if A > 0:
    count += 1
if B > 0:
    count += 1
if C > 0:
    count += 1

print(f"Musbat sonlar soni: {count}")

Namuna kirishi

-2 0 5

Konsoldagi namuna

Uchta butun sonni kiriting: Musbat sonlar soni: 1

C++ yechimi

Har bir kiritilgan son noldan katta bo‘lsa, count hisoblagichini bittaga oshiramiz.

#include <iostream>
using namespace std;

int main() {
    int A, B, C;
    cout << "Uchta butun sonni kiriting: ";
    cin >> A >> B >> C;

    int count = 0;
    if (A > 0) count++;
    if (B > 0) count++;
    if (C > 0) count++;

    cout << "Musbat sonlar soni: " << count << endl;
    return 0;
}

Namuna kirishi

-2 0 5

Konsoldagi namuna

Uchta butun sonni kiriting: Musbat sonlar soni: 1

Yakuniy javob

Musbat bo‘lgan har bir son uchun hisoblagich bittaga oshiriladi. −2, 0 va 5 misolida faqat 5 musbat, natija 1.

3-NAMUNAVIY MASALA

Ikki to‘rtburchakni qamrab oluvchi minimal to‘rtburchak

Masala sharti

Yon tomonlari koordinata o‘qlariga parallel yoki perpendikulyar bo‘lgan ikkita to‘rtburchak berilgan. Ularning har birining pastki chap va yuqori o‘ng burchaklarining koordinatalari ma’lum. Ikkala to‘rtburchakni qamrab oluvchi minimal to‘rtburchakning pastki chap va yuqori o‘ng burchaklari koordinatalarini topish dasturini tuzing.

Bosqichma-bosqich yechim

  1. Har bir to‘rtburchakning pastki chap va yuqori o‘ng burchaklari koordinatalarini kiritamiz: birinchi to‘rtburchak uchun (x1, y1), (x2, y2), ikkinchisi uchun (x3, y3), (x4, y4).

  2. Umumiy to‘rtburchakning pastki chap burchagi ikkala pastki chap nuqtaning koordinatalaridan eng kichiklarini oladi.

    Xmin = min(x1, x3)
    Ymin = min(y1, y3)
  3. Yuqori o‘ng burchak esa ikkala yuqori o‘ng nuqtaning koordinatalaridan eng kattalarini oladi.

    Xmax = max(x2, x4)
    Ymax = max(y2, y4)
  4. Hisoblangan pastki chap va yuqori o‘ng burchak koordinatalarini ekranga chiqaramiz.

Python yechimi

Pastki chap burchak uchun X va Y koordinatalarining minimumini, yuqori o‘ng burchak uchun maksimumini topamiz.

# Foydalanuvchidan koordinatalarni olish
x1, y1, x2, y2 = map(int, input("Birinchi to'rtburchak (x1, y1, x2, y2): " ).split())
x3, y3, x4, y4 = map(int, input("Ikkinchi to'rtburchak (x3, y3, x4, y4): " ).split())

# Minimal X va Y topish
Xmin = x1
if x3 < Xmin:
    Xmin = x3
Ymin = y1
if y3 < Ymin:
    Ymin = y3

# Maksimal X va Y topish
Xmax = x2
if x4 > Xmax:
    Xmax = x4
Ymax = y2
if y4 > Ymax:
    Ymax = y4

# Natijani chiqarish
print("Minimal to'rtburchak koordinatalari:")
print(f"Pastki chap burchak: ({Xmin}, {Ymin})")
print(f"Yuqori o'ng burchak: ({Xmax}, {Ymax})")

Namuna kirishi

1 1 4 3
3 0 6 4

Konsoldagi namuna

Birinchi to'rtburchak (x1, y1, x2, y2): Ikkinchi to'rtburchak (x3, y3, x4, y4): Minimal to'rtburchak koordinatalari:
Pastki chap burchak: (1, 0)
Yuqori o'ng burchak: (6, 4)

C++ yechimi

Koordinatalarni alohida taqqoslab, minimal pastki chap va maksimal yuqori o‘ng burchakni aniqlaymiz.

#include <iostream>
using namespace std;

int main() {
    int x1, y1, x2, y2;
    int x3, y3, x4, y4;

    // Birinchi to'rtburchak koordinatalari
    cout << "Birinchi to'rtburchak (x1, y1, x2, y2): ";
    cin >> x1 >> y1 >> x2 >> y2;
    // Ikkinchi to'rtburchak koordinatalari
    cout << "Ikkinchi to'rtburchak (x3, y3, x4, y4): ";
    cin >> x3 >> y3 >> x4 >> y4;

    // Minimal X va Y topish
    int Xmin = x1;
    if (x3 < Xmin) Xmin = x3;
    int Ymin = y1;
    if (y3 < Ymin) Ymin = y3;

    // Maksimal X va Y topish
    int Xmax = x2;
    if (x4 > Xmax) Xmax = x4;
    int Ymax = y2;
    if (y4 > Ymax) Ymax = y4;

    // Natijani chiqarish
    cout << "Minimal to'rtburchak koordinatalari:\n";
    cout << "Pastki chap burchak: (" << Xmin << ", " << Ymin << ")\n";
    cout << "Yuqori o'ng burchak: (" << Xmax << ", " << Ymax << ")\n";
    return 0;
}

Namuna kirishi

1 1 4 3
3 0 6 4

Konsoldagi namuna

Birinchi to'rtburchak (x1, y1, x2, y2): Ikkinchi to'rtburchak (x3, y3, x4, y4): Minimal to'rtburchak koordinatalari:
Pastki chap burchak: (1, 0)
Yuqori o'ng burchak: (6, 4)

Yakuniy javob

Pastki chap burchak: (min(x1, x3), min(y1, y3)); yuqori o‘ng burchak: (max(x2, x4), max(y2, y4)).