CodeStep
Mavzu masalalariga qaytish

1.3.2 · MAVZU

Namuna masalalar

Murakkab shartli jarayonga oid masalalar

Ushbu namunada koordinata o‘qlariga parallel tomonli ikkita to‘rtburchakni qamrab oladigan eng kichik to‘rtburchak koordinatalari topiladi.

1-NAMUNAVIY MASALA

Ikkita to‘rtburchakni qamrab oluvchi minimal to‘rtburchak

Masala sharti

Tomonlari koordinata o‘qlariga parallel yoki perpendikulyar bo‘lgan ikkita to‘g‘ri to‘rtburchak berilgan. Ularning har birining pastki chap va pastki o‘ng burchaklarining koordinatalari ma’lum. Aniqlangan to‘rtburchaklar joylashgan minimal to‘rtburchakning pastki chap va yuqori o‘ng burchaklarining koordinatalarini topish dasturini tuzing.

Bosqichma-bosqich yechim

  1. Birinchi to‘rtburchakning pastki chap va yuqori o‘ng burchaklarini (x1, y1), (x2, y2), ikkinchi to‘rtburchaknikini esa (x3, y3), (x4, y4) koordinatalari bilan kiritamiz.

  2. Qamrab oluvchi to‘rtburchakning pastki chap burchagi ikkita chap-pastki burchak koordinatalarining kichiklaridan tuziladi.

    Xmin = min(x1, x3)
    Ymin = min(y1, y3)
  3. Yuqori o‘ng burchak koordinatalari esa ikkita yuqori-o‘ng burchak koordinatalarining kattalaridan tuziladi.

    Xmax = max(x2, x4)
    Ymax = max(y2, y4)
  4. Hisoblangan ikkala burchak koordinatalarini ekranga chiqaramiz.

Python yechimi

Har bir to‘rtburchakning pastki chap va yuqori o‘ng koordinatalarini o‘qiymiz. Minimumlardan pastki chap, maksimumlardan yuqori o‘ng burchakni hosil qilamiz.

# 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

Xmin va Ymin qiymatlarini koordinatalar minimumidan, Xmax va Ymax qiymatlarini esa maksimumidan aniqlaymiz.

#include <iostream>
#include <algorithm>
using namespace std;

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

    int Xmin = min(x1, x3), Ymin = min(y1, y3);
    int Xmax = max(x2, x4), Ymax = max(y2, y4);

    cout << "Minimal to'rtburchak koordinatalari:" << endl;
    cout << "Pastki chap burchak: (" << Xmin << ", " << Ymin << ")" << endl;
    cout << "Yuqori o'ng burchak: (" << Xmax << ", " << Ymax << ")" << endl;
    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)).