- •Задача №1
- •1. Организация ввода/вывода. Изучение стандартных типов данных
- •Зертханалық жұмыс № 1
- •1 Зертханалық жұмыстың жүру тәртібі:
- •Тапсырма
- •2 Мысал
- •Зертханалық жұмыс № 2
- •Тапсырма
- •Memo компоненті tMemo-класының компоненттерi әжептәуiр үлкен мәтiндi енгiзуге, өзгертуге және бейнелеуге арналған. Мәтiн tStrings класының Lines қасиетiнде сақталынады.
- •Зертханалық жұмыс № 3
- •1 Зертханалық жұмыстың жүру тәртібі:
- •Тапсырма
- •Зертханалық жұмыс № 4
- •1 Зертханалық жұмыстың жүру тәртібі:
- •Тапсырма
- •2 Мысалдар
- •For…to…do цикл операторы
- •Зертханалық жұмыс № 5
- •1 Зертханалық жұмыстың жүру тәртібі:
- •Тапсырма
- •Мысалдар
- •Массив элементтерін сұрыптау
- •Таңдау әдісімен сұрыптау
- •I,k:integer;
- •Зертханалық жұмыс № 6
- •1 Зертханалық жұмыстың жүру тәртібі:
- •Тапсырма
- •Мысалдар
- •Екі өлшемді массивтер
- •Екі өлшемді массив элементтерін толтыру
- •Var a:array[1..3,1..4] of integer; I,j:integer;
- •Массив элементтерінің қосындысы мен көбейтіндісін есептеу
- •Екі өлшемді массив элементін іздеу
- •Зертханалық жұмыс № 6
- •1 Зертханалық жұмыстың жүру тәртібі:
- •Зертханалық жұмыс № 7
- •1 Зертханалық жұмыстың жүру тәртібі:
- •Тапсырма
- •Мысалдар
- •Әдебиеттер Мазмұны
- •1. Есептің шартына сәйкес блок-схемасын құрастырып, енгізілуге тиісті деректердің анықталу аймағын ескеріп, бағдарлама құрастыр. 13
Мысалдар
Мысал 2.1 Label компонентін қолданып, ай аттарын шығаруды қарастырайық (сурет-23 а-форманы даярлау барысы; сурет-23 б-массив элементтерін шығару нәтижесі ).
М
ассив
элементтерін шығару мақсатында for
параметрлі қайталау операторын қолдану
өте ыңғайлы, бұл жағдайда параметрдің
санағышы массив элементтерінің индексін
бейнелеуге оңтайлы болады.
Есепті шешу: 1. Бір жылда он екі ай бар екенін ескеріп, ай санын тұрақты шама түрінде қабылдаймыз, яғни
const n=12;
2. Ай атаулары бір текті, реттелген жолдық типтер, сондықтан оны жариялау:
var month:array[1..n] of string[15]=('январь', 'февраль', 'март', 'апрель',
'май', 'июнь', 'июль', 'август', 'сентябрь', 'октябрь', 'ноябрь', 'декабрь');
3. Button1 батырмасының үрдісі:
procedure TForm1.Button1Click(Sender: TObject);
var s:string;// ай аттары
i:integer; //индекс , массив элементінің нөмірі
begin
for i:=1 to n do //параметрлі қайталау операторы
s:=s+inttostr(i) + ' ' + month[i]+#13;
label1.Caption:=s; // тізімді шығару
...
Мысал 2.2 StringGrid компонентiн қолданып, массив элементтерінің қосындысын және арифметикалық орта шамасын анықтау қажет. Есептің шешуі: 1. StringGrid компонентi, кесте ұяшығында қандайда-бiр мәтiндiк жолдары бар кестенi құру үшiн арналған. Кесте екi бөлiкке бөлiнедi: 1)Фиксацияланған (нақтыланған) және 2)Жұмыс алаңы. Бірінші бөлiгi бағандардың тақырыптарын көрсету үшiн және де олардың өлшемiн қолмен басқару үшiн арналған. Көп жағдайларда бұл бөлiк сол жақ шеткi бағанды және кестенiң ең жоғарғы бөлiгiн алады. Бiрақ FixedCols және FixedRows қасиеттерi арқылы фиксирленген жолдардың, бағандардың басқа да санын беруге болады. Егер бұл қасиет нолге тең болса, кестеде тағайындалған (фиксирленген) аудан болмайды (сурет-24а). Компоненттiң ең басты қасиетi Cells болып табылады. Cells массивiнiң екi өлшемдi ұяшығының әрқайсысында қандайда-бiр мәтiн болады. Нақты ұяшық екi санмен анықталады, ол баған және жол номерi. Cells қасиетi String типтес, сондықтан программа кез-келген ұяшықтың мәлiметiн оқи немесе жаза алады. Мысалға: Cells [1,1]:=′Жұмыс аймағының сол жақ жоғарғы ұяшығы′;
Ұ
яшықтар
саны ColCount
(бағандар саны) және RowCount
(жолдар саны) деген екi қасиетiне ие. Бұл
қасиеттердiң мәнi және де жұмыс барысында
өзгертiлiп отырады. Бiрақ бұл мәндер
минималды FixedCols және FixedRows қасиеттерiнiң
мәндерiнен 1-ге (бiрге) үлкен болуы қажет.
Бұл қасиеттер фиксирленген (нақтыланған)
ауданның қасиеттерiн анықтайды.
Сонымен компонентті формаға орналастырып, оның қасиеттерін тағайындау керек:
Кесте 10
Компонент қасиеттері |
Қасиеттерінің шамалары |
ColCount |
5 (кестедегі баған саны) |
FixedCols |
0 (фиксирленген (белгіленген) ауданның баған санын анықтайды – сурет-24а назар аударыңыз) |
RowCount |
1 (кестедегi жол саны) |
DefaultRowHeight |
24 (жолдың келісім бойынша қабылданған ұзындығы) |
Height |
24 |
DefaultColWidth |
64 (баған енiнiң келісім бойынша қабылданған мәнi) |
Width |
328 |
Options.goEditing |
True (ұяшққа мәлiмет енгізуге рұқсат берілген) |
Options.AlwaysShowEditing |
True (енгізу фокусы берілген ұяшыққа әрқашанда мәлiмет жазуға рұқсат етiлген) |
Options.goTabs |
True (ұяшықтарды Tab клавишасы арқылы өтуге болады) |
2. Формаға BitBtn1 компонентін орналастырып, оның Kind қасиетін bkOK- деп тағайындау қажет, бұл да StringGrid тәрізді компоненттер палитрасының Additional парағында орналасқан және Button сияқты командалық батырма ретінде қолданылады.
3. BitBtn1-ның OnClik оқиғасын өңдейтін үрдіс арқылы есептеуді іске асырамыз, ол үшін алдымен барлық кіріс деректерін және нәтижені сипаттаушы айнамалаларды жариялау керек: a:array[1..5] of real; - енгізілетен массив, summa-массив элементтерінің суммасы, sred - массив элементтерінің арифметикалық ортасы, i – индекс.
procedure TForm1.BitBtn1Click(Sender: TObject);
var a:array[1..5] of real; summa:real; sred:real; i:integer;
4. Массив элементтерін енгізу: егер ұя бос болса, осы ұя элементінің шамасы нөлге тең болғаны.
Begin for i:=1 to 5 do
if Length(stringGrid1.Cells[i-1,0])<>0 then a[i]:=strtofloat(stringGrid1.Cells[i-1,0])
else a[i]:=0;
5. Массив элементтерінің қосындысын және арифметикалық орта шамасы
summa:=0; //есеп басында сумматор немесе қосынды жинағы нөлге тең, себебі санағышта ешқандай дерек жоқ
for i:=1 to 5 do // параметрлі қайталау операторы 1-ден 5- ке дейінгі элементтерді қарастырады
summa:=summa+a[i]; // санағыштағы деректер a[i]-ші шамаға өсіп отырады
sred:=summa/5; //бес санның арифметикалық орта шамасын есептеу
5. Нәтижені Label компонентінде бейнелеу
Label2.Caption:= 'сумма элементов:' + Floattostr(summa)+#13+
'арифметическое среднее:' + Floattostr(sred);
end;
6. Есептің нәтижесі 24 б-көрсетілген.
Мысал 2.3 . Edit компонентінің көмегімен массив элементтерін енгізіп, оларды ListBox –та бейнелеп, массивтің ең үлкен және ең кіші элементін Memo-да көрсету қажет (сурет-26) .
в)
Есепті қарастыру кезеңінде (26а-суреті) RadioButton компонетін қолданып, оны максимум немесе минимум-ды анықтауды тағайындау үшін қолданамыз. Массив элементтерін Edit-ке енгізіп, Button1 компонентін басып, оның нәтижесін Listbox –та көруге болады. Массив элементтерінің ең үлкен шамасын және оның номерін (26б-сурет), сол сияқты ең кіші шамасын және оның номерін анықталған және (26в-сурет) нәтижесі келтірілген.
Қорытынды: Біртекті деректерді кесте немесе тізімдерді бейнелеу үшін сілемдер арқылы көрсету өте қолайлы. Ортақ атауы бар, біртекті деректер жиынын сілемдер немесе массив дейміз. Егер оның индексі бір индекстік өрнектен түрса, онда массив бірөлшемді деп аталады
Массивтермен орындалатын операциялар:
массив элементтерін көрсету (шығару);
массив элементтерін енгізу;
массив элементтерінің ең үлкен және ең кіші элементін анықтау;
белгілі бір шаманы массив элементтерінен іздеу;
массив элементтерін сұрыптау
