Tajriba ishi №2 Mavzu: C++da funksiyalar va ko’rsatkich bilan ishlash. Ishdan maqsad



Yüklə 0,75 Mb.
səhifə4/8
tarix29.10.2022
ölçüsü0,75 Mb.
#66795
1   2   3   4   5   6   7   8
Tajriba ishi ¹2 Mavzu C da funksiyalar va ko’rsatkich bilan is

    Bu səhifədəki naviqasiya:
  • include
Dasturning kodi


#include
#include
#include
using namespace std;

double F(double x, double y) {


double R;
if (x+y < 0)
R = x*x + y*y;
else
R = sqrt(x+y);
return R;
}
int main() {
double a, b;
cin>>a>>b;
double Z = F(a, b)+F(a/b, F(a*a, b*b));
printf("%.20f", Z);
}
Misol2

To’rtburchakning tamonlari va bitta diagonali berilgan. Uning yuzasini topuvchi dastur tuzing.
Yechimi:

To’rtburchak yuzasi diagonal ajratgan tamonlari (a, b, e) va (c, d, e) bo’lgan ikkita uchburchaklar yuzalari yi’gindisiga teng.


Uchburchak yuzasini ikki marta hisoblashga lozim. Ikki marta bir xil amalni yozmaslik uchun uchburchak yuzasini topadigan funksiya tuzamiz va unga ikki marta murojaaat qilamiz.


#include
#include
#include
using namespace std;


double surface_traingle(int a, int b, int c) {
double p = (a+b+c) / 2.0;
double s = sqrt(p*(p-a)*(p-b)*(p-c));
return s;
}
int main() {
int a, b, c, d, e;
cin>>a>>b>>c>>d>>e;
double s = surface_traingle(a, b, e) + surface_traingle(c, d, e);
printf("%.10f", s);
}
Rekursiv funksiyalar
Funksiya tanasida o‘zini o‘zi chaqirsa rekursiya deyiladi. Rekursiya ikki xil bo‘ladi:

  • Oddiy – agar funksiya o‘z tanasida o‘zini chaqirsa;

  • Vositali – agar birinchi funksiya ikkinchi funksiyani chaqirsa, ikkinchisi esa o‘z navbatida birinchi funksiyani chaqirsa.

Masalan: Faktorialni hisoblash funksiyasini olamiz. U o‘zini ichida oldingilarini chaqiradi.

Dasturi

Matematik ifodasi

long Faktorial(int n)
{
if (!n) return 1;
else return n * Faktorial (n - 1);
}




Xuddi shunday darajani hisoblash funksiyasini ham misol keltirish mumkin.

Dasturi

Matematik ifodasi

double Daraja(double x, int n)
{
if (!n) return 1;
else return x * Daraja(x, n - 1);
}








Namuna. Rekursiv funksiyadan foydalangan holda ikkita sondan raqamlari yig‘indisi katta bo‘lgan sonni topuvchi dastur tuzing.
int sum, sum_1, sum_2 ;
int raqam(int son)
{
sum += son % 10;
son = son / 10;
if (son == 0) return sum;
raqam (son);
}
int main()
{
int sum_1 = 0, sum_2 = 0;
int son_1, son_2;
cin>>son_1>>son_2;
sum_1 = raqam(son_1);
sum_2 = raqam(son_2);
if (sum_1 > sum_2) cout << son_1; else cout<getch();
return 0;
}

Yüklə 0,75 Mb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin