Әдістемелік нұсқау
Массивтер деп бiр атаумен берiлетiн бiрыңғай мәндер қабылдайтын реттелген шамалар
тiзбегiн айтамыз. Массивтердi колданбастан бұрын, массив атын айнымалыны бейнелеу
бөлiмiнде жазылуы керек. Жалпы түрі:
Элемент типі: массиваты:[массив өлшемі]
Мысалдар: float temper[3];
char name[30];
int koef[];
Әрбiр
массивке
03
алдын-ала
оның
элементтерiнiң
саны
ескерiлiп,
қатар
орналасқан ұяшықтар бөлiнедi. Массивтерді
енгізу үшін for циклдық операторын қолданған
оңай.
Есеп: A(10) массиві берілген. Массивтің оң
элементтерін 2-мен ауыстыру .
35
Есепті шешуде қолданылатын компонент ---тер:
Edit1 , Memo1 , Memo2 , Button1 , Button2 , Button3.
Программа мәтіні
#include
#pragma hdrstop
#include "Unit1.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int i,n;
int a[30];
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{ i=0;
Memo1->Clear(); Memo2->Clear();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1KeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{ if (Key==13) Button1->SetFocus();}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{ i=i+1;
Memo1->Lines->Add(Edit1->Text);
a[i]=StrToInt(Edit1->Text);
Edit1->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{ n=i;
for(i=1;i<=n;i++)
if (a[i]>=0) a[i]=2;
for(i=1;i<=n;i++)
Memo2->Lines->Add(IntToStr(a[i]));
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
Тапсырма варианттары (А)
36
1. А массиві 41, 52, 23, 15, 94, 79, 12, 38, 13, 17 бүтін он саннан тұрады. Әрбір элементін
сәйкес нөмеріне көбейткенде құралатын, жаңа массив құру программасын жазың. в =
i·a
2. 10 компоненттен тұратын вектордың модульін есептеңіз
10
1
2
i
i
a
S
}
1
;
1
,
9
;
2
,
5
;
3
,
4
;
2
,
1
;
3
;
4
,
2
;
5
;
3
,
0
;
1
,
0
{
i
a
3. Әрқайсысында 14 элементтен тұратын екі А және В массиві берілген. c
i
=a
i
+b
i
бойынша
құрылған жаңа массивтің ен кіші элементін табу программасын жаз.
a
i
={0.1; 0.3; 0.5; 0.7; 0.9; 1.1; 1.3; 2.3; 5.7; 9.8;2.3; 3.1; 6.4; 5.6; 9.7}
b
i
={5.2; 0.5; 4.8; 4.6; 4.4; 4.2; 6.4;1.3; 5.6; 1.2; 0.6; 5.2; 7.1; 4.1 }
4. Екі вектордың жарты элементтерінің арифметикалық ортасын табу программасын
жазың. А={1,5; 2,5; -0,34; 6; 4.4; 4.2; 6.4;1.3; 5.6;}
В={-11,7; 9,3; 2,5; 3,7; -1,2}
5. А={-2,5;3;13;0,5;1,5;-2;0,7;1,9;7,1}. Сандар тізбегі берілсін. -1=
қанағаттандыратын сандарды табу программасын жаз.
6. А(а
1
а
2
, …, а
20
) массив элементтерінен қандай да бір «с» мәнінен үлкен болатын (
а
i
>
с) жаңа В массивін құру программасын жаз.
7. Берілген b және с үшін (b<
i
а 1,
а
2,…,
а
15
) массив
элементтерінің қосындысын табу программасын жазың.
8. А (а
1,
а
2
,…,а
30
) массивінің 0ге тең элементтерінің санын табу программасын жазың.
9. А (а
1,
а
2,…,
а
25
), массивінің
i
а >c шартты қанағаттандыратын барлық элементтерінің
арифметикалиқ ортасын табу программасын құрың.
10. А(а
1,
a
2,…,
а
10
) массивіндегі а
i
>100 шартты қанағаттандыратын элементтерін 777 санымен
ауыстыру программасын құрың.
11. Он элементтен тұратын А массивінің оң және теріс элементтерінің қосындысын
жекежеке табыңдар.
a
i
={1.2; 3.1; -0.5; -1.7; 0; 1.9; -4.2; 7.1; 8.5; -10}
12.
Әрқайсысында 9 элементтен тұратын А және В массиві берілген. c
i
=(a
i
+b
i
)
формуласымен анықталған жаңа С массивінің квадраттарының қосындысын табыңдар.
a
i
={0.1; 0.2; 0.3; 0.8; 1.6; -4.2; -0.4; 5; 7}
b
i
={-5; 10; 0; 8; -6; -12; 4; 20; 7}
13.
15 элементтен тұратын Х массиві берілген. Массивті өсу реті бойынша орналастыру
программасын жаз.
Х
i
={0.2; -3.5; 43; -15; 18; 91; 7.7; 25; 54; 6.4; 46; 0.5; -7; 8; 9.2; }
14.
20 элементтен тұратын Х массиві берілген. Массивтің орта мәнін және бірінші,
екінші бөлігіндегі теріс элементтердің санын жеке табыңдар.
х
i
={1.5; 0; 2.3;-4; 5; 0;2;-5; 0; 1.7; -0.2;12; -2; 0; -4.1; 2.6; 7; 8; 0; -1; 10; 0}
15.
Әрқайсысында 8 элементтен тұратын М және N массиві берілген. С массивінің
элементі с
i
=( a
i
- b
i
)/( a
i
* b
i
) бойынша анықталған. С массивінен ең үлкен элементін табың.
16.
А(2.6, 4.8, 0.6), В(1.5, 4.0, 3.1), C(2.1, 0.6, 1.9) нүктелерімен берілген үшбұрышың
қабырғаларының ұзындығын табу программасы жаз.
17.
100 элементтен тұратын А и B вектордың
100
100
2
2
1
1
...
b
a
b
a
b
а
с
формуласы бойынша анықталған скаляр көбейтіндісін табыңдар.
37
18.
Q
векторының
квадраттық
ортасын
табу
программасын
құрыңдар
Q=
2
30
2
2
2
1
...
v
v
v
19.
P және Q векторының ара қашықтығын табу программасын құрың.
D=
2
20
20
2
2
2
2
1
1
)
(
...
)
(
)
(
g
p
g
p
g
p
20.
25 элементтен тұратын Х массивінің элементтер санын және олардың қосындысын
табу программасын құрың.
Бақылау сұрақтары.
1. Массивтерді сипаттау үшін тілдің қандай операторлары қолданады?
2. Массивтерді өңдеу үшін циклді ұйымдастыру әдістері қандай?
3. Массивтерді енгізу және шығару ерекшкліктері қандай?
Блиц-тест
1. C++ Builder
A. MS (Inprise) өнімі болып табылады
B. Borland (Inprise) өнімі болып табылады
C. Turbo өнімі болып табылады
D. Win өнімі болып табылады
E. IBM өнімі болып табылады
2. #pragma package(smart_init) директивасының қызметі қандай
A. инициализация пакеттерінің тізімін анықтайды.
B. Unit1.h файлын іске қосады
C. берілген файлмен атымен аты сәйкес болатын *.dfm файлын формада қолдану
қажеттігі
D. форма объектісін хабарлау
E. hdrstop опциясы препроцессор жұмысының өзгешеліктерімен байланысты
3. Төмендегі компоненттердің қайсысында Caption қасиеті болмайды?
A. Edit
B. Form
C. Label
D. Button
E. Panel
4. Форманы жасыру үшін қай әдіс қолданылады?
A. Release
B. Close
C. Hide
D. Show
5. S айнымалысының мәні келесі операторларлан кейін неге тең болады:
{float S=0; int I=1;
do { S=S+1/I; I=I-1}
while (I<=1);}
A. 3
B. 1/2
C. 2/5
D. 0
E. 1
38
Жұмысты орындауға тапсырмалар
1. Лекциялар, әдебиеттер, әдістемелік нұсқау бойынша теориялық материалды қайталау.
2. Бақылау сұрақтарына ауызша жауап беру.
3. Тапсырма вариантын таңдау және орындау
4. Есеп жазу
Есеп мазмұны
1. Жұмыстың тақырыбы және мақсаты.
2. Бақылау сұрақтарына жауап жазу.
3. Тапсырманың блок-схема, алгоритмі.
4. C++ Builder тілінде программасы
Әдебиеттер
1. Атымбаева Объектіге бағытталған программалау негіздері.Алматы, 2005 ж.
2. Програ ммирование в среде С ++ Builder. А. Вальвачев, Д. Сурков, К. Сурков.
Мин.1998г
3. С ++ Builder. С.В.Глушаков, В.Н. Зорянский, С.Н. Хоменко
4. С++ и информатика . Н.Культин, М. 2002г.4. 4 4
5. С ++ Builder книга рецептов. В. Ермолаев. Кудиц. – образ. 2006г.
6. Справочник по С ++ Builder. Учебное пособие. 2005г.
7. Разработка приложений в среде С ++ Builder 6 и решение задач информационно-
радиационного профиля. Учебное пособие. А.И. Купчишин, Т.А. Шмыгалева.
Лабораториялық жұмыс № 9-10
Тақырыбы: C++ Builder ортасында екі өлшемді массивтермен жұмыс
Мақсаты: Стандартты компоненттерді қолданып программалау әдістерін, матрицаларды
енгізу және шығару әдістерін меңгеру.
Материалдар және жабдықтар: ДК, C++ Builder программалау ортасы
Жұмыстың мазмұны және орындалу тәртібі:
1. Вариант бойынша тапсырманы алу
2. Есептің қойылымы
3. Есепті шешу алгоритмі
4. Есепті шешу программасын C++ Builder программалау ортасында құру
5. Программа листингі
6. Орындалған жұмыс жөнінде есеп беру
Әдістемелік нұсқау
Массивтер деп бiр атаумен берiлетiн бiрыңғай мәндер қабылдайтын реттелген шамалар
тiзбегiн айтамыз. Массивтердi колданбастан бұрын, массив атын айнымалыны бейнелеу
бөлiмiнде жазылуы керек.
Жалпы түрі:
A [бастапқы мән][соңғы мән]
Массив элементтерін енгізу
for(i=0;i<=n-1;i++)
for(j=0;j<=n-1;j++)
a[i][j]=StrToInt(StringGrid1->Cells[i][j]);
39
Есеп: A(N,M) массиві берілген. Ж.анама
диагоналден төмен орналасқан
элементтерді -1 мен ауыстыру.
Есепті шешуде қолданылатын
компоненттер:
SpinEdit 1 , Edit 1 , Label 1 , Label 2 ,
Button 1 , Button2 , BitBtn 1 , StringGrid 1.
Программа мәтіні
#include
#pragma hdrstop
#include "Unit1.h"
#pragma package(smart_init)
#pragma link "CSPIN"
#pragma resource "*.dfm"
TForm1 *Form1;
int i,j,i1,j1,n,a[10][10];
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CSpinEdit1Change(TObject *Sender)
{
n=StrToInt(CSpinEdit1->Text);
StringGrid1->ColCount=n;
StringGrid1->RowCount=n;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (i1==n) {i1=0; j1=j1+1;}
StringGrid1->Cells[i1][j1]=Edit2->Text;
i1=i1+1;
Edit2->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
for(i=0;i<=n-1;i++)
for(j=0;j<=n-1;j++)
a[i][j]=StrToInt(StringGrid1->Cells[i][j]);
for(i=0;i<=n-1;i++)
for(j=0;j<=n-1;j++)
if (i>n-1-j) a[i][j]=-1;
for(i=0;i<=n-1;i++)
for(j=0;j<=n-1;j++)
StringGrid1->Cells[i][j]=IntToStr(a[i][j]);
40
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit2KeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if (Key==13) Button1->SetFocus();
}
//---------------------------------------------------------------------------
Тапсырма варианттары
1.
А(4х7) матрицасының ең үлкен элементінің координатасын (жол және бағана номері)
анықтау программасын жазың.
2.
Y (5х5) матрицасының әрбір баған элементтерінің қосындысын табыңдар.
3.
В(10х6. массивінің барлық оң элементтерінің қосындысын табу программасын жазың.
4.
В (8х8) матрицасының элементтерінің арифметикалық ортасын табу программасын
жазыңдар.
5.
ij
a
А
квадрат матрицасының 1ші және 2ші бағанның орнын ауыстыру программасын
жазыңдар. а=
7
,
0
0
1
2
2
1
3
.
0
7
.
1
5
.
1
2
5
.
0
1
3
5
.
0
2
1
6.
ik
в
В
матрицасының жеке оң және теріс элементтерінің қосындысын табу
программасын жазыңдар. в=
5
.
31
9
.
11
5
.
0
7
.
2
1
.
9
9
.
0
3
.
4
2
.
17
3
.
21
3
.
0
2
.
7
2
7.
А(4х4) өлшемді а=
ij
а
квадрат матрицасының
ij
а
b
шартты қанағаттандыратын
элементтерін экранға шығару программасын жазың. в=1.2;
2
.
1
6
.
0
5
.
0
7
.
1
2
.
0
7
.
0
3
.
2
19
5
.
1
2
.
1
6
.
0
3
.
0
7
.
3
5
.
1
9
.
0
7
.
0
а
8.
А={a
ij
} 4х4 өлшемді квадрат матрица берілген.
А матрицасының элементтеріне сәйкес
жол номеріне көбейткенде пайда болған жаңа d={d
ij
}, матрицасын құрың. Яғни, d
ij
=ia
ij
4
.
0
9
.
1
5
.
2
5
.
1
.
56
3
.
2
4
.
2
1
.
4
5
.
2
3
.
2
8
.
0
4
.
2
5
.
2
5
.
2
3
.
1
2
.
1
3
.
2
2
.
1
2
.
3
2
.
0
А
9.
10ші ретті бірлік матрица құрыңдар.
10.
Элементтері а1
ij
=i
2
/(j
2
+1), а2
ij
=j
2
/(i
2
+j
2
) формуласымен анықталатын, 5ші ретті А1
және А2 квадрат матрицасының элементтерінің арифметикалық ортасын табу
программасын жазың.
11.
Элементтері С
ij
=sini+cosi формуламен анықталған 10 ретті С матрицасының әрбір
жолының ең үлкен элементінен тұратын, В векторын құру программасын жазың.
41
12.
Элементтері W
i j
= tg ( i + j
2
) формуламен анықталған 6шы ретті W матрицасының ,
әрбір жолының элементтерінің қосындысынан тұратын, V векторын құру
программасын жазың.
13.
Жоғары үшбұрыш элементтері 0ге, төменгі үшбұрыш элементтері 1ге, диагонал
элементтері 2ге болатын 8ші ретті квадрат матрица құру программасын жазың.
14.
Элементтері
)
3
sin(
2
j
i
A
ij
формуламен анықталған 6шы ретті А матрицаның
0ге тең элементтерінің, баған және жол номерлерін экранға шығару программасын
жаз.
15.
Элементтері
2
j
i
a
ij
формуламен анықталған NxN ретті А матрицасының
транспондалған матрицасын табу программасын жаз.(матрицаны транспондауяғни,
сәйкес жолдар және бағандардың орнын ауыстыру.
16.
Элементтері
)
2
(
)
sin(
2
j
h
Ln
j
i
Q
ij
формуласымен анықталған 8ші ретті Q
матрицасының элементтер санын табу программасын жаз.
17.
Элементтері
3
)
(
j
i
М
ij
формуласымен анықталған 8ретті М матрицасының 0 мен
5 аралығында жатқан элементтер санын экранға шығару программасын жаз.
18.
Бас диагоналдан жоғары элементтері 0ге тең, ал қалған элементтері
3
2
)
1
2
(
j
i
M
ij
формуламен анықталған, үшбұрышты М матрицасын құру
программасын жаз.
19.
Элементтері
2
2
j
i
a
ij
формуласымен анықталған 5 ретті А квадрат матрицасының
b
a
ij
шартты қанағаттандыратын элементтерін экранға шығару программасын жаз.(b
кез келген сан)
20.
Р(5х5) матрицаның бас диагоналының астындағы оң элементтерінің қосындысын және
олардың элементтер санын есептеу программасын жаз.
Бақылау сұрақтары
1. Күрделі циклдарды ұйымдастырудың негізгі ережелері
2. Ішкі циклдан шығудың әдістерін көрсет
3. Матрицаны экранға кәдімгі күйде шығарды қалай ұйымжастыруға болады?
4. Төменгі үшбұрышты матрицаны экранға қалай шығаруға болады?
5. Массивтерді сипаттау үшін қандай операторлар қолданады?
Блиц-тест
1. Форманы құру үшін қай әдіс қолданылады?
A. Show
B. Activate
C. Create
D. Close
E. Hide
Достарыңызбен бөлісу: |