- •Программалау тілдері
- •2.2. Си тілінің қарапайым элементтері
- •2.2.1 Пайдаланылатын символдар си тілінің символдарын бес топқа бөлуге болады.
- •2.2.2 Тілдің қарапайым объектілері
- •Бақылау сұрақтары
- •2.3. Си тіліндегі мәліметтер типтері және енгізу, шығару функциялары
- •2.4. Бүтін сан түріндегі мәліметтерді сипаттау
- •2.4.2. Char типі
- •2.4.3. Float және double жылжымалы нүктелі нақты сандар типтері
- •2.5 Символдық тіркестер (жолдар, қатарлар)
- •2.6. Printf және scanf функциялары
- •Бақылау сұрақтары
- •3. Си тілінде қолданылатын негізгі операторлар
- •3.1. Меншіктеу операторы
- •3.2. Типтерді түрлендіру
- •Int I; float fl;
- •3.3. Программа жұмысын басқару операторлары
- •3.4. Шартты оператор
- •If (шарт)
- •If (шарт)
- •Int r; /* gil-ды 4-ке бөлгендегі қалдық */
- •Int ball;
- •3.4.1 Шартты операция
- •3.5. Switch көп нұсқалы таңдау операторы
- •Бақылау сұрақтары
- •4. Цикл операторлары
- •4.1. For цикл операторы
- •4.2. While операторы
- •4 .3. Do ... While цикл операторы
- •5. Си тілінде массивтерді пайдалану
- •Int index;
- •Void main()
- •Жиымды өңдеу есептерінің түрлері (кластары)
- •Void main()
- •Void main()
- •Int b[10]; //қосымша массив
- •Жиымды сұрыптау (сорттау, реттеу)
- •Жай таңдау жолымен сұрыптау
- •Жай енгізу (кірістіру) тәсілімен сұрыптау
- •Жай алмастыру арқылы сұрыптау
- •Int *iptr;
- •Функциялар арасында байланыс жасау үшін нұсқауыштарды пайдалану
- •Void change (int *u, int *V)
- •Int temp;
- •Int xmin,X[10];
- •6. Екі өлшемді жиымдар
- •Void line()
- •Void line()
- •Екінші типтегі есептер алгоритмдері
- •Void line()
- •Int I,j,jmin,min;
- •Int amin;
- •Бақылау сұрақтары
- •7. Сөз тіркестерін өңдеу
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Void main()
- •Сөз тіркестерімен жұмыс істейтін функциялар
- •Көмекші программа. Функцияны пайдалану
- •Int mini(int X, int y)
- •Int maxi(int X, int y)
- •Void lin(char a)
- •Void z1(int *X, int *y)
- •Void z1(int*, int*);
- •Int rus (unsigned char r)
- •Int min_index(int sp[], int ras)
- •Void init(int mas[],int ras);//функцияны сипаттау
- •Жоғарыда қарастырырылған функцияда екі өлшемді жиымның бағаналарының саны тұрақты және ол ауқымды ko айнымалысымен анықталған.
- •Void main(void)
- •Index(s1,s2)
- •Void main(void)
- •Int main()
- •Бақылау сұрақтары
- •Құрылымдарды пайдалану мысалы:
- •Void Vvod(int nom,struct Spisok *sved)
- •Void main(void)
- •Vvod(-1,sved);
- •Int I; clrscr();
- •Void main(void)
- •Int I,j,k,priznak;
- •If(!priznak) break;
- •If(!priznak)break; }
- •Бақылау сұрақтары
- •Void main ()
- •Int pages;
- •Void main()
- •Бақылау сұрақтары
- •11. Графикалық режимде жұмыс істеу
- •Void main ( )
- •Int gmode; //режим аты
- •Int errorcode; // қате коды
- •11.1. Графикалық режим орнату, одан шығу, мәтін жазу, сызық салу функциялары
- •Initgraph(&Driver,&Mode,Path);
- •Initgraph(&Driver,&Mode," ");
- •Экранға мәтін шығару функциясы
- •Экрандағы көрсетілген орынға мәтін шығару функциясы
- •1) Line (x1,y1,x2,y2);
- •2) Lineto (X,y);
- •11.2. Сызық стильдерін беру
- •Int gmode;
- •11.3. Тұйық сызықтар салу
- •Көпбұрыш салу функциясы
- •Int gmode;
- •Іші боялған контурлы эллипс салу функциясы
- •Pieslice(X,y,БұрышБасы,БұрышСоңы,Радиус);
- •Void main ()
- •Void main ( )
- •Void main ()
Жоғарыда қарастырырылған функцияда екі өлшемді жиымның бағаналарының саны тұрақты және ол ауқымды ko айнымалысымен анықталған.
4- мысал. NxN өлшемді бүтін сандар жиымын (50-ден көп емес) енгізіп, функция арқылы оның оң мәндерінің қосындысын табу керек.
#include <stdio.h>
#include <conio.h>
void summa(int,int a1[ ][50]);//функцияны сипаттау
void main(void)
{
int a[50][50];
int i,j,N;
clrscr();
puts("\n Жиым өлшемін N(<50) енгізіңіз \n");
scanf(“%d”,&N);
printf("\n Мәліметтерді енгізіңіз \n");
for(i=0; i<N; i++)
for(j=0; j<N; j++)
{
printf("\n a[%d][%d]=", i+1, j+1);
scanf("%d", &a[i][j]);
}
summa(N,a);
}
void summa(int n,int a1[ ][50])//функцияны анықтау
{
int i,j,s;
/* Жиымның оң элементтерінің қосындысын есептеу*/
for (s=0,i=0; i<n; i++)
{
printf("\n");
for (j=0;j<n;j++)
if (a1[i][j]>0)
s+=a1[i][j];
}
printf("\a Қосынды = %d, Press any key... ",s);
getch();
}
5- мысал. Берілген s1 символдар тізбегінен k-сыншы символдан бастап ұзындығы L болатындай бағыныңқы s2 тізбегін бөліп алатын substr функциясын қарастырайық:
substr(s1,s2,L,k,m)
char s1[],s2[]; int L,k,m;
{
int i,j;
if(L+k>=m)k=m-L-1;
for (i=1,j=0;i<L+k; i++,j++)
s2[j]=s1[i];
}
#include <stdio.h>
#include <conio.h>
Void main(void)
{
char str1[80],str2[80]; int L,k,m=0;
clrscr();
puts("\n сөз тізбегін енгізіңіз \n:");
while((str1[m++]=getchar())!=’\n’)
;
printf("\n");
/* m өз мәнін сақтап қалады */
printf("\n L және k мәндерін енгізіңіз:\n");
scanf(“%d %d”,&L,&k);
substr(str1,str2,L,k,m);
printf("%s\n",str2);
}
6-мысал. Берілген s1 символдар тізбегінің құрамында бағыныңқы s2 тізбегінің бар жоқтығын анықтайтын index функциясын қарастырайық. Егер s2 тізбегі s1 символдар тізбегінің құрамында бар болса, онда index функциясы s2 тізбегінің s1-дегі орнын (индексін) анықтайды:
Index(s1,s2)
char s1[],s2[];
{
int i,j,k;
for (i=0,s[1]!=’\0’;i++)
{
for (j=i,k=0;s2[k]!=’\0’&& s1[j]==s2[k];j++,k++)
;
if(s2[k]==’\0’)
return(i);
}
return(-1);
}
char str1[]= “информатика”;
char str2[]= “форма”;
#include <stdio.h>
#include <conio.h>
Void main(void)
{clrscr();
printf("%d\n", index(str1,str2));
}
7-мысал. Функцияның параметрі ретінде оған нұсқауышты пайдалану мысалын қарастырайық. Функция cos(x)-тің туындысын есептейді.
double proiz(double x,double dx,double(*f)(double x));
double fun(double z);
Int main()
{
double x; /*туынды есептелетін нүкте*/
double dx; /*ығысу*/
double z; /*туындының мәні*/
scanf("%f,%f",&x,&dx);
z=proiz(x,dx,fun); /* функцияны шақыру */
printf("%f",z);
return 0;
}
double proiz(double x,double dx,double(*f)(double z))
{
double xk,xk1,pr;
xk=fun(x);
xk1=fun(x+dx);
pr=(xk1/xk-1e0)*xk/dx;
return pr;
}
double fun( double z)
{
return (cos(z));
}
Жоғарыда қарастырылған fun функциясын кез келген функцияның туындысын табу үшін қолдануға болады. Ол үшін анықталған fun функциясының тұлғасын өзгерту керек немесе proiz функциясын шақырған кезде туындысы қарастырылып отырған функцияның атымен шақырса болғаны. Мысалы, sin(x) функциясының туындысын табу үшін жоғарыда қарастырылған proiz функциясын
z=proiz(x,dx,sin);
түрінде шақыру жеткілікті болып саналады.
