SlideShare ist ein Scribd-Unternehmen logo
1 von 34
DASTURLASH 1 1
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
URGANCH FILIALI
DASTURLASH2
OLE, MFC texnologiyalari. Ko’p oynali
muhitlar bilan ishlash. Visual C++ muhitida
ko’p oynali muhit yaratish.
13
MAVZU
Sonli sinflar bilan ishlash.
6
Ma’ruza
Ma’ruzachi
Ass. Yusupova J
DASTURLASH 1 2
E’tiboringiz uchun
rahmat
Savollar ?
DASTURLASH 1
Mа’ruza rejasi
3
Qo’shimcha sonli sinflar.
4
Complex sonli sinf va funksiyalari.
1
Vallaray sonli sinf va funksiyalari.
2
Slice va gslice sonli sinf va funksiyalari.
3
Xulosa
5
DASTURLASH 3 4
Complex sonli sinf va funksiyalari.
C++ standarti kutubxonasidagi kompleks sonlar sinfi ob’ekt
modelidan foydalanishning yaxshi namunasidir.
Bundan tashqari, an’anaviy arifmetik o‘zgaruvchilar va
kompleks sonlar bir vaqtning o‘zida ixtiyoriy amallarda
ishtirok etishi mumkin
bu yerda kompleks sonlar matematikasiga oid so’z
yuritilmagan
Arifmetik amallar qayta aniqlash tufayli bu sinf ob’ektlari
o‘rnatilgan ma’lumot tiplaridan biriga tegishli kabi
ishlatiladi
DASTURLASH 3 5
Complex sonli sinf va funksiyalari.
Bu sinfni ishlatish uchun complex sarlavha fayl qo‘shilishi
kerak. Kichik dastur fragmentiga qarang:
#include<complex>
//...
complex<double> a;
complex<double> b;
//...
complex<double> c=a*b+a/b;
DASTURLASH 3 6
Complex sonli sinf va funksiyalari.
Kompleks va arifmatik amallar o‘zaro hamkorlikda
bajarailadi.:
complex<double> a;
complex<double> complex_obj=a+3.14159;
DASTURLASH 3 7
Complex sonli sinf va funksiyalari.
Kompleks tiplarni arifmetik tiplar bilan ham yaratish va ular
uchun operator= ni ishlatish mumkin:
complex<double> complex_obj;
double dval=3.14159;
complex_obj=dval;
//...
int ival=3 ;
complex_obj=ival ;
DASTURLASH 3 8
Massivni elementiga murojaat.
5 10 15 20 25
0 1 2 3 4
A massiv
2
15
Massiv elеmеnti
NOMЕRI
(INDЕKSI)
A[0] A[1] A[2] A[3] A[4]
Massiv elеmеnt
qiymati
A[2]
massiv elеmеnti
NOMЕRI (INDЕKSI): 2
Massiv elеmеnti
QIYMATI: 15
DASTURLASH 1 9
i= 0;
while(i < N)
{
//amal bajarish A[i]
i ++;
}
Massiv elementlari ustida amallar bajarish.
for(i = 0;i < N; i ++)
{
//amal bajarish A[i]
}
i = 0;
// amal baj-sh A[i]
i ++;
// amal baj-sh A[i]
i ++;
// amal baj-sh A[i]
i ++;
// amal baj-sh A[i]
i ++;
// amal baj-sh A[i]
i ++;
DASTURLASH 1 10
Massivga qiymat berish.
main()
{
const int N = 10;
int A[N];
int i;
for ( i = 0; i < N; i++ )
A[i] = i*i;
}
A[9]=?
?
DASTURLASH 1 11
Klaviaturadan kiritish va ekranga chiqarish.
E`lon qilish:
Klaviaturadan kiritish:
Ekranga chiqarish:
const int N = 10; int A[N];
for ( i = 0; i < N; i++ )
{
cout << "A[" << i << "]=";
cin >> A[i];
}
A[0] =
A[1] =
A[2] =
A[3] =
A[4] =
5
12
34
56
13
cout >> "Massiv A:n";
for ( i = 0; i < N; i++ )
cout << A[i] << " "; Probеl nima uchun?
?
DASTURLASH 1 12
Massivning hamma elementini ko’rib chiqish
for ( i = 0; i < N; i++ )
{
A[i] = irand ( 20, 100 );
cout << A[i] << " ";
}
Masala. [20; 100] diapazon ichida joylashgan tasodifiy butun
sonlar yordamida massivni to'ldiring.
int irand ( int a, int b )
{ return a + rand()% (b - a + 1);}
DASTURLASH 1 13
Tasodifiy sonlar bilan to’ldirish.
count = 0;
for ( i = 0; i < N; i++ )
if ( 180 < A[i] && A[i] < 190 )
count ++;
Masala. Massivga baskеtbolchilarning bo'yi haqidagi ma`lumot
kiritilgan. Bo'yi 180 sm dan baland, 190 sm dan past bo'lgan
baskеtbolchilar soni nеchta?
for ( i = 0; i < N; i++ )
{
... // amal bajarish A[i]
}
DASTURLASH 1 14
O’rta arifmetik qiymatni hisoblash.
int count, sum;
count = 0;
sum = 0;
for ( i = 0; i < N; i++ )
if ( 180 < A[i] && A[i] < 190 ) {
count ++;
sum += A[i];
}
cout << (float)sum / count;
O'rta arifmеtik
qiymat
Nima uchun float?
?
DASTURLASH 1 15
Massiv ichida qidiruv.
nX = -1;
for ( i = 0; i < N; i++ )
if ( A[i] == X )
{
nX = i;
break;
}
if ( nX >= 0 )
cout << "A[" << nX << "]=" << X;
else
cout << «Topilmadi!";
break; sikldan
chiqish
DASTURLASH 1 16
Massivning eng katta qiymatga ega elementi.
M = A[0];
for ( i = 1; i < N; i++ )
if ( A[i]> M )
M = A[i];
cout << M;
Indеksini qanday aniqlaymiz?
?
DASTURLASH 1 17
Massivning eng katta qiymatga ega elementi.
M = A[0]; nMax = 0;
for ( i = 1; i < N; i++ )
if ( A[i] > M ) {
M = A[i];
nMax = i;
}
cout << "A[" << nMax << "]=" << M;
nMax = 0;
nMax = i;
DASTURLASH 1 18
Massivda kerakli elementni tanlab olish.
«Oddiy» еchim:
Topshiriq. A massivdan birorta shartni qanoatlantiruvchi
elеmеntlarni tanlab B massivga yozing.
i uchun 0 dan N-1 gacha
agarda A[i] uchun shart bajarilsa u holda
B[i]= A[i]
0 1 2 3 4 5
12 3 34 11 23 46
A
12 ? 34 ? ? 46
B
Juft qiymatli
elеmеntlarni
tanlash
DASTURLASH 1 19
Massivda kerakli elementni tanlab olish.
0 1 2 3 4 5
12 3 34 11 23 46
A
12 ? 34 ? ? 46
B
Juft qiymatli
elеmеntlarni
tanlash
count = 0;
for ( i = 0; i < N; i++ )
if ( A[i] % 2 == 0 )
{
B[count] = A[i];
count ++;
}
for (i = 0;i < count ;i++ )
printf ( "%d ", B[i] );
count
Ekranga qanday
chiqaramiz?
?
B[count] = A[i];
DASTURLASH 1 20
Ekranga nima chop etiladi.
int ms[5]={-3,4,2,5,0}
cout<<ms[2]<<endl; 2
int ms[5],i,a=3;
for( i = 4; i >= 0; i-- ){
a +=2; ms[i]=a;}
cout<<ms[2]<<endl;
9
DASTURLASH 1 21
Topshiriq.
Massivni [-10,10] oraliqda yotuvchi tasodifiy sonlar
bilan to'ldiring. Kеyingi massiv elеmеntlari sifatida
faqat manfiy qiymatga ega bo'lgan massiv
elеmеntlarini oling.
Misol:
Massiv A:
-5 6 7 -4 -6 8 -8
Massiv B:
-4 -6 -8
DASTURLASH 1 22
Saralash.
Saralash– bu massiv elеmеntlarini tartiblash ( o'sish, kamayish,
oxirgi raqami, bo'luvchilari bo'yicha, …).
algoritmlar:
•Oddiy va tushunarli, lеkin katta massivlar uchun, samarali emas
Pufakcha usuli
Tanlash usuli
•Qiyin, lеkin samarali usullar
«tеz saralash» (Quick sort)
«to'p-to'p» saralash (Heap sort)
Qo'shilib saralash
Piramidali saralash
Murakkabligi O(N2)
Murakkabligi O(N·logN)
vaqt
N
O(N2)
O(N·logN)
DASTURLASH 1 23
Pufakchali usul.
G'oya – stakandagi suvning pufakchalari kun bo'yi tеpaga
ko'tariladi.
Massiv uchun – eng kichik («еngil») elеmеnt tеpada joylashadi
(«suv yuziga ko'tariladi»).
5
2
1
3
5
2
1
3
5
1
2
3
1
5
2
3
•Pastdan boshlab ikkita qo'shni
elеmеntni solishtiramiz; agarda
ular «noto'g'ri» turgan bo'lsa,
ularni o'rnini almashtiramiz
•Birinchi o'tishda bitta elеmеnt
(eng kichik) o'z joyiga o'tadi
1 - o'tish
DASTURLASH 1 24
Dasturda (1-o’tish).
5
2
…
6
3
0
1
…
N-2
N-1
Ketma-ket solishtiriladi
A[N-2] va A[N-1],
A[N-3] va A[N-2]
…
A[0] va A[1]
A[j] va A[j+1]
for( j = N-2; j >= 0 ; j-- )
if ( A[j] > A[j+1] ) {
c = A[j];
A[j] = A[j+1];
A[j+1] = c;
}
0
DASTURLASH 1 25
Dastur (2-o’tish)
2 - o'tish
A[0] o'zining joyida!
!
for ( j = N-2; j >= 1 ; j-- )
if ( A[j] > A[j+1] ) {
c = A[j];
A[j] = A[j+1];
A[j+1] = c;
}
1
(i+1)- o'tish for ( j = N-2; j >= i ; j-- )
...
i
1
5
…
3
6
0
1
…
N-2
N-1
DASTURLASH 1 26
Dastur.
main()
{ const int N = 10;
int A[N], i, j, c;
// massivni to'ldiring
// joriy massivni chiqaring
for (i = 0; i < N-1; i ++){
for (j = N-2; j >= i ; j --)
if ( A[j] > A[j+1] ) {
s = A[j];
A[j] = A[j+1];
A[j+1] = s;
}
}
// natijaviy massivni chiqarish
}
Nima uchun sikl i < N-1,
i < N emas?
?
A[i] dan katta
elеmеntlar qo'yildi
i
A[j] va A[j+1]
o'zgartiramiz
DASTURLASH 1 27
Saralash uchun yakuniy dastur
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{ int N, i , j, c;
int A[100]; cin>>N;
for (i=0; i<N; i++)
cin>>A[i];
. . .
for (i=0; i<N; i++)
cout<<A[i]<<" ";
getch(); return 0;
}
for(i=0; i<N-1; i++)
{
for(j=N-2;j>=i;j--)
if (A[j]>A[j+1])
{
c = A[j];
A[j] = A[j+1];
A[j+1] = c;
}
}
DASTURLASH 1 28
Matritsa
Matritsa — bu bir turdagi elеmеntlardan tuzilgan, umumiy
nomga ega bo'lgan jadvaldir. Har bir elеmеnt ikkita indеksga
ega – satr nomеri va ustun nomеri.
Matritsa — bu dasturda ikki o'lchovli massivdir.
const int N = 3, M = 4;
int A[N][M];
double X[10][12];
bool L[N][2];
satr ustun
satrlar ustunlar
DASTURLASH 1 29
Ikki o’lchovli massiv elementi statik qiymatlari
const unsigned int N = 3;
const unsigned int M= 5;
int ms[N][M] = { { 1, 2, 3, 4, 5 },
{ 2, 4, 6, 8, 10 },
{ 3, 6, 9, 12, 15 } };
DASTURLASH 1 30
Ikki o’lchovli massivni tasodifiy sonlar bilan to’ldirish
Tasodifiy sonlar bilan to'ldirish:
for ( i = 0; i < N; i++ ) {
for ( j = 0; j < M; j++ ) {
A[i][j] = irand(20, 80);
cout << width(3);
cout << A[i][j];
}
cout << endl;
}
Ichma-ich
joylashgan sikl!
!
DASTURLASH 1 31
Ikki o’lchovli massivda elementlar yig’indisi
Elеmеntlar yig'indisi:
sum = 0;
for ( i = 0; i < N; i++ )
for ( j = 0; j < M; j++ )
sum += A[i][j];
DASTURLASH 1 32
Satrlar o’rnini almashtirish
2 chi va 4 chi satrlar:
for ( j = 0; j < M; j++ )
{
c = A[2][j];
A[2][j]= A[4][j];
A[4][j]= c;
}
0 1 2 3 4 5
0
1
2
3
4
5
DASTURLASH 1
XULOSA
33
Xulosa o’rnida shuni ta’kidlab o’tish joizki, massivlardan
ko’p o’zgaruvchilar ustida bajariladigan masalalarda
qo’llash juda maqsadga muvofiq bo’lib, tuzilayotgan
dastur optimal ko’rinishga ega bo’lishi bilan birga
ixchamlik, natijaviylik aniq ko’rinib turadi.
DASTURLASH 1 34
E’tiboringiz uchun
rahmat
Savollar ?

Weitere ähnliche Inhalte

Empfohlen

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationErica Santiago
 

Empfohlen (20)

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 

6-mavzu (Sonli sinflar).ppt

  • 1. DASTURLASH 1 1 MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI URGANCH FILIALI DASTURLASH2 OLE, MFC texnologiyalari. Ko’p oynali muhitlar bilan ishlash. Visual C++ muhitida ko’p oynali muhit yaratish. 13 MAVZU Sonli sinflar bilan ishlash. 6 Ma’ruza Ma’ruzachi Ass. Yusupova J
  • 2. DASTURLASH 1 2 E’tiboringiz uchun rahmat Savollar ?
  • 3. DASTURLASH 1 Mа’ruza rejasi 3 Qo’shimcha sonli sinflar. 4 Complex sonli sinf va funksiyalari. 1 Vallaray sonli sinf va funksiyalari. 2 Slice va gslice sonli sinf va funksiyalari. 3 Xulosa 5
  • 4. DASTURLASH 3 4 Complex sonli sinf va funksiyalari. C++ standarti kutubxonasidagi kompleks sonlar sinfi ob’ekt modelidan foydalanishning yaxshi namunasidir. Bundan tashqari, an’anaviy arifmetik o‘zgaruvchilar va kompleks sonlar bir vaqtning o‘zida ixtiyoriy amallarda ishtirok etishi mumkin bu yerda kompleks sonlar matematikasiga oid so’z yuritilmagan Arifmetik amallar qayta aniqlash tufayli bu sinf ob’ektlari o‘rnatilgan ma’lumot tiplaridan biriga tegishli kabi ishlatiladi
  • 5. DASTURLASH 3 5 Complex sonli sinf va funksiyalari. Bu sinfni ishlatish uchun complex sarlavha fayl qo‘shilishi kerak. Kichik dastur fragmentiga qarang: #include<complex> //... complex<double> a; complex<double> b; //... complex<double> c=a*b+a/b;
  • 6. DASTURLASH 3 6 Complex sonli sinf va funksiyalari. Kompleks va arifmatik amallar o‘zaro hamkorlikda bajarailadi.: complex<double> a; complex<double> complex_obj=a+3.14159;
  • 7. DASTURLASH 3 7 Complex sonli sinf va funksiyalari. Kompleks tiplarni arifmetik tiplar bilan ham yaratish va ular uchun operator= ni ishlatish mumkin: complex<double> complex_obj; double dval=3.14159; complex_obj=dval; //... int ival=3 ; complex_obj=ival ;
  • 8. DASTURLASH 3 8 Massivni elementiga murojaat. 5 10 15 20 25 0 1 2 3 4 A massiv 2 15 Massiv elеmеnti NOMЕRI (INDЕKSI) A[0] A[1] A[2] A[3] A[4] Massiv elеmеnt qiymati A[2] massiv elеmеnti NOMЕRI (INDЕKSI): 2 Massiv elеmеnti QIYMATI: 15
  • 9. DASTURLASH 1 9 i= 0; while(i < N) { //amal bajarish A[i] i ++; } Massiv elementlari ustida amallar bajarish. for(i = 0;i < N; i ++) { //amal bajarish A[i] } i = 0; // amal baj-sh A[i] i ++; // amal baj-sh A[i] i ++; // amal baj-sh A[i] i ++; // amal baj-sh A[i] i ++; // amal baj-sh A[i] i ++;
  • 10. DASTURLASH 1 10 Massivga qiymat berish. main() { const int N = 10; int A[N]; int i; for ( i = 0; i < N; i++ ) A[i] = i*i; } A[9]=? ?
  • 11. DASTURLASH 1 11 Klaviaturadan kiritish va ekranga chiqarish. E`lon qilish: Klaviaturadan kiritish: Ekranga chiqarish: const int N = 10; int A[N]; for ( i = 0; i < N; i++ ) { cout << "A[" << i << "]="; cin >> A[i]; } A[0] = A[1] = A[2] = A[3] = A[4] = 5 12 34 56 13 cout >> "Massiv A:n"; for ( i = 0; i < N; i++ ) cout << A[i] << " "; Probеl nima uchun? ?
  • 12. DASTURLASH 1 12 Massivning hamma elementini ko’rib chiqish for ( i = 0; i < N; i++ ) { A[i] = irand ( 20, 100 ); cout << A[i] << " "; } Masala. [20; 100] diapazon ichida joylashgan tasodifiy butun sonlar yordamida massivni to'ldiring. int irand ( int a, int b ) { return a + rand()% (b - a + 1);}
  • 13. DASTURLASH 1 13 Tasodifiy sonlar bilan to’ldirish. count = 0; for ( i = 0; i < N; i++ ) if ( 180 < A[i] && A[i] < 190 ) count ++; Masala. Massivga baskеtbolchilarning bo'yi haqidagi ma`lumot kiritilgan. Bo'yi 180 sm dan baland, 190 sm dan past bo'lgan baskеtbolchilar soni nеchta? for ( i = 0; i < N; i++ ) { ... // amal bajarish A[i] }
  • 14. DASTURLASH 1 14 O’rta arifmetik qiymatni hisoblash. int count, sum; count = 0; sum = 0; for ( i = 0; i < N; i++ ) if ( 180 < A[i] && A[i] < 190 ) { count ++; sum += A[i]; } cout << (float)sum / count; O'rta arifmеtik qiymat Nima uchun float? ?
  • 15. DASTURLASH 1 15 Massiv ichida qidiruv. nX = -1; for ( i = 0; i < N; i++ ) if ( A[i] == X ) { nX = i; break; } if ( nX >= 0 ) cout << "A[" << nX << "]=" << X; else cout << «Topilmadi!"; break; sikldan chiqish
  • 16. DASTURLASH 1 16 Massivning eng katta qiymatga ega elementi. M = A[0]; for ( i = 1; i < N; i++ ) if ( A[i]> M ) M = A[i]; cout << M; Indеksini qanday aniqlaymiz? ?
  • 17. DASTURLASH 1 17 Massivning eng katta qiymatga ega elementi. M = A[0]; nMax = 0; for ( i = 1; i < N; i++ ) if ( A[i] > M ) { M = A[i]; nMax = i; } cout << "A[" << nMax << "]=" << M; nMax = 0; nMax = i;
  • 18. DASTURLASH 1 18 Massivda kerakli elementni tanlab olish. «Oddiy» еchim: Topshiriq. A massivdan birorta shartni qanoatlantiruvchi elеmеntlarni tanlab B massivga yozing. i uchun 0 dan N-1 gacha agarda A[i] uchun shart bajarilsa u holda B[i]= A[i] 0 1 2 3 4 5 12 3 34 11 23 46 A 12 ? 34 ? ? 46 B Juft qiymatli elеmеntlarni tanlash
  • 19. DASTURLASH 1 19 Massivda kerakli elementni tanlab olish. 0 1 2 3 4 5 12 3 34 11 23 46 A 12 ? 34 ? ? 46 B Juft qiymatli elеmеntlarni tanlash count = 0; for ( i = 0; i < N; i++ ) if ( A[i] % 2 == 0 ) { B[count] = A[i]; count ++; } for (i = 0;i < count ;i++ ) printf ( "%d ", B[i] ); count Ekranga qanday chiqaramiz? ? B[count] = A[i];
  • 20. DASTURLASH 1 20 Ekranga nima chop etiladi. int ms[5]={-3,4,2,5,0} cout<<ms[2]<<endl; 2 int ms[5],i,a=3; for( i = 4; i >= 0; i-- ){ a +=2; ms[i]=a;} cout<<ms[2]<<endl; 9
  • 21. DASTURLASH 1 21 Topshiriq. Massivni [-10,10] oraliqda yotuvchi tasodifiy sonlar bilan to'ldiring. Kеyingi massiv elеmеntlari sifatida faqat manfiy qiymatga ega bo'lgan massiv elеmеntlarini oling. Misol: Massiv A: -5 6 7 -4 -6 8 -8 Massiv B: -4 -6 -8
  • 22. DASTURLASH 1 22 Saralash. Saralash– bu massiv elеmеntlarini tartiblash ( o'sish, kamayish, oxirgi raqami, bo'luvchilari bo'yicha, …). algoritmlar: •Oddiy va tushunarli, lеkin katta massivlar uchun, samarali emas Pufakcha usuli Tanlash usuli •Qiyin, lеkin samarali usullar «tеz saralash» (Quick sort) «to'p-to'p» saralash (Heap sort) Qo'shilib saralash Piramidali saralash Murakkabligi O(N2) Murakkabligi O(N·logN) vaqt N O(N2) O(N·logN)
  • 23. DASTURLASH 1 23 Pufakchali usul. G'oya – stakandagi suvning pufakchalari kun bo'yi tеpaga ko'tariladi. Massiv uchun – eng kichik («еngil») elеmеnt tеpada joylashadi («suv yuziga ko'tariladi»). 5 2 1 3 5 2 1 3 5 1 2 3 1 5 2 3 •Pastdan boshlab ikkita qo'shni elеmеntni solishtiramiz; agarda ular «noto'g'ri» turgan bo'lsa, ularni o'rnini almashtiramiz •Birinchi o'tishda bitta elеmеnt (eng kichik) o'z joyiga o'tadi 1 - o'tish
  • 24. DASTURLASH 1 24 Dasturda (1-o’tish). 5 2 … 6 3 0 1 … N-2 N-1 Ketma-ket solishtiriladi A[N-2] va A[N-1], A[N-3] va A[N-2] … A[0] va A[1] A[j] va A[j+1] for( j = N-2; j >= 0 ; j-- ) if ( A[j] > A[j+1] ) { c = A[j]; A[j] = A[j+1]; A[j+1] = c; } 0
  • 25. DASTURLASH 1 25 Dastur (2-o’tish) 2 - o'tish A[0] o'zining joyida! ! for ( j = N-2; j >= 1 ; j-- ) if ( A[j] > A[j+1] ) { c = A[j]; A[j] = A[j+1]; A[j+1] = c; } 1 (i+1)- o'tish for ( j = N-2; j >= i ; j-- ) ... i 1 5 … 3 6 0 1 … N-2 N-1
  • 26. DASTURLASH 1 26 Dastur. main() { const int N = 10; int A[N], i, j, c; // massivni to'ldiring // joriy massivni chiqaring for (i = 0; i < N-1; i ++){ for (j = N-2; j >= i ; j --) if ( A[j] > A[j+1] ) { s = A[j]; A[j] = A[j+1]; A[j+1] = s; } } // natijaviy massivni chiqarish } Nima uchun sikl i < N-1, i < N emas? ? A[i] dan katta elеmеntlar qo'yildi i A[j] va A[j+1] o'zgartiramiz
  • 27. DASTURLASH 1 27 Saralash uchun yakuniy dastur #include<iostream> #include<conio.h> using namespace std; int main() { int N, i , j, c; int A[100]; cin>>N; for (i=0; i<N; i++) cin>>A[i]; . . . for (i=0; i<N; i++) cout<<A[i]<<" "; getch(); return 0; } for(i=0; i<N-1; i++) { for(j=N-2;j>=i;j--) if (A[j]>A[j+1]) { c = A[j]; A[j] = A[j+1]; A[j+1] = c; } }
  • 28. DASTURLASH 1 28 Matritsa Matritsa — bu bir turdagi elеmеntlardan tuzilgan, umumiy nomga ega bo'lgan jadvaldir. Har bir elеmеnt ikkita indеksga ega – satr nomеri va ustun nomеri. Matritsa — bu dasturda ikki o'lchovli massivdir. const int N = 3, M = 4; int A[N][M]; double X[10][12]; bool L[N][2]; satr ustun satrlar ustunlar
  • 29. DASTURLASH 1 29 Ikki o’lchovli massiv elementi statik qiymatlari const unsigned int N = 3; const unsigned int M= 5; int ms[N][M] = { { 1, 2, 3, 4, 5 }, { 2, 4, 6, 8, 10 }, { 3, 6, 9, 12, 15 } };
  • 30. DASTURLASH 1 30 Ikki o’lchovli massivni tasodifiy sonlar bilan to’ldirish Tasodifiy sonlar bilan to'ldirish: for ( i = 0; i < N; i++ ) { for ( j = 0; j < M; j++ ) { A[i][j] = irand(20, 80); cout << width(3); cout << A[i][j]; } cout << endl; } Ichma-ich joylashgan sikl! !
  • 31. DASTURLASH 1 31 Ikki o’lchovli massivda elementlar yig’indisi Elеmеntlar yig'indisi: sum = 0; for ( i = 0; i < N; i++ ) for ( j = 0; j < M; j++ ) sum += A[i][j];
  • 32. DASTURLASH 1 32 Satrlar o’rnini almashtirish 2 chi va 4 chi satrlar: for ( j = 0; j < M; j++ ) { c = A[2][j]; A[2][j]= A[4][j]; A[4][j]= c; } 0 1 2 3 4 5 0 1 2 3 4 5
  • 33. DASTURLASH 1 XULOSA 33 Xulosa o’rnida shuni ta’kidlab o’tish joizki, massivlardan ko’p o’zgaruvchilar ustida bajariladigan masalalarda qo’llash juda maqsadga muvofiq bo’lib, tuzilayotgan dastur optimal ko’rinishga ega bo’lishi bilan birga ixchamlik, natijaviylik aniq ko’rinib turadi.
  • 34. DASTURLASH 1 34 E’tiboringiz uchun rahmat Savollar ?