Қисқача назария
Download 0.53 Mb.
|
lab1
- Bu sahifa navigatsiya:
- Қисқача назария
- Бутун тур - int
MUXAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI Elektron tijorat yo’nalishi 011-20 -gurux “Ma‘lumotlar tuzilmasi va algoritmlar” fanidan Tajriba ishi 1 Bajardi:Abduqaxxorov I. Qabul qildi: BO‘RIYEV Y. A. Toshkent 2022 1-Тажриба иши. "МАЪЛУМОТЛАРНИ ОДДИЙ СОЗЛАНГАН ТУРЛАРИ" Ишдан мақсад: Маълумотларни оддий турларини ўрганиш ва уларни тадқиқ қилиш. Қўйилган масала: C++ тилида бутун, ҳақиқий, белгили, мантиқий турдаги маълумотларни эълон қилиш ва уларга доир мисолларни дастурини ишлаб чиқиш . Иш тартиби: Тажриба иши тавсифини ўрганиш; Берилган топшириқни дастури алгоритмини ишлаб чиқиш; С++ тилида дастурни яратиш; Дастурни ишлатиш; масалани ечиш; хисоботни тайёрлаш. Қисқача назарияКўплаб дастурлаш тилларида маълумотлар базавий ва келтирилган турларга ажратилади. Маълумотларни турларини қуйидаги расмдагидек классификациялаш мумкин. Маълумотларнинг ихтиёрий тури қийматлар соҳаси ва улар устида бажарилиши мумкин бўлган амаллар орқали тавсифланади. void калит сўзи хеч қандай типга эга эмасликни англатади. Бундай типдаги функциялар хеч қандай типдаги қиймат қайтармаслигини билдиради. Мазкур тур бутун сонлар тўпламини қандайдир қисм тўплами бўлиб, унинг ўлчами машина, яъни ЭҲМ конфигурациясига боғлиқ равишда ўзгариб туради. Агар бутун сонни машинада тасвирлаш учун п та разряддан фойдаланилса (бунда қўшимча коддан фойдаланилганда), у ҳолда х бутун соннинг қиймат қабул қилиш оралиғи қуйидагича бўлиши зарур, яъни қуйидаги шартни қаноатлантириши лозим: -2 n-1<= x< 2 n-1. Мазкур турга кирувчи сонлар иккитага бўлинади: ишорали (signed) ва ишорасиз (unsigned). Уларнинг ҳар бир учун мос равишда қиймат қабул қилиш оралиғи мавжуд: a) ишорасиз сонлар учун (0..2n-1); b) ишоралилар учун (-2N-1.. 2N-1-1). Бутун сонлар устида турли математик амалларни бажариш мумкин. Бутун сонлар яна солиштириш амалларини хам бажариш мумкин, яъни ==, !=, <, <=, >, >= операторлар билан бинар амалларни ҳам бажариш мумкин. Аммо бу операцияларнинг натижалари int турига кирмайди, улар bool турига киради. Бутун қиймат қабул қилувчи ўзгарувчиларни эълон қилиш учун int, short int, long int хизматчи сўзларидан фойдаланиш мумкин. Бутун қийматли турларнинг барчаси қуйидаги жадвалда келтирилган:
Бу санаб ўтилган турлар ўзларининг қийматлар қабул қилиш оралиғи ва хотирадан эгаллаган жойининг катта ёки кичиклиги билан фаркланади. Шунинг учун, ўзгарувчиларнинг қабул киладиган қийматларини катта ёки кичиклигига караб, юкоридаги турлардан мосини танлаш максадга мувофикдир. Юқоридаги типларни signed (ишорали), unsigned (белгисиз) калит сўзлари билан модификациялаш мумкин. Бунда белгили тип учун ажратилган жойнинг энг чап бити ишора учун, қолган битлар қийматларни сақлаш учун ишлатилади, яъни 0 – плюс, 1- минус. Белгисиз типларда эса барча битлар қийматларни сақлаш учун ишлатилади. DASTUR kodi #include #include #include #include int main() { srand(time(NULL)); int max; int i, j, k, n; n = 7; int arr[7][7]; int vect[7]; for(i = 0; i < n ; i++) { for(j = 0; j < n; j++) { arr[i][j] = rand() % 10; printf("%d ", arr[i][j]); } printf("\n"); } for(k = 0; k < (2 * n - 1); k++) { max = -1; j = abs((n - 1) - k); for(i = 0; i <= ((n - 1) - abs((n - 1) - k)); i++) { if(k < n) if(arr[i][j] > max) max = arr[i][j]; if(k >= n) if(arr[j][i] > max) max = arr[j][i]; j++; } vect[k] = max; } printf("Natija : \n\n"); for(i = 0; i < (2 * n - 1); i++) printf("%d ", vect[i]); printf("\n"); return 0; } Natija Download 0.53 Mb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling