Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
REFERAT / C++ te qatarlar.docx
Скачиваний:
2
Добавлен:
14.01.2024
Размер:
95.92 Кб
Скачать

ÓZBEKSTAN RESPUBLIKASÍ JOQARÍ BILIMLENDIRIW,

ILIM HÁM INNOVACIYALAR MINISTRLIGI

MUHAMMED AL-XOREZMIY ATÍNDAǴÍ TASHKENT INFORMACIYALÍQ TEXNOLOGIYALARÍ UNIVERSITETI

NÓKIS FILIALÍ

TELEKOMMUNIKACIYA TEXNOLOGIYALARÍ HÁM

KÁSIPLIK TÁLIM FAKULTETI

INFORMACIYA QA’WIPSIZLIGI

1-kurs studenti

PROGRAMMALASTÍRÍW I PÁNINEN

ÓZBETINSHE JUMÍS

Orınlaǵan Jumanazarov I.

Qabıllaǵan: Kalmuratov B.

Nókis – 2024

QATARLAR HAM KENEYTIRILGEN BELGILER HAM OLARDI QAYTA ISLEW. QATAR STANDART FUNKCIYALAR

JOBASI:

  1. Qatarlardi jalgaw ham salistiriw

  2. Qatarlardi bolimin izlew

  3. Qatarlar standart funkciyalar ham olardi qayta islew

C++ te qatarlar hám qatarlar ústinde ámeller islew bilim hám kónlikpeler payda etiw.

Qatarlardı salıstırıw. Qatarlardı salıstırıw olardaǵı sáykes orında jaylasqan belgiler kodların óz-ara salıstırıw menen anıqlanadı. Bunıń ushın «string.h» kitapxanasında standart funkciyalar bar. strcmp() funkciyası sintaksisi:

int strcmp(const char *str1, const char *str2)

kórinisine iye bolıp, funkciya str1 hám str2 salıstırıw nátiyjesi sıpatında san

mánisin qaytaradı hám olar tómendegishe ańlatıladı:

a) i < 0 - eger str1 qatarı str2 qatarınan kishi bolsa;

b) i = 0 - eger str1 qatarı str2 qatarına teń bolsa;

c) i > 0 - eger str1 qatarı str2 qatarınan úlken bolsa.

Funkciya háriplerdiń registrin parqlaydı. Bunı mısalda kóriwimiz múmkin:

char qatar1[80] = ”Programmalastırıw tilleri: C++,

pascal.“; char qatar2[80] = ”Programmalastırıw tilleri: C++,

Pascal.“; int i;

i = strcmp(qatar1, qatar2);

Nátiyjede i ózgeriwshisi oń mánis qabıl etedi, sebebi salıstırılıp atırǵan qatarlardaǵı “pascal” hám “Pascal” qatar bóleklerinde birinshi háripler parq qıladı. Keltirilgen mısalda i mánisi 32 boladı. Bul parqlanıwshı háripler kodlarınıń ayırması. Eger funkciyaǵa

i = strcmp(qatar2, qatar1); kórinisinde múrájat etilse i mánisi teris san -32 boladı.

Eger qatarlardaǵı bas yamasa kishi háriplerdi parqlamastan salıstırıw ámelin orınlaw zárúr bolsa, bunıń ushın strcmpi() funkciyasınan paydalanıw múmkin.

Joqarıda keltirilgen mısaldaǵi qatarlar ushın

i = strcmpi(satr2, satr1); ámeli orinlaǵanda i mánisi 0 boladı.

strncmp() funkciyası sintaksisi

int strncmp(const char *str1, const char *str2,

size_t num);

kórinisinde bolıp, str1 hám str2 qatarlardı baslanǵish num sanındaǵı belgilerdi salıstıradı. Funkciya háripler registrin itibarǵa aladı. Joqarıdaǵı mısalda anıqlanǵan qatar1 hám qatar2 qatarlar ushın

i = strncmp(qatar1, qatar2, 31);

ámeli orınlanıwında i mánisi 0 boladı, sebebi qatarlar basindaǵı 31 belgiler

birdey.

strncmpi() funkciyası strncmpi() funkciyasınday orınlanadı, ózgeshe tárepi sonnan ibarat salıstırıwda háriplerdiń registrin esapqa alınbaydı. Dál usı qatarlar ushın

i=strncmpi(qatar1, qatar2, 32); ámeli orınlanıwı nátiyjesinde i ózgeriwshi mánisi 0 boladı.

Qatardaǵı háripler registrin almastırıw. Berilgen qatardaǵı kishi háriplerdi bas háriplerge yamasa kerisinshe almastırıwǵa sáykes ráwishte _strupr() hám _strlwr() funkciyalar járdeminde ámelge asırıw múmkin. Kompilyatorlardıń ayrım variantlarında funkciyalar atındaǵı tómengi sızıq (‘_’) bolmawı múmkin.

_strlwr() funkciyası sintaksisi

char* _strlwr(char *str);

kórinisinde bolıp, argument sıpatında berilgen qatardaǵı bas háriplerdi kishi háriplerge almastıradı hám payda bolǵan qatar adresin funkciya nátiyjesi sıpatında qaytaradı. Tómendegi programma bólegi _strlwr() funkciyasınan paydalanıwǵa mısal boladı.

char str[] = ”10 DANA ÚLKEN HÁRIPLER”;

_strlwr(str); cout << str; nátiyjede ekranǵa

10 dana úlken háripler qatarı shıǵarıladı.

_strupr() funkciyası dál _strlwr() funkciyasınday orınlanadı, biraq qatardaǵı kishi háriplerdi bas háriplerge almastıradı:

char str[] = “10 dana úlken háripler”;

_strupr(str); cout << str; nátiyjede ekranǵa

10 DANA ÚLKEN HÁRIPLER qatarı shıǵarıladı.

Programmalastırıw ámelyatında belgilerdiń qaysı aralıqqa tiyisli ekenligin biliw zárúr boladı. Bunı «ctype.h» baslama faylında járiyalanǵan funkciyalar járdeminde anıqlaw múmkin. Tómende olardıń bir bóleginiń anıqlaması keltirilgen:

isalnum() – belgi, cifr yamasa hárip (true) yamasa joqlıǵın (false) anıqlaydı; isalpha() – belginiń hárip (true) yamasa joqlıǵın (false) anıqlaydı; isascii() – belginiń kodı 0..127 aralıǵında (true) yamasa joqlıǵın (false)

anıqlaydı; isdigit() - belginiń sanlar diapazonına tiyisli (true) yamasa joqlıǵın (false)

anıqlaydı.

Bul funkciyalardan paydalanıwǵa mısal keltiremiz.

#include <iostream.h>

#include <ctype.h> #include <string.h> int main()

{

char qatar[5]; int qáte; do

{ qáte = 0;

cout << "\nTuwılǵan jılıńızdı kiritiń: "; cin.getline(qatar, 5);

for(int i = 0; i < strlen(qatar) && !qáte;

i++)

{ if(isalpha(qatar[i]))

{ cout << "Hárip kiritildi!"; qate = 1;

}

else if(iscntrl(qatar[i])) {

cout << "Basqarıw

kiritildi!"; qáte = 1;

}

else if(ispunct(qatar[i])) { belgisi

cout<< "Punktuaciya

kiritildi!"; qáte = 1;

}

else if(!isdigit(qatar[i])) { belgisi

cout<< "Sannan parqlı

kiritildi!"; qáte = 1; } belgi

} if(!qate)

{ cout << "Siziń tuwılǵan jılıńız: " <<

qatar; return 0;

}

}while (1);

}

Programmada paydalanıwshıǵa tuwılǵan jılın kiritiw usınıs etiledi. Kiritlgen sáne qatar ózgeriwshisine oqıladı hám eger qatardıń hár bir belgisi (qatar[i]) hárip yamasa basqarıw belgisi yaki punktuaciya belgisi bolsa, sol haqqında xabar beriledi hám tuwılǵan jıldı qayta kiritiw usınıs etiledi. Programma tuwılǵan jıl (tórt san) durıs kiritilgende “Siziń tuwılǵan jılıńız XXXX” qatarın shıǵarıw menen óz jumısın tamamlaydı.

Qatardı keri tártiplew. Qatardı keri tártiplew ushın strrev() funkciyasınan paydalanıw múmkin. Bul funkciya tómendegishe prototipke iye: char* strrev(char *str);

Qatar reversin payda etiwge mısal:

char str[] = ”telefon”;

cout << strrev(str);

ámeller orınlanıwı nátiyjesinde ekranǵa nofelet qatarı shıǵarıladı.

Qatarda belgini izlew funkciyaları. Qatarlar menen islewde ondaǵı qandayda bir belgini izlew ushın «string.h» kitapxanasında bir qatar standart funkciyalar bar.

Qanday da bir belginiń berilgen qatarda bar yamasa joq ekenligin anıqlap beriwshi strchr() funkciyasınıń prototipi

char* strchr(const char *string, int c);

kórinisinde bolıp, ol c belgisin string qatarında izleydi. Eger izlew sátli bolsa, funkciya sol belginiń qatardaǵı ornın funkciya nátiyjesi sıpatında qaytaradı, keri jaǵdayda, yaǵnıy belgi qatarda ushıramasa funkciya NULL mánisin qaytaradı. Belgini izlew qatar basınan baslanadı.

Tómende keltirilgen programma bólegi belgini qatardan izlew menen baylanıslı.

char qatar[] = ”0123456789”; char *pQatar;

pQatar = strchr(qatar, ’6’);

Programma islewi nátiyjesinde pQatar kórsetkishi qatar qatardınıń “6” belgisi jaylasqan ornı adresin kórsetedi.

strrchr() funkciyası berilgen belgini berilgen qatar aqırınan baslap izleydi. Eger izlew sátli bolsa, belgini qatarǵa aqırǵı kiriwiniń ornın qaytaradı, keri jaǵdayda NULL mánis qaytaradı.

Mısal ushın

char qatar[] = ”0123456789101112”; char *pqatar;

pqatar = strrchr(qatar,’0’);

ámeller orınlanıwında pqatar kórsetkishi qatar qatarınıń “01112” qatar

bóleginiń baslanıwına kórsetedi.

strspn() funkciyası eki qatardaǵı belgilerdi salıstıradı. Funkciya

tómendegishe

size_t strspn(const char *str1, const char *str2); kórinisine iye bolıp, ol str1 qatarǵa kiriwshi qanday da bir belgini izleydi hám bunday element tabılsa, onıń indeksin funkciya mánisi sıpatında qaytaradı, keri jaǵdayda funkciya qatar uzınlıǵınan bir artıq mánisti qaytaradı. Máselen: char qatar1[] = "0123ab6789012345678"; char qatar2[] = "a32156789012345678"; int parqlı_belgi;

parqli_belgi = strspn(qatar1, qatar2); cout << "qatar1 qatarındaǵı qatar2 qatarına

kirmeytuǵın\ birinshi belgi indeksi = " << parqlı_belgi; cout << "ham ol '" << qatar1[parqlı_belgi] <<"'

belgisi.";

ámeller orınlanıwı nátiyjesinde ekranǵa

Qatarlarǵa sáykes túspegen belgi indeksi = 5 qatarı shıǵarıladı. strcspn() funkciyasınıń prototipi

size_t strcspn(const char *str1, const char *str2);

kórinisinde bolıp, ol str1 hám str2 qatarların salıstıradı hám str1 qatarınıń str2

qatarına kirgen birinshi belginiń indeksin qaytaradı. Máselen: char qatar[] = ”Birinshi qatar”; int indeks;

index = strcspn(qatar, ”sanaq sisteması”);

ámelleri orınlanǵannan soń indeks ózgeriwshisi 1 mánisti qabıl etedi, sebebi

birinshi qatardıń birinshi orındaǵı belgisi ekinshi qatarda ushıraydı.

strpbrk() funkciyanıń prototipi

char* strpbrk(const char *str1, const char *str2);

kóriniske iye bolıp, ol str1 qatarındaǵı str2 qatarına kiriwshi qanday da bir belgini izleydi hám eger bunday element tabılsa, onıń adresi funkciya mánisi sıpatında qaytarıladı, keri jaǵdayda funkciya NULL mánis qaytaradı. Tómendegi mısal funkciyanıń qanday islewin kórsetedi.

char qatar1[] = ”0123456789ABCDEF”; char qatar2[] = ”ZXYabcdefABC”; char *element;

element = strpbrk(qatar1, qatar2); cout << element << ’\n’;

Programma islewi nátiyjesinde ekranǵa str1 qatarınıń

ABCDEF

qatar astı shıǵarıladı.

Соседние файлы в папке REFERAT