Massivni to'ldirish vositalari. Paskal
Darsda Paskalda bir o'lchovli massivlar bilan ishlash, tasodifiy sonlar generatoridan qanday foydalanish - funksiya tushuntiriladi. tasodifiy Paskal tilida. Fibonachchi raqamlarini qanday chiqarish misoli ko'rib chiqiladi.
Saytdagi materiallar Paskal dasturlash tilini amaliy o'zlashtirishga qaratilgan. Qisqacha nazariy ma'lumotlar mavzu bo'yicha materialni to'liq yoritishga da'vo qilmaydi; kerakli ma'lumotlarni Internetda topishingiz mumkin katta miqdorda. Bizning vazifalarimizga Paskalda amaliy dasturlash ko'nikmalarini egallash imkoniyatini berish kiradi. Yechilgan vizual misollar va topshiriqlar murakkablikni oshirish tartibida keltirilgan, bu esa materialni noldan o'rganishni osonlashtiradi.
Massiv deklaratsiyasi
Paskalda massivlarning ikki turi mavjud: bir o'lchovli va ikki o'lchovli.
Paskalda bir o'lchovli massivni aniqlash shunday eshitiladi: bir o'lchovli massiv bir xil ma'lumotlar turiga mansub elementlarning ma'lum soni bo'lib, ular bir xil nomga ega va har bir element o'z indeksiga ega - seriya raqami.
Paskalda massivning tavsifi (deklaratsiya) va uning elementlariga kirish quyidagicha:
Massiv deklaratsiyasi
var length: massiv [ 1 .. 3 ] of integer ; bosh uzunligi[ 1 ] : = 500 ;
deklaratsiya uchun Array xizmat so'zi ishlatiladi (ingliz tilidan "massiv" yoki "to'siq" deb tarjima qilingan); - birinchi elementning raqami (indeks) kvadrat qavs ichida, keyin ikkita nuqta va massivning oxirgi elementi indeksi, ya'ni. mohiyatiga ko'ra, elementlarning soni ko'rsatilgan; massivdagi elementlar soni deyiladi
massiv o'lchami
of integer (ingliz tilidan "integers" dan) - massivning qaysi turini ko'rsatadi, bu erda yordamchi so'z. E'lon qiling hajmi doimiy orqali ishlatilishi mumkin: Massivni ishga tushirish:
Bundan tashqari, massivning o'zi ham bo'lishi mumkin |
doimiy
, ya'ni. dasturdagi uning barcha elementlari oldindan belgilangan.
Bunday massivning tavsifi quyidagicha ko'rinadi:
const a: butun sonli massiv [ 1 .. 4 ] = (1 , 3 , 2 , 5 );
const a:integer massivi = (1, 3, 2, 5); Ketma-ket raqamlar bilan to'ldirish:
writeln("elementlar sonini kiriting:"); readln(n); (agar miqdori oldindan ma'lum bo'lmasa, biz buni so'raymiz) for i:= 1 to n do begin write("a[", i, "]=");
o'qish(a[i]);
...oxiri; ...
✍ Natijaga misol:
const a:integer massivi = (1, 3, 2, 5); Elementlar sonini kiriting: 3 a=5 a=7 a=4
1 2 3 4 5 6 7 8 9 10 11 12 13 | Massiv elementlarini chop etish Paskalda massivni qanday ko'rsatishni ko'rib chiqamiz: var a: massiv [ 1 .. 5 ] of integer ; (besh elementdan iborat massiv) i:integer ; |
a[ 1 ] boshlanishi : = 2 ;
o'qish(a[i]);
a [ 2 ] : = 4 ;
a [ 3 ] : = 8 ;
a [ 4 ] : = 6 ; a [ 5 ] : = 3 ; 6 writeln("A massivi:");
i uchun: = 1 dan 5 gacha yozing (a[ i] : 2 );
(massiv elementlarini chiqarish)
oxiri.
var a: butun sonlar massivi; (besh elementli massiv) i: butun son; boshlash a:=2; a:=4; a:=8; a:=6; a:=3; writeln("A massivi:"); i:= 1 dan 5 gacha yozing(a[i]:2); (chiqish massivi elementlari) end.
A massivi: 2 4 8 6 3
o'qish(a[i]);
9 8 9 2 0 3 6 9 5 0
Massivlar bilan ishlash uchun u ko'pincha Paskalda parametr bilan qo'llaniladi, chunki siz odatda massivda nechta element borligini bilasiz va siz elementlarning indekslari sifatida tsikl hisoblagichidan foydalanishingiz mumkin. Massiv 0 vazifasi. Haqiqiy o'lchamlar qatorini belgilashingiz kerak(ya'ni, olti element); massivni kirish qiymatlari bilan to'ldiring va elementlarni ekranda ko'rsating. Ikki halqadan foydalaning: birinchisi elementlarni kiritish uchun, ikkinchisi chiqish uchun.
Bir o'lchovli massiv bilan ishlashning ushbu misolida aniq noqulaylik bor: elementlarga qiymatlarni belgilash.
Paskalda massivlarni qayta ishlash, shuningdek, massivni to'ldirish odatda for tsikli yordamida amalga oshiriladi.
const a:integer massivi = (1, 3, 2, 5); Paskalda tasodifiy funksiya
Massiv elementlarining qiymatlarini doimiy ravishda so'ramaslik uchun Paskalda tasodifiy sonlar generatori qo'llaniladi, bu Random funktsiyasi tomonidan amalga oshiriladi. Aslida, psevdo-tasodifiy raqamlar hosil bo'ladi, lekin bu nuqta emas. 0 dan n gacha raqamlarni hosil qilish uchun (n ning o'zi qiymatini hisobga olmaganda, butun son oralig'idagi butun sonlar; i:integer; start randomize; i:=1 dan 10 gacha f[i]:=random(10) boshlanadi; ( interval ) write(f[i]," "end;
uchun
haqiqiy raqamlar oraliqda
va ekrandagi elementlarni ko'rsatish: har bir elementni ko'rsatish uchun uchta pozitsiyani belgilang.
const a:integer massivi = (1, 3, 2, 5); Paskalda Fibonachchi raqamlari
1 2 3 4 5 6 7 8 9 10 11 | var i: integer ; |
f: butun sonning [0 .. 19] massivi;
start f[ 0 ] : = 1 ; f[ 1 ] : = 1 ; i uchun: = 2 dan 19 gacha do begin f[ i] : = f[ i- 1 ] + f[ i- 2 ] ;
writeln (f[ i] ) end ; oxiri. var i:integer; f: arrayof integer; boshlash f:=1; f:=1; i:=2 dan 19 gacha f[i]:=f+f boshlanadi; writeln(f[i]) end; oxiri. Ushbu misolda raqamlar qatori bilan ishlash printsipi aniq bo'ladi. Odatda, raqamlar qatorini olish uchun ushbu qatorning har bir elementini aniqlash uchun formula topiladi. Shunday qilib, Fibonachchi raqamlari holatida ushbu formula-qoida f[i]:=f+f kabi ko'rinadi. Shuning uchun undan foydalanish kerak loop uchun
massiv elementlarini shakllantirishda.
Massiv 2 vazifasi.
10 qator berilgan o'zboshimchalik bilan
raqamlar: a, a, ... , a (random() funksiyasidan foydalaning). Uchlik yig‘indilarini hisoblang va chop eting yonida turish
raqamlar: a+a+a , a+a+a , a+a+a , …… , a+a+a Psevdokod:
Maksimal elementni indeksi bo'yicha topish: Array_min vazifasi: Massivning minimal elementini toping. Elementni va uning indeksini chop eting. Massiv 4 vazifasi. 10 ta butun elementdan iborat massiv berilgan. Salbiylar sonini toping va raqamni ekranda ko'rsating. Massiv 5 vazifasi.
Kiritilgan n sonning (massiv) minimal va maksimalini toping. Ushbu elementlar orasidagi masofani aniqlang. 3 2 6 1 3 4 7 2 >>> min=1, max=7, masofa=3
const a:integer massivi = (1, 3, 2, 5);
Massiv 6 vazifasi.
O‘lchamli butun sonli massiv berilgan
N
const a:integer massivi = (1, 3, 2, 5);. Ushbu massivdagi barcha juft raqamlarni indekslarining kamayish tartibida, shuningdek ularning sonini chop eting. K. N=4 mas: 8 9 2 5 >>> 2 8 miqdor= 2.
Massiv 7 vazifasi. K Klaviaturadan 5 ta elementdan iborat massivni kiriting, undagi ikkita maksimal element va ularning sonini toping. N=4 mas: 8 9 2 5 >>> 2 8 miqdor= 2 Dastlabki massiv: 4 -5 10 -10 5 maksimal A=10, A=5
Massivda qidirish
Keling, bir o'lchovli massivlar bilan ishlashning murakkab misolini ko'rib chiqaylik:
10 ta raqamdan iborat massiv berilgan. Foydalanuvchi tomonidan kiritilgan raqam massivda yoki yo'qligini aniqlang. Agar mavjud bo'lsa, chiqish
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | "topildi" , agar bo'lmasa -"topilmadi" |
var f: butun sonlar massivi; bayroq: mantiqiy; i,c:integer; tasodifiy tanlashni boshlash; i:=1 dan 10 gacha f[i]:=tasodifiy(10) boshlanadi;
yozish(f[i]," "); oxiri; bayroq:=false; writeln("namuna kiriting"); readln(c); for i:=1 to 10 do if f[i]=c then begin writeln("found");
bayroq:=true; sindirish;
oxiri; if flag=false then writeln("topilmadi"); oxiri.
- Keling, ko'rib chiqaylik
- samarali yechim:
Vazifa:
massivda X ga teng elementni toping yoki uning mavjud emasligini aniqlang.
Algoritm: 1-elementdan boshlash (i:=1);
const a:integer massivi = (1, 3, 2, 5);
agar keyingi element (A[i]) X ga teng bo'lsa, qidiruvni tugating, aks holda keyingi elementga o'ting.
Paskalda yechim 2-variant. While sikli:
const a:integer massivi = (1, 3, 2, 5); Sizni massivdagi elementni qidirishning batafsil video tahlilini ko'rishni taklif qilamiz (samarali algoritm):
Massiv 8 vazifasi.
oxiri; if flag=false then writeln("topilmadi"); oxiri.
10 ta elementdan iborat massivni oraliqda tasodifiy sonlar bilan to'ldiring va X ga teng barcha elementlarning raqamlarini chop eting.
Boshlang'ich massiv: 4 0 1 2 0 1 3 4 1 0 Biz nimani qidirmoqdamiz? 0 A, A, A
Tsiklik siljish massiv elementlarini 1 pozitsiyaga chapga siljiting, birinchi element oxirgisini almashtiradi. Yechim:.
const a:integer massivi = (1, 3, 2, 5); A:=A; A:=A;… A:=A[N];
Dastur:
9-massiv vazifasi.
const a:integer massivi = (1, 3, 2, 5); 10 ta elementdan iborat massivni tasodifiy sonlar bilan [-10..10] oraliqda toʻldiring va chapga tsiklik siljishni bajaring.
Massiv 8 vazifasi.
oxiri; if flag=false then writeln("topilmadi"); oxiri.
birinchi elementsiz
Boshlang'ich massiv: 4 0 1 2 0 1 3 4 1 0 Biz nimani qidirmoqdamiz? 0 A, A, A
Boshlang'ich massiv: 4 -5 3 10 -4 -6 8 -10 1 0 Natija: 4 3 10 -4 -6 8 -10 1 0 -5 Massivdagi elementlarni qayta tartiblash
const a:integer massivi = (1, 3, 2, 5); Keling, massivni qanday o'zgartirish yoki teskari tartibga solishni ko'rib chiqaylik.
massiv elementlarini teskari tartibda qayta tartiblash
const a:integer massivi = (1, 3, 2, 5); Psevdokod:
Massiv 8 vazifasi.
Massiv 8 vazifasi. Massiv 10 vazifasi. 10 ta elementdan iborat massivni tasodifiy sonlar bilan [-10..10] oraliqda toʻldiring va oxirgisidan tashqari barcha elementlarni teskari aylantiring. Manba massivi: -5 3 10 -4 -6 8 -10 1 0 4 Natija: 0 1 -10 8 -6 -4 10 3 -5 4 1 .
Elementlarni tanlash va boshqa massivga saqlash
massivda ba'zi shartlarni qondiradigan elementlarni toping (masalan, salbiy) va ularni boshqa massivga nusxalash
hisoblash hisoblagichi yordamida topilgan elementlar sonini sanash, keyingi elementni B o'rniga o'rnatish. O'zgaruvchidan foydalanish hisoblash
const a:integer massivi = (1, 3, 2, 5); tayinlanishi kerak
B massivining chiqishi:
writeln("Tanlangan elementlar"); i:=1 uchun sanab-1 yozing(B[i], " ")
- Massiv vazifasi 11.
- Loopning birinchi iteratsiyasida massivning elementlari bir-biri bilan juft-juft bo'lib taqqoslanadi: oxirgi bilan oxirgi, oxirgi bilan oxirgi va boshqalar. Agar oldingi element keyingi elementdan kattaroq bo'lsa, ular almashtiriladi.
- Loopning ikkinchi iteratsiyasi paytida oxirgi elementni oxirgi element bilan solishtirishning hojati yo'q. Oxirgi element allaqachon joyida, u eng kattasi. Bu shuni anglatadiki, taqqoslashlar soni bittaga kam bo'ladi. Har bir keyingi iteratsiya uchun ham xuddi shunday.
Paskalda bajarilishi:
1 2 3 4 5 6 7 8 | i uchun: = 1 dan N- 1 gacha j uchun boshlanadi: = N- 1 dan igacha bajaring, agar A[ j] > A[ j+ 1 ] bo‘lsa, u holda : = A[ j] ; |
A[ j] : = A[ j+ 1 ] ;
A[ j+ 1 ] : = s; oxiri ; oxiri ; const a:integer massivi = (1, 3, 2, 5); uchun i:=1 dan N-1 gacha j:=N-1 dan pastgacha igacha bajaring, agar A[j] > A bo‘lsa, u holda:= A[j] dan boshlanadi;
A[j] := A;
- A := c;
- oxiri; oxiri;
10 ta elementdan iborat massivni oraliqda tasodifiy sonlar bilan to‘ldiring va massivning birinchi yarmini o‘sish tartibida, ikkinchisini esa kamayish tartibida tartiblang (“Bubble” usulidan foydalangan holda).< A then min:=j; if min <>Manba massivi: 14 25 13 30 76 58 32 11 41 97 Natija: 13 14 25 30 76 97 58 41 32 11
Tanlov bo'yicha saralash minimal element massivda qidiriladi va birinchi o'ringa qo'yiladi (A bilan joylar almashtiriladi); const a:integer massivi = (1, 3, 2, 5); Qolgan elementlar orasida, shuningdek, ikkinchi o'ringa qo'yilgan (A bilan almashtirilgan joylar) va hokazo eng kamini qidirish amalga oshiriladi.
start c: = A[ i] ;
oxiri; if flag=false then writeln("topilmadi"); oxiri.
Paskalda bajarilishi:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | A[ i] : = A[ min] ;< last then begin X: = A[ (first + last) div 2 ] ; L: = first; R: = last; while L <= R do begin while A[ L] < X do L: = L + 1 ; while A[ R] >A[ min] : = c;<= R then begin c: = A[ L] ; A[ L] : = A[ R] ; A[ R] : = c; L: = L + 1 ; R: = R - 1 ; end ; end ; QSort(first, R) ; QSort(L, last) ; end ; end . |
oxiri ; oxiri ;< last then begin X:= A[(first + last) div 2]; L:= first; R:= last; while L <= R do begin while A[L] < X do L:= L + 1; while A[R] >for i:= 1 to N-1 do start min:= i ;<= R then begin c:= A[L]; A[L]:= A[R]; A[R]:= c; L:= L + 1; R:= R - 1; end; end; QSort(first, R); QSort(L, last); end; end.
j:= i+1 uchun N uchun bajaring, agar A[j]
men keyin c:=A[i] ni boshlayman;
Massiv - bu bitta nom ostida birlashtirilgan bir xil turdagi hujayralar guruhi sifatida taqdim etilgan ma'lumotlar strukturasi. Massivlar bir xil turdagi katta hajmdagi ma'lumotlarni qayta ishlash uchun ishlatiladi. Massivning nomi - bu ko'rsatkichlar, men sizga biroz keyinroq aytib beraman. Massivning alohida ma’lumotlar katakchasi massiv elementi deyiladi. Massivning elementlari har qanday turdagi ma'lumotlar bo'lishi mumkin. Massivlar bir yoki bir nechta o'lchovga ega bo'lishi mumkin. Oʻlchovlar soniga qarab massivlar bir oʻlchovli massivlarga, ikki oʻlchovli massivlarga, uch oʻlchovli massivlarga va hokazolarga n oʻlchovli massivgacha boʻlinadi. Bir o'lchovli va ikki o'lchovli massivlar ko'pincha dasturlashda qo'llaniladi, shuning uchun biz faqat shu massivlarni ko'rib chiqamiz.
C++ tilida bir o'lchovli massivlar
Bir o'lchovli massiv - bir o'lchovli massiv elementlari sonini tavsiflovchi bitta parametrga ega massiv. Aslida, bir o'lchovli massiv faqat bitta satr va n ta ustunga ega bo'lishi mumkin bo'lgan massivdir. Bir o'lchovli massivdagi ustunlar massivning elementlari hisoblanadi. 1-rasmda butun sonli bir o'lchovli massivning tuzilishi ko'rsatilgan a. Ushbu massivning o'lchami 16 hujayradan iborat.
1-rasm - C++ tilidagi massivlar
E'tibor bering, bir o'lchovli massivning maksimal indeksi a 15, lekin massivning oʻlchami 16 yacheyka, chunki massiv yacheykalarini raqamlash har doim 0 dan boshlanadi. Hujayra indeksi manfiy boʻlmagan butun son boʻlib, uning yordamida massivning har bir yacheykasiga kirish va unda istalgan amallarni bajarish mumkin ( hujayra).
//C++ da bir o'lchovli massivni e'lon qilish sintaksisi: /*ma'lumotlar turi*/ /*bir o'lchovli massiv nomi*/; //1-rasmda ko'rsatilgan bir o'lchovli massivni e'lon qilish misoli: int a;
bu yerda int butun son;
A - bir o'lchovli massivning nomi;
16 - bir o'lchovli massivning o'lchami, 16 hujayra.
Har doim massiv nomidan keyin bir o'lchovli massivning o'lchami ko'rsatilgan kvadrat qavslar mavjud; bu massivni boshqa barcha o'zgaruvchilardan ajratib turadi;
//bir o'lchovli massivlarni e'lon qilishning yana bir usuli int mas, a;
Ikkita bir o'lchovli mas va a massivlari mos ravishda 10 va 16 o'lchamlari bilan e'lon qilinadi. Bundan tashqari, ushbu deklaratsiya usulida barcha massivlar bir xil ma'lumotlar turiga ega bo'ladi, bizning holatlarimizda - int.
// massivlar e'lon qilinganda ishga tushirilishi mumkin: int a = ( 5, -12, -12, 9, 10, 0, -9, -12, -1, 23, 65, 64, 11, 43, 39, -15 ); // bir o'lchovli massivni ishga tushirish
Bir o'lchovli massivni ishga tushirish belgidan keyin jingalak qavslarda amalga oshiriladi teng, har bir massiv elementi oldingisidan vergul bilan ajratiladi.
Int a=(5,-12,-12,9,10,0,-9,-12,-1,23,65,64,11,43,39,-15); // massivni hajmini aniqlamasdan ishga tushirish.
Bunday holda, kompilyatorning o'zi bir o'lchovli massivning hajmini aniqlaydi. Massivning o'lchamini faqat uni initsializatsiya qilishda olib tashlash mumkin, massivni normal e'lon qilishda massivning o'lchami ko'rsatilishi kerak; Bir o'lchovli massivni qayta ishlash uchun oddiy dastur ishlab chiqamiz.
// array.cpp: Konsol ilovasi uchun kirish nuqtasini belgilaydi. #include "stdafx.h" #include
// kod Kod:: Bloklar
// Dev-C++ kodi
// array.cpp: Konsol ilovasi uchun kirish nuqtasini belgilaydi. #o'z ichiga oladi
IN 10-11 qatorlar array1 nomli butun sonli bir oʻlchovli massiv eʼlon qilindi va ishga tushirildi, uning oʻlchami 16 yacheyka, yaʼni bunday massiv 16 ta raqamni saqlashi mumkin. Har qanday massivni qayta ishlash faqat tsikllar bilan birgalikda mumkin. Massivni qayta ishlash uchun qaysi tsiklni tanlashni o'zingiz hal qilasiz. Ammo bu vazifa uchun eng mos keladi. Bir o'lchovli massiv1 ning elementlariga kirish uchun hisoblagich o'zgaruvchisidan foydalanamiz. For tsiklini davom ettirish sharti qat'iy tengsizlik belgisini o'z ichiga oladi, chunki bir o'lchovli massiv1da o'n oltinchi indeks mavjud emas. Va hujayralarni raqamlash noldan boshlanganligi sababli, massivda 16 ta element mavjud bo'lib, for siklining tanasida cout operatori bir o'lchovli massivning elementlarini chop etadi (2-rasmga qarang).
Obrabotka massiva indekslari massiva massivi1 5 massiv1 -12 massiv1 -12 massiv1 9 massiv1 10 massiv1 0 massiv1 -9 massiv1 -12 massiv1 -1 massiv1 23 massiv1 65 massiv1 614 massiv1 311 massiv davom eting, istalgan tugmani bosing. . .
2-rasm - C++ tilidagi massivlar
C++ tilida bir o'lchovli massivni qayta ishlash uchun yana bir dastur ishlab chiqamiz. Dastur klaviaturadan kiritilgan o'nta raqamni ketma-ket o'qishi kerak. Barcha kiritilgan raqamlar jamlanadi va natija ekranda ko'rsatiladi.
// array_sum.cpp: Konsol ilovasi uchun kirish nuqtasini belgilaydi. #include "stdafx.h" #include
// kod Kod:: Bloklar
// Dev-C++ kodi
// array_sum.cpp: Konsol ilovasi uchun kirish nuqtasini belgilaydi. #o'z ichiga oladi
Massivni qayta ishlashdan oldin uni e'lon qilish kerak va bir o'lchovli massivning o'lchami 10 ga teng, chunki bu vazifa shartlarida ko'zda tutilgan. Sum o'zgaruvchisida biz bir o'lchovli massivning elementlari yig'indisini to'playmiz. Birinchi for tsikli e'lon qilingan bir o'lchovli massivni klaviaturadan kiritilgan raqamlar bilan to'ldiradi, 12 - 13 qatorlar. Hisoblagich o'zgaruvchisi bir o'lchovli massiv1 ning elementlariga ketma-ket kirish uchun ishlatiladi, indeks 0 dan boshlab va 9-chi qatorgacha. Ikkinchi for tsikli massivning elementlarini ko'rsatadi, 15-16 qatorlar. Uchinchi for tsikli bir o'lchovli massivning elementlarini ketma-ket o'qiydi va ularni jamlaydi, summa sum o'zgaruvchisida to'planadi. 17 - 18 qatorlar. Dasturning natijasi 3-rasmda ko'rsatilgan.
Elementi massiva kiriting: 0 1 2 3 4 5 6 7 8 9 massiv1 = (0 1 2 3 4 5 6 7 8 9 ) summa = 45 Davom etish uchun istalgan tugmani bosing. . .
3-rasm - C++ tilidagi massivlar
Birinchidan, barcha 10 ta raqam ketma-ket kiritildi, shundan so'ng bir o'lchovli massiv ko'rsatildi va massivdagi raqamlar yig'indisi chop etildi.
C++ da ikki o'lchovli massivlar
Shu paytgacha biz bir o'lchovli massivlarni ko'rib chiqdik, ular bilan har doim ham cheklanib bo'lmaydi. Aytaylik, siz jadvaldagi ba'zi ma'lumotlarni qayta ishlashingiz kerak. Jadval ikkita xususiyatga ega: qatorlar soni va ustunlar soni. Shuningdek, ikki o'lchovli massivda massiv elementlari sonidan tashqari, ikki o'lchovli massivning qatorlar soni va ustunlar soni kabi xarakteristikalar mavjud. Ya'ni, vizual ravishda ikki o'lchovli massiv oddiy jadval bo'lib, qatorlar va ustunlar mavjud. Aslida, ikki o'lchovli massiv bir o'lchovli massivlarning bir o'lchovli massividir. m dan n gacha kattalikdagi a deb nomlangan ikki o‘lchovli massivning tuzilishi quyida ko‘rsatilgan (4-rasmga qarang).
4-rasm - C++ tilidagi massivlar
bu yerda, m – ikki o‘lchovli massivning qatorlar soni;
n - ikki o'lchovli massivning ustunlar soni;
m * n — massiv elementlari soni.
// ikki o'lchovli massivni e'lon qilish sintaksisi /*ma'lumotlar turi*/ /*massiv nomi*/;
Ikki o'lchovli massivni e'lon qilishda, shuningdek, bir o'lchovli massivni e'lon qilishda, birinchi navbatda, quyidagilarni ko'rsatishingiz kerak:
- ma'lumotlar turi;
- massiv nomi.
Shundan so'ng, birinchi kvadrat qavslar ikki o'lchovli massivning qatorlar sonini, ikkinchi kvadrat qavslar esa ikki o'lchovli massivning ustunlar sonini ko'rsatadi. Ikki o'lchovli massiv bir o'lchovli massivdan ikkinchi juft kvadrat qavs orqali vizual ravishda farqlanadi. Ikki o'lchovli massivni e'lon qilish misolini ko'rib chiqamiz. Aytaylik, elementlar soni 15 ga teng bo'lgan ikki o'lchovli massivni e'lon qilishimiz kerak. Bunday holda, ikki o'lchovli massiv uch qator va besh ustun yoki besh qator va uchta ustunga ega bo'lishi mumkin.
// ikki o'lchovli massivni e'lon qilish misoli: int a;
- a - butun sonli massivning nomi
- birinchi kvadrat qavsdagi raqam ikki o'lchovli massivning qatorlar sonini ko'rsatadi, bu holda 5 ta;
- ikkinchi kvadrat qavsdagi raqam ikki o'lchovli massivning ustunlari sonini ko'rsatadi, bu holda 3 ta bo'ladi.
// ikki o'lchovli massivni ishga tushirish: int a = ( (4, 7, 8), (9, 66, -1), (5, -5, 0), (3, -3, 30), ( 1, 1, 1) );
Bu massivda 5 ta satr, 3 ta ustun mavjud. belgilash belgisidan keyin umumiy jingalak qavslar joylashtiriladi, ularning ichiga ikki o'lchovli massivda qancha chiziqlar bo'lishi kerak bo'lsa, shuncha juft jingalak qavslar joylashtiriladi va bu qavslar vergul bilan ajratiladi. Har bir jingalak qavsga ikki o'lchovli massivning elementlarini vergul bilan ajrating. Barcha jingalak qavslarda elementlar soni bir xil bo'lishi kerak. Massivda beshta qator borligi sababli, beshta ichki qavs juftlari ham mavjud. Ichki qavslarda uchta element yoziladi, chunki ustunlar soni uchtadir. Grafik jihatdan bizning massivimiz ikki o'lchovli jadvalga o'xshaydi (5-rasmga qarang).
5-rasm - C++ tilidagi massivlar
Ikki o'lchovli massivning har bir katagida a qiymat ko'rsatiladi, bu katakning manzili pastki o'ng burchakda ko'rsatiladi. Ikki o'lchovli massivning katak manzili massiv nomi, satr va ustun raqamidir.
Keling, ikki o'lchovli massivni qayta ishlash uchun "Labirint" deb nomlangan oddiy dastur ishlab chiqaylik. Labirint ikki o'lchovli massiv asosida qurilishi kerak. Biz labirintning o'lchamini o'z xohishimiz bilan tanlaymiz.
// array2.cpp: Konsol ilovasi uchun kirish nuqtasini belgilaydi. #include "stdafx.h" #include
// kod Kod:: Bloklar
// Dev-C++ kodi
(176);
To'g'ri va noto'g'ri yo'llar bir xil raqam bilan belgilanishi mumkin, masalan, nol, lekin aniqlik uchun, to'g'ri yo'l 2 raqami bilan belgilanadi. Massiv faqat dasturni soddalashtirish uchun qo'lda ishga tushirildi. Dastur ikki o'lchovli massivni qayta ishlaganligi sababli, ikki o'lchovli massivning elementlari o'rtasida almashish uchun ikkita tsikl kerak bo'ladi. Birinchi for tsikli ikki o'lchovli massivning qatorlari o'rtasida almashinadi. Ikki o'lchovli massivda 33 ta qator bo'lganligi sababli, hisoblagich o'zgaruvchisi i 0 dan 33 gacha oshiriladi, 46-qator. Birinchi sikl ichida ikki o‘lchovli massivning qator elementlari bo‘ylab aylanib turuvchi for tsikli joylashgan. Ikkinchi for tsiklining tanasida ma'lumotlar turini bir xil konvertatsiya qilish operatsiyasi - static_cast ichida amalga oshiriladi.<>() , 176-raqamli belgini chop etadi. Ma'lumotlar turini o'zgartirish operatsiyasi labirintning kengligini oshirish uchun takrorlanadi. Dasturning natijasi (6-rasmga qarang).
6-rasm - C++ tilidagi massivlar
Dasturlashda massiv bir xil turdagi (bir xil turdagi) elementlar to'plamidir.
Massivlarning bir nechta turlari mavjud - bir o'lchovli(vektor) va ko'p o'lchovli.
Massivdagi elementlar nomlari va seriya raqamlari - indekslari bilan tavsiflanadi.
Indeks - massivdagi elementning tartib raqami.
Paskalda har bir elementga elementning massivdagi o'rnini tavsiflovchi bir yoki bir nechta indekslar beriladi.
Bir o'lchovli massiv
Paskalda massiv sintaksisi:Var a: array Of integer ;
Qayerda:
1 - obuna
10 - ustun belgisi
A – massiv o‘zgaruvchisi nomi
- qiymatlar diapazoni
Butun son - ma'lumotlar turi
A[ i ] – Paskalda massiv elementiga kirish
Massiv elementlarining turi Paskalda fayllardan (hatto massivdan) tashqari har qanday haqiqiy turdagi bo'lishi mumkin.
Massiv misoli: A = (1,-5,230,55,-88,0,100)
Massiv e'lon qilinganda, uning yuqori belgisi qat'iy belgilangan bo'lishi kerak.
Massivni tavsiflashda xotira ajratiladi va kompilyator tasvirlangan massiv uchun qancha xotira ajratish kerakligini bilishi kerak.
Paskal massividagi indekslar soniga cheklov yo'q. Biroq, massivning o'zi 65537 baytdan katta bo'lmasligi kerak.
Massivni tur deklaratsiyasi bo'limida ham e'lon qilish mumkin:
Tip massa = massiv Of real ; Var a,b,c: massa ;
Massiv elementlariga kirish sikl orqali amalga oshiriladi.
Paskalda massiv elementlarini qayta ishlashning eng samarali usuli bu parametrli sikl operatoridir.
Nima deb o'ylaysiz? Ha, chunki biz massivdagi chekli sonli elementlarni bilamiz.
Paskalda massivni to'ldirish algoritmlari
- Kompyuter yordamida massiv elementlarini kiritish quyidagi konstruksiya yordamida amalga oshiriladi:
i uchun:= 1 dan 10 gacha Do read(A[i]);
- Massivni tasodifiy o'rnatish.
Massiv tasodifiy o'zgaruvchan sensor yordamida tasodifiy o'rnatilishi mumkin.
Paskalda tasodifiy o'zgarmaydigan sensorni ishga tushirish uchun siz maxsus konstruktsiyani yozishingiz kerak - Tasodifiylashtirish;
Yangi qiymat Random(n) funksiyasi yordamida yaratiladi, bu erda n butun sondir. Bunday holda, 0 dan n gacha bo'lgan har qanday raqam hosil bo'ladi.
K:= Tasodifiy(100);
Agar Tasodifiy funksiya parametrsiz ishlatilsa, u 0 oralig'ida haqiqiy sonni (haqiqiy turdagi) hosil qiladi.< X < 1X:= Tasodifiy;
Massivni tasodifiy to'ldirish
Paskaldagi bu konstruksiya massivni tasodifiy to'ldirishni amalga oshiradi.Tasodifiy qilish; i uchun:= 1 dan 10 gacha Boshlang A[i] := tasodifiy*100-70 ;
yozish(A[i]:6:2); Oxiri ;
Biz bir o'lchovli massivning elementlarini qiymatlar bilan to'ldirishimiz mumkin: qiymatlarni klaviaturadan kiritish orqali; tasodifiy; formula bo'yicha. Bir o'lchovli massivlarni belgilash usullari Looplar sonli massiv qiymatlarini kiritish va chiqarish uchun ishlatiladi. Jarayon mos yozuvlar bo'yicha parametrni, berilgan turdagi Mssiv massivni va to'ldiriladigan massiv katakchalari soni uchun mas'ul bo'lgan n butun o'zgaruvchini oladi. Bir o'lchovli massivni tasodifiy shakllantirish.
Ishingizni ijtimoiy tarmoqlarda baham ko'ring
Agar ushbu ish sizga mos kelmasa, sahifaning pastki qismida shunga o'xshash ishlar ro'yxati mavjud. Qidiruv tugmasidan ham foydalanishingiz mumkin
To'ldirish.
Biz bir o'lchovli massivning elementlarini quyidagi qiymatlar bilan to'ldirishimiz mumkin:
Klaviaturadan qiymatlarni kiritish;
Tasodifiy;
Formulaga ko'ra.
Bir o'lchovli massivlarni aniqlash usullari
Looplar raqamli massiv qiymatlarini kiritish va chiqarish uchun ishlatiladi.
Keling, bir o'lchovli massivni ikkita usulda tashkil etadigan protseduralarni ko'rib chiqaylik
1) tasodifiy,
2) elementlarni klaviaturadan kiritish Faraz qilaylik, biz butun sonlar massivi bilan ishlaymiz. Elementlarning maksimal soni 50 ga teng bo'lishi bizga yetarli bo'lsin. Protsedura mos yozuvlar bo'yicha parametrni, berilgan turdagi Massiv massivini va butun o'zgaruvchini oladi. n, to'ldiriladigan massiv katakchalari soni uchun mas'uldir. Bizga mahalliy o'zgaruvchi ham kerak bo'ladi i
, bu tsikl parametri vazifasini bajaradi va massivdagi elementning joylashishini aniqlaydigan raqamni belgilash uchun ishlatiladi., to'ldiriladigan massiv katakchalari soni uchun mas'uldir. Bizga mahalliy o'zgaruvchi ham kerak bo'ladi 1. Bir o'lchovli massivni tasodifiy shakllantirish. Har bir elementning qiymatini Random(10) tasodifiy funksiyasi natijasiga o'rnatamiz. Biz massivni to'ldirishni operator uchun siklik yordamida o'rnatamiz, uning tanasida tasodifiy son Random(10) funktsiyasi bilan hisoblanadi, shundan so'ng bu qiymat keyingisiga tayinlanadi.
-massivning elementi.
Protsedura InsertMas1(Var massiv:mas; n:integer);
I: butun son;
Boshlanishi
Tasodifiy qilish;
i:=1 uchun n qilish
Massiv[i] := Tasodifiy(10);
Oxiri ;
2. Klaviaturadan elementlarni kiritish orqali bir o‘lchovli massiv hosil qilish.
Protsedura InsertMas1(Var massiv:mas; n:integer);
I: butun son;
Tasodifiy qilish;
I: butun son;
Protsedura InsertMas2(Var massiv:mas; n:integer); yozish ("Enter", ya'ni
,"massiv elementi");
readln (massiv [i]);
readln (massiv [i]);
Oxiri;
Massiv ekranda quyidagicha ko'rsatiladi:
Protsedura InsertMas1(Var massiv:mas; n:integer);
I: butun son;
Procedure PrintMas(massiv:mas; n:integer);
i uchun:=1 dan n gacha
Write(Array[i]:5);
Shuni yodda tutishimiz kerakki, har uch holatda ham biz tsiklni tashkil qilmasdan qilolmaymiz.
Massivning maksimal (minimal) elementini topish.
Keling, bir o'lchovli massivga ega bo'lamiz:
20,-2, 4, 10,7, 21,-12, 0, 4, 17.
Keling, maksimal elementni topishimiz kerak bo'lsa, qanday operatsiyalarni bajarish kerakligini o'ylab ko'raylik. Tabiiyki, taqqoslash operatsiyasi Biz har doim massivning barcha elementlari bo'ylab "yugurib" juftlikni taqqoslashimiz haqida o'ylamaymiz. Maksimal (minimal) elementni topish algoritmini bir juft raqamlarni solishtiradigan tarzda tuzamiz, taqqoslash harakatini kerakli miqdordagi marta takrorlaymiz.
Shunday qilib, biz ikkita savolga javob berishimiz kerak:
1) munosabat amalini tashkil etuvchi juftlikka qanday sonlar kiradi;
2) taqqoslash operatsiyasi necha marta takrorlanishi kerak. max nomli qo'shimcha o'zgaruvchini kiritamiz. Bu raqamlardan biri bo'ladi, ikkinchi raqam qatorning keyingi elementi. Birinchi taqqoslash operatsiyasini bajarish uchun max o'zgaruvchisiga qandaydir boshlang'ich qiymat berish kerak. Bu erda ikkita variant bo'lishi mumkin:
1) max o‘zgaruvchiga massivning birinchi elementini belgilash;
2) massivning barcha elementlaridan aniq kamroq bo'lgan raqamni tayinlash.
Massiv birinchi kursning har bir guruhidagi talabalar soni haqidagi ma'lumotlarni o'z ichiga oladi. Guruh raqami massivdagi raqamning seriya raqamiga to'g'ri keladi deb faraz qilib, talabalar soni maksimal bo'lgan guruhni aniqlang (biz shunday guruh faqat bitta deb hisoblaymiz).
Boshqacha qilib aytganda, biz maksimal element va uning sonini topishimiz kerak.
dasturning maksimal_raqami;
mas=massiv[ 1.. 10] baytni yozing;
var a: mas;
son, i: bayt;
maksimal: bayt;
boshlanishi
(blokni to'ldirish)
uchun i:=l dan 7 gacha
readln(a[i]);
(maksimal va uning sonini qidiring)
maksimal:==0;
(ushbu massiv uchun eng kichik raqamni kiriting)
i:=l uchun n qilish
a[i]>max bo'lsa, boshlang
son:=i;
maksimal:=a[i]
oxiri;
writeln("maksimal talabalar soni=",maks);
writeln("guruh raqami=",son);
oxiri.
3) Massivning juft elementlari orasidan minimal elementni toping.
Izoh: biz min o'zgaruvchiga massivning birinchi elementini tayinlay olmaymiz, chunki g'alati bo'lishi mumkin. Shuning uchun biz ushbu ma'lumotlar turi uchun juda katta sonni tanlashimiz kerak.
Agar e'lon qilsak massivning elementlari butun son bo'lsa shunga o'xshash raqam +32767 bo'ladi.
min_even dasturi;
a: butun sonlar massivi;
i:integer;
min:integer;
boshlanishi
i:=l uchun 10 do beein
writeln("keyingi massiv elementini kiriting");
readln(a[i]);
oxiri;
min:=32767;
i:=l uchun 10 do
agar (a[i] agar min=32767 bo'lsa, writeln ("massivda juft elementlar yo'q") else writein ("massivning juft elementlari orasidagi minimal element=",min) oxiri. Iltimos, diqqat qiling: min o'zgaruvchining qiymati o'zgarganligini tekshirish kerak, chunki hatto elementlar ham bo'lmasligi mumkin. Sizni qiziqtirishi mumkin bo'lgan boshqa shunga o'xshash ishlar.vshm> Bir o'lchovli massivlar. Massivni shakllantirish va uning elementlarini ko'rsatish Kontseptsiyaning ta'rifi Massiv - barcha elementlar uchun umumiy nomga ega bo'lgan bir xil turdagi ma'lumotlar to'plami. Massivning elementlari raqamlangan va ularning har biriga raqam orqali kirish mumkin. Massiv elementlarining raqamlari aks holda indekslar, massiv elementlarining o'zi esa indekslangan o'zgaruvchilar deb ataladi. a[n] -
0.
5
-5.2
…
0.6
Vektor (chiziqli Klaviaturadan 5 ta elementdan iborat massivni kiriting, undagi ikkita maksimal element va ularning sonini toping. bir o'lchovli massiv) elementlar bitta indeks bilan raqamlangan massivga misoldir. Eslatma Eslatma Eslatma Massivni ma'lumotlar bilan to'ldirish
§
Massivni to'ldirish uchun ma'lumotlar (va uning chiqishi), ko'pincha parametrli pastadir ishlatiladi uchun §
Massivni tasodifiy raqamlar bilan to'ldirish uchun funksiyadan foydalaning tasodifiy va tartib tasodifiy qilish(tasodifiy sonlar generatorini ishga tushirish). Yozib olish formati: tasodifiy (B - A) + A, bu yerda A va B intervaldan olingan:4);
Massivni kiritish va chiqarish uchun dastur namunasi
Muammoning bayonoti. 10 ta butun elementdan iborat massiv elementlarining yig‘indisini oling. Massiv elementlari klaviaturadan kiritiladi. summa =
Muammoning bayonoti.", summa)8729.
CHEKLI MOSHINANI TA'RIFI VA SPESİFİKASYON USULLARI. SINTEZ MUAMMOSI. MASHINALAR
189,1 KB
Cheklangan holat mashinasining ta'rifi va ko'rsatish usullari. CHEKLI MOSHINANI TA'RIFI VA SPESİFİKASYON USULLARI. Cheklangan holat mashinasining ta'rifi. Cheklangan holat mashinasini ko'rsatish usullari.
3552.
Kimyo fanidan individual uy vazifasi. Kimyodan uy vazifasi
475,47 KB
Uslubiy ko‘rsatmalarda quyidagi mavzular bo‘yicha individual uy vazifasi berilgan: noorganik birikmalar sinflari, kimyoviy ekvivalent, atom tuzilishi, kimyoviy bog‘lanish, kimyoviy termodinamika, kimyoviy kinetika, eritmalar konsentratsiyasi, ion reaksiyalari va tuzlarning gidrolizi, oksidlanish-qaytarilish-qaytarilish reaksiyalari, elektrokimyoviy jarayonlar, metallarning xossalari.
12127.
Fennoskandiya qalqoni shimoli-sharqidagi paleoproterozoy qatlamli mafik massivlarining strategik minerallari (PGM, Ni, Co, Cr, Cu).
17,77 KB
Rivojlanishning qisqacha tavsifi. Analoglar bilan solishtirganda rivojlanishning afzalliklari. Rivojlanishning muhim jihati - razvedka va qidiruv bosqichlarida og'ir kon va burg'ulash uskunalaridan keng foydalanishni keskin qisqartirish orqali atrof-muhitga salbiy texnogen ta'sirni minimallashtirish qobiliyatidir. Rivojlanishdan tijorat maqsadlarida foydalanish sohalari.
9554.
MATEMATIKA. METODIK QO‘LLANMA VA VAZIFALAR
268,34 KB
“Matematika” o‘quv fani o‘rta maxsus kasb-hunar ta’limi bitiruvchilarini tayyorlashning minimal mazmuni va darajasiga qo‘yiladigan davlat talablarini amalga oshirishga mo‘ljallangan.
18129.
Ijodiy vazifalar tasavvurni rivojlantirish vositasi sifatida
91,06 KB
Ushbu tadqiqotlar o'quv jarayonida o'quvchilarning ijodiy faoliyatini tashkil etish bo'yicha ilmiy g'oyalar va amaliy yondashuvlarning xilma-xilligini aks ettiradi, ammo tasavvurni rivojlantirish vositasi sifatida kichik yoshdagi maktab o'quvchilariga o'quv jarayonida maqsadli ravishda ijodiy vazifalarni berish jihati hali etarli darajada emas; o'rgangan. Falsafiy psixologik-pedagogik adabiyotlarni tahlil qilishda aniqlangan qarama-qarshiliklarga asoslanib, shuningdek, boshlang'ich maktab tajribasini o'rganish natijasida nazariy...
19517.
Bukva do'konini avtomatlashtirish uchun texnik shartlarni ishlab chiqish
155,63 KB
Mijozlarning talablari asosida tovarlarni vakolatli sotish, ya'ni mutaxassislar bilan maslahatlashish. Shuning uchun do'kon bozor holati to'g'risida ma'lumot olishi va bozorni mavjud tovar va xizmatlar haqida ma'lumot bilan ta'minlashi kerak. Ommaviy axborot vositalari bilan o'zaro aloqa do'konning o'zi, uning tovarlari va xizmatlari haqida ma'lumotlarni taqdim etishdan iborat bo'lib, keyinchalik ushbu ma'lumotlardan tovarlar va xizmatlar bozori tomonidan qabul qilinadigan noutbuklar do'koni uchun reklama yaratiladi; Mahsulot turlarini kengaytirish Do'kon afzalliklari: Katta tajriba...
3548.
Kimyodan uy vazifasi va ularni bajarish bo'yicha ko'rsatmalar
229,61 KB
Bu uy vazifalari barcha ixtisoslik talabalarining o‘quv rejasiga muvofiq kimyo kursi bo‘yicha tizimli ishlashi uchun mo‘ljallangan. Topshiriqlarni bajarish o’quvchilarda mustaqil ishlash ko’nikmalarini shakllantirishga yordam beradi.
19091.
TEXNIK XUSUSIYATLAR VA ISHLAB CHIQILGAN DIZAYNGA ASOSIY TEXNIK TALABLARNING TAHLILI.
911,42 KB
Server xonasi (server xonasi yoki oddiygina server xonasi) - server va telekommunikatsiya uskunalarini joylashtirish va ishlatish uchun maxsus yaratilgan va ta'minlangan shart-sharoitlarga ega bo'lgan maxsus texnologik xona. Server xonasida ruxsat etilgan harorat bo'lishi kerak
1763.
Ma'lumotni saqlash uchun C++ standart andozalar kutubxonasi (STL) konteyneridan foydalangan holda vazifani sinf sifatida amalga oshirish
190,6 KB
C++ tilining sintaksisi C tilidan meros bo'lib, dizayn tamoyillaridan biri C tili bilan moslikni saqlash edi. ikkala C kompilyatorlari tomonidan bir xil darajada muvaffaqiyatli tarjima qilinishi mumkin bo'lgan ko'plab dasturlar ...
10124.
Reklama xizmatlarini ko'rsatish, tozalash xizmatlari, xavfsizlik va xodimlarni ta'minlash uchun texnik shartlarni ishlab chiqish
31,88 KB
Reklama xizmatlari uchun texnik shartlarni ishlab chiqish: reklama xizmatlarini huquqiy tartibga solish. Tozalash xizmatlari uchun texnik shartlarni ishlab chiqish: asosiy tushunchalar va xizmatlar turlari. Xavfsizlik xizmatlari uchun texnik shartlarni ishlab chiqish: huquqiy tartibga solish. Xodimlarga xizmat ko'rsatish uchun texnik shartlarni ishlab chiqish: asosiy tushunchalar.
Massiv tavsifi
vara,b,c: massiv ning butun son;
var
s: massiv butun son;
k: massiv butun son;
const n = 5; turi
mas = massiv butun son;
var a: mas;
const x: massiv butun son = (1, 2, 3, 4, 5, 6);
dastur massiv 2; var yig'indisi: butun son; bayt;
men: massiv a:;
so'zdan boshlanishi yig'indisi:= 0;uchun i:= 0 9 uchun
so'zdan
qil("a[ yozish ] =
");
", men," readln (a[i]);;
yig'indi:= yig'indi + a[i]("oxiri yozish oxiri.
dastur Massiv elementlari bilan ishlash uchun dastur namunasi Massiv elementlarining o‘rtacha arifmetik qiymatini oling. Massiv elementlari tasodifiy raqamlar bilan to'ldirilgan. massiv 3; var const n = 100; sar: butun son; bayt;
men: massiv butun son;
so'zdan boshlanishi haqiqiy;
yig'indisi:= 0;uchun i:= 0; uchun
so'zdan yig'indisi: tasodifiy tasodifiy qilish (a[i]); n yig'indi:= yig'indi + a[i]("a[i] :=(100); oxiri.