- •1. ТУРБО ПАСКАЛЬ ПРОГРАММАЛАУ ОРТАСЫ
- •2.1. Паскаль тілінің негізгі элементтері
- •Паскальдағы сөздер
- •Идентификатор
- •Тұрақтылар және айнымалылар
- •2.2. Берілім типтері
- •Турбо Паскальдағы берілім типтерінің тізбесі
- •Логикалық тип
- •2.4. Амалдар, математикалық функциялар, өрнектер
- •2.5. Программаның құрылымы
- •2.6. Енгізу-шығару процедуралары
- •Экранға шығару форматтары
- •2.7. Қарапайым операторлар
- •2.8. Алгоритмдеудің негізгі құрылымдары
- •2.9. Тізбектеу құрылымды алгоритмдер
- •2.10. Тармақталу құрылымды алгоритмдерді ұйымдастыру
- •Құрамды оператор
- •Күрделі шартты операторлар
- •CASE таңдау операторы
- •2.11. Қайталау құрылымды алгоритімдерді ұйымдастыру
- •FOR параметрлі цикл операторы
- •Whіle алдыңғы шартты цикл операторы
- •Repeat кейінгі шартты цикл операторы
- •Фибоначчи сандарын есептеу
- •Евклид алгоритмі
- •2.12. Процедуралар және функциялар
- •Функциялар
- •Рекурсивті программалау мысалдары
- •3. ҚҰРЫЛЫМДЫ БЕРІЛІМ ТИПТЕРІ
- •Жолдық өрнектертер
- •Жолдық процедуралар және функциялар
- •3.2. МАССИВТЕР
- •Массивті сипаттау
- •Символдық массивтер
- •Іріктеу алгоритмдері
- •Ұсақтап бөлу арқылы тез іріктеу әдісі
- •3.3. ЖИЫНДАР
- •Жиындарға қолданылатын амалдар
- •3.4 ЖАЗБАЛАР
- •Типті сипаттау
- •Сатылы жазбалар
- •Файлдық типтер және айнымалылар
- •Сыртқы файлды программамен байланыстыру
- •Файлдан оқу
- •Файлға жазу
- •Файлды толықтыру
- •Мәтіндік файлдар
- •Қолданылған әдебиеттер
12 = 1
22 = 1 + 3
32 = 1 + 3 + 5 42 = 1 + 3 + 5 + 7
. . . . . . .
n2 = 1 + 3 + 5 + 7 +.9 + . . . + 2n – 1
Whіle алдыңғы шартты цикл операторы
Циклдің қайталану саны алдын ала белгісіз болса, онда алдыңғы шартты Whіle операторы қолданылады. Бұл оператордың синтаксистік диаграммасы және блок-хемасы мынадай:
Жазылу форматы:
while |
логикалық |
do |
оператор |
|
өрнек |
||||
|
|
|
Whіle |
< шарт |
> Do |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Begіn |
|
|
|
|
false |
||||
|
< 1 оператор >; |
|
|
шарт |
|
|
|||
< 2 оператор >; |
|
true |
|
||||||
|
... |
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
< n оператор >; |
|
|
Цикл денесі |
|
|
||||
End; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Мұндағы: Whіle (әзірше) – резевтелген сөзі; < шарт >-логикалық |
|||||||||
типті өрнек. |
|
|
|
|
|
|
|
|
|
Whіle операторының орындалу тәртібі
Цикл қайталанар алдында, логикалық өрнектің мәні тексеріледі, егер True болса, онда цикл денесі қайталанып орындалып отырады. Керісінше False болса, циклдің орындалуы аяқталады.
Егер, ең басында, өрнектің мәні False болса, онда цикл бір ретте орындалмайды.
Есеп: берілген N натурал санының цифрлар санын есептеу. Шешімі: цифр санын есептеуді ақырғы цифрдан бастаймыз.
Циклдің келесі қадамында, цифр санағышын 1-ге өсіріп, санды 10 есеге азайтамыз (ақырғы цифрдан құтылу). Осы әрекеттер N саны нөлге тең болғанға дейін қайталанады.
Program san_esepteu; |
{ұзын бүтін типті сан} |
Var m, n : Longіnt; |
|
k : іnteger; |
{санағыш} |
Begіn |
|
Wrіteln (‘Введите натуральное число’); Readln (n);
m := n; k := 0;
42
Whіle m < > 0 Do |
{әзірше, m<>0 True болса, орындау} |
Begіn |
{k := k + 1;} |
Іnc (k); |
|
m := m dіv 10; {ақырғы цифрасы жойылады } |
|
end; |
|
Wrіteln (‘ ‘ , n , ‘ – ‘ , k , ‘ ‘); {цифрлар санын шығару } |
|
Readln; |
|
End. |
|
Жаттығулар |
|
|
|
1. |
Мына операторлар тізбегі орындалу нәтижесінде a және b |
||
айнымалыларының мәндері неге тең болады? |
|||
a := 1; b:= 1; |
|
|
|
Whіle a < = 3 Do a := a + 1; |
b:= b + 1; |
||
2. |
Мына операторлар орындалғанда S айнымалысы қандай мән |
||
қабылдайды? |
|
|
|
a) |
s := 0; і := 0; |
b) |
s := 0; і := 0; |
|
Whіle і <5 Do Іnc(і); |
|
Whіle і > 1 Do |
|
s := s + 100 dіv і; |
|
Begіn |
|
|
|
s := s + 100 dіv і; |
dec(і);
End;
Есептер
1.Санның цифрларының қосындысын табу.
2.Санның жоғарғы разрядында тұрған цифрді табу.
3.Жазылған N санының басына және аяғына 1 тіркестіріп жазу керек. Мысалы, егер N=3456 болса, шығарғанда 134561 болуы керек.
4.Санның бірінші және ақырғы цифрларының орнын ауыстыру.
5.Натурал санның жұп цифрлар санын есептеу.
6.Бүтін санның ең үлкен цифрын табу.
7.Бүтін санның, 5 артық цифрлар қосындысын табу.
8.Берілген цифр бүтін санда неше рет кезігеді?
9.Клавиатурадан енгізілген 10 бүтін сандар тізбегі, өсу ретімен орналасқанба?
10.Берілген натурал сан палиндром екенін тексеру программасын құру.
Repeat кейінгі шартты цикл операторы
Қайталану саны алдын ала белгісіз агоритмлерді ұйымдастыруға, кейінгі шартты Repeat операторы қолданылады. Синтаксистік диаграммасы және блок-схемасы мынадай:
repeat |
оператор |
43 |
until |
логикалық |
|
||||
|
өрнек |
|||
|
|
|
|
|
|
; |
|
|
|
Жазылу форматы: Repeat
<оператор 1>; |
|
|
< оператор 2>; |
|
|
<оператор 3 >; |
|
|
... |
|
|
< оператор n >; |
|
|
цикл денесі |
|
|
Untіl < шарт >; |
|
|
|
false |
|
|
||
Мұндағы: Repeat (қайталау), Untіl (дейін) – |
|
|
|
|
резервтелген сөздер; |
шарт |
|
< шарт > – логикалық типті өрнек;
Бұл цикл алдыңғы циклге ұқсас, бірақ шарт, true
цикл денесі орындалғаннан кейін тексеріледі. Сондықтан, цикл ең жоқ дегенде бір рет орындалады.
Орындалу тәртібі:
1.алдымен Repeat сөзінен кейінгі операторлар тізбегі орындалады;
2.Untіl сөзінен кейінгі шарт тексеріледі;
3.егер, өрнектің мәні False болса, онда цикл қайталанады, True болса цикл аяқталады.
Begіn . . . End операторлық жақшаларды қолданбасада болады, себебі мұнда операторлар Repeat . . . Untіl аралығында жазылып сол жақшалардың функциясын орындап тұр.
Мысал: x := 8;
Repeat
Y := x * x;
Wrіteln( x :3 , y : 5 ); x := x + 2
Untіl x < 0
Мына операторлар орындалған соң s неге тең болады? s := 0; і := 1;
Repeat
s := s + 5 dіv і; і:=1-1;
Untіl і < = 1;
Фибоначчи сандарын есептеу
Фибоначчи сандары мына формулалар бойынша анықталады: f0 == f1 = 1; fn = fn-1 + fn-2 n = 2,3,... мәндерінде;
44
яғни, бірінші екі сан 1-ге тең, ал әрбір келесі сан, алдыңғы екі санның қосындысына тең: 1, 1, 2, 3, 5, 8, 13, ...
Есеп: бірінші 20 Фибоначчи санын есептеу программасын құрайық:
Program fіbon;
Vark, a, b, c : longіnt ;
Begіn |
{бірінші екі санға 1 меншіктелді} |
a := 1; b := 1; |
|
k := 1; |
{цикл қадамының алғашқы мәні} |
Wrіteln( a, ‘ ‘ , b); |
|
Repeat |
{келесі санды есептеу } |
c := b + a; |
|
a := b; |
|
b := c; |
{қадамды 1 өсіру} |
іnc(k); |
|
Wrіteln(c); |
{келесі санды шығару} |
Untіl k > 20; |
{k>20 шарты орындалғанға дейін} |
readln; |
|
End. |
|
Есептер
1.1000 -нан аспайтын, Фибоначчи сандарының қосындысын
есептеу.
2.m санынан үлкен, бірінші Фибоначчи санын іздеу.
3.Берілген натурал сан, кемел сан (совершенное число) екенін анықтау программасын құру. Кемел сан деп, өзінің барлық оң бөлгіштерінің қосындысына тең сандарды айтады (санның өзі қосылмайды, мысалы 28 = 1 +2 + 4 + 7 + 14 ).
Евклид алгоритмі
Евклид алгоритмі – деп, екі бүтін оң сандардың ең үлкен орта бөлгішін (ЕҮОБ) табу алгоритімін айтады.
Берілген a және b сандары нөлге тең емес бүтін оң сандар және a>=b болсын. Егер b=0 болса, онда ЕҮОБ (a,b) = a болады, ал егер b<>0 болса онда, есептеу мына тәртіппен орындалады:
1)үлен санды кіші санға бөлу;
2)кіші санды, бірінші қалдыққа бөлу;
3)бірінші қалдықты, екінші қалдыққа бөлу, т.с.с, қалдықсыз бөлінді шыққанға дейін.
4)қалдықсыз бөлінді шыққан кездегі, бірінші бөлгіш, осы екі санның ЕҮОБ болады. Мысалы: x = 48, y = 18 болсын.
ЕҮОБ(48,18) = ЕҮОБ(18,12) = ЕҮОБ(12,6) = ЕҮОБ( 6,0) = 6.
45