
- •Программалау тілдері
- •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 ()
Int amin;
int m,k;
clrscr();
printf("Берілген матрица:\n");
for (i=0; i<3; i++)
{for (j=0; j<3; j++)
printf(" %2i",a[i][j]);
printf("\n");
}
for (j=0; j<n; j++) //бағананы таңдау
{for (k=0; k<n-1; k++) //мин тауып алмастыру
{ amin=a[k][j];m=k;
for (i=k+1; i<n; i++)
if (a[i][j] < amin)
{amin=a[i][j]; m = i;}
a[m][j]=a[k][j]; a[k][j]=amin;
}
}
printf("\nСұрыпталған матрица элементтері:\n");
for (i=0; i<3; i++)
{for (j=0; j<3; j++)
printf(" %2i",a[i][j]);
printf("\n");
}
getch();
}
Екі өлшемді жиымдармен жұмыс істеу кезінде
нұсқауыштарды қолдану
A3,2 жиым берілген болсын. Олар бүтін сандар, яғни
int a[3][2];
int *pri;
pri = a; // бұл pri=a[0][0] деген сөз
a – жиымның аты немесе a[0][0] элементінің адресі
a=&a[0][0];
рri нұсқауышына 1-ді қоссақ, pri+1 деген нұсқауыш a[0][1] элементіне сілтейді. Бұл жиымды қарастырғанда, келесі теңдеулер дұрыс болып табылады:
pri
== &a[0][0];
pri+1== &a[0][1];
p ri+2== &a[1][0];
pri+3== &a[1][1];
pri+4==
&a[2][0];
pri+5== &a[2][1];
Екі өлшемді жиым бір өлшемді жиымдардан құрастырылған жиым ретінде қарастырылуы мүмкін. Яғни берілген екі өлшемді жиым үш жолдан тұрады, ал әрбір жол екі элементтен тұратын жиым болып табылады.
Бірінші жол аты – a[0],
екінші жол аты – a[1],
үшінші жол аты – a[2].
Жиымның аты берілген жиымның нұсқауышы болып табылады, яғни ол жиымның 1-элементіне сілтейді.
Екі өлшемді жиымның осы қасиеті бір өлшемді жиымға арналған функцияны екі өлшемді жиыммен жұмыс істеуге мүмкіндік береді.
12-мысал. Төмендегі b[3][4] матрицасы жолдарының арифметикалық ортасын табатын программада функция қолданылған.
/* b[3][4] матрицасы жолдарының қосындысы */
#include <conio.h>
#include <stdio.h>
float f1(int x[], int n)
{ int k; float s;
for (k=0,s=0;k<n; k++)
s+=x[k];
return(s/n);
}
main ()
{ int i,b[3][4]={ {6,4,3,3},
{7,5,3,3},
{8,4,2,6}
};
clrscr();
for (i=0;i<3;i++)
printf("%d жолының орташа мәні: %f\n", i,f1(b[i],4));
getch();
}
Бақылау сұрақтары
Екі өлшемді жиымды – матрицаны сипаттау, бастапқы мәндерді тағайындау тәсілдері.
Екі өлшемді жиымды инициалдауды қабаттасқан циклдер арқылы орындау.
Матрица элементтерін толық өңдейтін алгоритмдер.
Матрицалардың көрсетілген элементтерін өңдеу тәсілдері.
Матрицалардың диагоналына байланысты орналасқан элементтерін өңдеу жолдары.
Матрицалардың жолдарының және бағаналарының ең үлкен (кіші) элементтерін, қосындыларын, көбейтінділерін табу.
Матрицалардың жолдарында және бағаналарында орналасқан элементтерді өсуі (кемуі) бойынша реттеу алгоритмдері.
Дәріс№10
7. Сөз тіркестерін өңдеу
PASCAL тілінде сөз тіркестерін өңдеу кезінде қолданылатын арнайы тип – string бар. Ал Си тілінде мұндай арнайы тип жоқ. Сөз тіркестері char типті бір өлшемді жиым ретінде қарастырылады, яғни сөз тіркесі – нөлдік байтпен аяқталатын char типті бір өлшемді жиым. Нөлдік байт – барлық биттері де нөлге тең байт, ол ´ \0 ´ символдық константасымен анықталады (тіркес соңы белгісі немесе нөл-терминатор). Сондықтан егер тіркесте k символ болса, онда жиымды сипаттауда k+1 элемент көрсетілуі тиіс.
Мысалы, char a[7] деген сипаттау тіркестің 6 символдан тұратынын, ал соңғы байт нөлдік екенін білдіреді. Си тіліндегі тіркестік (жолдық) константа – қос тырнақшаға алынған символдар жиыны. Мысалы, “Берілген тапсырма” тіркесі, оның соңына нөлдік байтты компилятор автоматты түрде өзі жазады.
Айнымалы мәні болатын сөз тіркесін сипаттау кезінде бірден көрсетуге болады, мысалы,
char S1[10]=”123456789”, S2[]=”Болат”;
Соңғы сөз ұзындығы тіркестің символдары санымен анықталады.
Символдар тіркесін пернелерден енгізу үшін екі стандартты функция – scanf()немесе gets()қолданылады, ал олардың прототиптері stdio.h тақырыптық файлында болады.
Символдық таңбаларды енгізу/шығару
Символдарды біртіндеп енгізу/шығару үшін printf() және scanf() функцияларының %c форматы қолданылады.
getch() – параметрсіз функция, басылған перненің кодын (int) береді, экранға ешқандай символ шығармайды.
getchar() – параметрсіз функция. Пернеден символдарды бір-бірлеп енгізеді. Сөз тіркесі <Enter> пернесі басылғанша енгізіле береді, оған дейін оны өзгертуге де болады.
putch(c) – бір символды (c – cимволдық айнымалы немесе константа), яғни бір таңбаны ғана экранға шығарады.
putchar(c) – бұл да тек бір таңбаны экранға шығарады.
Бұлар conio.h тақырып файлы бойынша жұмыс істейді.
Мысалы, латын алфавиті әріптерін экранға шығару программасы төмендегідей болады:
#include <conio.h>
#include <stdio.h>