.


:




:

































 

 

 

 


Müstəqil işləmək üçün tapşırıqlar




1. Tənliyi həll edin: 8x (bit) = 32 (Kbayt).

2. Tənliklər sistemini həll edin:

3. Aşağıdakı riyazi ifadələri C/C++ proqramlaşdırma dilində yazın:

a)

b) ;

c)

d) ;

e) ;

f) ;

g) ;

h) ;

i) ;

j) ;

k) ;

 

4. x dəyişəninə -1,5 qiymətini mənimsədən ifadə yazın.

5. Sum dəyişəninə sıfır qiyməti mənimsədən ifadə yazın.

6. Silindirin səthinin sahəsini və həcmini hesablamaq üçün lazım olan dəyişənlərin elan edilməsi və mənimsətmə konstruksiyalarını yazın.

7. C/C++ proqramlaşdırma dili məlumatını ekrana çıxaran operator yazın.

8. Aşağıdakı operatorlardan hansı ifadəsinin C/C++ dilində yazılışıdır?

a)

b)

c)

9. Üç tam ədədin klaviaturadan daxil edilməsi və onların x, y, c dəyişənlərində yadda saxlanılması üçün operator yazın.

10. Aşağıdakı operatorları riyazi dildə ifadə edin:

a) 2*b*c*cos(a/2)/(b+c);

b) a/sin(b);

c) abs(2*sin(-3*abs(x/2)));

d) (a+b)/(b+c);

e) (a*x+b)/(c*x+d);

f) 4*r*sin(a/2)*sin(b/2)*sin(c/2).

 

 

4. Xətti və budaqlanan alqoritmlərin proqramlaşdırılması

4.1. Xətti alqoritmlərin proqramlaşdırılması

 

Proqramlar xətti,budaqlanan, dövrimürəkkəb olurlar.

Xətti proqramlar operatorlar əvvəldən axıradək bir-birinin ardınca yerinə yetirilirlər (təkrar olunmayaraq və yerinə yetirilmə ardıcıllığını dəyişmədən).

Xətti proqramlara mənimsətmə operatorları, riyazi funksiyalar, hesab əməlləri və giriş/çıxışla bağlı funksiyalar və operatorların ardıcıllığını pozmayan digər operatorlar daxildir. C/C++ dilində istifadə olunan bəzi riyazi funksiyalar Cədvəl 4.1-də verilmişdir.

Cədvəl 4.1. C/C++ dilində istifadə olunan riyazi funksiyalar.

 

Funksiyanın adı Funksiyanın işarəsi   Tip Təsvir faylının adı
Qayta-rılan qiymət Arqu-ment  
mütləq qiymət   arkkosinus arksinus arktangens kosinus sinus ex xy qüv. f-sı natural loq onluq loq kvarat kök tangens abs(x) cabs(x) fabs(x) acos(x) asin(x) atan(x) cos(x) sin(x) exp(x) pow(x,y) log(x) log10(x) sqrt(x) tan(x) int double float double double double double double double double double double double double int double float double double double double double double double double double double double <stdlib.h> <math.h> <math.h> <math.h> <math.h> <math.h> <math.h> <math.h> <math.h> <math.h> <math.h> <math.h> <math.h> <math.h>

4.2. Giriş/çıxış operatorları

Standart C-də giriş/ çıxış üçün printfscanf işlədilir. C++-da isə uyğun olaraq coutcin işlədilir.

printf funksiyasının sintaksisi belədir:

printf (idarəedici sətir, [arqumentlərin siyahisi])

Arqumentlərin siyahısı sabitlər, dəyişənlər və ya ifadələr ardıcıllığıdır; onların qiymətləri displeyin ekranına çıxarılır (idarəedici sətrin formatı ilə). Məsələn,

printf ( i=%d, \n j=%d, a=% 6.2 f.\n, i, j, a);

Əgər

i=1234, j=127, a= 86.531 olarsa, ekranda

i=1234,

j=127, a= 86.53

görərik.

Idarəedici sətir 3 növ obyektə malikdir:

- adi simvollar (ekrana dəyişdirilmədən çıxarılır);

- çevrilmə spesifikatorları (bunlardan hər birisi arqumentlərin sonrakı siyahısından ekrana növbəti arqumentin qiymətinin çıxarılmasını yaradır);

- idarəedici simvol sabitlər.

Hər bir çevrilmə spesifikası % simvolu ilə başlayır və çevrilmə simvolu ilə qurtarır. Onların arasında aşağıdakılar yazıla bilər:

-minus işarəsi, onu göstərir ki, çıxarılan mətn sol sərhədlə bərabərləşir (susmaya görə sağ sərhədlə bərabərləşir);

-çıxarış sahəsinin minimal ölçüsünü verən rəqəmlər sətri;

-bölgü işarəsi olan nöqtə;

-çıxışın dəqiqliyini verən rəqəmlər sətri.

Çevrilmə simvolları aşağıdakılardır:

d- arqument onluq göstərilişə çevrilir;

o- arqument səkkizlik göstərilişə çevrilir;

x- arqument 16-lığa çevrilir;

c- arqumentin qiyməti simvoldur;

s- arqumentin qiyməti simvollar sətridir;

e- arqumentin qiyməti sürüşkən vergüllü formada float və ya double tipdir;

f- arqumentin qiyməti sabit vergüllü formada float və ya double tipdir;

g- f və ya e formatlarından biridir;

u- arqumentin qiyməti işarəsiz tam ədəddir;

p- arqumentin qiyməti göstəricidir (ünvan).

Məsələn, onluq tam ədədləri aşağıdakı üsullarla ekrana çıxara bilərik:

programın fraqmentinəticə:

i = 5;

printf("%d",i); 5

printf("'i=%d",i); i=5

printf("i=");

printf("%d",i); i=5

printf("i=\n"); i=

printf("%d",i); 5 alt sətrə keçir

printf('i=%d\n",i); i=5 alt sətrə keçir

printf("%d - %d",i, 5*i); 5 - 25

Simvolları ekrana çıxarmaq üçün:

s = "ABCDEF"

printf("%10s ",s);.... A B C D E F

printf("%10.3s ",s);....... A B C

Həqiqi ədədləri isə belə formatla verə bilərik:

x = 128.5;

printf("%6.2f",x); 128.50

x = 85.47;

printf("%6.3f",x); 85.470

printf("%4.1f",x); 85.5

Beləliklə, idarəedici sətir arqumentin sayını və tipini təyin edir. Aşağıdakı cədvəldə verilmiş idarəedici simvollar tez-tez istifadə olunur:

Cədvəl 4.2.

  16-lıqda 8-likdə   ASCII
'\0' '\x0' '\0' NULL simvolu  
'\a' '\x7' '\07' səs siqnalı (alert)  
'\b' '\x8' '\010' kursoru bir addım dala qaytarmaq (back space)  
'\t' '\x9' '\011' üfüqi cədvəlqurma (tab)  
'\n' '\xA' '\012' aşağı sətir (new line)  
'\v' '\xB' '\013' Şaquli cədvəlqurma (vertical tab)  
'\f' '\xC' '\014' Səhifə (form feed)  
'\r' '\xD' '\015' Sətir başı (carriage return)  
'\"' '\x22' '\042' qoşa dırnaq (double quote)  
'\\' '\x5C' '\134' əks sleş (back slash)  

 

scanf funksiyası da printf funksiyası kimi təsvir olunur.

scanf ( idarəedici_ sətir,arqumentlər_siyahısı);

Arqumentlər üyğun qiymətlərə göstəricilər olmalıdır, bunun üçün dəyişənin adının qarşısında & simvolu yazılır. İdarəedici sətir çevrilmə spesifikasiyalarına malikdir və arqumentlərin tipləri və sayların təyini üçün istifadə olunur (printf - ə anoloji olaraq).

scanf( % d % f % c % s, &i, &a, &ch, r);

Burada r - simvollar sətridir, onun özü göstərici olduğundan qarşısında & (ampersand) işarəsi qoyulmur.

İdarədəedici sətirdə probel, cədvəlqurma və yeni sətrə keçmə simvolları istifadə etmək olar. Çıxışda onlar inkar edilir.

Əgər klaviaturadan daxil edilərkən verilənlər bölgü işarələri (məsələn, vergül) ilə ayrılırsa, onda idarəedici sətirdə də çevirmə spesifikaları bu işarə ilə ayrılmalıdır.

C++ -da giriş/çıxış baytların axını kimi icra olunur. Giriş/çıxışın geniş spektrdə emalı üçün iostream kitabxanasında çoxlu sayda funksiyalar və siniflər təyin olunmuşdur. Çıxış üçün istifadə olunan cout (the standard output stream - standart çıxış axını, si-aut kimi oxunur)funksiyası aşağıdakı kimi təsvir olunur:

cout<<dəyişən<<endl;

burada << - axına yerləşdirmə əməliyyatı adlanır. endl (end line sətrin sonu söz birləşməsinin abbreviaturasıdır) - axının manipulyatoru adlanır. ; isə operatorun sonunu ifadə edir.

Giriş üçün cin (the standard input stream - standart giriş axını, si-in kimi oxunur) operatoru aşağıdakı kimi təsvir olunur:

cin >>dəyişən;

>> - axından götürmə əməliyyatı adlanır.

Misal 4.1. ifadələrini hesablayan proqram.

#include <stdio.h>

#include<conio.h>

#define a 3.1

void main()

{

double s,v;

float R,r;

printf("R ve r- i daxil edin:\n");

scanf ("%f%f",&R,&r);

s=4*a*(R*R+r);

v=4*a*(R*R*R-r*r)/3;

printf("s=%4.3f\nv= %3.2f ",s,v);

getch();

}

Alınmışnəticə:

 

 

 

4.3. Budaqlanan alqoritmlərin proqramlaşdırılması

Rt operatoru

Ümumi formatı belədir:

a) əgər şərtin (ifadənin) doğru olduğu zaman yerinə yetirilən operator təkdirsə:

if (ifadə) operator;

b) əgər belə operatorlar bir neçədirsə:

if (ifadə) { operator 1;

operator2;

- - - - - - - - - - - -

operator n; }

 

Bu halda ifadə qiyməti tam qiymətə gətirilə bilən ixtiyari ifadədir. Əgər onun qiyməti sıfırdan fərqlidirsə (doğrudursa), onda operator yerinə yetirilir.

İfadəni müəyyən qiymətlə müqayisə edərkən münasibət operatorlarından (== və ya!=) istifadə etmək lazımdır.

if (ifadə = = qiymət) operator;

və ya

if (ifadə!= qiymət) operator;

Burada operator sadə və ya mürəkkəb ola bilər.

Qeyd 1. if (ifadə!=0) operator;

operatoru

if (ifadə) operator;

operatoruna ekvivalentdir.

Qeyd 2. if (ifadə=qiymət) operator; yazmaq olmaz, çünki = işarəsi mənimsətmə əməliyyatını göstərir.

Şərti göstərən ifadə kiçik mötərizədə yazılır. if operatoru iki budağa malikdir, onlardan biri alternativ olur. Belə sxem şaxələnmə adlanır. Şaxələnmə strukturunun təşkili üçün else operatoru istifadə olunur. O, if operatorunun genişlənməsi və ya onun alternativ hissəsidir:

- əgər ifelse dən sonra sadə (tək) operatorlar gəlirsə:

if(ifadə) operator1;

else operator2;

- əgər operatorlar mürəkkəbdirsə:

if (ifadə) {operator 1;

operator 2;

}

else {operator 3;

operator 4;

}

if operatorunun daxili operatorları olaraq istənilən operatorlar, həmçinin şərt operatorları istifadə olunur:

if(ifadə 1)

operator 1;

else if (ifadə 2)

operator 2;

else if (ifadə 3)

operator 3;

....

else if (ifadə n)

operator n;

else // məcburi olmayan hissə

operator_ susmaya_ görə;

Bu cür konstruksiyalarda else hissəsi əvvəlki ən yaxın if -lə əlaqələndirilir (else hissəsi olmayan).

Qeyd 3. if else operatorunu onun funksional qiymətini dəyişməyərək daha kompakt yazmaq olar. Bu halda o, şərt ifadəsi adlanır:

ifadə 1? ifadə 2; ifadə 3;

Proqram ifadə 1 i hesablayır: əgər o, yalandırsa, ifadə 2 yerinə yetirilir; əgər o da yalandırsa, ifadə 3 yerinə yetirilir. Bu isə tamamilə

if (ifadə1) ifadə 2

else ifadə 3

sintaksisinə analojidir. Aşağıdakı proqram fraqmentləri ekvivalentdir.

.................

if (meas== y) value=(meas==y)?100:;

value= 100;.........

else

value=0;

........

Lakin aydınlıq (əyanilik) nöqteyi-nəzərindən şərt operatoru daha əlverişlidir.

Misal 4.2. Kvadrat tənliyin həlli üçün proqram.

#include <stdio.h>

#include <stdlib.h>

# include "math.h"

int main()

{ float a,b,c, x1,x2, d;

printf("a=");

scanf (" %f", &a);

printf("b=");

scanf("%f",&b);

printf("c=");

scanf("%f",&c);

d=b*b-4*a*c;

if (d<0) printf(" heqiqi helli yoxdur \n ");

else {

x1=(-b+sqrt(d)) / (2*a);

x2=(-b-sqrt(d)) / (2*a);

printf (" kokler: x1=%3.2f\n x2=%3.2f\n",x1,x2);

} printf ("\n <Enter>\n ");

return 0;

}

 

Alınmış nəticə:

 

 

 





:


: 2017-01-21; !; : 737 |


:

:

: , , , , .
==> ...

1682 - | 1543 -


© 2015-2024 lektsii.org - -

: 0.093 .