Б. БӨрібаев c/C++ тілдерінде программалау (практикалық курс) Жогары оқу орьшдарына арналған оку құралы э в е р о алматы 2015 Эверо



жүктеу 1.78 Mb.
Pdf просмотр
бет11/16
Дата26.04.2017
өлшемі1.78 Mb.
1   ...   8   9   10   11   12   13   14   15   16
 
---S
printf("m,n  •  :  w) ;
ecanf("%d%d" , 6m, 4n) ;
c«fak t(m)*f 
akt(n>/fakt(m+n); 
printf ("с*1#\пи f
 c) ;
gotch(); 
\г§Ж
)
 
- Ш
Ж


 *  ; 
=
 -  • 
Ф* %
 Ш І
UN)

Функция  ішінде  орналасқан  айнымалылар  типтері  сипатталуы  осы  функция- 
ның  ішінде  ғана  анықталған  болып  саналады,  (мұнда тек  қана m a in   функциясы 
ерекшс  жагдайда  болып  саналады).  Программа  мәтінінде функциялар  кез  келген 
ретпен  орналасуы  мүмкін.  Функцияны  шақыру  үшін  функцияның  аты  және 
жақшада накты аргументтері көрсетіледі.
4.6 есеп. Анықталган интегралды  тіктөртбұрыштар, трапециялар жэне Симпсон 
тәсілдерімен жуық шамамен есептеуді функция арқылы орындау мысалы. Бұл 
есепті функциясыз карапайым жолмен есептеу тәсілі 3.7 есепте келтірілген.
//  интегралды қолданушы функциясы арқылы есептеу 
/ /
//  функция арқылы есептеу  2-тәсіл 
//  төртбүрыштар,  трапеция жэне Симпсон <
#include 
#include 
#include  
float f(float x)
{  return  3*x*x;)  //интегралдагы функция 
main ()
(float a,b,
h ,
//  кесінді  шекаралары 
// интервал мэні
81,32,83,  //  интегралдың жуық мэндері 
х ,х і ,х 2 ; 
//  аргумент
int n,
w
a
;
clrscr();
//  интервалдар  саны 
//  цикл  санауы
у
cout «   "Интегралды жуықтап  есептеу\пи ; 
cout «   "кесіндінің төменгі  ш е г і :
  ";
era.:
сіп »  а;
cout «   "кесіндінің төменгі  і 
cin »  b ;
cout «   "кесінді  неше  белікке  белінеді 
сіп »  п;
«9
һ=(Ь-а) /п;
х1=а+һ/2;  х 2 = а ;
sl=f(хі);  //  функцияны шакыру
s2=(f(x2)+f(Ь))/2;
f o r (і=1;і<п;і++)

-
xl=xl+h;х2=х2+һ; 
sl=sl+f(xl);  s2=s2+f(x2);
>  
,  
- v . , :
; ! ;  
w
sl=h*sl;  s2=h*s2;  s3=(2*sl+s2)/ 3 ;
cout «   "Формулалар бойынша интеграл мәндері\п";
cout «   "тертбүрыштарХ^ трапециялар\t Симпсон  тэсілдері\п” ;
cout «   setprecision(5);  //  шыгару дәлдігі  5  тацба
107

c o u t   «   " s i   =  ,,« s l « ,,\ t   s 2   =  ,,« s 2 « ,,\ t   s 3   «   e,« s 3 ;  
g e t c h  ()  ;

' ^  _  i 2 !  ^  
I
Программа жұмысы нәтижесі:
Интегралды жуықтап есептеу
кёсіндінің темөнг*і  ш е г і : 
кесіндінің төменгі  ш е г і : 
кесінді  неше  белікке  бөлінеді:
Форкуэталар бойынша интеграл мэндөрі
ц
тертбүрыштар 
т р  
апециял 
ар
Симпсон тэсілдері
s i   щ  9 1 .0 8 8 5 9  
s 2   =  9 1 .1 9 7 9 4
s 3   ==  9 1 .1 2 5 0 4
4.7 есеп. Келесі  программа фукция арқылы латынның бас әріпін кіші эріпке 
түрлендіреді.
/*  Латынша бас эріпті  кіші  әріпке  айналдыру 
* /
#include 
#include 
#include   //әріпті  түрлендірудің прототип! 
char clowercase(char c ) ; 
int main()
{char  clowchar,  chichar; 
clrscr () ;
printf ("Shif 
t-ті басып түрып латын эрпін енгізіңіз : ") ;
chichar = getchar(); 
clowchar =  clowercase(chichar); 
printf  C ^ c X n ” ,  clowchar); 
getch () ; 
return(0);

|  

"  iV  ' 
v
char clowercase(char c)
{ return (tolower (c) ) ;  )  // бүл функция прототипі 
h>
Программа жұмысы  нәтижесі:
Shif 
t-ті басып тұрып латын әрпін енгізіңіэ :  G
g
4.8a есеп. Келесі  программа функция арқылы енгізілген кез келген ондық бүтін 
санды екілік жүйеге түрлендіреді.
/+  Енгізілген  ондық санның екілік  баламасын  табу  */
#include 
void vbinary  (int idata);
int main()
{
int ivalue;
printf  ("Ондық сан енгізіңіз:  ");
108

scanf("%d",  &ivalue)  ; 
vbinary  (ivalue)  ; 
return(0)  ;
Щ \   )
void vbinary  (int idata)
{  int t =  0;
int iyourarray[50]; 
while  (idata  != 0)  { 
iyourarray[t]  =  (idata  %  2); 
idata /= 2; 
t++;  ) 
t— ;
printf ("\n") ;
for(  ;  t >= 0;  t— )
printf("%d” ,  iyourarray[t]);
printf("\n”) ;
)
4.8ә ссеп.Пернелерден енгізілген ондық санды екілік санға түрлендіру есебінің 
фу нкциясыз жазылған нұсқасы:
#include <сопіо.һ>
#include 
#include  
main ()
unsigned d e c , 
v , i ;
c l r s c r ();
p r i n t f ("Enter an  integer number  up  to  4  294  967  295  ->  n)
scanf("%u
" ,
  &dec);
p r i n t f ("Decimal  number  %u  in binary format  is:  ",  dec);
f o r ( i = l ;   i< = 1 5 ;  i+ + )  v * = 2 ;
/ /  
2
- н і   3 1 -ш і 
дэрежеге  былай да шығаруга болады 
/ /   v = ( u n s ig n e d   i n t ) p o w ( 2 f 3 1 ) ; 
f o r ( i = l ;   i< = 1 6 ;  i+ + )
{
i f   (d e c   >=  v)
{
p r i n t f ( " I " )   ;
d e c - = v ;
)
e l s e
p r i n t f ( "
0
")  ;
v = v /
2
;
)
p r i n t f
(и\пп) ; 
g e t c h ( ) ;  
r e t u r n  
0
;
109

П р о г р а м м а  ж ұ м ы с ы   н ә т и ж е с і:
E n t e r   an  i n t e g e r   number  up  t o   4  2 94  967  2 9 5   —>   28494 
D e c im a l  number  %u  i n   b in a r y   fo r m a t  i s :   0 1 1 0 1 1 1 1 0 1 0 0 1 1 1 0
4.9 есеп. Санды кері багытта функция арқылы жазып шыгу.
#include 
#include 
#include  
void cifr(int m)
{  while
{  int k=m%10; 
printf("%dw #k ) ;
m= (m-k)/10;
)
}
main ()
(
int n; 
clrscr () ;
p r i n t f (”\пБерілген сан:  \n");
scanf C ^ d "  , fin) ;
p r i n t f ("\nKepi  жазылуы:  ");
cif 
r (n) ;
getch () ;
>
4.10 есеп. Сандарды  көбейту кестесін — Пифагор кестесін шыгару.
//  Пифагор квадратын шыгару  3.32 
#include  
t r e a m . h >
#include 
#include 
line(int k)  //  k  келденең сыэықтар сызу функциясы 
{  for(int i=l;i<=k;i++) 
cout «  
;
cout «  e n d l ;
}
main ()
( c o n s t   n=50;
i n t   i , j ; 
I I
 
кестедегі жол жэне багана  нөмірлері 
c l r s c r  ()  ;
c o u t  
«  
”\ t  
Кебейту  (Пифагор)  кестесі\п";
l i n e ( n ) ;
f o r ( i = l ; i < = 1 0
; !++)
{  f o r (
3
=
1
;j<=
1 0
;j++)
c o u t  «   s e t w (5)  «   i * j
I
110

Ь -  

.
l i n o ( n ) ; 
getcn () ;

Гт'-"
Профамма жұмысының нәтижесі:
c o u t «   e n d l ;
Көбейту  (Пифагор)  кестесі
1
2
3
4
5
6
7
9
1 0
2
4
6
8
1 0
1 2
14
16
18
2 0
3
6
9
1 2
15
18
2 1
24
27
30
4
8
1 2
16
2 0
24
28
32
36.
40
5
1 0
15
2 0
25
30
35
40
45
50
6
1 2
18
24
30
36
42
48
54
60
7
14
2 1
28
35
42
49
56
63
70
8
16
24
32
40
48
56
64
72
80
9
18
27
36
45
54
63
72
81
90
1 0
2 0
30
40
50
60
70
80
90
1 0 0
4.11 
есеп.  Он  үигген  артық  натурал  сан  (гі> 13)  берілген,  л-нен  кіші  барлық 
«егіз»  сандарды  анықтап, экранға шыгару  керек («егіздер» — айырмалары 
2
-ге тең 
жай сандар).
#include 
#include  
#include  
void main  ()
int n,a,k, simple (int) ; 
clrscr () ; 
m l :
p r i n t f ("\пНатурал  сан енгіэіңіэ N>13:  "); 
scanf("%d",  &n);
printf (”%d санынан  кіші  \" е г і з д ^ Ч n  жүбы:  " , n) ; 
for (k=0, a = 3 ;  a
//  жүп  сандар жоқ
{
if(simple(а)  &&  simple(a+2))

//  "егіздер"айырмасы 2-re  тең
if (k%8— 0)  putchar (* \ n '
 ) ;  //  1 жолда  8 жүп 
k++;
printf ("%d-%d 
”,
  a,  a+2);

IШШ | | p   Щ  Щ
>
printf(n\n\n Жалгастырамыэ  ба?  Иэ болса,7  енгізіңіэ:  ”);
scanf  ("%d”  ,  &n); 
if(n==7)  goto ml;
111

i n t   s i m p l e ( i n t   n) 
{
i n t   i , i m = s q r t ( n )   ; 
f o r ( i =
2
;  i< = im ;  i+ + )
//  санның мүмкін  болатын
i f   ( n % i =
0
)  r e t u r n  
0
;
//  бөлгіштерін  іздеу 
//  бөлгіш табылса  -
//  ол жай сан емес
r e t u r n  
1
;

/  б 
өлгіштер табылмады
• 
>
Программа жұмысының нэтижесі:
Натурал  сан енгіэіңіэ Н>13:  50 
50  санынан  кіші  "егіздер"  жұбы:
3-5  5-7  11-13  17-19  29-31  41-43
Жалғастырамыд  ба?  Иә  болса,7  енгізіңіэ:  0
1.  Қолданушы (тұтыну шы) функциясын сипаттау дегеніміз не?
2.  Егер функцияның параметрлері жоқ болса, ол калай сипатталады?
3.  Түтынушы функциясы мен стандартты функциялардың айырмашылығы неде ?
4.  Функция аргументтерін беру жолдарын атаңыз?
5.  Накты жэне формальды (көрсетпелі) параметрлер түсінігі.
6
.  “Жергілікті” және “ауқымды”  айнымалылардын айырмашылығы.
7.  “Жергілікті” айнымалылардын әрекет ету аймағы ұгымы.
8
.  “Ауқымды” айнымалылардын әрекет ету аймағын тусіндіріңіз.
9.  Return операторының қолданылуы жэне аткаратын қызметі.
10.  Функция прототиптері түсінігі
1.Үш  натурал  сандар  берілген.  Олардың  ең  үлкен  ортақ  бөлгішін  (ЕҮОБ) 
аныктайтын  функцияны  кұру керек.
2
. a yb , C y d
  кесінділері  берілген.  Осы  кесінділердін  кез  келген  үшеуін  қарастыра 
отырып,  олардан  үшбұрыш  тұргызуга  болатын/болмайтынын  аныкгап, 
үшбұрыш  тұргызылатын  жагдайда,  онын  ауданын  табу  керек.  Үшбұрыштың
ауданы  S = V/?*(p-*Xp - уХр~Щ
9
 мұндагыp=(x+y+z)/2.
3 .Натурал  N  саны  берілген.  Ол  екі  д:  жэне у   бүтін  сандарынын  квадраттарының 
қосындысына  тек  болатын  болса  N=x
2
+ y ,  онда  х,  у   сандарын  анықтайтын 
функцияны  күру керек.
4.Накты  х,  у   (лс>0,  у>  1)  сандары  берілген,  у кл  <  х  < 
шартын  қанагат- 
тандыратындай k бүтін санын (оң, теріс немесе  нөлге тек) табу керек.
5. Натурал  N саны берілген (N > 99). Ондагы жүздіктер санын аныктаңыз.
6
.Натурал 
N  саны  берілген  (A^<  99).  N 
саны 
N  санынын  цифрларының 
қосындысының кубына тең екендігін тексеру керек.
Бакы л ay сүрақтары
Тапсырмалар
112

7. Натурал 
N
 саны  берілген  (N >  10000). 
N
 санының алғашқы  К  разрядтарының
қосындысын анықгаңыз  < 4).
8
.Натурал 
п,  т 
сандары  берілген,  п  санының 
соңғы  т  цифрларының 
көбейтіндісін табу керек.
9. Натурал 
N
  саны  берілген. 
N
  санынын  жазбасынан  басқа  цифрлардың  ретін
өзгертпей 0 жэне 5  цифрларын алып тастау керек.  Мысалы,  59015509 санынан 
919 саны шығады.
10. Натурал 
N
 жэне К  (Kбейтін барлық натурал Алларды табу керек. 
S
11 .N  саннан  түратын  бүтін сандар тізбегі  берілген.  Олардың  арасында бірдей  екі 
сан  кездеспейді.  Қалған  сандар  өсу  ретімен  орналасатындай  етіп,  сол 
реттілікке көнбейтін сандарды өшіріп тастау керек.
12.Егер  N  цифрдан  тұратын  натурал  санның  цифрларының  косындысын  п-иі\ 
дәрежеге  шығарғанда,  сол  санның  өзіне  тең  болатын  болса,  ондай  сан 
Армстронг  саны  деп  аталады  (мысалы,  153=13+53+33  ).  Екі,  үш  және  төрт 
цифрдан тұратын барлық Армстронг сандарын табу керек.
13.1-ден  /і-ға  дейін  нөмірленген  (/г=10) 
п  елді  мекен  бар.  Кейбір  қос  елді 
мекендер  жолдармен  қосылган.  Осы  жоддар  арқылы  бірінші  елді  мекеннен  п- 
шісіне жетуге болатынын немесе болмайтынын аныктау керек. Жолдар туралы 
ақпарат  і-ші  жэне j -ші  елді  мекендердің  жолдармен  қосылганын  білдіретін  і 
жэне  j  (  iаяқталғанының белгісі -  қос нөл (
0 0
).
14.Екі ұшбұрыштың төбелерінің координаталары берілген.  Олардың қайсысынын 
ауданы үлкен екенін аныктау керек.
15.Жазыктыктагы  үш  түзу 
 =  1,2,3)  теңдеулерімен  берілген.  Егер  ол 
түзулер  қос-қостан  қиылысып,  үшбұрыш  құрайтын  болса,  сол  үшбұрыштын 
ауданын табу керек.
16.  Екі  жай саннын бір-бірінен айырмашылыгы 2-ге тең болса, олар “егіздер” деп 
аталады  (мысалы,  41  және  43  сандары).  /һ, 2п]  аралыгындагы  барлық 
“егіздерді” аныктау керек, мұндагы п — 
2
-ден үлкен бүтін сан.
17.Натурал  N  санын  енгізіңіз.  Келесі  алгоритм  бойынша  Паскаль  үшбұрышын 
кұру керек:
Со0
с,°  с
,1
Щ   Сг  Щ
0
  р  
1
  р  
2
  р   3
v-З  
Ч
 
* -3  
'- 'З
С
О
 
1  
2  
р
  3  
1

\^4
n\
18. 
m \(n-m )\ 
аныктау керек,  мұндагы л!=1 *2'3*....*  я,  п — санынын факто­
риалы.
113

19. 
8
  ферзі  туралы   есеп".  Шахмат  тақтасында 
8
  ферзіні  олар  бір-бірін 
“жемейтіндей” етіп орнапастыру керек (барлығы  92 орналастыру бар).
20.
44
 фон  Нейман  эдісі”.  Нақты  N  саны  берілген.  Оларды  кемімейтіндей  етіп 
төмендегідей  түрде  реттеу  керек:  А  жэне  В  екі  жиымын  кұрып,  бастапқы 
сандарды  Анға  жазу  керек;  көрші  екі  санды  реттеп  (Аі  жэне  А2,  А
3
  жэне  А

жэне т.с.с.) оларды В-ға жазу керек;  В-дан екі-екіден реттелген көрші сандарды 
алып, оларды реттелген төрттіктерге жинақтап, қайтадан А-ға жазу керек; одан 
кейін  әрбір  көрші  реттелген  төртгіктерді  В-дан  алып,  оларды  реттелген 
сегіздіктерге жинақгап  А-ға көшіру керек, т.с.с.
21.Әрқайсысы  100  элементтен  тұратын  X  және  Ү  жиымдары  берілген.  Осы  екі 
жиымның әрбір элементін  бір-бірімен  орын алмастыруды 
(х**-^) функция 
түріңде ұйымдастыратын  пограмма  құру  керек,  мүндагы  к= 1,2,...,100.  Аралық 
мәндерді сактайтын қосымша айнымалыларды колдануға болмайды.
22.1 ,2,3,4,5,
6
,7,
8
,9  цифрлары  жазылган  9  кәртішке  бар  (әрбіреуіне  бір  цифрдан 
жазылган).  Осы  кәртішкелерден  екі  сан  құрылған.  Бірінші  сан  —  бөлшектің 
алымын,  ал  екіншісі  -   бөлшектің  бөлімін  құрайды.  Әрбір  кәртішке  міндетгі 
түрде  пайдаланылуы  тиіс.  Белшектің  бөлімі  5  цифрдан  тұрады,  олай  болса 
бөлшекті  алымын  қалган  төрт  цифр  құрайды.  Бөлшектің  мәні  дэл  1/2-ге  тең 
болатындай  барлық  комбинацияларды  табыңыз.  Мысалы,  бөлшектің  алымы  -  
6729, бөлімі — 13458 (барлық кәртішкелер пайдаланылган), 6729/13458 =1/2.
23.1,2,3,4,5,6,7,8,9  цифрлары  жазылган  9  кәртішке  бар  (әрбіреуіне  бір  цифрдан 
жазылган). Екі  натурал N жэне М  сандарын енгізіңіз.  Мысапы N=2, М=3.  N/M 
бөлшегін  (2/3)  дәл 
қ ұ р а й т ы н  
кэртішкелердің  комбинацияларын  құру  керек, 
мысалы,  4/6,  12/36,  123/369,  т.с.с.  (сондайлар  бар  болатын  болса).  Егер  ондай 
комбинация саны бірден  көп болса, олардың бэрін шыгару қажет.
24. Цилиндрдің  бүйір  беті  ауданын  есептейтін  функцияға  оның  аргументтерін 
беруді көрсететін  программаны  келесі формула бойынша аныктау керек:
S6
 = 
2nRH.
25. Main  функциясынан  kvadrat функциясына шаршы (квадрат) қабыргасының
ұзындығы — side параметрі берілетін программа жазыңыз. Функция сол квадратты
экранный сол жақ жоғарғы бұрышында жұлдызшалар аркылы бейнелеуі  керек.
Мысалы, егер side = 4 болса,  программаның нэтижесі төмендегідей болуы тиіс:
★ 


*

★ 


яі







*
26. төмендегі есепті  шыгару үшін функция  құрып, оны тексеріп шыгу керек
п
/( * , 
п,т)
 =  2  -----
й н  (
2 0
!
114

27. Мына есептің мәнін табу керек
vi  + v2  + v3 
^
 
3
мұнда v,  -  п  радиусымен  берілген  шардың  көлемі  (функцияны  шардың  көлемін 
табу үшін пайдалану).
28.  Өзінің  төбелерінін  координаталарымен  берілген  үшбұрыштың  ауданын  мына 
формуламен табу қажет
S = 0,5  * 
ІХ 1У2 
+ х
2
у
3
  + 
ХзУл  - Х і У з  
- х
2
ух- х
3
у2|.
Функцияны  үшбүрыштың  ауданын табу  үшін  қолдана отырып өзінің төбелерінің 
координаталарымен берілген ABCD төртбұрышының ауданын табу керек.
29.  Он  алтылық  санау  жүйесіндегі  тек  цифрлардан  тұратын  санды  оған 
эквивалентті  бүтін  ондык  санға  түрлендіретін  функцияны  жазып  тексеріп
шығыңыздар.
жазу  керек. Ол үшін келесі  итерациялык формула колданылады:
функция
Уо
  =  
v,+i  =  
уі
  + т ( п г г  “  
Уі
 ^
Уі
Есептін  шешімін  табу  үшін 
|  уі+і  -  Уі  |  <   с  түрінде  алынатын 
у;+і  мәнін 
пайдаланыныздар, мұндағы есептеу дәлдігі 
0
 < е < 
1 0
 
аралығында болады.
4 зертханалы қ жұмыс.
Қолданушы аны ктаған функцияларды  пайдалану
Тақырыбы:  Қолданушы функцияларын пайдалану.
Тапсырма:  Берілген есептеулерді орындайтын  программа жазу.
Есеп беру:  Программа мәтіні мен бірнеше бастапқы  мэндерге сэйкес нэтижелер
алу.
Ж үмыска арналған тапсы рм алар варианттары

нұсқа
1.  п  натурал  саны  берілген.  Экранга  сол  п  саны  цифрларының  кері  багытта
115

жазылған  нұсқасын  шығару  керек.  Жаңа  санды  табу  үшін  функция  жазу 
қажет.
Цилиндр  көлемін  есептейтін  Volume  атты  функция  қолданылатын  программа
жазыңыздар.  Функция  параметрлері  ретінде  цилиндрдің  радиусы  мен  биіктігі 
алынады.

нұсқа
Мүмкін болатын алмастырулар санын төмендегі формула бойынша есептейтін 
юграмма құрыңыздар:
Н 3  І  

т
Факториал есептеуді
k \(n -k )\
2.  Берілген  санның  белгілі  бір  пайызын 
(процентін)  қайтаратын  Payiz 
функциясын  пайдаланатын 
программа  жазыңыздар.  Функция 
аргументі 
ретіңде берілген сан мен оның қайтарылатын пайыз мөлшері беріледі.
3 нусқа
1.  Екілік  санды  соган  парапар  (эквивалентті)  ондық  санга  түрлендіретін 
программа жазу керек. Түрлендіру әрекеті функция түрінде жазылуы тиіс.
2.  Салынган  ақшаның  пайыздық өсімін (процентін) есептейтін  Osim  функциясын 
пайдаланатын 
программа  жазыңыздар.  Функция  үшін  бастапқы  мәлімет 
ретінде  салынган  ақша  мөлшері,  өсім  пайызы  (бір  жылдық)  жэне  салынатын
мерзімі (күндер саны) көрсетіледі.
4 нусқа
1.  Он  алтылык  санды  соган  парапар  (эквивалентті)  ондық  бүтін  санга
түрлендіретін  пр 
жазылуы тиіс.
Аргумент  ретінде 
берілсе
0-ді  қайтаратын D;
түрінде
1
-ді,  ал  дауыссыз  әріп
нұсқа
1.  Екілік  санды  соган  парапар  (эквивалентті)  он  алтылық  санга  түрлендіретін 
программа жазу керек. Түрлендіру әрекеті  функция түрінде жазылуы тиіс.
2.  Латынның  кіші  әріптерін  бас  әріптерге  және  керісінше  түрлендіретін  Turlen
өндеиті
6
нұсқа 
Щ
1.  Он  алтылық  санды  соган  парапар  (эквивалентті)  екілік  бүтін  санга
түрлендіретін 
жазылуы тиіс.
түрінде
2.  Экранга  бірдей  символдардан  тұратын  сөз  тіркесін  шыгаратын  O utput 
функциясы  бар  профамма  жазыңыздар.  Функция  үшін  параметр  ретінде 
символ таңбасы мен тіркес ұзындыгы  көрсетіледі.
116
1   ...   8   9   10   11   12   13   14   15   16




©emirb.org 2020
әкімшілігінің қараңыз

    Басты бет