Сызықтық алгоритмдерді программалау

   Визуалды ортада сызықтық алгоритмдерді қалай программалауға болады?

   Сызықтық алгоритм

   Ойлан

  • Күнделікті өмірде ешбір шартсыз, тізбекті түрде орындалатын іс-әрекеттердің мысалдарын келтіріңдер (мысалы: таңертеңгілік жаттығу).
  • Сызықтық алгоритмдер көмегімен визуалды ортада қандай жобалар дайындауға болады?

   Жаңа білім

   Сызықтық алгоритм – тармақталу мен қайталану әрекеттері жоқ, әрекеттердің тізбектей орындалуын сипаттайтын алгоритм түрі. Сызықтық алгоритм – барлық әрекет тізбекпен, бірінен соң бірі табиғи реттілікпен бір реттен орындалатын алгоритмдік құрылым.
   ​Сызықтық программа деп шартты тексеру, тармақталу және қайталану операторлары жоқ, енгізу, шығару операторларынан және орындау командаларынан тұратын, қарапайым программаны айтамыз. Программалау тілін пайдаланып, компьютерге мәлімметтерді енгізуге, өңдеуге, өңделген нәтижелерді экранға шығаруға немесе файлға жазуға болады. Өткен тақырыптарда танысқанымыздай Паскаль программалау тілі модульдік программалау тіліне жатса, Lazarus – Паскаль тілі негізінде жасалған объектіге- бағытталған визуалды программалау ортасына жатады. Lazarus программалау ортасында модульдік программа жазуға мүмкіндік бар. Ол үшін «Создать.. Модуль-Модуль Паскаля» командаларын орындау керек. Біз сендермен модульдік және объектіге-бағытталған программалау тілдерін салыстыра отырып үйренеміз. Бұл сендерге программалау процесін түсінуге үлкен көмегін тигізеді. Енді Паскаль негізінде модульдік программалау жолдарымен танысайық. Программада мәліметтерді енгізу үшін Read операторын қолданамыз.

   Read операторы

   Жалпы жазылуы: Read (a,b,c,…, n). Бұл жерде енгізілетін a, b, c, …, n айнымалы шамалар. Айнымалылар әртүрлі типтерге тиісті болуы мүмкін. Енгізу кезінде айнымалыларды бос орынмен бөліп енгізу керек. Әрбір айнымалыны жеке қатарға енгізу үшін Readln (Readln (a,b,c,.. n)) операторы қолданылады.

   Wrіte операторы

   Жалпы жазылуы: Wrіte (a, b, c, …, n). Бұл жерде a, b, c, …, n экранға немесе файлға жазылатын нәтижелер. Ал әрбір нәтижені жеке қатарға шығару үшін Wrіteln (Wrіteln(a, b, c, …, n)) операторы қолданылады. Сонымен бірге Wrіte операторын мына түрде пайдалануға да болады: Wrіte (‘қосынды=’, ‘ ең үлкені’). Математикада көптеген есептер сызықтық алгоритм түрінде шешіледі.
   ​Lazarus-та сызықтық программалардан тұратын жобалар жасауға болады. Мұндай жағдайда «Жоба пішініне» ақпаратты енгізу немесе нәтижесін шығару үшін өткен тақырыптарда танысқан компоненттерден Еdit-ті қолданамыз.
   Енді осы операторлардың іс жүзінде қалай жұмыс жасайтынын көріп шығайық.​

   Практикалық жұмыс

   «Сынып бөлмесінің ауданын есептеу» жобасы

   Сынып ұзындығы а және ені b болатын тіктөртбұрышты бөлме. Осы бөлменің периметрі P мен ауданы S-ті есептейтін сызықтық бағдарлама құрыңдар.

   Алгоритмі: тіктөртбұрыштың периметрін P = 2*(a+b) және ауданын S=a*b формуласы бойынша есептеңдер. 5.25-суретте тапсырманың модульдік программадағы мәтіні берілген. 5.9-кестеде жобада қолданған компоненттердің қасиеттері берілген. 5.26 және 5.27-суреттерде жобалардың дайындалу кезеңі сипатталған.

Var
a,b,s,p: integer;
Begin
Readln(a,b);
P:= 2*(a+b);
S:=a*b; Writeln(‘S=’, S); Writeln(‘P=’,P); End.

5.25-сурет. Модульдік программа коды

5.26-сурет

5.27-сурет

4.9-кесте. Компоненттердің қасиеттері

Команда

Қасиеті

Қасиетінің
мәні

Form1

Сaption

Аудан мен периметр

Label1

Сaption

Ұзындығы

Label1

Сaption

Ені

Button1

Сaption

Периметрі

Button2

Сaption

Ауданы

Button3

Сaption

Аяқтау

Edit1

Text

Бос

Edit2

Text

Бос

Edit3

Text

Бос

Edit4

Text

Бос

   Lazarus программасында жасалған «Периметр мен ауданын табу» жобасының «Периметр», «Аудан» және «Аяқтау» батырмаларына жазылған коды.

procedure TForm1.Button1Click(Sender: TObject); 

var a,b,p:integer;
begin
a:=StrToInt (edit1.text);
b:=StrToInt (edit2.text);
P:=2 * (a + b);
edit3.text:= IntToStr (P);
end;

procedure TForm1.Button2Click(Sender: TObject);

var a,b,s:integer;
begin
a:=StrToInt(edit1.text);
b:=StrToInt(edit2.text);
s:=a*b;
edit4.text:=IntToStr(s);
end;

procedure TForm1.Button3Click(Sender: TObject);

begin
exit;
end;

   Lazarus программасында нәтижені терезеге шығару үшін Show-Message() процедурасы қолданылады. ShowMessage процедурасы экранға мәтін және ОК командалық батырмасы бар шағын терезе шығарады. Процедураның жалпы жазылу түрі:

   айнымалы: = InputBox (‘тақырып’,’түсініктеме’,’мән’);​

   Мұндағы айнымалы – пайдаланушы енгізген String типті айнымалының мәні, тақырып – енгізу терезесінің тақырып мәтініне түсініктеме беру, түсіндіру – хабарлама мәтіні, мән – енгізу терезесінің өрісі арқылы енгізілетін санды және мәтіндік ақпарат.
   ​Мысалы: минутты сағатқа айналдыратын жоба жұмысымен танысайық. 5.28-суретте жобаның жасалу кезеңі, 5.29, 5.30-суреттерде жобаның орындалу кезеңі берілген. 5.31-суретте «Орында» батырмасына арналған программа коды жазылған.

5.28-сурет

5.29-сурет

5.30-сурет

5.31-сурет

   Lazarus программасында нәтижені терезеге шығару үшін Show-Message() процедурасы қолданылады. ShowMessage процедурасы экранға мәтін және ОК командалық батырмасы бар шағын терезе шығарады. Процедураның жалпы жазылу түрі:
   ​ShowMessage(‘Хабарлама’);
   ​Мысалы: ShowMessage (‘Берілген шаманы енгіз’). Бұл терезенің тақырыбы қалыпты жағдайда Project болып жазылады. Оны өзгерту үшін мәзір қатарынан Project\Options\ Application\Title командасы орындалады.

   Талдау

   «Сынып бөлмесінің ауданын есептеу» тақырыбындағы жоба жұмысын талдаңдар. Талдау барысында мыналар ескерілуі тиіс:
   ​- компоненттерді таңдау;
   ​- қасиеттерді дұрыс қолдану;
   ​- кодтарының жазылу ережесіне назар аудару.

   Жинақтау

   Сынып бөлмесінің ауданын және көлемін есептейтін программалық алгоритм мен программа кодын әзірлеп ұсыныңдар.

   Бағалау

   Есепті шешуде сызықтық алгоритмдердің қолдану шеңберін бағалаңдар (қандай есептерді шешу мүмкіндігі бар, қандай есептерді шешуге мүмкіндігі жоқ).

   Сұрақтар

1. Сызықтық алгоритмдердің ерекшеліктерін түсіндіріңдер.

2. Модульдік программада енгізу және шығару үшін қандай операторлар қолданылады?

3. Визуалды ортада мәліметтерді терезе көмегімен енгізуге және нәтижені шығаруға қандай операторлар қолданылады?

4. Объектіге-бағытталған программада мәтіндік ақпараттарды енгізу компонентін, негізгі қасиеттерін атаңдар.

5. Объектіге-бағытталған программада мәтіндік ақпараттарды шығару компонентін, негізгі қасиеттерін сипаттаңдар.

6. InputBox() функциясының қызметін түсіндіріңдер.

7. ShowMessage функциясының жазылу пішімі және атқаратын қызметі қандай?

8. ShowMessagе функциясының орындалу нәтижесінде шығатын шағын терезенің атауы қалыпты жағдайда қандай болады?

9. Визуалды және модульдік ортада мәліметтерді енгізуге және нәтижені шығаруға қолданылатын операторлардың бір-бірінен ерекшелігін атап көрсетіңдер.

   Тапсырма

   1. Шеңбердің радиусы R берілген. Шеңбердің ұзындығын табыңдар.
   ​2. A, B, C, D сандары берілген. Бұл сандардың арифметикалық орта мәнін табыңдар.
   ​3. Сендерге бөлменің ұзындығы миллиметрде берілген. Ұзындықты метрде, дециметрде, сантиметрде және миллиметрде өрнектеңдер. Мысалы, 6542 мм= 6 м 5 дм 4 см 2 мм.

   Үй тапсырмасы

   1. Текше қабырғасының ұзындығы L болсын. Осы текшенің көлемін есептеңдер.
   ​2. Заттың көлемі мен массасы берілген. Осы заттың тығыздығын табыңдар.
   ​3. Баланың өз жылдамдығы V1, ал желдің жылдамдығы V2 болса, баланың желге қарсы және желмен бағыттас жүргендегі жылдамдығын табатын жоба жасаңдар.

Өтінемін күте тұрыңыз