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
-
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.
-
Qamrab oluvchi to‘rtburchakning pastki chap burchagi ikkita chap-pastki burchak koordinatalarining kichiklaridan tuziladi.
Xmin = min(x1, x3) Ymin = min(y1, y3) -
Yuqori o‘ng burchak koordinatalari esa ikkita yuqori-o‘ng burchak koordinatalarining kattalaridan tuziladi.
Xmax = max(x2, x4) Ymax = max(y2, y4) -
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)).