- •Программалау тілдері
- •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 ()
Void main ()
{
int n;
char str[50], str1[50], ch;
FILE *fp;
// Файлға мәлімет жазу
fp = fopen("ex.txt","w");
puts ("Бүтін сан енгізіңіз: "); scanf("%d",&n);
fprintf (fp, "%d\n", n) ;
puts ("Символ енгізіңіз: "); ch=getchar();
putc (ch, fp);
puts ("Сөз тіркесін енгізіңіз: "); gets(str);
fputs(str, fp);
fclose(fp);
// Файлдан мәлімет оқу
if((fp = fopen("ex.txt","r")) != NULL)
{
fscanf (fp, "%d", &n); printf ("n=%d\n", n) ;
ch = getc (fp); putchar (ch);
fgets(str1, 50, fp); puts (str1);
fclose (fp);
}
else printf ("\nФайлдан мәлімет оқылмайды!");
}
Мұндағы fgets()функциясының екінші параметрі N – оқылатын символдар саны, оған '\0' белгісі де қосылады. Бұл функция өз жұмысын N-1 символын оқығаннан кейін немесе '\0' белгісі кездескенде аяқтайды. Екеуінде де сөз тіркесі соңына '\0' белгісі қосылады. fgets() функциясы оқылған сөз тіркесі адресін қайтарады немесе файл оқылып болғанда (не қате шықса), NULL белгісін береді.
fputs() функциясы әрекет дұрыс орындалса, соңғы оқылған символ кодын қайтарады, ал қате болса, EOF (файл соңы) белгісін береді. Бұл функция курсорды автоматты түрде келесі жолға көшірмейді.
Жоғарыдағы функциялар файл мәліметтерін біртіндеп, символдан соң келесі символды қарастыра отырып өңдейді. Си тілі файлдармен жиым сияқты жұмыс істеуге де мүмкіндік береді, яғни кез келген байтты жеке өңдеуге де болады. Файл ішіндегі белгілі бір орынды айқындау үшін мына функция қолданылады:
fseek(файлға нұсқауыш,бастапқы нүктеден ығысу, бастапқы нүкте);
Екінші аргумент типі long, оның мәні оң да, теріс те болуы мүмкін. Ол бастапқы нүктеден қанша орынға (байтпен) ығысу керек екендігін көрсетеді. Үшінші аргумент файлдағы бастапқы нүкте орнын анықтайтын код болып табылады. Осы код үшін мынадай мәндер тағайындалған:
- файл басы;
- ағымдағы позиция;
- файл соңы.
Дұрыс орындалғанда, fseek() функциясы 0 мәнін береді, ал егер қате (мысалы, файлдың сол жақ шекарасынан ары аспақшы болғанда) болса, онда -1 береді.
fwrite және fread функцияларын пайдалану
Құрылымдарды пайдаланатын файлдармен жұмыс істеу кезінде fread()/fwrite() функцияларын пайдаланған ыңғайлы. Олардың жазылуы:
fread(ptr,size,n,fp);
мұнда fp файлынан әрқайсысы size байттан тұратын мәліметтің n блогы ptv нұсқауышы көрсетіп тұрған жады аймағына оқылады (оқылатын блок үшін алдын ала орын дайындап қою қажет).
fwrite (ptr,size,n,fp);
мұнда ptr нұсқауышы көрсетіп тұрған жады аймағында орналасқан әрқайсысы size байттан тұратын мәліметтің n блогы ашық тұрған fp файлына жазылады.
Осы функцияларды қолданудың бір мысалын келтірейік:
typedef struct
{
char author [30];
char title [50];
Int pages;
} BOOK;
BOOK b1={"Kernighan", "С Language", 256},b2;
FILE *fp;
Void main()
{...
fp=fopen("struct.txt", "w+");
// файл әрі оқу, әрі жазу үшін ашылды
fwrite(&b1, sizeof(BOOK), 1, fp);
fseek(fp,0,0); // маркер файл басына
fread(&b2, sizeof(BOOK), 1, fp);
printf("Авторы – %s,аты – %s,беттер саны –
%d\n",b2.author, b2.title, b2.pages);
}
