3-misol. Uchburchak uchlarining koordinatalari berilgan. Shu koordinatalar yordamida uchburchak qursa bo’ladimi? Agar mumkin bo’lsa shu uchburchakning yuzini hisoblash dasturini tuzing.
3-misol. Uchburchak uchlarining koordinatalari berilgan. Shu koordinatalar yordamida uchburchak qursa bo’ladimi? Agar mumkin bo’lsa shu uchburchakning yuzini hisoblash dasturini tuzing.
Demak, berilgan koordinatalar yordamida uchburchak tomonini ko’rish funksiyasini, shu tomonlar asosida uchburchak qurish mumkinmi yoki yo’qligini va uning yuzini hisoblash funksiyalarini tuzing.
# include
# include
# include
// uchburchak tomonini topish funksiyasi
float line (float x1, float x2, float y1, float y2)
{ (float) p = sqrt ((x1-x2)*(x1-x2)+ (y1-y2)*(y1-y2)); return p; }// uchburchak qurib bo’ladimi? funksiyasi
int uch ( float a, float b, float c)
{ if ( a+b>c && b+c>a && c+a>b ) return 1;else return 0; }
// uchburchakning yuzini topish funksiyasi
float s (float a, float b, float c){ float p, s ;
p = ( a + b + c ) / 2; s = sqrt (p*(p-a)*(p-b)*(p-c));
return s; }void main ( )
{ float x1, x2, x3, y1, y2, y3, p1, p2, p3; clrscr ( );
cin >> x1>> x2>> x3>> y1>> y2>> y3;
p1 = line (x1, x2, y1, y2);p2 = line (x1, x3, y1, y3);p3 = line (x2, x3, y2, y3);t = uch (p1, p2, p3);if ( t = = 1)
{ yuza = s ( p1, p2, p3); cout << “yuza = ”<< yuza << endl;
else cout <<”uchburchak qurib bo’lmaydi !!!”<< endl;} getch ( ); }
Bir funksiya ichida boshqa funksiya aniqlanishi mumkin emas, lekin funksiya ichida o’zini-o’zi chaqirishi mumkin. Bunday holatni rekursiya holati deyiladi. Rekursiya 2 xil bo’ladi: to’g’ri rekursiya va bilvosita rekursiya. Agar funksiya o’zini-o’zi chaqirsa, bu to’g’ri rekursiya deyiladi. To’g’ri rekursiyada funksiyaning nusxasi chaqiriladi. Agarda funksiya boshqa bir funksiyani chaqirsa va u funksiya o’z navbatida 1-sini chaqirsa, u holda bilvosita rekursiya deyiladi. Rekursiya 2 xil natija bilan yakunlanadi: biror natija qaytaradi yoki hech qachon tugallanmaydi va xatolik yuz beradi. Bunday holatlarda rekursiv funksiyalar uchun rekursiyani to’xtatish shartini berish zarur, chunki rekursiyada xotira yetishmasligi xavfi bor.
Do'stlaringiz bilan baham: |