Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laby (1).doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
5.58 Mб
Скачать

Зертханалық жұмыс № 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 Индексі логикалық типті массив неше элементтер тұрады?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]