Oʻzbekiston respublikasi oliy ta’lim, fan va innovatsiyalar vazirligi - bet 9

|
Oʻzbekiston respublikasi oliy ta’lim, fan va innovatsiyalar vazirligi
|
bet | 9/10 | Sana | 04.12.2023 | Hajmi | 0,71 Mb. | | #110600 |
6.K musbat butun sonning raqamlari C sonini, shuningdek ularning S yig‘indisini topuvchi DigitCountSum(K, C, S) protsedurasini tavsiflang (K - kirish, C va S - butun son tipidagi chiqish parametrlari). Berilgan beshta butun sonning har biri uchun raqamlar soni va yig‘indisini topish uchun ushbu protseduradan foydalaning.
#include
void digitcountsum (int k, int *c, int *s){
*c=0;
*s=0;
while(k!=0){
*s+=k%10;
++*c;
k/=10;
}
}
int main(void)
{
int i;
for(i=1;i<=5;++i){
int k;
printf("K:");
scanf("%i", &k);
int c,s;
digitcountsum(k, &c, &s);
printf("C: %i\nS: %i\n",c,s);
}
return 0;
}
7. . InvertDigits(K) protsedurasini tavsiflab bering, bu K musbat butun sonining raqamlari tartibini teskarisiga aylantiradi (K ham kirish, ham chiqish bo'lgan butun son tipidagi parametr). Ushbu protseduradan foydalanib, berilgan beshta butun sonning har biri uchun raqamlar tartibini teskari o'zgartiring.
#include
void invertdigits(int *k){
int tempi=*k;
*k=0;
while(tempi!=0){
*k=*k*10+(tempi%10);
tempi/=10;
}
}
int main(void)
{
int i;
for(i=1;i<=5;++i){
int k;
printf("K:");
scanf("%i", &k);
invertdigits(&k);
printf("K: %i\n",k);
}
return 0;
}
8. K musbat butun sonning o'ng tomoniga D raqamini qo'shuvchi AddRightDigit(D, K) protsedurasini tavsiflang (D - butun son tipidagi kirish parametri, 0-9 oralig'ida yotgan, K - butun sonning parametri. turi, bu ham kirish, ham chiqish). Ushbu protseduradan foydalanib, o'ngdagi K raqamiga berilgan D1 va D2 raqamlarini ketma-ket qo'shing, har bir qo'shish natijasini ko'rsating.
# include
# include
# include
using namespace std;
void AddRightDigit (int D, int& K);
int main ()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int D1, D2, K;
cout << "Введите число K: "; cin >> K;
cout << "Введите число D1 от 0-9: "; cin >> D1;
AddRightDigit (D1, K);
cout << K << endl;
cout << "Введите число D2 от 0-9: "; cin >> D2;
AddRightDigit (D2, K);
cout << K << endl;
system ("pause");
return 0;
}
void AddRightDigit (int D, int& K) {
K = K*10 + D;
return;
}
9. K musbat butun sonning chap tomoniga D raqamini qo‘shuvchi AddLeftDigit(D, K) protsedurasini tavsiflang (D - butun son tipidagi kirish parametri, 1-9 oralig‘ida yotgan, K - butun sonning parametri. turi, bu ham kirish, ham chiqish). Ushbu protseduradan foydalanib, chapdagi K raqamiga berilgan D_1 va D_2 raqamlarini ketma-ket qo'shing, har bir qo'shish natijasini ko'rsating
. #include
void addleftdigit(int d, int *k){
int temp=10;
while (*k>temp) temp*=10;
*k+=d*temp;
}
int main(void)
{
int i,k;
printf("K:");
scanf("%i", &k);
for(i=1;i<=2;++i){
int d;
printf("D:");
scanf("%i", &d);
addleftdigit(d, &k);
printf("K: %i\n",k);
}
return 0;
}
10. X va Y o'zgaruvchilarning mazmunini o'zgartiruvchi Swap(X, Y) protsedurasini tavsiflang (X va Y - kirish va chiqish bo'lgan haqiqiy parametrlar). Undan foydalanib, berilgan A, B, C, D o'zgaruvchilari uchun quyidagi juftliklarning tarkibini ketma-ket o'zgartiring: A va B, C va D, B va C va A, B, C, D ning yangi qiymatlarini chiqaring.
#include
void swap(float *x, float *y){
*x=*x+*y;
*y=*x-*y;
*x=*x-*y;
}
int main(void)
{
float a,b,c,d;
printf("A:");
scanf("%f", &a);
printf("B:");
scanf("%f", &b);
printf("C:");
scanf("%f", &c);
printf("D:");
scanf("%f", &d);
swap(&a,&b);
swap(&c,&d);
swap(&b,&c);
printf("A:%f; B:%f; C:%f; D:%f;\n",a,b,c,d);
return 0;
}
11. X va Y qiymatlarining minimalini X o'zgaruvchisiga va bu qiymatlarning maksimalini Y o'zgaruvchisiga yozadigan Minmax(X, Y) protsedurasini tavsiflang (X va Y ikkalasi ham haqiqiy parametrlardir. kirish va chiqish). Ushbu protseduraning to'rtta chaqiruvidan foydalanib, berilgan A, B, C, D raqamlarining minimal va maksimalini toping.
#include
void minmax(float *x, float *y){
if (*x>*y){
*x+=*y;
*y=*x-*y;
*x-=*y;
}
}
int main(void)
{
float a,b,c,d;
printf("A:");
scanf("%f", &a);
printf("B:");
scanf("%f", &b);
printf("C:");
scanf("%f", &c);
printf("D:");
scanf("%f", &d);
minmax(&a,&b);
minmax(&c,&d);
minmax(&a,&c);
minmax(&b,&d);
printf("min:%f; max:%f\n",a,d);
return 0;
}
12. SortInc3(A, B, C) protsedurasini tavsiflang, bu A, B, C o'zgaruvchilarning mazmunini ularning qiymatlari o'sish tartibida tartiblangan tarzda o'zgartiradi (A, B, C - ikkalasi ham kiritiladigan haqiqiy parametrlar. va chiqish). Ushbu protseduradan foydalanib, uchta raqamdan iborat ikkita berilgan to'plamni o'sish tartibida tartiblang: (A 1 , B 1 , C 1 ) va (A 2 , B 2 , C 2 ).
# include
# include
# include
# include
# include
using namespace std;
void SortInc3 (double &A, double &B, double &C);
int main ()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
double A1, B1, C1;
for (int i = 1; i<3; ++i) {
cout << "Введите число A1: "; cin >> A1;
cout << "Введите число B1: "; cin >> B1;
cout << "Введите число C1: "; cin >> C1;
SortInc3 (A1, B1, C1);
cout << A1 << " " << B1 << " " << C1 << endl;
}
system ("pause");
return 0;
}
void SortInc3 (double &A, double &B, double &C) {
double a_new, b_new, c_new;
c_new = max(A, max(B,C));
a_new = min(A, min(B,C));
if ((A <= B) && (B <= C) || (C <= B) && (B <= A)) b_new = B;
if ((B <= C) && (C <= A) || (A <= C) && (C <= B)) b_new = C;
if ((C <= A) && (A <= B) || (B <= A) && (A <= C)) b_new = A;
A = a_new;
B = b_new;
C = c_new;
return;
}
13. SortDec3(A, B, C) protsedurasini tavsiflab bering, bu A, B, C o'zgaruvchilari mazmunini ularning qiymatlari kamayish tartibida tartiblangan tarzda o'zgartiradi (A, B, C - har ikkala kiritiladigan haqiqiy parametrlar). va chiqish). Ushbu protseduradan foydalanib, uchta raqamdan iborat ikkita berilgan to'plamni kamayish tartibida tartiblang: (A 1 , B 1 , C 1 ) va (A 2 , B 2 , C 2 ).
#include
void swap(float *x, float *y){
*x=*x+*y;
*y=*x-*y;
*x=*x-*y;
}
void sortdec3(float *a, float *b, float *c){
if (*a<*b) swap(a,b);
if (*a<*c) swap(a,c);
if (*b<*c) swap(b,c);
}
int main(void)
{
int i;
for (i=1;i<=2;++i){
float a,b,c;
printf("A:");
scanf("%f", &a);
printf("B:");
scanf("%f", &b);
printf("C:");
scanf("%f", &c);
sortdec3(&a,&b,&c);
printf("A:%f; B:%f; C:%f\n",a,b,c);
}
return 0;
}
14. O'ngga tsiklik siljishni amalga oshiradigan ShiftRight3(A, B, C) protsedurasini ta'riflang: A qiymati B ga, B qiymati C ga, C qiymati A ga o'tadi (A, B, C ham kirish, ham haqiqiy parametrlardir. chiqish). Ushbu protseduradan ikkita berilgan uchta raqam to'plamida o'ngga tsiklik siljishni amalga oshirish uchun foydalaning: (A 1 , B 1 , C 1 ) va (A 2 , B 2 , C 2 )
. #include
void swap(float *x, float *y){
*x=*x+*y;
*y=*x-*y;
*x=*x-*y;
}
void shiftright3(float *a, float *b, float *c){
swap(a,b);
swap(c,a);
}
int main(void)
{
int i;
for (i=1;i<=2;++i){
float a,b,c;
printf("A:");
scanf("%f", &a);
printf("B:");
scanf("%f", &b);
printf("C:");
scanf("%f", &c);
shiftright3(&a,&b,&c);
printf("A:%f; B:%f; C:%f\n",a,b,c);
}
return 0;
}
15. Chapga tsiklik siljishni amalga oshiradigan ShiftLeft3(A, B, C) protsedurasini tavsiflang: A qiymati C ga, C qiymati B ga, B qiymati A ga o'tadi (A, B, C - haqiqiy parametrlar bo'lib, ular ham kirish, ham kirish parametrlaridir. chiqish). Ushbu protseduradan ikkita berilgan uchta raqam to'plamida chapga tsiklik siljishni amalga oshirish uchun foydalaning: (A 1 , B 1 , C 1 ) va (A 2 , B 2 , C 2 ).
#include
void swap(float *x, float *y){
*x=*x+*y;
*y=*x-*y;
*x=*x-*y;
}
void shiftleft3(float *a, float *b, float *c){
swap(a,b);
swap(c,b);
}
int main(void)
{
int i;
for (i=1;i<=2;++i){
float a,b,c;
printf("A:");
scanf("%f", &a);
printf("B:");
scanf("%f", &b);
printf("C:");
scanf("%f", &c);
shiftleft3(&a,&b,&c);
printf("A:%f; B:%f; C:%f\n",a,b,c);
}
return 0;
}
16. X haqiqiy soni uchun quyidagi qiymatlarni qaytaradigan butun son tipidagi Sign(X) funksiyasini tavsiflang: -1, agar X < 0 bo'lsa; 0, agar X = 0 bo'lsa; 1, agar X > 0. Berilgan A va B haqiqiy sonlar uchun Sign(A) + Sign(B) ifoda qiymatini topish uchun ushbu funksiyadan foydalaning.
#include
int sign(float x){
if (x<0){ return -1;} if (x==0){ return 0;} if (x>0){ return 1;}
}
int main(void)
{
float a,b;
printf("A:");
scanf("%f", &a);
printf("B:");
scanf("%f", &b);
printf("Sign(A)+Sign(B):%i\n",sign(a)+sign(b));
return 0;
}
17. Ax 2 + Bx + C = 0 (A, B, C haqiqiy parametrlar, A ≠ 0) kvadrat tenglamaning ildizlari sonini aniqlaydigan butun son tipidagi RootsCount(A, B, C) funksiyasini tavsiflang . Berilgan koeffitsientli uchta kvadrat tenglamaning har biri uchun ildizlar sonini topish uchun foydalaning. Ildizlar soni diskriminantning qiymati bilan belgilanadi: D = B 2 - 4*A*C.
# include
# include
# include
# include
# include
using namespace std;
int RootsCount (double A, double B, double C);
int main ()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
double A, B, C;
int answer = 0; // количество корней квадратного уравнения
for (int i = 1; i < 4; ++i) {
cout << "Введите число A: "; cin >> A;
cout << "Введите число B: "; cin >> B;
cout << "Введите число C: "; cin >> C;
answer = RootsCount (A, B, C);
cout << "Количество корней квадратного уравнения = " << answer << endl;
}
system ("pause");
return 0;
}
int RootsCount(double A, double B, double C)
{
int res;
double D; // дискриминант
res = 0;
D = B * B -4 * A * C;
if ( D < 0 ) {res = 0;} else if ( D == 0 ) {res = 1;} else if ( D > 0 ) {res = 2;}
return res;
}
18. R radiusli aylana maydonini topadigan haqiqiy turdagi CircleS(R) funksiyasini tavsiflang (R haqiqiy). Bu funksiyadan foydalanib, radiusi berilgan uchta aylananing maydonlarini toping. R radiusli doiraning maydoni S = pR 2 formulasi bilan hisoblanadi . p qiymati sifatida 3.14 dan foydalaning.
#include
float circles(float r){
return 3.14*r*r;
}
int main(void)
{
int i;
for(i=1; i<=3; ++i){
float r;
printf("R:");
scanf("%f", &r);
printf("S:%f\n",circles(r));
}
return 0;
}
19. Umumiy markaz va R 1 va R 2 radiusli ikkita aylana orasiga oʻralgan halqaning maydonini topadigan real turdagi RingS(R 1 , R 2 ) funksiyasini tavsiflang (R 1 va R 2 haqiqiy, R_1 > R_2). ). Undan tashqi va ichki radiuslari berilgan uchta halqaning maydonlarini topish uchun foydalaning. R radiusli doira maydoni uchun formuladan foydalaning: S = pR 2 . p qiymati sifatida 3.14 dan foydalaning.
#include
float rings(float r1, float r2){
return 3.14*(r1*r1-r2*r2);
}
int main(void)
{
int i;
for(i=1; i<=3; ++i){
float r1,r2;
printf("R1:");
scanf("%f", &r1);
printf("R2:");
scanf("%f", &r2);
printf("S:%f\n",rings(r1,r2));
}
return 0;
}
0. Teng yonli uchburchakning asosi a va asosiga chizilgan h balandligi (a va h haqiqiy) asosida uning perimetrini topuvchi TriangleP(a, h) funksiyasini tasvirlab bering. Bu funksiyadan foydalanib, asoslari va balandligi berilgan uchta uchburchakning perimetrlarini toping. Uchburchakning b yon tomonini topish uchun Pifagor teoremasidan foydalaning:
b 2 = (a/2) 2 + h 2 .
#include
#include
float trianglep(float a, float h){
return 2*sqrt(pow(a/2,2)+pow(h,2))+a;
}
int main(void)
{
int i;
for(i=1; i<=3; ++i){
float a,h;
printf("a:");
scanf("%f", &a);
printf("h:");
scanf("%f", &h);
printf("P:%f\n",trianglep(a,h));
}
return 0;
}
21. A dan B gacha bo'lgan barcha butun sonlar yig'indisini topadigan (A va B butun sonlar) butun son tipidagi SumRange(A, B) funktsiyasini tavsiflang. Agar A > B bo'lsa, funktsiya 0 ni qaytaradi. Ushbu funktsiyadan foydalanib, A, B, C raqamlari berilgan bo'lsa, A dan B gacha va B dan C gacha bo'lgan sonlar yig'indisini toping.
#include
int sumrange(int a, int b){
int sum=0;
for (;a<=b;++a){sum+=a;}
return sum;
}
int main(void)
{
int a,b,c;
printf("a:");
scanf("%i", &a);
printf("b:");
scanf("%i", &b);
printf("c:");
scanf("%i", &c);
printf("Sum:%i\n",sumrange(a,b));
printf("Sum:%i\n",sumrange(b,c));
return 0;
}
22. Nolga teng bo'lmagan A va B haqiqiy sonlar ustida arifmetik amallardan birini bajaradigan va uning natijasini qaytaruvchi real turdagi Calc(A, B, Op) funksiyasini tavsiflang. Amaliyot turi Op butun son parametri bilan aniqlanadi: 1 - ayirish, 2 - ko'paytirish, 3 - bo'linish, qolgan qiymatlar qo'shishdir. Calc-dan foydalanib, A va B ma'lumotlari uchun N1, N2, N3 butun ma'lumotlar bilan aniqlangan amallarni bajaring.
#include
float calc(float a, float b, int op){
switch (op) {
case 1:
return a-b;
break;
case 2:
return a*b;
break;
case 3:
return a/b;
break;
default:
return a+b;
break;
}
}
int main(void)
{
int a,b,i;
printf("A:");
scanf("%i", &a);
printf("B:");
scanf("%i", &b);
for (i=1;i<=3;i++){
int n;
printf("N:");
scanf("%i", &n);
printf("Rez:%f\n",calc(a,b,n));
}
return 0;
}
23. Haqiqiy koordinatalari (x, y) nolga teng bo‘lmagan nuqta joylashgan koordinata choragining sonini aniqlaydigan butun son tipidagi Quarter(x, y) funksiyasini tavsiflang. Ushbu funktsiyadan foydalanib, koordinatalari nolga teng bo'lmagan uchta nuqta uchun koordinata choraklari sonini toping.
#include
int quarter(float x, float y){
if ((x>0)&&(y>0)){return 1;}
if ((x<0)&&(y>0)){return 2;}
if ((x<0)&&(y<0)){return 3;} if ((x>0)&&(y<0)){return 4;}
}
int main(void)
{
int i;
for (i=1; i<=3; ++i){
float x,y;
printf("X:");
scanf("%f", &x);
printf("Y:");
scanf("%f", &y);
printf("Quarter:%i\n",quarter(x,y));
}
return 0;
}
24. Agar butun son parametr K juft bo'lsa, True, aks holda False qiymatini qaytaradigan Even(K) mantiqiy funksiyani yozing. Undan 10 ta butun sonlar toʻplamidagi juft sonlar sonini topish uchun foydalaning.
#include
int even(int k){
return k%2?0:1;
}
int main(void)
{
int i,res=0;
for (i=1; i<=10; ++i){
int k;
printf("K:");
scanf("%i", &k);
res+=even(k);
}
printf("Res: %i\n",res);
return 0;
}
25. Agar butun son parametri K (> 0) ba'zi bir butun sonning kvadrati bo'lsa, True qiymatini qaytaradigan IsSquare(K) mantiqiy funksiyani yozing, aks holda False. Undan 10 ta musbat butun sonlar toʻplamidagi kvadratlar sonini topish uchun foydalaning.
#include
#include
#include
#include
using namespace std;
bool IsSquare(int K);
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int n = 1;
int num = 0;
int K;
int q;
ifstream in ("Proc25.txt");
cout << "Набор чисел: "; while (in >> K) {
cout << K << " "; if (K>0) {
q = IsSquare(K);
num += q;
++n;
}
}
cout << endl;
cout << "Количество квадратов натуральных чисел в наборе = " << num << endl;
system ("pause");
return 0;
}
bool IsSquare(int K)
{
for(int i=1; i*i<=K; ++i) {
if (i*i==K) return true;
}
}
26. Agar butun son parametri K (> 0) 5 ga teng bo‘lsa, True, aks holda False qiymatini qaytaradigan mantiqiy IsPower5(K) funksiyasini yozing. Undan 10 ta musbat sonlar to‘plamidagi 5 ning darajalari sonini toppish uchun foydalaning
# include
# include
# include
# include
# include
using namespace std;
bool IsPower5(int K);
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int answer = 0;
int K;
ifstream in ("Proc26.txt");
cout << "Набор чисел: "; while (in >> K) {
cout << K << " "; if (K>0) {
if (IsPower5(K)) ++answer;
}
}
cout << endl;
cout << "Количество степеней числа 5 в наборе = " << answer << endl;
in.close();
system ("pause");
return 0;
}
bool IsPower5 (int K)
{
int i = 1;
while (i i*=5;
}
return i == K;
}
. 27. Agar butun son parametri K (> 0) N (> 1) darajasida bo‘lsa, True, aks holda False qiymatini qaytaruvchi IsPowerN(K, N) mantiqiy funksiyani yozing. N soni (> 1) va 10 ta musbat sonlar toʻplami berilgan. IsPowerN funksiyasidan foydalanib, berilgan to‘plamdagi N ning quvvatlar sonini toping.
#include
int ispowern5(int k, int n){
float temp=k;
for (;temp>=n; temp/=n);
return temp==1;
}
int main(void)
{
int i, n, res=0;
printf("N:");
scanf("%i", &n);
for (i=1; i<=10; ++i){
int k;
printf("K:");
scanf("%i", &k);
res+=ispowern5(k,n);
}
printf("Res: %i\n",res);
return 0;
}
28. Agar butun son parametri N (> 1) tub son bo‘lsa, True qiymatini qaytaruvchi IsPrime(N) mantiqiy funksiyasini ta’riflang, aks holda False (agar 1 va o‘zidan boshqa musbat bo‘luvchilar bo‘lmasa, 1 dan katta son tub deb ataladi). 1 dan katta 10 ta butun sonlar toʻplami berilgan. IsPrime funksiyasidan foydalanib, ushbu toʻplamdagi tub sonlar sonini toping.
#include
int isprime(int n){
int i=1;
while(n%++i!=0);
return i==n;
}
int main(void)
{
int i, n, res=0;
for (i=1; i<=10; ++i){
printf("N:");
scanf("%i", &n);
res+=isprime(n);
}
printf("Res: %i\n",res);
return 0;
}
29. K musbat butun sonning raqamlari sonini topuvchi DigitCount(K) butun son funksiyasini yozing. Bu funksiyadan foydalanib, berilgan beshta musbat sonning har biri uchun raqamlar sonini toping.
#include
int digitcount(int k){
int i=1;
for(;k>=10;i++) k/=10;
return i;
}
int main(void)
{
int i, k;
for (i=1; i<=5; ++i){
printf("K:");
scanf("%i", &k);
printf("count: %i\n",digitcount(k));
}
return 0;
}
30. K musbat butun sonining N-raqamini qaytaruvchi (sondagi raqamlar o‘ngdan chapga raqamlangan) butun son tipidagi DigitN(K, N) funksiyasini tavsiflang. Agar K sonidagi raqamlar soni N dan kichik bo'lsa, funktsiya -1 ni qaytaradi. Berilgan beshta K1, K2, ..., K5 musbat sonlarning har biri uchun N 1 dan 5 gacha o‘zgarib turadigan parametrli DigitN funksiyasini chaqiring.
#include
int digitn(int k, int n){
int i=1;
for(i=1; i<=n-1; i++) k/=10;
if (k!=0) return k%10;
else return -1;
}
int main(void)
{
int i, k;
for (i=1; i<=5; ++i){
printf("K:");
scanf("%i", &k);
int i2;
for (i2=1;i2<=5;++i2)
printf("DigitN: %i\n",digitn(k,i2));
}
return 0;
}
31. Agar butun son parametri K (> 0) palindrom bo‘lsa (ya’ni uning yozuvi chapdan o‘ngga va o‘ngdan chapga bir xil o‘qiladi), aks holda “False” qiymatini qaytaruvchi IsPalindrom(K) funksiyani yozing. Undan 10 ta musbat sonlar to‘plamidagi palindromlar sonini topish uchun foydalaning. Funktsiyani tavsiflashda siz Proc29 va Proc30 dan DigitCount va DigitN funksiyalaridan foydalanishingiz mumkin .
# include
# include
# include
# include
# include
using namespace std;
bool IsPalindrom(int k);
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int k;
int answer = 0; // Количество палиндромов в наборе
int q;
ifstream in ("Proc31.txt");
cout << "Набор чисел: "; while (in >> k) {
cout << k << " "; if (k>0) {
q = IsPalindrom(k);
answer += q;
}
}
cout << endl;
cout << "Количество палиндромов в наборе = " << answer << endl; system ("pause"); return 0; } bool IsPalindrom(int k) { int k1 = k; // снимаем копию с числа k int k2; int k_ = 0;// запись числа с обратной стороны // bool an; while (k1>0) {
k2 = k1%10;
k_ = k_*10+k2;
k1 = k1/10;
}
return k_ == k;
// an = k_ == k;
// return (an);
}
32. DegToRad(D) real tipdagi funksiyani tasvirlab bering, uning D qiymatini gradusda (D haqiqiy son, 0 < D < 360) hisobga olgan holda burchakning radiandagi qiymatini topadi. Quyidagi munosabatdan foydalaning: 180 ° = p radian. p qiymati sifatida 3.14 dan foydalaning. DegToRad funksiyasidan foydalanib, berilgan beshta burchakni darajadan radianga aylantiring.
#include
float degtorad(float d){
return d*3.14/180;
}
int main(void)
{
int i;
float d;
for (i=1; i<=5; ++i){
printf("D:");
scanf("%f", &d);
printf("rad: %f\n",degtorad(d));
}
return 0;
}
33. Burchakning qiymatini gradusda topadigan, uning radiandagi R qiymatini (R - haqiqiy son, 0 < R < 2*p) hisobga olgan holda, haqiqiy turdagi RadToDeg(R) funksiyasini tavsiflang. Quyidagi munosabatdan foydalaning: 180 ° = p radian. p qiymati sifatida 3.14 dan foydalaning. RadToDeg funksiyasidan foydalanib, berilgan beshta burchakni radiandan gradusga aylantiring.
#include
float radtodeg(float r){
return 180*r/3.14;
}
int main(void)
{
int i;
float r;
for (i=1; i<=5; ++i){
printf("R:");
scanf("%f", &r);
printf("deg: %f\n",radtodeg(r));
}
return 0;
}
34. faktorial N qiymatini hisoblaydigan real tipdagi Fact(N) funksiyani tavsiflang! = 1*2*…*N (N > 0 - butun son tipidagi parametr; haqiqiy qaytish qiymati N ning katta qiymatlari uchun butun son to'lib ketishining oldini olish uchun ishlatiladi). Berilgan beshta butun sonning faktoriallarini topish uchun ushbu funksiyadan foydalaning.
#include
float fact(int n){
int temp=1,i;
for(i=1;i<=n;++i) temp*=i;
return temp;
}
int main(void)
{
int i, n;
for (i=1; i<=5; ++i){
printf("N:");
scanf("%i", &n);
printf("fact: %f\n",fact(n));
}
return 0;
}
35. Ikki faktorialni hisoblaydigan haqiqiy turdagi Fact2(N) funksiyasini tavsiflang:
N!! = 1*3*5*…*N, agar N toq boʻlsa;
N!! = 2*4*6*…*N, agar N juft boʻlsa
(N > 0 - butun son tipidagi parametr; haqiqiy qaytish qiymati N ning katta qiymatlari uchun butun son to'lib ketishining oldini olish uchun ishlatiladi). Berilgan beshta butun sonning juft faktoriallarini topish uchun ushbu funksiyadan foydalaning.
#include
float fact2(int n){
int temp=1;
for (;n>0;n-=2) temp*=n;
return temp;
}
int main(void)
{
int i, n;
for (i=1; i<=5; ++i){
printf("N:");
scanf("%i", &n);
printf("fact: %f\n",fact2(n));
}
return 0;
}
36. Quyidagi formulalar bilan tavsiflangan Fibonachchi raqamlari F K ketma-ketligining N-elementini hisoblab, butun son tipidagi Fib(N) funksiyasini tavsiflang : F 1 = 1,F 2 = 1, F K = F K-2 + F K-1 , K = 3, 4, … . Fib funksiyasidan foydalanib, N 1 , N 2 , ..., N 5 raqamlari berilgan beshta Fibonachchi raqamini toping .
#include
using namespace std;
int fib(int n){
int fk, fk1=1, fk2=1;
int i;
for (i=3;i<=n; ++i) {
fk=fk2+fk1;
fk2=fk1;
fk1=fk;
}
return fk;
}
int main()
{
int i, n;
for (i=1; i<=5; ++i){
cout << "N = ";
cin >> n;
cout << "fib = " << fib(n) << endl;
}
return 0;
}
37. A B = exp(B*ln(A)) formulasi yordamida A B qiymatini topadigan haqiqiy turdagi Power1(A, B) funksiyani tavsiflang (A va B parametrlari haqiqiy). Nol yoki manfiy parametr A bo'lsa, funktsiya 0 ni qaytaradi. Ushbu funktsiyadan foydalanib, P , A , B , C raqamlari berilgan bo'lsa, A P, B P, C P darajalarini toping.
#include
#include
float power1(float a, float b){
return a<=0?0:exp(b*log(a));
}
int main(void)
{
float p,a,b,c;
printf("P:");
scanf("%f", &p);
printf("A:");
scanf("%f", &a);
printf("B:");
scanf("%f", &b);
printf("C:");
scanf("%f", &c);
printf("power1: %f\n",power1(a,p));
printf("power1: %f\n",power1(b,p));
printf("power1: %f\n",power1(c,p));
return 0;
}
38. Quyidagi formulalar yordamida A N (A haqiqiy parametr, N butun parametr) qiymatini topadigan haqiqiy turdagi Power2(A, N) funksiyasini tavsiflang :
A 0 = 1;
A N = A*A*…*A (N omil), agar N > 0 bo‘lsa;
A N = 1/(A*A*…*A) (|N| omillar), agar N < 0 boʻlsa.
Bu funksiyadan foydalanib, A , K , L , M raqamlari berilgan bo‘lsa, A K, A L, A M toping.
#include
#include
float power2(float a, int n){
float temp=1;
int i;
for (i=1; i<=abs(n); ++i) temp*=a;
return n<0?1/temp:temp;
}
int main(void)
{
float a;
printf("A:");
scanf("%f", &a);
int k,l,m;
printf("K: ");
scanf("%i", &k);
printf("L: ");
scanf("%i", &l);
printf("M: ");
scanf("%i", &m);
printf("power2: %f\n",power2(a,k));
printf("power2: %f\n",power2(a,l));
printf("power2: %f\n",power2(a,m));
return 0;
}
39. Power1 va Power2 funksiyalaridan ( Proc37 va Proc38 muammolari) foydalanib, A B ni topadigan real parametrlarga ega haqiqiy turdagi Power3(A, B) funksiyasini quyidagicha ta’riflang: agar B nol kasr qismiga ega bo‘lsa, Power2(A, Raund(B) deyiladi); aks holda Power1(A, B) funksiyasi chaqiriladi. Ushbu funktsiyadan foydalanib, agar P , A , B , C raqamlari berilgan bo'lsa, A P, B P, C P toping.
#include
#include
float power1(float a, float b){
return a<=0?0:exp(b*log(a));
}
float power2(float a, int n){
float temp=1;
int i;
for (i=1; i<=abs(n); ++i) temp*=a;
return n<0?1/temp:temp;
}
float power3(float a, float b){
if (fmod(b,1)==0) return power2(a, (int)b);
else return power1(a,b);
}
int main(void)
{
float p,a,b,c;
printf("P:");
scanf("%f", &p);
printf("A: ");
scanf("%f", &a);
printf("B: ");
scanf("%f", &b);
printf("C: ");
scanf("%f", &c);
printf("power3: %f\n",power3(a,p));
printf("power3: %f\n",power3(b,p));
printf("power3: %f\n",power3(c,p));
return 0;
}
40. Exp(x) funksiyaning taxminiy qiymatini topuvchi real tipdagi (x, \epsilon parametrlari real, \epsilon > 0) Exp1(x, \epsilon) funksiyani tavsiflang: exp(x) = 1 + x + x ^2/(2 !) + x^3/(3!) + … + x^n/(n!) + … (n! = 1*2*…*n). Umuman olganda, \epsilon dan kattaroq barcha shartlarni hisobga oling. Exp1 dan foydalanib, olti berilgan \epsilon berilgan x uchun ko'rsatkichning taxminiy qiymatini toping.
#include
float exp1(float x, float e){
float xi=1,ni=1,rez=0,temprez=1;
int i=0;
while(temprez>e){
rez+=temprez;
++i;
xi*=x;
ni*=i;
temprez=xi/ni;
}
return rez;
}
int main(void)
{
float x,e;
printf("X:");
scanf("%f", &x);
int i;
for(i=1;i<=6;++i){
printf("E: ");
scanf("%f", &e);
printf("Exp: %f\n",exp1(x,e));
}
return 0;
}
41. sin(x, e) funksiyaning taqribiy qiymatini topadigan haqiqiy turdagi (x, e parametrlari haqiqiy, e > 0) Sin1(x, e) funksiyani tavsiflang:
sin(x) = x — x 3 /(3!) + x 5 /(5!) — … + (-1) n *x 2*n+1 /((2*n+1)!) + … .
Hammasi bo'lib moduli \epsilon dan katta bo'lgan barcha shartlarni hisobga oling. Sin1 dan foydalanib, olti berilgan e uchun berilgan x uchun sinusning taxminiy qiymatini toping.
#include
float sin1(float x, float e){
float xi=x,ni=1,rez=0,temprez=x;
int i=1,znak=1;
while(temprez > e){
temprez=xi/ni;
rez+=znak*temprez;
znak*=-1;
xi*=x;
xi*=x;
++i;
ni*=i;
++i;
ni*=i;
printf("%f\n%f\n",xi,ni);
}
return rez;
}
int main(void)
{
float x,e;
printf("X:");
scanf("%f", &x);
int i;
for(i=1;i<=6;++i){
printf("E: ");
scanf("%f", &e);
printf("Sin: %f\n",sin1(x,e));
}
return 0;
42. cos(x) funksiyaning taqribiy qiymatini topadigan haqiqiy turdagi (x, e parametrlari haqiqiy, e > 0) Cos1(x, e) funksiyani tavsiflang:
cos(x) = 1 — x 2 /(2!) + x 4 /(4!) — … + (-1) n *x 2*n /((2*n)!) + … .
Hammasi bo'lib moduli e dan katta bo'lgan barcha shartlarni hisobga oling. Cos1 dan foydalanib, berilgan olti e uchun berilgan x uchun taxminiy kosinus qiymatini toping.
#include
#include
float cos1(float x, float e){
float cos1_n=1,rez=0;
int i=0;
while (fabs(cos1_n)>e){
rez+=cos1_n;
++i;
cos1_n*=-x*x/((2*i-1)*(2*i));
}
return rez;
}
int main(void)
{
float x,e;
printf("X:");
scanf("%f", &x);
int i;
for(i=1;i<=6;++i){
printf("E: ");
scanf("%f", &e);
printf("Cos: %f\n",cos1(x,e));
}
return 0;
}
43. Funksiyaning taxminiy qiymatini topuvchi real tipdagi (x, e parametrlari haqiqiy, |x| < 1, e > 0) Ln1(x, e) funksiyani tavsiflang. ln(1 + x): ln(1 + x) = x - x 2 /2 + x 3 /3 - ... + (-1) n *x n+1 /(n+1) + ... . Hammasi bo'lib moduli e dan katta bo'lgan barcha shartlarni hisobga oling. Ln1 dan foydalanib, berilgan olti e uchun berilgan x uchun ln(1 + x) ning taxminiy qiymatini toping.
#include
#include
float ln1(float x, float e){
float ln1_n=x,rez=0;
int i=0;
while (fabs(ln1_n/(i+1))>e){
rez+=ln1_n/(i+1);
++i;
ln1_n*=-x/(i+1);
}
return rez;
}
int main(void)
{
float x,e;
printf("X:");
scanf("%f", &x);
int i;
for(i=1;i<=6;++i){
printf("E: ");
scanf("%f", &e);
printf("Ln: %f\n",ln1(x,e));
}
return 0;
}
44. Arctg(x) funksiyaning taqribiy qiymatini topuvchi real tipdagi (x, e parametrlari haqiqiy, |x| < 1, e > 0) Arctg1(x, e) funksiyani tavsiflang: arctg(x) = x - x 3 / 3 + x 5 /5 - ... + (-1) n *x 2*n+1 /(2*n+1) + ... . Hammasi bo'lib moduli e dan katta bo'lgan barcha shartlarni hisobga oling. Arctg1 dan foydalanib, olti berilgan e uchun berilgan x uchun arctg(x) ning taxminiy qiymatini toping.
# include
# include
# include
# include
# include
using namespace std;
double Arctg1(double x, double e);
int main ()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
ifstream in ("Proc44.txt");
double x, e;
double answer; // приближенное значение функции arctg(x)
cout << "Введите число x (|x|<1): "; cin >> x;
cout << '\t' << "Стандартное значение фунцкции arctg(x): " << atan(x) << endl;
for (int i=1; i < 7; ++i) {
cout << "Число e (e>0): ";
in >> e;
cout << e << " ";
answer = 0;
answer = Arctg1(x, e);
cout << '\t' << "Приближенное значение функции arctg(x): " << answer << endl; } system ("pause"); return 0; } double Arctg1( double x, double e) { int i; double sum,Step; Step = x; sum = x; i = 1; while (abs(Step*x * x / -(i*2+1)) >= e){
Step *= -(x * x);
sum += Step / (i*2+1);
i++;
}
return sum;
}
45. Haqiqiy tipdagi Power4(x, a, e) funksiyani tavsiflang (x, a, e parametrlari haqiqiy, |x| < 1; a, e> 0), (1 + x) a funksiyaning taqribiy qiymatini toping. : (1 + x ) a = 1 + a*x + a*(a-1)*x 2 /(2!) + … + a*(a-1)*…*(a-n+1)* x n /(n!) + … .
#include
#include
float power4(float x, float a ,float e){
float power4_n=1,rez=0;
int i=0;
while (fabs(power4_n)>e){
rez+=power4_n;
++i;
power4_n*=x*(a-i+1)/i;
}
return rez;
}
int main(void)
{
float x,a,e;
printf("X:");
scanf("%f", &x);
printf("A:");
scanf("%f", &a);
int i;
for(i=1;i<=6;++i){
printf("E: ");
scanf("%f", &e);
printf("(1+x)^a: %f\n",power4(x,a,e));
}
return 0;
}
46. Evklid algoritmidan foydalangan holda ikkita musbat A va B butun sonlarning eng katta umumiy boʻluvchisini (GCD) topadigan NOD2(A, B) butun son funksiyasini tavsiflang: GCD(A, B) = GCD(B, A mod B), agar B boʻlsa. ≠ 0; GCD(A, 0) = A. Bu funksiyadan foydalanib, (A, B), (A, C), (A, D) juftlarining eng katta umumiy boʻluvchilarini toping, agar A, B, C, D raqamlari boʻlsa berilgan.
#include
int nod2(int a ,int b){
while ((a!=0)&&(b!=0)){
if (a>b) a%= b;
else b%=a;
}
return a+b;
}
int main(void)
{
int a,b,c,d;
printf("A:");
scanf("%i", &a);
printf("B:");
scanf("%i", &b);
printf("C:");
scanf("%i", &c);
printf("D:");
scanf("%i", &d);
printf("NOD2(A,B): %i\n",nod2(a,b));
printf("NOD2(A,C): %i\n",nod2(a,c));
printf("NOD2(A,D): %i\n",nod2(a,d));
return 0;
}
47. Proc46 topshirig'idagi NOD2 funksiyasidan foydalanib, a/b kasrni p/q ko'rinishiga qaytaruvchi Frac1(a, b, p, q) protsedurasini tavsiflang (protseduraning barcha parametrlari butun son tipidagi a va b - kirish, p va q - chiqish). Natijadagi p/q kasrning belgisi hisoblagichga beriladi (ya’ni q > 0). Frac1 yordamida a/b + c/d, a/b + e/f, a/b + g/h (a, b, c, d, e, f, g, h raqamlari) ga teng kamaytirilmaydigan kasrlarni toping. beriladi).
#include
int nod2(int a ,int b){
while ((a!=0)&&(b!=0)){
if (a>b) a%= b;
else b%=a;
}
return a+b;
}
void frac1(int a,int b, int *p, int *q){
*p=a/nod2(a,b);
*q=b/nod2(a,b);
}
int main(void)
{
int a,b,c,d,e,f,g,h,rez1,rez2;
printf("A:");
scanf("%i", &a);
printf("B:");
scanf("%i", &b);
printf("C:");
scanf("%i", &c);
printf("D:");
scanf("%i", &d);
printf("E:");
scanf("%i", &e);
printf("F:");
scanf("%i", &f);
printf("G:");
scanf("%i", &g);
printf("H:");
scanf("%i", &h);
frac1(a*d+c*b,b*d,&rez1,&rez2);
printf("%i/%i\n",rez1,rez2);
frac1(a*f+e*b,b*f,&rez1,&rez2);
printf("%i/%i\n",rez1,rez2);
frac1(a*h+g*b,b*h,&rez1,&rez2);
printf("%i/%i\n",rez1,rez2);
return 0;
}
48. A va B ikkita musbat butun sonlarning eng kichik umumiy karrali A*(B/GCD(A, B)) ekanligini hisobga olsak, bu yerda GCD(A, B) A va B ning eng katta umumiy bo‘luvchisidir va NOD2 funksiyasidan foydalanib: Proc46, butun son tipidagi NOK2(A, B) funksiyasini tasvirlab bering, u A va B sonlarning eng kichik umumiy karralisini topadi. NOK2 dan foydalanib (A, B), (A, C), (A) juftlarining eng kichik umumiy karralilarini toping. , D), agar A raqamlari berilgan bo'lsa, B, C, D.
include
int nod2(int a ,int b){
while ((a!=0)&&(b!=0)){
if (a>b) a%= b;
else b%=a;
}
return a+b;
}
int nok2(int a ,int b){
return a*(b/nod2(a,b));
}
int main(void)
{
int a,b,c,d;
printf("A:");
scanf("%i", &a);
printf("B:");
scanf("%i", &b);
printf("C:");
scanf("%i", &c);
printf("D:");
scanf("%i", &d);
printf("NOK(a,b): %i\n", nok2(a,b));
printf("NOK(a,c): %i\n", nok2(a,c));
printf("NOK(a,d): %i\n", nok2(a,d));
return 0;
}
|
| |