90
Геометриялық орта мынадай ӛрнекпен анықталады:
n
n
a
a
a
g
...
2
1
/* Нақты сандардан тұратын A[15] жиымының оң
элементтерiнiң геометриялық ортасын табу керек */
#include
#include
#include
#define n 15
main()
{
int i;
float a[n];
randomize(); // кездейсоқ сандарды өзгертіп отыру
textcolor(MAGENTA);
textbackground(WHITE);
clrscr();
printf("\nЖиым элементтері:\n");
for(i=0;i
{a[i] = (float)(rand() % 100 - 50)/10;
printf(" %5.1f",a[i]);}
// көбейтінді мен оң элементтердің санын табу
i=0; // бастапқы индекс = 0
float p=1; // оң элементтер көбейтіндісі
int k=0; // оң элементтер саны
do
{ if (a[i]>0) { k++; p*=a[i];}
i++;
}
while (i
printf("\n оң элементтер саны : %d\n",k);
p=pow(p,1.0/k);
printf("геометриялық орта = %f",p);
getch();
}
5.4 Адрестік операциялар
Адрестік операциялар ҥшін С тілінде екі арнайы оператор қолданылады.
& – адресті анықтау ҥшін қолданылатын операция;
* – адрес арқылы қатынас жасау ҥшін қолданылатын операция.
& операциясы берілген айнымалының адресін қайтарады. Мысалы,
программа мәтінінде sum айнымалысы былай сипатталған болсын: int sum;
онда &sum жазуы осы айнымалының компьютер жадындағы орналасқан
ҧясының адресі болып табылады.
91
Нұсқауыштар. Нҧсқауыш мәліметтердің адресін сақтайтын айнымалы бо-
лып табылады. Жалпы алғанда, нҧсқауыш адрестің символдық кескінделуі
болып саналады. Қарастырылатын мысалда &sum – sum атты айнымалыға
сілтейтін нҧсқауыш болып табылады. Нақты адрес ретінде белгілі бір сан
тҧрады, ал &sum нҧсқауыш типті константа болып табылады.
С тілінде нҧсқауыш типті айнымалылар да бар. Нҧсқауыш типті айныма-
лылар мәні болып белгілі бір шаманың адресі саналады.
Мысалы, нҧсқауыш типті айнымалы ptr идентификаторы арқылы белгілен-
ген болсын, онда тӛмендегі оператор sum айнымалысының адресін ptr атты
нҧсқауыш типті айнымалыға меншіктейді. ptr атты нҧсқауыш типті айнымалы
басқа да объектіге сілтеуі мҥмкін.
Мысалы:
int *ptr;
ptr=∑ ptr=&max;
* операциясы – адрес арқылы қатынас жасау ҥшін пайдаланылатын
операция. Мысалы, ptr нҧсқауыш типті айнымалысында max айнымалысына
нҧсқайтын сілтеме сақталған болсын. Осы айнымалының мәнін білу ҥшін *
адресі бойынша қатынас жасау операциясын қолдануға болады. ptr нҧсқауы-
шы мәнін анықтау ҥшін келесі операцияны орындау қажет: res=*ptr;
Нұсқауышты сипаттау. Нҧсқауыш типті айнымалыны сипаттағанда беріл-
ген нҧсқауыш қандай типті айнымалыға сілтейтінін кӛрсету қажет. Ӛйткені
әртҥрлі типті айнымалыға компьютер жадында ҧялардың әртҥрлі саны бӛлініп
беріледі.
int *iptr;
char *сptr;
float *fptr;
5.4.1 Функциялар арасында байланыс жасау үшін
нұсқауыштарды пайдалану
1-мысал. Бҧл программада айнымалының мәндерін ауыстыру ҥшін нҧсқауыштар
пайдаланылған:
#include
#include
void change (int *u, int *v)
{int temp;
temp = *u; *u = *v; *v = temp; }
main()
{ int x=5, y=10;
clrscr();
printf ("x=%d y=%d\n",x,y);
change (&x,&y);
printf ("x=%d y=%d\n",x,y);
getch();
}
92
Нәтижесі:
x=5 y=10
x=10 y=5
5.4.2 Жиымдар және жиымдарға қолданылатын нұсқауыштар
Жиымдарды сипаттағанда, элементтер типі және жалпы жағдайда
компьютер жадының қажетті класы кӛрсетіледі. Қарапайым айнымалыларда
қарастырылатын қасиеттер жиымдарды да сипаттау кезінде қолданылуы мҥм-
кін. Мысалы:
int b[30];
main()
{ float a[30];
static char c[20];
extern b[ ];
......
}
Жиымдарды инициалдауды қарастырайық. Жиым сипатталуында тек
сыртқы немесе статистикалық жиымдар ғана инициалдануы мҥмкін. Мысалы,
8-топтағы студенттер саны stud[8] жиымы ретінде кӛрсетілген:
#include
#include
int stud[8]={15,16,14,18,15,20,17,19};
main()
{ int i;
clrscr();
extern int stud[ ];
for(i=0; i<8; i++)
printf("N %i тобында %i студент\n", i+1,stud[i]);
}
Жиымның нҧсқауыштарын қарастырайық. Мысалы: int *а;
Жиым аты нҧсқауышты қолданған жағдайда, жиымның 0-інші элементін
анықтайды, яғни а жиымы сипатталған болса, программа мәтініндегі a
идентификаторы 0-інші элементті кӛрсетеді деп саналады:
a == &a[0];
бҧл теңдеудің екі бӛлігі де – a да және &a[0]-де жиымның 0-ші элементінің
адресін анықтайды. Осы екі белгілеу де нҧсқауыш типті константа болып
табылады. Сондықтан оларды мән ретінде нҧсқауыш типті айнымалыға
меншіктеуге болады немесе қажет болса, нҧсқауыш типті айнымалының мәнін
ӛзгертуге болады.
1-мысал. Нҧсқауыштың мәніне санды қосуға болатынын кӛрсететін программа
қарастырайық.
main()
{int a[4], *pti, i;
float b[4], *ptf;
pti=a;
Достарыңызбен бөлісу: |