[]
bu erda massiv hadining joylashgan joyini anglatuvchi tartib qiymati.
Umuman olganda, o`rnida ifoda qatnashishi ham mumkin. Indeksni ifodalovchi ifodaning tipini indeks tipi deb ataladi. Indeks tipining qiymatlar to`plami albatta nomerlangan to`plam bo`lishi, shu bilan bir qatorda massiv hadlari sonini aniqlash va ularning tartibini belgilashi kerak.
Massivlarni e`lon qilishda indeks tipi bilan bir qatorda massiv hadlarining tipi ham ko`rsatilishi kerak. Bir o`lchamli massivni e`lon qilish quyidagicha amalga oshiriladi:
array [] of ;
Ko`pincha sifatida cheklanma tiplardan foydalaniladi, chunki bu tipga tegishli to`plam tartiblangan va qat`iy nomerlangandir. Misol uchun 100 ta haqiqiy sonli hadlardan iborat massiv quyidagicha e`lon qilinadi:
array [1..100] of real;
Massivlarni e`lon qilish haqida to`liqroq ma`lumot berish uchun turli tipdagi indekslarga oid misollarni keltiramiz:
1. array [1000..5000] of integer;
2. array [0..100] of real;
3. array [10..25] of char;
4. type
chegara 1..100;
vektor array [chegara] of real;
massiv1 array [115..130] of integer;
massiv2 array [-754..-1] of integer;
var
A, B: vektor;
c, d: massiv1;
e: massiv2;
5. var
r, t: array [chegara] of real;
s, q: array [115..130] of integer;
p: array [-754..-1] of integer;
k, m: array [1..50] of (shar, kub, doira);
Endi massivlar ustida tipik amallar bajarishga misol keltiramiz.
Masala: Bir o`lchamli n ta hadli (n30) massiv hadlarining yig’indisini xisoblang.
const n 30;
var
i: integer;
x: array [1..n] of real;
S: real;
St: string;
begin
for I : 1 to n do
begin
st:InputBox('', '', '');
x[i] : StrToFloat(st); { massiv elementlarini kiritish}
end;
S : 0;
for I : 1 to n do S : S x[i];
ShowMessage('natija', S)
end;
§-1.2.6. Protsedura va funksiya haqida umumiy ma`lumotlar
Programma tuzish jarayonida, uning turli joylarida ma`nosiga ko`ra bir xil, mustaqil xarakterga ega bo`lgan va echilayotgan asosiy masalaning biror qismini hal qilishni o`z bo`yniga olgan murakkab algoritmdan bir necha marotaba foydalanishga to`g’ri keladi. Masalan, matritsalarni ko`paytirish, matritsani vektorga ko`paytirish, chiziqsiz tenglamani echish, chiziqli algebraik tenglamalar sistemasini echish, faktorial hisoblash, yig’indi hisoblash va hokazo kabi masalalarni hal qilish algoritmlari juda ham ko`p masalalarni echishning bosh algoritmlarida qayta-qayta, turli boshlang’ich ma`lumotlar bilan qatnashishi mumkin. Bunday hollarda, malakali dasturchi programma matnini ixchamlashtirish, programmaning ishonchlilik darajasini oshirish, programmani tahrirlash (otladka) ni tezlashtirish va programmaning umumiyligini (universalligini) ta`minlash uchun prosedura va funktsiyalardan kengroq foydalanib, mukammal programma yaratishga harakat qiladi.
Protsedura va funksiyalar mustaqil programmali ob`ektlar hisoblanadi. Bu mustaqil programmali ob`ektni dasturchi o`z hoxishiga va undan olinadigan natijalariga ko`ra prosedura yoki funktsiya ko`rinishida aniqlashi mumkin. Odatda olinadigan natija yagona qiymatli bo`lsa funktsiyadan, olinadigan natijalar soni bir nechta bo`lsa protseduradan foydalanish maqsadga muvofiqdir.
Protsedurani yozish strukturasi xuddi asosiy programma strukturasi kabi bo`lib, faqat sarlavhalari bilangina farq qiladi halos:
procedure
();
label ;
const ;
type ;
var ;
;
begin
;
end;
Protseduralar va funksiyalarni aniqlash asosiy programmaning var (o`zgaruvchilarning tiplarini e`lon qilish) bo`limida bajariladi. Protseduradan programmada foydalanish uchun uning ismi va faktik parametrlar ro`yhati yoziladi. SHunda protsedura o`ziga belgilangan ishni bajarib, o`zining faktik parametrlari orqali asosiy programmaga o`z natijasini beradi.
Protsedura bilan asosiy programmani bog’laydigan asosiy faktor bu - protsedura parametrlaridir. Parametrlarni ikkita tipga ajratiladi: qiymatli parametrlar (parametr-qiymat), o`zgaruvchili parametrlar (parametr - o`zgaruvchi).
Parametr - qiymat bu protsedurani ishlash jarayonini ta`minlovchi parametrlar hisoblanadi, ya`ni asosiy programma qiymatlarini protseduraga uzatadigan parametrlardir.
Masala: Ikkita x ,y va z sonlari ichidan eng kattasini toping.
var
x, y, z, v: real;
S: real;
procedure max( a, b: real );
begin
if a > b then S : a else S : b;
end;
begin
x : StrToFloat(Edit1.Text);
y : StrToFloat(Edit2.Text);
z : StrToFloat(Edit3.Text);
max(x, y);
max(s, z);
ShowMessage(FloatToStr(s));
end;
Bu yerda a, b - protseduraning qiymatli formal parametrlari.
Do'stlaringiz bilan baham: |