1.2 Massiv jadvallarini tuzish algaritimi.
Malumotlarni tarirlash va ularni saralash qayta ishlash uchun albatta bizga massivlar bilan ishlash qulaydir . Massivlar bir o’lchovli , ikki o’lchovli va ko’p o’lchovli bo’ladi bizga qo’yilgan masalaning shartidan asoslanib massivlarning turini aniqlaymiz . Bir o’lchovli massiv algaritimi qanday tuziladi . Bir o’chovli massiv satirdan iborat bo’ladi .
n
Boshlash
i=1,i<=n
Tamom
a[i]
a[i]
3- blok sxema .
Demak bu algaritim orqali faqargina bitta sardan ibotat bo’gan matritsa tuzildi . endi bu algaritmni [n,n] o’lchovli matritsa uchun tadbiq qilamiz .
N,m
Boshlash
i=1,i<=n
j=1,j<=m
a[i,j]
a[i,j]
Tamom
4-blok sxema .
Algaritmning natijasi quydagicha boladi .
1.1 1.2 1.3 …..…….1.n
2.1………………………..2.n
3.1………………………...3.n
4.1………………………...4.n
. .
………………………………
m.1 m.2 m.3 ………….m.n
Matritsa allgaritiminidan foydalanib quydagi masalalarni yechamiz .
1-Misol: Massiv elementlari yig’indisi
using System; using System.Text; namespace massiv
{
class Program
{
static void Main(string[] args)
{
int s = 0;
int[] a = new int[5]; a[0] = 6;
a[1] = 3;
a[2] = 7;
a[3] = 5;
a[4] = 2; s=a[0]+a[1]+a[2]+a[3]+a[4];
Console.Write("s="+s); Console.ReadKey();
}
}
}
Natija: S=23;
2-MISOL Ikki o’lchovli massiv elementlarini o’rta arifmetigini hisoblash.
using System; using System.Text; namespace massiv
{ class Program
{
static void Main(string[] args)
{
int n,k,i,j,s=0; Console.WriteLine("massivni kiriting!"); Console.Write("n="); n=int.Parse(Console.ReadLine()); Console.Write("k="); k=int.Parse(Console.ReadLine());
int[,] a=new int[n,k]; for(i=0;i
{
a[i,j]=int.Parse(Console.ReadLine());
}
for(i=0;i
{
for(j=0;j
}
Console.WriteLine("yig'indisi ="+s); Console.WriteLine("o'rta arifmetigi ="+(s*1.0)/n); Console.ReadKey();
}
}
}
Natija: Ikki o’lchovli massiv elementlarini s ga yig’adigan va o’rta arifmetigini hisoblab ekranga chop etadi!
2.1 Ro'yxatlarni massivlar va ko'rsatkichlar vositasida yaratish.
Massivning alohida elementlariga massiv nomini tavsiflash, so'ngra katak ichidagi indeks yoki pastki yozuv (massivda elementning joylashishini aniqlash) orqali kirish mumkin. Masalan, massivning 5-elementini olish uchun biz a [4] bayonot yozishimiz kerak.
Har qanday holatda ham massiv elementlari ketma-ket xotira joyida saqlanadi.
Massivning birinchi elementi nol ko'rsatkichiga ega [0]. Bu shuni anglatadiki, birinchi va oxirgi element mos ravishda [0] va [9] sifatida belgilanadi.
Massivda saqlanishi mumkin bo'lgan elementlar soni, ya'ni massivning kattaligi yoki uning uzunligi quyidagi tenglama bilan berilgan:
(yuqori chegara - pastki chegara) + 1
Yuqoridagi qator uchun u (9-0) + 1 = 10 bo'ladi. Bu erda 0 - massivning pastki chegarasi, 9 - bu massivning yuqori chegarasi.
Bir o`lchovli massivlar. Massiv bu bir tipli nomerlangan ma`lumotlar jamlanmasidir. Massiv indeksli o`zgaruvchi tushunchasiga mos keladi. Massiv ta`riflanganda tipi, nomi va indekslar chegarasi ko`rsatiladi. Masalan, long int a[5]; char w[200]; double f[4][5][7]; char[7][200]. Massiv indekslar har doim 0 dan boshlanadi. C ++ tili standarti bo`yicha indekslar soni 31 tagacha bo`lishi mumkin, lekin amalda bir o`lchovli va ikki o`lchovli massivlar qo`llaniladi. Bir o`lchovli massivlarga matematikada vektor tushunchasi mos keladi. Massivning int z[3] shakldagi ta`rifi, int tipiga tegishli z[0],z[1],z[2] elementlardan iborat massivni aniqlaydi. Massivlar ta`riflanganda initsializatsiya qilinishi, ya`ni boshlang`ich qiymatlarlari ko`rsatilishi mumkin. Masalan, float C[]={1,-1,2,10,-12.5}; Bu misolda massiv chegarasi avtomatik aniqlanadi. Agar massiv initsializatsiya qilinganda elementlar chegarasi ko`rsatilgan bo`lsa , ro`yxatdagi elementlar soni bu chegaradan kam bo`lishi mumkin, lekin ortiq bo`lishi mumkin emas. Masalan, int A[5]={2,-2}. Bu holda a[0] va a[1] qiymatlari aniqlangan bo`lib, mos holda 2 va –2 ga teng.
. Massivda musbat elementlar soni va summasini hisoblash
|
Output:
|
# include ;
# include ;
void main() {
int x[]={-1;2;5;-4;8;9};
clrscr();
for (int s=0,int k=0, int I=0; I<6; I++) {
if (x[I]<=0) continue;
k++;s++; };
cout<<(“%d”,k);
cout<<(“%d”,k);
getch(); };
|
|
Jadvallar. Ikki o`lchovli massivlar matematikada matritsa yoki jadval tushunchasiga mos keladi. Jadvallarning initsializatsiya qilish qoidasi, ikki o`lchovli massivning elementlari massivlardan iborat bo`lgan bir o`lchovli massiv ta`rifiga asoslangandir. Masalan, ikki qator va uch ustundan iborat bo`lgan haqiqiy tipga tegishli d massiv boshlang`ich qiymatlari quyidagicha ko`rsatilishi mumkin:
float d[2][3]={(1,-2.5,10),(-5.3,2,14)};
Bu yozuv quyidagi qiymat berish operatorlariga mosdir:
d[0][0]=1;d[0][1]=-2.5;d[0][2]=10;d[1][0]=-5.3;d[1][1]=2;d[1][2]=14;
Bu qiymatlarni bitta ro`yxat bilan hosil qilish mumkin:
float d[2][3]={1,-2.5,10,-5.3,2,14};
Initsializatsiya yordamida boshlang`ich qiymatlar aniqlanganda massivning hamma elementlariga qiymat berish shart emas. Masalan,
int x[3][3]={(1,-2,3),(1,2),(-4)}
Bu yozuv quyidagi qiymat berish operatorlariga mosdir:
x[0][0]=1;x[0][1]=-2;x[0][2]=3;x[1][0]=-1;x[1][1]=2;x[2][0]=-4;
Initsializatsiya yordamida boshlang`ich qiymatlar aniqlanganda massivning birinchi indeksi chegarasi ko`rsatilishi shart emas, lekin qolgan indekslar chegaralari ko`rsatilishi shart. Masalan,
Double x[][2]={(1.1,1.5),(-1.6,2.5),(3,-4)}
Bu misolda avtomatik ravishda qatorlar soni uchga teng deb olinadi.
Quyidagi ko`radigan misolimizda jadval kiritilib har bir qatorning maksimal elementi aniqlanadi va bu elementlar orasida eng kichigi aniqlanadi:
Jadvallar
|
Output:
|
#include
void main()
{ double a[4,3]; double s,max=0.0,min=0.0;
int i,j;
for(i=0;i<4;i++) {
for(j=0;j<3;j++)
{ cout<<(“ a[%d][%d]=”,i,j);cin>>(“%f”,s);a[i,j]=s;
if (max
cout<<(“\n”);
if (max
cout<<(“\n min=%f”,min); }
|
| Simvolli massivlar. C++ tilida satrlar simvolli massivlar sifatida ta`riflanadi. Simvolli massivlar quyidagicha tasvirlanishi mumkin: Char pas[10]; Simvolli massivlar quyidagicha initsializatsiya qilinadi: Char capital[]=”Buxoro”; Bu holda avtomatik ravishda massiv elementlari soni aniqlanadi va massiv oxiriga satr ko`chirish `\n` simvoli qo`shiladi. Yuqoridagi initsializatsiyani quyidagicha amalga oshirish mumkin:
Char capital[]={`B`,`U`,`X`,`O`,`R`,`O`,`\n`};
Bu holda so`z oxirida `\n` simvoli aniq ko`rsatilishi shart. Masalan, palindrom masalasini ko`rib chiqamiz. Palindrom deb oldidan ham oxiridan ham bir xil o`qiladigan so`zlarga aytiladi. Masalan, non. Dasturda kiritilgan so`z palindrom ekanligi aniqlanadi:
Malumotlar ro’yhatidan ma’lumotlarni satalaymiz
Faraz qilaylik nizga berilgan malumotlar ro’yhatida keksayoshdagi fuqorolarning ism familyalari yozilgan bizga qo’yilgan masala esa bu ro’yhatdan 60 yoshli keksalarni saralashdir . biz quydagi algaritmdan foydalanamiz .
N,m
Boshlash
i=1,i<=n
j=1,j<=m
a[i,j]
a[i,j]=60
a[i,j]
Tamom
5-blok sxema .
Ko`p masalalarni yechishda uning shunday bir qismi uchraydiki, unda bеrilgan sonlardan eng kattasini yoki eng kichigini topish talab qilinadi. Bu talabni quyidagicha yozish mumkin:
Dеmak, ixtiyoriy n ta sondan eng kattasini yoki eng kichkinasini topish algoritmini tuzish talab qilingan bo`lsin. Tuzilgan algoritm n ning va ning har qanday qiymatida ham kеrakli natijani bеrishi kеrak. Agar berilgan uchun algoritm tuza olsak, undan osonginaalgoritmini hosil qilishimiz mumkin.
O`z-o`zidan ko`rinib turibdiki, bеrilgan masalani yechish uchun n va sonlar bеrilishi mumkin. Dеmak, kiritish blokida n va lar mashina xotirasiga kiritiladi .
Har doim birinchi elеmеntni eng katta elеmеnt dеb faraz qilish mumkin 2-blok ( -elеmеnt nomеrini aniqlovchi paramеtr). 3-blokda kеyingi elеmеntning nomеri aniqlanyapti. 4-blokda ning qiymati n dan ortib kеtmasligi tеkshirilyapti. Agar ning qiymati n dan kichik yoki tеng bo`lsa, 5-blokda vaqtincha eng katta elеmеnt (S ning qiymati bilan) kеyingi elеmеnt solishtiriladi. Agar kеyingi elеmеnt S dagi qiymatdan katta bo`lsa, u holda 4-blokda S ning oldingi qiymati o`rniga yangi qiymat bеriladi va jarayon 3-blokdan takrorlanadi. Agar 5- blokda shart bajarilmasa, u holda jarayon to`g`ridan-to`g`ri 3-blokdan takrorlanadi. Qachonki, 4-blokda shart bajarilmasa, ya`ni hamma elеmеntlar solishtirilib chiqilsa, u holda S paramеtrda eng katta elеmеntning qiymati hosil bo`ladi va u -5 blokda bosishga chiqariladi.
Ayrim hollarda eng katta elеmеntning nomеrini topish ham talab qilinadi. Uni blok sxеmadan osongina topishni hosil qilish mumkin.
Buning uchun 2-blokda k1 ni kiritish kеrak, chunki bu blokda biz birinchi elеmеntni eng katta elеmеnt dеb qabul qildik. 6-blokda esa k kiritish yetarli, chunki 5-blokdagi shart bajarilsa elеmеnt vaqtincha eng katta elеmеnt bo`lib qoladi. Chiqarish bloki 6 da S bilan k ni ham bosmaga chiqariladi.
Shunday qilib, biz eng katta elеmеntni topish algoritmini tuzib chiqdik. Shuningdеk eng kichik elеmеntni topish algoritmini ham tuzish mumkin. Buning uchun 5-blokdagi shartni tеskarisiga, ya`ni ga almashtirish yetarli. Buni o`zingiz tuzib ko`ring.
5- sxemadagi algoritmdan foydalanib, shunga o`xshash turli masalalarni algoritmini tuzish mumkin.
XULOSA
Xulosa qilib aytganda Algaritm bilan ishlashish barcha turdagi dasturlash tillarida ishlash imkoniyatini yengillashtirib beradi. Har bir dasturning dastlab algaritmini yaratib olgan maqul. Agar biz dasturimizning ketma ketligini bilmasak, u dastur biz oylagandan koproq hajmni egallashi mumkin ekan. Men C# va C++ dasturi strukturasi haqida, belgilar bayoni, algoritm va dastur tushunchasi, ma’lumotlarni kiritish va chiqarish operatorlari hamda dasturda ishlatiladigan toifalar, ifodalar va ko’nikmalarga ega bo`ldim. Algoritmlash va dasturlash tillari bo’yicha yozilgan bir necha kitoblar bilan tanishib chiqdim va ulardan o’zimga kerakli malumotlarni oldim. Kurs ishimda programmalash texnologiyalari masalalari, algoritmlar, ularning xossalari, tasvirlash usullari va tipik algoritmlarga blok sxemalar tuzish masalalari qaralgan.
FOYDALANILGAN ADABIYOTLAR
Karimov I.A. Yuksak ma’naviyat – yengilmas kuch. – Toshkent. O’zbekiston, 2008. – 176 b.
Karimov I.A. Jahon moliyaviy-iqtisodiy inqirozi, O’zbekiston sharoitida uni bartaraf etishning yo’llari va choralari. – T: O’zbekiston, 2009. – 56 b.
Karimov I.A. Asosiy vazifamiz – Vatanimiz taraqqiyoti va xalqimiz farovonligini yanada yuksaltirishdir. – Prezident Islom Karimovning 2009 yilning asosiy yakunlari va 2010 yilda O’zbekistonni ijtimoiy-iqtisodiy rivojlantirishning eng muhim ustuvor yo’nalishlariga bag’ishlangan Vazirlar Mahkamasining majlisidagi ma’ruzasi // Xalq so’zi, 2010 yil 30 yanvar.
Karimov I.A. Mamlakatimizni modernizasiya qilish va kuchli fuqarolik jamiyati barpo etish – ustuvor maqsadimizdir. – Prezident Islom Karimovning O’zbekiston Respublikasi Oliy Majlisi Qonunchilik palatasi va Senatining qo’shma majlisidagi ma’ruzasi // Xalq so’zi, 2010 yil 28 yanvar.
Karimov I.A. O’zbekiston Konstitutsiyasi – biz uchun demokratik taraqqiyot yo’lida va fuqarolik jamiyatini barpo etishda mustahkam poydevordir. – Prezident Islom Karimovning O’zbekiston Respublikasi Konstitutsiyasi qabul qilinganining 17 yilligiga bag’ishlangan tantanali marosimdagi ma’ruzasi // Xalq so’zi, 2009 yil 6 dekabr.
Nazirov Sh.A va boshqalar.DELPHI tilida dasturlash asoslari. Toshkent 2006.
-207 b.
Axmedov A.B., Taylaqov N.I..Informatika:Akademik litsey va kasb-hunar kollejlari uchun darslik. Ikkinchi nashir- T.. “ O`zbekiston “ 2004. -272 b.
Поляков Д.В., Круглов И.Ю. Программирование в среде TURBO PASKAL.-М.:Изд-во МАИ, 1992.
P.Karimov, S. Irisqulov, A. Isabayev. DASTURLASH kasb-hunar kollejlari uchun o`quv qo`llanmasi.T. O`zbekiston,2003
В. Пестриков, А. Маслобоев. На примерах. Санкт-Петербург, 2005
www.ziyonet.uz- Axborot ta`lim tarmog`I sayti.
www.referat.uz- Referatlar, kurs ishi va diplom ishlari.
www.delphi.ru – Delphi dasturlash tilini o`rganish sayti
www.exponenta.ru- Matematik tizimlar haqidagi sayt.
Файсман А. Профессиональное программирование на Турбо Паскале. 1992.
Культин М.Б. Программирование в Turbo Pascal и Delphi, Санкт-Петер-бург, 2002 г.
Кондзюба С.П., Громов В.Н. Delphi 6/7. База данных и приложения. М.- Санкт-Петер-бург - Киев, 2002 г.
www.Intuit.ru . Интернет-Университет информационных технологий. Москва.
Симонович С. В. И др. Информатика. Базовый курс. СПб.: Питер, 2001.
Слабун Т. Интерактивный курс изучения Borland Delphi 6, 2001 (электронное издание).
Стовровский А. Б. Turbo Paskal 7.0 Учебник.- К.: ВНV- Киев, 2000.
Шауцукова Л. З. Информатика. – М. : Просвишение, 2000.
А. Я. Архангелъский. 100 КОМПАНЕНТОВ ОБЩЕГО НАЗНАЧЕНИЯ БИБЛОТЕКИ Delphi S . (От разработчика электронной версии). 2002.
А.В. Петров , В.Е. Алексеев и др. Вычеслителъная техника и программи-рование - М.: Высш. Шк., 1990. -479 c.
Do'stlaringiz bilan baham: |