
- •Зертханалық жұмыс №1
- •Зертханалық жұмыс №2
- •2. Delphi негізгі терезесі
- •4. Объектілер инспекторы терезесі
- •Зертханалық жұмыс №3
- •Өзіндік жұмыс тапсырмалары
- •Зертханалық жұмыс №4
- •Зертханалық жұмыс №5
- •Зертханалық жұмыс №6
- •Зертханалық жұмыс №8
- •Зертханалық жұмыс №9
- •Зертханалық жұмыс №10
- •Зертханалық жұмыс №11
- •Зертханалық жұмыс №12.
- •Зертханалық жұмыс №13.
- •Зертханалық жұмыс №14
- •Зертханалық жұмыс №15
- •Зертханалық жұмыс № 16
- •Зертханалық жұмыс №17
- •3.Қорғалған блок механизмі.
- •Зертханалық жұмыс №18
- •Зертханалық жұмыс №19
- •Зертханалық жұмыс № 20
- •Зертханалық жұмыс №21
- •Зертханалық жұмыс №22
- •Зертханалық жұмыс №23
- •Зертханалық жұмыс №24
- •Зертханалық жұмыс №25
- •Зертханалық жұмыс №26
- •Зертханалық жұмыс №27
- •Зертханалық жұмыс №28
- •Зертханалық жұмыс № 29
Зертханалық жұмыс № 20
Тақырыбы: Массивтермен жұмыс
Мақсаты: Екі өлшемді массивтерді программалау тәсілдерін меңгерту
Теориялық мәліметтер
Массивтерді өндеу процедуралары
// label –компонентіне массив элементтерін шығару
var
Form1: TForm1;
a: array[1..5] of string[10]=('Казбеков','Сапина','Ахметова','Дунасарова', 'Клышев');
i: integer;
procedure TForm1.Button1Click(Sender: TObject);
begin
for i:=1 to 5 do
begin
label2.Caption:=label2.Caption+inttostr(i)+'. '+a[i]+#13;
end;
end;
Программада массив элементтерiн енгiзу үшiн немесе оларды экранға шығару үшін циклдiк операторлар қолданылады. Матрица элементтерiмен жұмыс iстеу үшiн қос цикл пайдаланылады.
// StringGrid –компонентін пайдалану
procedure TForm1.Button2Click(Sender: TObject);
var
b: array[1..5] of integer;
c: array[1..5] of real;
i,s: integer; sum,asr: real;
begin
if RadioButton1.Checked then begin
for i:= 1 to 5 do if Length(StringGrid1.Cells[i-1,0])<>0
then c[i] := StrToFloat(StringGrid1.Cells[i-1, 0]) else c[i] := 0;
sum:=0;
for i:=1 to 5 do sum:=sum+c[i];
label5.Caption:='cумма ='+floattostr(sum)+#13+'Это не все';
RadioButton1.Checked:=false;
end
else begin
for i:= 1 to 5 do
if Length(StringGrid1.Cells[i-1,0])<>0
then b[i] := StrToInt(StringGrid1.Cells[i-1,0])
else b[i] := 0;
s:=0;
for i:=1 to 5 do
s:=s+b[i];
asr:=s/5;
label5.Caption:='cумма ='+inttostr(s)+#13+'ср. ариф='+floattostr(asr);
end;
end;
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
case Key of
#8,'0'..'9' : ;
#13: if StringGrid1.Col < StringGrid1.ColCount - 1
then StringGrid1.Col := StringGrid1.Col + 1;
'.',',': begin
if Key <> DecimalSeparator then
Key := DecimalSeparator;
if Pos(StringGrid1.Cells[StringGrid1.Col,0],DecimalSeparator)<>0
then Key := Chr(0); end;
'-' : if Length(StringGrid1.Cells[StringGrid1.Col, 0]) <>0
then Key := Chr(0) ;
else key := Chr(0);
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
const n=5;
var
m,i: integer; st: string;
y: array[1..n] of string;
begin
m:=Memo1.Lines.Count;
if m = 0 then begin
ShowMessage('Простите нет данных!');
Exit; end;
if m>n then begin
ShowMessage('Слищком много даных, но Я беру сколько смогу.');
m:=n;
end;
for i:=1 to m do
y[i]:=Form1.Memo1.Lines[i-1];
if m>0 then
begin
st:='Элементы массива:'+#13;
for i:=1 to m do
st:=st+IntToStr(i)+' '+ y[i]+#13;
ShowMessage(st);
end; end;
Тапсырмалар
1 А(n,m) матрицасындағы оң және теріс элементтер санын аңықта.
2 n*m өлшемдi матрица берiлген. Әрбiр жолының элементтерiнiң қосындысын есепте.
3 n*m өлшемдi матрица берiлген. Бас диагоналындағы элементтердiң iшiнен үлкен элемент табу керек.
4 n*m өлшемдi матрица берiлген. Қайталанып кездесетiн элементтер бар ма? Анықта.
5 n*n өлшемді А матрицасының ең үлкен элементінің координатын (жолымен баған нөмірін) анықта.
6 В матрицасының бас диагоналынан жоғары орналасқан элементтерінің қосындысын есепте.
7 n*m өлшемдi матрицаның кiшi элементi мен үлкен элементiнiң орындарын ауыстыр
8 j*m және n*i өлшемді А және В матрицалары берілген. Матрицалардың көбейтіндісін табу керек
9 A(n,n) матрицасының бас диоганалындағы ең үлкен элементін тауып, сол элемент тұрған жолды экранға шығар
10 n*m екі өлшемді массив берілген. Белгілі шарт бойынша массивтің жолдарын ауыстыру керек
Бақылау сұрақтары:
1 Массив деген не?
2 Массивтің базалық типі деген не және олар қандай типті болады?
3 Массив индексінің бүтін және нақты болмайтынын қалай түсінесіз? Индекс 4
тағы қандай тип бола алмайды?
4 Индексі логикалық типті массив неше элементтер тұрады?