CodeStep
Mavzularga qaytish

1.3.2 · MAVZU

Murakkab shartli jarayonga oid masalalar

13 ta masala. Masala shartini ko‘rib, yechishni boshlang.

Namuna masalalar 1 ta yechim

Masalalar 13 ta

1.3.79-masala

Tomonlari koordinata o‘qlariga parallel yoki perpendikulyar bo‘lgan ikkita to‘rtburchak berilgan. Ularning har birining pastki chap burchagining koordinatalari va tomonlarining uzunliklari ma’lum. To‘rtburchaklardan birini birinchi, ikkinchisini ikkinchi deb ataymiz. Quyidagilarni aniqlash dasturini tuzing:

a)Birinchi to‘rtburchakning barcha nuqtalari ikkinchisiga tegishli yoki yo‘qligini aniqlang.
b)To‘rtburchaklardan birining barcha nuqtalari boshqasiga tegishli yoki yo‘qligini aniqlang.
c)Bu to‘rtburchaklar kesishishini aniqlang.
Kod yozish

Namuna 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

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)).