Uchirish, kushish, sonni belgiga aylantirish(STR), belgililik kiymatni songa aylantirish (VAL), ssepleniye(CONCAT), kator uzunligi, poisk vxojdeniya podstroki (POS)
Delete (St,Poz,N) - St katorida Poz pozisiyasidan boshlab, N belgi uchirish,agar Poz > 255 bulsa, dasturda uzilish buladi.
Stning kiymati
|
Ifoda
|
Natija
|
'abvgde'
|
Delete(Str, 4, 2);
|
'abve'
|
'reka Volga'
|
Delete(Str, 1, 5);
|
'Volga'
|
Insert (Str1, Str2, Poz) - Str1 katorining ichiga Str2ni kushish, Poz pozisiyasidan boshlab.
Masalan.
VAR
S1, S2, S3 : string[11];
...
S1 := ' YeS ';
S2 := 'EVM1841';
S3 := Insert(S1,S2,4); Oxirgi ifodani bajarilishi natijasida S3 katorining kiymati 'EVM YeS 1841' ga teng buladi.
Str (IBR,St) -IBRdagi kiymatni sonli kiymatga aylantirib natijani St katoriga joylashtirish.
IBRning kiymati
|
Ifoda
|
Natija
|
1500
|
Str(IBR:6,St)
|
'__1500'
|
4.8E+03
|
Str(IBR:10,St)
|
'______4800'
|
76854
|
Str(-IBR:3,St)
|
'-76854'
|
Val (St,IBR,Code) - St kiymatni butun yoki xakikiy kiymatga aylantirib, natijani IBRga joylashtirish. Code -butun uzgaruvchi. Agarda operasiya vaktida aylantirish xatoligi ruy bermagan bulsa, u xolda Code nolga teng. Xatolik ruy bergan bulsa, (masalan, literli kiymat sonli kiymatga aylantirilgan bulsa), Code xatolik yul kuyilgan belgining pozisiya nomerini oladi. IBR kiymat esa aniklanmaydi.
Stning kiymati
|
Ifoda
|
Natija
|
'1450'
|
Val(St,IBR,Cod)
|
1450 Code=0
|
'14.2E+02'
|
Val(St,IBR,Cod)
|
1420 Code=0
|
'14.2A+02
|
Val(St,IBR,Cod)
|
? Code=5
|
Copy (St,Poz,N) - St dan N ta belgilik ost katorni Poz pozisiyadan boshlab ajratish. Agarda Poz > Length(St) bulsa, u xolda natija probelga teng buladi, agar Poz > 255 bulsa bajarilishda xatolik buladi. Length funksiyasi keyin yoritiladi.
Stning kiymati
|
Ifoda
|
Natija
|
'ABCDEFG'
|
Copy(St, 2, 3)
|
'BCD'
|
'ABCDEFG'
|
Copy(St, 4, 10)
|
'DEFG'
|
Concat (Str1,Str2,...,StrN) -katorlarni ruyxatda kursatilgan tartibda ilashtirish operasiyasini bajaradi.
Ilashtirilgan katorlardagi belgilar yigindisi 255 dan ortmaslig kerak.
Ifoda
|
Natija
|
Concat('AA','XX','Y')
|
'AAXXY'
|
Concat('Indeks ','603000')
|
'Indeks 603000'
|
Length (St) - St katoridagi belgilarning joriy uzunligini xisoblaydi.
Natija butun tipli buladi.
Stning kiymati
|
Ifoda
|
Natija
|
'123456789'
|
Length(St)
|
9
|
'System 370'
|
Length(St)
|
10
|
Pos (Str1,Str2) - Str2 katorda Str1 ost katorini paydo bulishini topadi.
Natija butun tipli bulib, Str1 ost katorining birinchi belgisi tartib nomeriga teng buladi. Agar Str2.da Str1 ost katori topilmasa, natija nolga teng.
Str1ning kiymati
|
Ifoda
|
Natija
|
'abcdef'
|
Pos('de',Str1)
|
4
|
'abcdef'
|
Pos('r',Str1)
|
0
|
UpCase (Ch) - katorli xarfni bosma xarfga aylantiradi. Natija va parametr literli tipda buladi. Fakat lotin alfavitidagi xarflar bilan ishlanadi
Kiymat
|
Ifoda
|
Natija
|
'a'
|
UpCase(Ch)
|
'A'
| Katorlarni ishlatilishiga misol
Misol sifatida “yuguruvchi kator” dasturining variantlaridan birining matnini keltiramiz.
PROGRAM DemoStringGo;
{ Misol: "yuguruvchi kator" }
USES Crt;
TYPE Stroka = string[160];
VAR Vhod: Stroka;
PROCEDURE GoString (X,Y:byte; InSt:Stroka);
{ X,Y - “yuguruvchi kator”koordinatalari }
VAR St1: Stroka;
I: byte;
BEGIN St1:=' ';
ClrScr;
St1:= St1+InSt; FOR I:= 1 TO Length(St1) DO BEGIN
Delete(St1,1,1);
GoToXY(X,Y);
Write(St1);
Sound(1000); { Katorni xarakatini ovozli kuzatish }
Delay(5);
NoSound
Delay(90);
DelLine
END
END; { GoString }
BEGIN { DemoStringGo }
GoString(1, 10, ' printerni ulang !!!'); { parametr- kiymat }
Vhod:= 'Kogozni urnating !!!';
GoString(1, 14, Vhod) { parametr - uzgaruvchi }
END. { DemoStringGo }
GoString prosedurasining kullanilishi juda keng bulib, avariya signallaridan tortib, to menyu elementlarini tashkil kilishgacha bajarish mumkin.
Mavzu: Massivlar. Bir o`lchamli massivlar. Ko`p o`lchamli massivlar. Ular ustida amallar
Reja:
Massivlar.
Bir o`lchamli massivlar.
Ko`p o`lchamli massivlar.
Ular ustida amallar
Massivlar bilan ishlash
Matematika, ik,tisod, informatika va xakozo sox.alarda tar-tiblangan berilganlar bilan ish kurishga tugri keladi. Masalan, sonlar ketma-ketligi, jadvallar, familiyalar ruyxati va xakozo.
Bir xil turdagi berilganlar tuplamini kdyta ishlash uchun massiv tushunchasi kiritilgan. Bir nom bilan ataluvchi tartiblan-gan uzgaruvchilar ketma-ketligiga massivlar deb ataladi. Massiv bitta nom bilan belgilanadi. Masalan, -5,6; -3,5; 4,6; 8,9; 15,5 x,akikdy sonlar tuplami massivni tashkil kiladi va uni bitta nom X deb belgilash mumkin. Xar bir element uz indeksiga ega buladi. Massivni tashkil etgan elementlar tuplami indekslar-ning kiymati buyicha tartiblanadi. Indekslar kvadrat k,avs ichiga olib yoziladi. Masalan, X[5], Y[5,6] va xakozo.
Bir ulchovli massivlar.
Umumiy xrlda bir ulchovchi mas-sivlarni tasvirlash k,uyidagi kurinishida beriladi:
VAR V:ARRAY[N..M] OF T;
bunda V-massiv nomi, N va M-mos raviщsa massiv indeksining kuyi va yukori uzgarish chegarasi, T-massiv turi.
Agar bir nechta massivlarning indeks uzgarish chegarasi va turi bir xil bulsa, u xolda bu massivlarni tasvirlashda birlashtirish mumkin, masalan:
Var a,b,c:array[1..5] of real.
Indekslar turi real va integer dan tashkdri boshka oddiy turlar xam bulishi mumkin, chunki massivlar cheklangan elementlar soni-dan iborat buladi.
Kup lollarda indekslar turi sifatida cheklangan turlardan foydalaniladi. Chunki cheklangan turlarning kiymatlar tuplami tartiblangan va nomerlangan buladi.
Masalan: 50 ta elementdan iborat A massiv kuyidagicha tasvirlanadi:
VAR A:ARRAY[1..5O] OF REAL.
Indeks uzgarishning chegarasini butun turdagi uzgarmas bilan x,am ifodalash mumkin.
Masalan:
CONST MMAX=50;
VAR A:ARRAY[1..MMAX] OF REAL.
Massivlarni TYPE bulimida yoki tugridan-tugri uzgaruvchilar bulimida tavsiflash mumkin. Masalan:
a) type
massiv=1..100
vektor=array[massiv] of real; vektor2-array[-109..-l] of integer; var
a,b:vektor; c,d:vektor2;
b) var
a,b:array[l.J00] of real; c,d:array[-109..-l] of integer.
Sanab utiladigan turlar x,am indeks turi sifatida kullaniladi. Masalan:
type
ou=(yanvar, fevral,marpg, aprel, may, iyun, iyul, avgust, sentyabr, oktyabr, noyabr, dekabr);
hafta=(dyuiaH6a, seshanba, chorshanba, papshanba, juma, shanba, yakshanba);
Uzgaruvchilar esa kuyidagicha aniklanadi:
var
t,r:array[oy] of real; a,b:array[hafta] of real;
Massiv elementlarini kiritish va chikarish sikl, read va write operatorlari orkdpi amalga oshiriladi.
Masalan: 50 ta elementdan iborat A massiv elementlari kuyidagicha kiritiladi: for i:=l to 50 do read(A[i]);
Massiv elementlarni chikarish kuyidagicha amalga oshiriladi: for i:=l to 50 do write(B[i]);
Misol. x1 x2 ...x2Q massivning musbat elementlari yigandisini xisoblash dasturini tuzing.
program summa(input,output);
type n:=1..2O
var
x:array[n] of real; idnteger; s:real; begin
s:=0;
for i:=l to 20 do
read(x[i]) {massiv elementlarini kiritish}
for i:=l to 20 do
begin
if x[i]>=0 then s:=$+x[i]; end;
writeln('s=';s);
end.
Ikki ulchovli massivlar.
Paskal tilida bir ulchovli mas-sivlardan tashkari kup ulchovli massivlardan x,am foydalaniladi. Ular ichida eng kup tark,algani ikki ulchovli massivlar, ya’ni matrisalar yoki tugri burchakli jadvallardir.
Ikki ulchovli massivlar satr va ustun elementlaridan iborat, ularning elementlari ikkita indeks orkali ifodalaniladi. Bu indekslarning biri shu elementning satr buyicha urnini, ikkin-chi indeks esa ustun buyicha urnini kursatadi. Ikki ulchovli massivlarni ifodalash x,am bir ulchovli massiv kabi amalga oshiriladi.
Ikki ulchovli massivni tasvirlashda indekslarning uzgarishi vergul bilan ajratiladi. Masalan: A[ij], B[k,l]. Bu yerda birinchi indeks satrning nomerini, ikkinchi indeks esa ustunning nomeri-ni bildiradi.
Umumiy xolda ikki ulchovli massiv kuyidagicha tasvirlanadi:
VAR C:ARRAY[N..M,K.-L] OF T;
bunda S-massiv homh,N,K va M,L lar moye ravishda massiv indeksining kuyi va yuk,ori uzgarish chegarasi, T-massiv turi. Masalan:
VAR C:ARRAY[1..5, 1..10] OF REAL;
VAR X,Y:ARRAY[1..1O,1..1O] OF INTEGER; Ikki ulchovli massivlarni tavsiflash turlar yoki tugridan-tufi uzgaruvchilar bulimida amalga oshiriladi. Masalan:
a) type
matrisa=array[1..4,1..5] of real; matrisa2=array[dyiu..MKiu] of array [boolean] Of-20 var
a,b:matrisa; c:rhatrisa2;
b) var
a,b:array[1..4,1..5] of real; s:aggau[dush..yaksh] of array [boolean] of -20..20
Ikki ulchovli massivlar elementlarini kiritish yoki chikdrish kuyidagicha amalga oshiriladi: Masalan:
A. matrisa (I, j=1...3) elementlari suyidagicha kiritiladi:
for i:=l to 3 do
for j:=l to 3 do
read (A [i, j] );
V matrisa (i, j=1...3) elementlari kuyidagicha chщariladi:
for i:=l to 3 do
for j:=l to 3 do
write (B [i, j] );
Do'stlaringiz bilan baham: |