dinamik matricalar

PPT 35 стр. 2,0 МБ Бесплатная загрузка

Предварительный просмотр (5 стр.)

Прокрутите вниз 👇
1 / 35
слайд 1 11-маъруза кўрсаткичлар. кўрсаткичларни ўзлаштириш. динамик массивлар. http://acm.tuit.uz http://acm.tuit.uz динамик матрицалар масала . матрица ўлчамини киритинг ва унга дастур давомида хотирадан жой ажратинг. муаммо : матрица ўлчами олдиндан маълум эмас. ечиш усуллари: хар бир сатр учун алохида хотира блоки ажратиш; бутун матрица учун бир йўла хотира ажратиш. http://acm.tuit.uz http://acm.tuit.uz * ҳар бир сатр учун хотира блоки. матрица адреси: матрица = сатр массиви матрица адреси = массив адреси, бунда сатрлар адреси сақланади. сатр адреси = кўрсаткич матрица адреси = кўрсаткичлар массиви адреси int **a; typedef int *pint; pint *a; ёки янги тур орқали pint = кўрсаткич int динамик матрица эълони: a[m-1][0] ... a[m-1][n-1] a[0][0] ... a[0][n-1] a a[0] a[1] a[m-1] . . . * бир йўла хотира ажратиш. typedef int *pint; int main() { int m, n, i; pint *a; ... a = new pint[m]; for ( i = 0; i >q; i = 0; while ( q[i] != '\0' …
2 / 35
s ( q ); len = strlen( q ); if ( q[0] != ' ') count++; for ( i = 0; i < len - 1; i ++ ) if ( q[i] == ' ' && q[i+1] != ' ' ) count ++; cout<< count<<“ ta so’z topildi”; } асосий ҳолат агар пробел бўлса, ундан кейин ҳам пробел йўқми… олдинги слайд http://acm.tuit.uz http://acm.tuit.uz * * ёрдам: битта символни чиқариш учун putchar(символ) функциясидан фойдаланинг. масалан: вазифа «4»: гап киритинг ва ундаги сўзларнинг нечтаси 'а‘ ҳарфи билан тугайди. мисол: gap kiriting: gap kiriting : aziza mana choy bugun iat darsi topilgan so’zlar: 2 bunday so’z yo’q «5»: гап киритинг ва ундан сўзларни ажратиб олинг: мисол: гап киритинг : aziza mana choy результат: aziza mana choy putchar(q[i]); putchar('\n'); // янги сатрга ўтиш * * сатрни нусхалаш strcpy (string copy) char q1[10] = "qwerty", q2[10] = "01234"; strcpy ( q1, q2 ); қаерга қаердан …
3 / 35
трларни нусхалаш битта сатрни ичидан нусхалаш char q[10] = "012345"; strcpy ( q, q+2 ); q char q[10] = "012345"; strcpy ( q+2, q ); q http://acm.tuit.uz 0 1 2 3 4 5 \0 ¤ ¤ ¤ 2 3 4 5 \0 0 1 2 3 4 5 \0 ¤ ¤ ¤ 0 1 2 3 2 3 http://acm.tuit.uz * * сатрларни бирлаштириш strcat (string concatenation) = биринчи сатр охиридан иккинчи сатрни қўшади char q1[10] = "qwe", q2[10] = "0123"; strcat ( q1, q2 ); q2 q1 char q1[10] = "qwe", q2[10] = "0123"; strcat ( q1, q2+2 ); q2 q1 http://acm.tuit.uz q w e \0 ¤ ¤ ¤ ¤ ¤ ¤ 0 1 2 3 \0 ¤ ¤ ¤ ¤ ¤ 0 1 2 3 \0 q w e \0 ¤ ¤ ¤ ¤ ¤ ¤ 0 1 2 3 \0 ¤ ¤ ¤ ¤ ¤ 2 3 \0 …
4 / 35
мисол: фишни киритинг: abidova shaxnoza baxodirovna натижа: salom, abidova shaxnoza! http://acm.tuit.uz http://acm.tuit.uz * * символли сатрларда қидириш масала: символли сатрдан берилган символ ёки бирикмани топинг. кўрсаткич – бу ўзгарувчи бўлиб унга бир хил типли бўлган бошқа ўзгарувчини қийматини ёзиш мумкин. http://acm.tuit.uz с++ да қидириш функцияси топилгпн символ ёки қисм сатрни адресини қайтаради. аграда топилмаса, null (нулли адрес) чиқаради. ! http://acm.tuit.uz * * кўрсаткичлар char *p; // ихтиёрий символ ёки сатрни адреси int *pi; // бутун сонни адреси float *pf; // ҳақиқий сонни адреси эълон қилиш: бутун ўзгарувчилар ва массивлар: int n = 6, a[5] = {0, 1, 2, 3, 4}; int *p; // бутун сонга кўрсаткич p = &n; // n манзилни ёзиш *p = 20; // n = 20 p = a + 2; // a[2] (&a[2]) адресни ёзиш *p = 99; // a[2] ўзгартириш p ++; // a[3] га ўтиш printf(“adres: %p, qiymat %d", p, *p); adres: 6bcd:000c, …
5 / 35
итинг ва унда нечта «olim» сўзи қатнашаётганлигини аниқланг. муаммо: strstr функцияси сатр бошидан бошлаб қидиради. алгоритм: записать адрес начала строки в указатель start. искать подстроку «вася», начиная с адреса start. если не нашли, выход из цикла. увеличить счетчик найденных слов. переставить start на адрес после найденного слова. 2-қадамга ўтиш. start p p = strstr( start, "вася"); http://acm.tuit.uz o l i m v a o l i m o l i m ! ! \0 http://acm.tuit.uz * * дастур main() { char q[80], *start, *p; int count = 0; puts ( “gap kiriting” ); gets ( q ); start = q; // сатр бошидан қидирамиз while ( 1 ) { p = strstr ( start, “olim" ); if ( p == null ) break; count ++; start = p + 4; // кейинги сўз қидирилади } cout<< “‘olim' ismi ”<<count<<“ marta takrorlandi”; } қидиришни бошлаш адрес найденного слова http://acm.tuit.uz http://acm.tuit.uz * …

Хотите читать дальше?

Скачайте все 35 страниц бесплатно через Telegram.

Скачать полный файл

О "dinamik matricalar"

слайд 1 11-маъруза кўрсаткичлар. кўрсаткичларни ўзлаштириш. динамик массивлар. http://acm.tuit.uz http://acm.tuit.uz динамик матрицалар масала . матрица ўлчамини киритинг ва унга дастур давомида хотирадан жой ажратинг. муаммо : матрица ўлчами олдиндан маълум эмас. ечиш усуллари: хар бир сатр учун алохида хотира блоки ажратиш; бутун матрица учун бир йўла хотира ажратиш. http://acm.tuit.uz http://acm.tuit.uz * ҳар бир сатр учун хотира блоки. матрица адреси: матрица = сатр массиви матрица адреси = массив адреси, бунда сатрлар адреси сақланади. сатр адреси = кўрсаткич матрица адреси = кўрсаткичлар массиви адреси int **a; typedef int *pint; pint *a; ёки янги тур орқали pint = кўрсаткич int динамик матрица эълони: a[m-1][0] ... a[m-1][n-1] a[0][0] ... a[0][n-1] a a[0] a[1] a[m-1] . . . * бир йўл...

Этот файл содержит 35 стр. в формате PPT (2,0 МБ). Чтобы скачать "dinamik matricalar", нажмите кнопку Telegram слева.

Теги: dinamik matricalar PPT 35 стр. Бесплатная загрузка Telegram