4-практикалық сабақ. Қарапайым программалар
Мақсат: Математикалық функциялардан құралған өрнектерді есептеуге және геометрия мәселелерге программа құру.
Нәтижесі: Программаларды жүргізіп, нәтижелердің дұрыстығына көз жеткізу.
Ескерту: Формулалар бойынша есептеу барысында Си тілінің төмендегі математикалық функциялары (тақырып файлы – ) қажет болады.
Әдістемелік нұсқау. Стандарт функциялардың Си тілінде жазылуы кестеде келтірілген.
Математикалық функциялар
|
Си тілі функциялары
|
Типтері
|
ex
|
exp(x)
|
double exp(double x)
|
sin x
|
sin(x)
|
double sin(double x)
|
arcsinx
|
asin(x) –1 < x < 1
|
double asin(double x)
|
cos x
|
cos(x)
|
double cos(double x)
|
arccos(x)
|
acos(x) –1 < x < 1
|
double acos(double x)
|
tg x
|
tan(x)
|
double tan(double x)
|
arctgx
|
atan(x) –1 < x < 1
|
double atan(double x)
|
| x |
|
abs(x)
|
int abs(int x)
|
| x |
|
fabs(x)
|
double abs(double x)
|
ln x
|
log(x) x > 0
|
double log(double x)
|
lg x
|
log10(x) x > 0
|
double log10(double x)
|
√x
|
sqrt(x) x > 0
|
double sqrt(double x)
|
xy
|
pow(x,y)
|
double pow(double x, double y)
|
10n
|
pow10(n)
|
double pow10(int n)
|
x бүтін бөлігі
|
floor(x)
|
double floor(double x)
|
кездейсоқ сан алу
|
rand()
|
int rand()
|
1-тапсырма.
1. ; 2. ; 3. ; 4. ; 5. ; 6. ; 7. .
Си тілінде математикалық функцияларды #include препроцессор директивасы программаға түсіндіреді. Математикалық функциялардың Си тілінде жазылу түрі
1. ; 2. ; 3. ;
4. 5. ; бұрышты радиан күйінде береміз. Яғни ; Егер , .
1-мысал.
а) ; б) ; в) . Берілген функцияларды есептейтін Си тіліндегі программаны келтіреміз.
/* функцияларды есептеу */
#include //енгізу шығару операторкітапхана
#include //экранды тазалау, консолмен істеу
#include //стандартты математикалық функциял
main(){ //негізгі функция
int x,b; //бүтін типті айнымалылар
float alfa,y; // нақты типті айнымалылар
printf("\n x,b="); //«x,b=» сөзін экранға шығару
scanf("%d %d",&x,&b); //x және b мәндерін оқу(енгізу)
printf("\ngradusti engiz="); // сөзді экранға шығару
scanf("%f",&alfa); //alfa мәнін оқу(енгізу)
y=pow((x+b),1.0/3); // y функцияны есептеу
printf("\n y=%.3f",y); // y мәнін экранға шығару
y=pow(x,2)+b; // y функцияны есептеу
printf("\n y=%.4f",y); // y мәнін экранға шығару
M_PI=3.1415;
alfa=M_PI/180*alfa; // alfa-ны радианға түрлендіру, …
y=sin(alfa); // y функцияны есептеу
printf("\n y=%f",y); // y мәнін экранға шығару
getch(); //кез келген перненің басылуын күту
return 0;
}
****************************
2-мысал. Шеңбердің ұзындығын есептеу программасын келтіреміз.
/* Шеңбер ұзындығын есептеу */
#include
#include
main(){
int radius;
float length;
printf("\n Радиус мəнін енгізіңіз: \n");
scanf("%d",&radius);
length =2*3.14159*radius;
printf("Радиусы - %d\n шеңбер ұзындығы -%f",
radius, length);
getch(); return 0;
}
Жеке тапсырмалар.
Егер x, y, z берілген болса, a және b-ны есептеп шығаратын программа құрыңдар.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
5-практикалық сабақ. Тармақталу операторы
Мақсат: Тармақталу операторларына программа құру.
Нәтиже: Программаны жүргізіп, нәтиженің дұрыстығына көз жеткізу.
Әдістемелік нұсқау. Шартты оператор логикалық өрнек ақиқат мәнін қабылдаса оператор 1-ді орындайды, ал жалған мәнін қабылдаса оператор2-ні орындайды.
Шартты оператордың Си тілінде жазылу түрлері
if (лог_өрнек)
оператор1;
|
if (лог_өрнек){
оператор1;
оператор2;
оператор3;
}
|
if (лог_өрнек){
оператор1;
оператор2;
оператор3;
}
else {
оператор1;
оператор2;
}
|
if (лог_өрнек){
оператор1;
оператор2;
}
else if (лог_өрнек){
оператор1;
оператор2;
}
else if (лог_өрнек){
оператор1;
оператор2;
}
else оператор1;
|
Си тілінде логикалық өрнек келесідей түрлерде жазылады:
x, x==y, x>=y, x!=y, 0<=x&&x<=9, 0<=x||x<=9, және т.б.
&& -логикалық көбейту
|| - логикалық қосу
! –логикалық терістеу
1-мысал. Кез келген енгізілген х санының аралығында немесе аралығында немесе аралығында жататының анықтау.
Программа төмендегіше жазылады.
#include
#include
main(){
int x;
float san;
printf("\n x=");
scanf("%d",&x);
printf("\n san=");
scanf("%f",&san);
if(0<=x&&x<=9) printf("\n%d - 0<=x<=9 araliginda jatadi",x);
else if(10<=x&&x<=99) printf("\n%d-10<=x<=99 araliginda jatadi",x);
else if(100<=x&&x<=999) printf("\n %d - 100<=x<=999 araliginda jatadi",x);
else printf("\n %d - 0<=x<=9,10<=x<=99,100<=x<=999 araliktarinda jatpaydi",x);
printf("\n");
if(san>0) printf("\n %f - Sani on",san);
else printf("\n %f - Sani teris",san);
getch();
return 0;
}
****************************
2-мысал. Программада өту операторын пайдалану.
Prim1.cpp
#include
#include
main()
{
int a,b;
float y;
printf("a, b=");
scanf("%i%i",&a,&b);
if (a
{y=b*b; goto j;}
else if (a>b)
{y=a*a; goto j;}
else y=0;
j:printf("y=%f",y);
getch(); return 0;
}
Тапсырмалар.
1. signx функциясын есептейтін программа жазыңдар:
2. Нақты а саны берілген. f(a) –ны есептеңіз.
3. Нақты а саны берілген. f(a) –ны есептеңіз.
4. Нақты а саны берілген. f(a) –ны есептеңіз.
5. Нақты а саны берілген. f(a) –ны есептеңіз.
6. Нақты а саны берілген. f(a) –ны есептеңіз.
мұндағы х – кез келген сан, b = 0,234102
Жеке тапсырмалар
Программа құрыңдар.
7.
8.
9.
10.
11.
12.
13.
14.
15.
6-практикалық сабақ. Switch көп нұсқалы таңдау операторы
Мақсат: Көп нұсқалы таңдау операторына программа құру.
Нәтиже: Алынған нәтиженің дұрыстығына көз жеткізу.
Әдістемелік нұсқау.
Программада кездесетін бірнеше нұсқаның бірін таңдап алу керек болған жағдайда, switch ауыстырғыш операторы қолданылады. Оператордың жалпы жазылуы:
switch <бүтін типті өрнек>;
{
case белгі1: операторлар;
case белгі2: операторлар;
................
[default: операторлар;]
}
Мұнда switch сөзінен кейінгі өрнек мәні есептеледі, ол бүтін санды (char типі де) типте болуы тиіс. Сол мән case сөздерінен кейін жазылған константалар мәндерімен салыстырылады. Егер олардың біріне тең болса, сол жол орындалады, жол соңында көшу операторы болмаса, келесі жолдар толық орындалады. Ал бір жолды орындап болған соң, switch операторынан шығу үшін break операторы қолданылады. Егер switch сөзінен кейінгі өрнек мәні ешбір константамен сәйкес келмесе, онда default сөзінен кейінгі операторлар атқарылады. Кейде default сөзі болмауы да мүмкін.
default сөзі болмаса, онда switch операторынан кейінгі келесі операторлар орындала береді. switch операторындағы өрнек түрінде нақты типтегі мәліметтерді, сөз тіркестерін (жолдарды) пайдалануға болмайды. Кейде бүтін мәндермен үйлестірілген мәліметтердің құрылымдық (структуралық) элементтері қолданылуы мүмкін.
1-мысал. Екі бүтін сан енгізіп, олармен арифметикалық 4 амалдың бірін орындау қажет.
#include
#include
main(){
char symbol;
int x,y,z;
printf("Екі бүтін сан енгізіңіз: ");
scanf("%i%i",&y,&z);
printf("Қандай амал орындау керек: ");
scanf("%s",symbol);
switch(symbol)
{case ‘-‘ : x=y-z; break;
case ‘+‘ : x=y+z; break;
case ‘*‘ : x=y*z; break;
case ‘/‘ : x=y/z; break;
default: printf(”белгісіз операция\n”);}
printf("\nНәтижесі - %d\n",x);
getch();
return 0;
}
****************************
2-мысал. Шығыс календары бойынша жылға сәйкес жануар атын анықтау.
#include
#include
main()
{ int gil;
printf("Жылды енгізіңіз: \n");
scanf("%i",&gil);
switch (gil % 12)
{
case 0 : printf("Мешін жылы");break;
case 1 : printf("Тауық жылы"); break;
case 2 : printf("Ит жылы"); break;
case 3 : printf("Доңыз жылы"); break;
case 4 : printf("Тышқан жылы"); break;
case 5 : printf("Сиыр жылы"); break;
case 6 : printf("Барыс жылы"); break;
case 7 : printf("Қоян жылы"); break;
Достарыңызбен бөлісу: |