- •Программалау тілдері
- •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()
{char b[]=”Сезам, ашыл!”;
clrscr();
printf("%s",b);
getch();
}
Мұндағы b жиымының ұзындығы 13 символ, яғни сөздер ұзындығынан 1-ге артық.
Енді бір сөйлем енгізіп, соның соңғы сөзін экранға шығарайық.
#include <conio.h>
#include <stdio.h>
Void main()
{
char s,ss; // s – енгізілетін символ
// ss – алдыңғы символ
char a[80]; // сөз массиві
int i,k; // k – сөз ені
clrscr();
printf("Соңында нүкте бар сөйлем енгізіңдер:\n”);
for(i='0',s=' ',k=0;i<=79;i++)
{
ss=s; s=getchar();
if (s==' ') continue;
if (s=='.') break;
if (ss==' ') k=0;
a[k]=s; k++;
}
//нүктеден кейін шығу не тіркес біткесін шығу
if (i==80 || k==0)
printf("сөйлем дұрыс емес \n”);
else
{
a[k]=‘\0’; // жол соңы
printf("ең соңғы сөз: %s",a);
}
getch();
}
мұнда символдар біртіндеп getchar() функциясы арқылы енгізіледі. Егер бос орын енгізілсе continue операторы келесі қадамға көшіреді. Нүкте енгізілсе цикл тоқталады, бірақ алыңғы k символда соңғы сөз сақталады. Егер символ нүкте де, бос орын да емес болса, онда алдыңғы символ қарастырылады. Егер ол бос орын болса, онда келесі сөз енгізіліп, k нөлге тең болады. Циклден шығу нүкте арқылы немесе 80 символ енгізілген соң орындалады.
Келесі мысалда сөз тіркесінің ұзындығы екі тәсілмен анықталады.
#include <conio.h>
#include <stdio.h>
#include <string.h>
Void main()
{
char st[80];
int i;
clrscr();
puts("Сөз тіркесін енгізіп, Enter басыңыз:");
gets(st);
i=0;
while (st[i++])
;
printf("Енгізілген тіркес ұзындығы: %i\n",i-1);
puts("Сөз тіркесін енгізіп, Enter басыңыз:");
gets(st);
printf("Енгізілген тіркес ұзындығы: %i\n",
strlen(st));
getch();
}
Енді бір сөз тіркесін енгізіп, оның ішінде “т” символының неше рет кездесетінін табайық.
#include <conio.h>
#include <stdio.h>
#include <string.h>
Void main()
{
char str[80];
int s=0;
clrscr();
puts("Сөз тіркесін (сөйлем) енгізіңіз:");
gets(str);
for (int i=0; i<strlen(str); i++)
if (str[i] == 'т') s+=1;
printf("'т' символы %i рет кездеседі\n",s);
getch();
}
Ендігі мысалда енгізілген сөздің палиндром (алды-артынан оқығанда, мәні бірдей) екенін анықтайық.
#include <conio.h>
#include <stdio.h>
#include <string.h>
Void main()
{
char str[80];
int k,s=0;
clrscr();
puts("Бір сөз (палиндром) енгізіңіз:");
gets(str);
k=strlen(str);
for (int i=0; i<k/2; i++)
if (str[i] == str[k-i-1]) s+=1;
if (s==k/2)
puts("Сөз - палиндром.");
else puts("Сөз - палиндром емес.");
getch();
}
Дәріс№11
СӨЗ ТІРКЕСТЕРІН ӨҢДЕУ. Жолдар.
Сөз тіркестерін енгізу функциялары scanf(), gets(str).
Scanf() функциясы тіркестік айнымалылар мәнін %s форматымен енгізеді, бірақ ол тіркесті тек бірінші босорын таңбасына дейін ғана енгізе алады.
Ал gets(str) функциясы арасында босорыны бар тіркестерді енгізеді, енгізу ENTER пернесімен аяқталады.
Екі функция да тіркес соңына нөлдік байт қосып жазады. Оның үстіне тіркес –символдық жиым болып, ал жиым аты – оның компьютер жадындағы алғашқы адресіне сілтеме болғандықтан, тіркестік айнымалы атының алдына «&» символы жазылмайды.
Сөз тіркестерін шығару функциялары сprintf(),puts(),cputs()
printf() – экранға формат арқылы сөз тіркесін шығарады;
сprintf() – экранға printf() сияқты формат арқылы сөз тіркесін шығарады, тек олардың түстерін textcolor() және textbackground() функциялары арқылы өзгертуге мүмкіндік береді;
puts(str) – экранға сөз тіркесін шығарып, курсорды бірден келесі жолдың басына алып барады, мұндағы str – тіркестік константа немесе тіркестік айнымалы. Бұлар stdio.h тақырып файлы бойынша жұмыс істейді.
Екі функция да символдық жиымды нөлдік байтқа дейін шығарады. printf() функциясы символ тіркесі шығарылған соң, курсорды келесі жолға көшірмейді, ол үшін арнайы формат (\n) жазылуы тиіс. Ал puts( ) функциясы символдар шығарылған соң, автоматты түрде курсорды келесі жол басына көшіреді.
//puts функциясын пайдалану мысалы
#include <stdio.h>
#include <conio.h>
main()
{ char str1[]= “abc”;
char str2[]= “def\nghi\n”;
char str3[]= “jkl”;
puts(str1);
puts(str2);
puts(str3);
}
Нәтижесі:
abc
def
ghi
jkl
cputs(str) – экранға сөз тіркестерін шығарып, олардың түстерін textcolor() және textbackground() функциялары арқылы өзгертуге мүмкіндік береді, conio.h тақырып файлы бойынша жұмыс істейді.
Сөз тіркестерімен орындалатын басқа операциялар да стандартты функциялар арқылы атқарылады. Ол функциялар жұмыс істеуі үшін string.h тақырыптық файлы қажет.
Жалпы сөз тіркестеріне қолдану үшін stdlib.h немесе string.h тақырыптық файлдары қолданылады.
