Toshkent axborot texnologiyalari universiteti qarshi filiali kompyuter injinering fakulteti ki-11-21s guruh talabasi qudratov Shavkat Mustaqil ishi 1 Mavzu-1: Tarmoqlanuvchi jarayonlarni tashkil etish


int a10[10]={1, 2, 3, 4}; //va 6 ta nol



Yüklə 34,82 Kb.
səhifə7/7
tarix11.12.2023
ölçüsü34,82 Kb.
#147091
1   2   3   4   5   6   7
Mustaqil ishi 1 Mavzu-1 Tarmoqlanuvchi jarayonlarni tashkil eti-fayllar.org

int a10[10]={1, 2, 3, 4}; //va 6 ta nol

Agar nomlangan massivning tavsifida uning o‘lchamlari ko‘rsatilmagan bo‘lsa, kompilyator tomonidan massiv chegarasi avtomatik aniqlanadi:

int a3[]={1, 2, 3};

Bir o‘lchamli massivlarni funksiya parametrlari sifatida uzatish. Massivdan funksiya parametri sifatida foylalanganda, funksiyaning birinchi elementiga ko‘rsatkich uzatiladi, ya’ni massiv hamma vaqt adres bo‘yicha uzatiladi. Bunda massivdagi elementlarning miqdori haqidagi axborot yo‘qotiladi, shuning uchun massivning o‘lchamlari haqidagi ma’lumotni alohida parametr sifatida uzatish kerak.

Funksiyaga massiv boshlanishi uchun ko‘rsatkich uzatilgani tufayli (adres bo‘yicha uzatish), funksiya tanasining operatorlari hisobiga massiv o‘zgarishi mumkin.

Funksiyalarda bir o‘lchovli sonli massivlar argument sifatida ishlatilganda ularning chegarasini ko‘rsatish shart emas.

Funksiyalarda bir o‘lchovli sonli massivlar argument sifatida ishlatilganda ularning chegarasini ko‘rsatish shart emas.

Mavzu-4: Matrisalarni funksiya parametrlari sifatida qo’llanilishi.

Matritsalarni almashtirish amallari. Matlabda matritsalar ustida oddiy arifmеtik amallardan tashqari maxsus amallar va almashtirishlar mavjud. Ulardan biri matritsalarni transnponirlashdir. Biror A matritsani transponirlash dеganda uni
mos qatorlarini ustunlar bilan almashtirish tushuniladi va u A' kabi bеlgilanadi.
Masalan, A= [ 1 2 3; 4 5 6 ] bo’ladi. dеmak bunda (m*n) o’lchovli matritsaga
o’tadi.
Bir nеchta matritsalarni birlashtirish uchun
В= cat ( А1, А2, ... )
komanda ishlatiladi. Bu holda A1, A2, ..., matritsalar ko’rsatilgan o’lchov bo’yicha
birlashtiriladi:
cat (2, А, В) = [А, В]
cat (1, А, В) = [А; В]
Matlabda matritsalarni burish uchun fliplr (A), flipud (A) komandalaridan foydalaniladi. fliplr (A) komandasi A matritsani chapdan ongga ustunlarini almashtirish yonalishida buradi. flipud (A) esa A matritsani pastdan yuqoriga qatorlarini almashtirish yonalishida buradi.
- Masala. A(mxn) matritsa berilgan. Shu matritsa elementlar ini kirituvchi va ekranga jadval ko`rinishida chiqaruvchi programma tuzilsin.
#include
#include
int main()
{int m, n, a[10][10];
cout << "Satrlar sonini kiriting \nm=";cin >> m;
cout << "Ustunlar sonini kiriting \nn=";cin >> n;
cout <<"Massiv elementlarini kiriting \n";
for(int satr = 0; satr < m ; satr++)
for(int ustun = 0; ustun < n; ustun++)
{ cout << "a[" << satr << "][" << ustun << "]="; cin >> a[satr][ustun]; }
for(int satr = 0; satr < m; satr++)
{ for(int ustun = 0; ustun < n; ustun++)
cout << a[satr][ustun] << "\t"; cout<<"\n"; }
system ("pause");
return 0; }
Funksiya parametri sifatida massivni jo'natish va funksiya natijasi sifatida massivni olish ham mumkin. Funksiyaga matritsani uzatishda matritsa nomi bilan uning satrlar va ustunlar sonini ham jo'natish kerak bo'ladi. Funksiyada massivdan foydalanishni bir necha xil usuli bor, shularning ba'zilari bilan tanishamiz.
Funksiyaga matritsani uzatish
#include
#include
void matrix_print(int a[10][10], int m, int n)
{// matritsani jadval shaklida chiqarish
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{ cout << a[i][j] << "\t";
}
cout << "\n"; }
int satr_max(int a[], int n
Matritsadagi har bir satrning eng kattasini topish
#include
#include
void matrix_print(int a[10][10], int m, int n)
{
// matritsani jadval shaklida chiqarish
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
cout << a[i][j] << "\t";
}
cout << "\n";
}
}
int satr_max(int a[], int n)
a(m, n) matritsani b(n, p) matritsaga ko'paytirishdan hosil bo'lgan c(m, p) matritsani chiqaruvchi programma tuzilsin.
#include
#include
void matrix_print(int **a, int m, int n)
{
// matritsani jadval shaklida chiqarish
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
cout << a[i][j] << "\t";
}
cout << "\n";
}
}
void matrix_input (int **a, int m, int n)
{
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
cin >> a[i][j];
}void matrix_delete (int **a, int m)

Mavzu-5: Vektorlarni funksiya parametrlari sifatida qo’llanilishi.

Ob'ekt ob'ektlarini saqlashni tashkil etish uchun C ++ Standart kutubxonada konteynerlar idishlari deb nomlangan bir qator sinf shablonlarini taqdim etadi. Standart idishlar ma'lum birlashmalarga ega, ularda ba'zi hollarda ular bilan ishlaydigan kodni o'zgartirmasdan boshqasi bilan bitta idishni almashtirishi mumkin. Standard bilan mos keladigan konturlarni ta'minlaydigan uchinchi uchinchigartli kutubxonalar mavjud (masalan, kutubxonalar to'plamidan).
Konteyner unga joylashtirilgan ob'ektlarni saqlash usulini (konteyner elementlari) va ularning mavjudligini tekshiradi. Idish yo'q qilinganida, u tomonidan saqlanadigan barcha elementlar ham vayron qilingan (konteynerni buzuvchi).
Eng mashhur konteyner std :: Vektor - bu ish bilan bag'ishlangan "vektor". "Vektor" nomi tarixiy ravishda rivojlanib, "Dinamik qator" degan ma'noni anglatadi "Dinamik qator" degan ma'noni anglatadi, shuningdek, matematik ma'noda vektor emas.
Vektor - bu sinf shabloni va birinchi (va yagona majburiy) parametr saqlangan ob'ektlarning turini qabul qiladi: Std :: Std :: Strel - chiziqlar vektori , va boshqalar.
Vektorga kirish uchun standart vektorli sarlavha faylini ulang:
#include

Shablonlar
Tempet Temapet C ++ dasturlash tilining dizayni bo'lib, bu sizning funktsiyalarni (funktsiyalar shablonlari funktsiyalari) va turlarini (funktsiyalar shablonlari funktsiyalari) parametrlari yoki turlari bilan parametrlar (soniyalar, belgilar yoki havolalar) bilan belgilash imkonini beradi. Shablon parametrlarini almashtirish kompilyatsiya paytida amalga oshiriladi. Zaktaning natijasi aniq funktsiyalar (funktsiyalar shablonlari) yoki turlardan (sinf shablonlaridan).
Ushbu ta'rif, misollar bilan tushuntirish osonroq.
Tasavvur qiling, biz kvadratni qurish funktsiyasini (soddalik uchun) yozamiz.
Ikkita SQR (ikki x)
{
X * x ni qaytaring;
}
Tarkibni tanlash parametr sifatida va funktsiya natijasi juda o'zboshimchalik bilan. Agar biz turdagi va ishlamayotgan nuqta bilan biron bir turdagi va keraksiz o'zgarishlarni o'rnatsak-chi?
IR SQR (int x)
{
X * x ni qaytaring;
}
Xuddi shu funktsiya har qanday raqamli raqam uchun yozilishi mumkin.
Wec_t SQR (E'lon_t x)
{
X * x ni qaytaring;
}
Vektor ob'ektini yaratish
Quyida ba'zi STD dizaynerlaridan foydalanishning misollari: Vektor butun sonlar vektorining misolidan foydalangan holda.
vector ve;
// пустой вектор
assert(ve.empty());

vector vn(10); // вектор размера 10


// vn создаёт объекты со значением, возвращаемым конструктором без параметров,
// для встроенных типов чисел это 0
assert(!vn.empty());
assert(vn.size() == 10);
assert(vn[0] == 0);

vector vi(10, 42); // вектор из 10 значений, равных 42


// в качестве второго параметра можно указать конкретное значение
// создаваемых объектов
assert(vi.size() == 10);
assert(vi[0] == 42);

int arr[] { 1, 2, 3, 4, 5 };


vector va(arr + 1, arr + 4);
// копия диапазона массива
// va содержит 3 элемента: 2, 3, 4
assert(va.size() == 3);
assert(va[0] == arr[1] && va[1] == arr[2] && va[2] == arr[3]);


// Наконец, вектор можно создать из конкретного набора значений,
// используя фигурные скобки вместо круглых (C++11).
vector vl { 1, 2, 3, 4 };
// можно также ставить "=": vl = { ...
assert(vl.size() == 4);
assert(vl.front() == 1 && vl.back() == 4);
C ++ ning boshqa turlari singari, vektorlar vaqtincha qiymatlar sifatida yaratilishi mumkin, bu dizaynerni aniq keltirib chiqaradi. Masalan, ma'lum bir vektor tarkibining ushbu qiymatlar to'plamiga teng bo'lgan qiymatga teng bo'lishi mumkin:
// Используем последний конструктор из примера выше.
vector vl { 1, 2, 3, 4 };
// Повторно используем тот же конструктор
// для создания временного объекта с заданным содержимым.
// Обратите внимание -- необходимо указывать тип элемента вектора (здесь int).
assert(( vl == vector { 1, 2, 3, 4 } ));
assert(( vl != vector { 2, 3, 4 } ));
http://fayllar.org

Yüklə 34,82 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6   7




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə