Алгоритмдеу


Type Апта = дүйсенбі, сейсенбі, сəрсенбі, бейсенбі, жұма, сенбі



Pdf көрінісі
бет4/10
Дата31.12.2016
өлшемі1,07 Mb.
#880
1   2   3   4   5   6   7   8   9   10

Type Апта = дүйсенбі, сейсенбі, сəрсенбі, бейсенбі, жұма, сенбі, 
жексенбі; 
Var 
Жұмыс_күні: дүйсенбі.. жұма; 
Мұндағы,  Жұмыс_күні  айнымалысы    Апта  типіне  сəйкес 
дүйсенбіден Жұмаға дейінгі күндердің мəндерін қабылдай алады. 
 
6-Дəріс Алгоритмдік тілдік операторларын класқа бөлу. 
Меншіктеу операторлары. Басқару операторлары. Мəліметтерді 
енгізу шығаруды ұйымдастыру. Программаның құрылымы. 
Алгоритмнің схемасынан программаның схемасына көшу. 
Алгоритмдердің сызықтық құрылымын программалау. 
 
Бағдарламаға  енетін  нұсқауларды  (бұйрықтарды)  Паскаль  тілінде 
операторлар дейді. Паскаль тілінің операторларын қарапайым жəне 
күрделі  (құрама)  операторлар  деп  екі  топқа  бөледі.  Қарапайым 
операторлардың  құрамына  басқа  оператор  енбейді.  Ал  күрделі 
операторлардың  ішіне  бінеше  қарапайым  операторлар  еніп  тұруы 
мүмкін. 
Паскаль  тілінде  қарапайым  операторларға:  меншіктеу,  көшіру, 
бос, енгізу жəне шығару операторлары жатады.  
Күрделі  операторға:  шартты  көшіру,  қайталау,  таңдау, 
жалғастыру т.б. операторлар жатады. 
Меншіктеу операторлары 
“Мəн  меншікте ” деген  бұйрықты  орындайтын  операторды 
меншіктеу операторы  дейді. Жалпы жазылу үлгісі: 
W:=E; 
 Мұнда: W-айнымалы атауы, “ :=”- меншіктеу белгісі; E-өрнек. 
    Жалпы жағдайда арифметикалық өрнек  
Е={тұрақты, айнымалы атауы, функция, өрнек болуы мүмкін. 
37

Меншіктеу  операторы    тек  арифметикалық  өрнектер  үшін  ғана 
емес,  логикалық  жəне  символдық  берілгендер  үшін  де  пайдала-
нылады. Мысалы: K:=A AND B, B:=’T’; B5=’9’; 
Меншіктеу  операторын  пайдаланғанда  айнымалы  атауының  типі 
мен  қабылдайтын  мəнінің  типі  бірдей  болуы  қажет.  Мысалы,  егер 
VAR  A, B, C, D:REAL; 
Мысалы: A:=15.7   т.с.с. 
Бос  оператор 
Бос  оператор  ешқандай  амал  орындамайды.  Бос  оператор 
қалдырылып  кеткен  оператордың  орнын  белгілеу  үшін  пайдаланы-
лады. Əдетте бос оператор орнына “;” қойылады. Мысалы, S:=A; 
                                    R:=5; 
                                       ; 
                                   M:=19.36; 
Сандық берілгендерді енгізу 
Берілген  мəндерді  айнымалыға  жазу  үшін  меншіктеу  операторын 
пайдалануға  болады.  Мысалы, A:=15  т.б.  Бірақ  бұл  жағдайда 
бағдарлама əмбебап болмайды. Бағдарламаны əмбебап етіп жазу үшін 
айнымалылардың  мəндерін  өзгеретін  түрде  жасау  қажет,  бұл 
жағдайда  бағдарлама  əр  түрлі  мəндер  үшін  дұрыс  болады.  Ол  үшін 
енгізу операторы READ – (ағылшынша оқу) пайдаланылады. 
         Жазылу үлгісі: 
READ (d
1, 
d
2
, …, d
 n
); 
 Мұнда  d
1, 
d
2
, …, d
  n
 – айнымалы  атаулары,  оларды  енгізу 
операторларының  параметрлері  деп  те  атайды.  Параметрлердің 
сандық мəндері бір-бірінен бос орын арқылы ажыратылып жазылады. 
Мысалы, READ (A, B, C); берілсе,  параметрлерге  мəн  мына  түрде 
беріледі: 
5          6.2          4.5    (ЕП)  Мəндерді  енгізгенде  мəн  енгізілген  жолдан 
келесі  жаңа  жолға  көшіру  үшін    параметрсіз  немесе  параметрімен 
сəйкес  READLN,  READLN (d
1, 
d
2
, …, d
  n
);  операторын  пайдалану 
қажет.  
 
Шығару операторы. 
Жазылу үлгісі: WRITE (d
1, 
d
2
, …, d
 n
); 
Мұнда,   d
1, 
d
2
, …, d
 n 
  жай айнымалылар немесе апострофтар ішіне 
алынған  символдар  тобы  болуы  мүмкін.  Мысалы,  егер  B=17,15   
болып  мына  команда  оындалғанда: WRITE (‘B=’, B)  экранда   
B=17.15   көрінеді. 
38

Бүтін  жəне  нақты  сандарды  шығару  үшін    сандардың  форматын 
беру  қажет.  Формат  айнымалы  атынан  соң “;” арқылы  жазылады. 
Нақты сан үшін формат екі саннан тұрады:  
 I – санға берілетін барлық орын, 
 II – үтірден кейін бөлшек бөлік саны, 
Мысалы, WRITE (Y:5:2); 
Мұнда, 5 нəтижеге берілген барлық орын, 2 үтірден соң алынатын 
бөлшек бөліктің саны. Жалпы түрде: 
Бүтін сан үшін: WRITE (N:S); немесе WRITE (‘K=’, K:S); мұнда S 
формат, яғни бүтін санға берілген орын. 
Нақты  сан  үшін. WRITE (‘Y=’, Y:8:3); егер y=1,76 болса,  онда    
y=….1.760.  Егер  операторда  формат  көрсетілмесе,  онда  нəтижеде 
қанша орынды сан алынса, сол сан экранға шығады.  
Паскаль тілінде параметрсіз шығару операторы WRITELN – жаңа 
жоға көшіру үшін пайдаланылады. 
Егер   WRITELN (d
1, 
d
2
, …, d
  n
) операторы пайдаланылмаса, онда 
d
1, 
d
2
, …, d
 n 
  мəндерін  экранға  шығарған  соң  курсор  келесі  жолға 
көшеді. 
WRITE  операторын  түсініктеме  беруге  пайдалануға  болады. 
Мысалы WRITE (‘A, B, C енгіз:’);   READ (A, B, C);  
Мысалы,  Радиусы      R–ге    тең  щардың  көлемін  есептеуге 
бағдарлама құралық.  
{Шар көлемін есептеу} 
Program  B1 (input, output); 
     const  P1=3.14; 
VAR 
         R: real; 
         V: real;  
begin 
         writeln (‘R- мəнін енгіз :’); 
         read (R); 
         V:=4*PI*R*R*R; 
         WRITELN; 
         writeln (‘нəтиже:’); 
         writeln (‘шар көлемі V=’, V:8:3); 
end. 
 
 
 
39

7-Дəріс. Тармақталған құрылымдарды программалау. 
Алгоритмдердің циклдік құрылымдарын программалау (сандық 
талдау есептері, сандық массивтерді өңдеу, массивтер 
компоненттерін реттеу есептері жəне т.б. мысалдарында) 
массивтерді енгізу шығаруды программалау. 
 
Шартсыз  көшу операторы. 
Жазылу үлгісі: 
GOTO  белгі; 
Белгі  ретінде  таңбасыз 1-9999 дейінгі  бүтін  сан  пайдаланылады. 
Көшіру  операторы    қарапайым  оператор  қатарына  жатады.  Белгі 
LABEL – белгі  бөлігінде  өрнектеледі.  Оның  жазылу  үлгісі: LABEL 
белгі; 
Белгіні былай жазуға да болады: 
    LABEL 1–белгі , 2–белгі,..., N–белгі ; 
Мысалы,   LABEL 10,99; 
       
. . . 
GOTO 99; 
. . . 
99: WRITELN (‘АУЫСУ ОПЕРАТОРЫ ОРЫНДАЛАДЫ’); 
      
Құрама операторлар 
Бірнеше  операторларды  бір  операторға  біріктіргенде  шыққан 
операторды  құрама  оператор  дейді.  Ол  операторлардың  жазылу 
үлгісі: 
BEGIN 
             1-оператор; 
             2-оператор; 
             _ _ __ _ _ _ 
            n-1-оператор; 
            n-оператор 
END. 
Бұл  жағдайда BEGIN – END қызмет  сөздері  операторлық 
жақшалар деп аталады. Құрама оператор бүтін бір оператор қызметін 
атқарады,  сондықтан  оны  бағдарламаның  кез-келген  бөлігіне  қоюға 
болады.  Құрама  оператордың  құрамында  өзінің    құрама  операторы 
болуы мүмкін.  
40

    Құрама  операторларға  шартты  көшіру  жəне  қайталау 
операторлары жатады. 
Шартты оператор 
Жазылу үлгісі: 
IF   шарт    THEN   1-серия  ELSE   2-серия; 
 
Шартты операторда құрама команданы пайдалануға болады: 
IF   логикалық өрнек THEN 
BEGIN 
             1-оператор; 
             2-оператор; 
             . . . . . . . . . 
             n-оператор; 
END 
         ELSE 
               BEGIN 
                   1-оператор 
                    . . . . . . . . . 
                   n-оператор; 
END; 
Қысқартылған  жазылу үлгісі: 
IF   шарт    THEN оператор;
 
Таңдау  операторы 
Жазылу үлгісі: 
CASE   өрнек     OF 
1-тұрақты:  1-оператор; 
2-тұрақты:  2-оператор; 
. . . 
n-тұрақты:  n-оператор; 
END. 
CASE-жағдай, OF- солар, төмендегілер 
Мысал: 
     CASE    k+1   of  
5:    y:= SQR(x); 
11:  y:= SQRT(x); 
4:    z:=y*(A-B); 
7:    WRITE (A, B); 
    END. 
41

Өрнек символдық та болуы мүмкін, онда тұрақтыларда символдық 
типте болуы керек. Мысалы: 
CASE     s  of 
‘+’,’ –‘, ‘*’, ‘/’: P:=1; 
           ‘A’, ‘B’: P:=2 
             ‘·’       : P:=3 
END. 
Циклдік құрылымдарды программалау 
Паскаль  тілінде  қайталау  процесін  үш  түрлі  жолмен 
ұйымдастыруға болады: 
-  алдын ала берілген шарт бойынша; 
-  келесі  шарт бойынша; 
-  параметрдің мəні  бойынша; 
1. Алдын ала берілген шарт бойынша қайталау. 
Алдын  ала  берілген  шарт  бойынша  қайталау  қайталаудың  саны 
белгісіз болған жағдайда пайдаланылады.  
Жазылу үлгісі: 
WHILE    шарт   DO 
BEGIN 
              серия (шарт денесі) 
END. 
 WHILE – əзір, DO  – орындалу. 
Егер  қайталаудың денесі бірнеше оператордан  құралса, онда олар 
BEGIN – END қызмет сөздерінің арасына алынып жазылады. Ал егер 
қайталаудың  денесі  бір  ғана  оператордан  тұрса,  онда  оны  
операторлық жақшасыз жазуға болады: 
WHILE    шарт   DO   оператор
2. Келесі    шарт  бойынша  орындалатын  қайталау 
операторы. 
Бұл    оператор  көп  жағдайда  қайталаудың  саны  белгісіз  болған 
жағдайда пайдаланылады.  
Оның  жазылу үлгісі: 
REPEAT 
       қайталау денесі  
UNTIL    логикалық өрнек 
             Мұнда, REPEAT – қайтала, UNTIL - соған дейін - қызмет 
сөздері.  
Орындалуы:   қашан  логикалық  өрнектің    мəні  ақиқат  болғанша 
циклдің денесі қайталана береді.  
42

    Оператордың    соңы UNTIL сөзінен  бітетін  болғандықтан , 
мұнда  операторлық  ашылатын  жəне  жабылатын  жақшалар  орнына 
жазылатын  BEGIN – END қызмет сөздері жазылмайды.  
    Мысал:      x=8,  6,  4,  2        болғанда      y=x

  мəндерін  табуға 
бағдарлама құру керек. 
program B10; 
var         x, y: integer; 
begin 
        writeln (‘x, y: ’); 
        x:=8; 
REPEAT 
     y:=x*x; 
     writeln (‘X’, X:3, ‘Y’, Y:5); 
x:=x-2; 
UNTIL   x=0; 
end. 
Параметрлік қайталау 
Қайталау  саны  белгілің  болған  жағдайда  параметрлік  қайталау 
операторын пайдалануға болады. Жазылу үлгісі: 
FOR    I:=m1     TO {DOWNTO}  m2 
DO 
BEGIN 
              операторлар 
END. 
 
Мұнда, FOR- үшін, TO - дейін, DO - орындалу  деген  мағынаны 
білдіреді. I - цикл параметрі,  m1,  m2 – сəйкес параметрдің бастапқы 
жəне  соңғы  мəндері,  олар  бүтін  сандар  немесе  бүтін  мəн  беретін 
арифметикалық өрнектер болуы мүмкін. Паскаль тілінде параметрдің 
қадамы тек екі мəн., 1 немесе -1 –ді ғана қабылдай алады. Қадамның 
мəніне  тəуелді  операторда TO немесе DOWNTO  қызмет  сөздері  
пайдаланылады. Егер қадам 1 – ге тең болса, онда операторда TO, ал 
қадам -1 болса, онда DOWNTO пайдаланылады.  
Мысал:    A=2i,   B=2i+1    мəндері   i-дің 1, 2, 3, 4, 5 болғандағы  
мəндерін табуға бағдарлама құру қажет.  
1 - вариант. 
program B14; 
    var         a, i, b: integer; 
begin 
43

         for  i:=1 to 5 
begin 
          A:= 2*I;  B:=2*I+1; 
          writeln (‘A=’,  A:3, ‘B=’, B:3); 
       end 
end. 
2 - вариант. 
program B15; 
    var     A, I, B: integer; 
begin 
        for    i:=5   downto   1  Do 
begin  
        A:=2*I;   B:= 2*I+1; 
        writeln (‘A=’,  A:3, ‘B=’, B:3); 
     end 
end. 
 
Егер бағдарламаның денесі  тек жалғыз ғана оператордан тұратын 
болса, онда begin-еnd жазбауға да болады. 
 
FOR        I:=m1          TO    m2      DO  
оператор; 
немесе 
FOR    I:=m1     TO  m2   DO    
                   оператор 
 
Күрделі   циклдер 
Көп  есепті  шешу  үшін  бірінің  ішінде  бірі  жатқан      күрделі    деп 
аталатын  циклді  пайдалануға  тура  келеді.  Бұндай  бағдарламаларды 
құрғанда  ішкі  цикл  толығымен  сыртқы  циклдің  ішінде  орналасуы 
қажет. Ішкі циклдің өзі де басқа  ішкі циклдерді қамтуы мүмкін. 
Мысал:  N=1, 2, 3 жəне    k=2, 4, 6, 8     болғандағы      y=2k+N  
мəндерін  есептеуге    бағдарлама құру қажет. 
program B18; 
        var     N, k, y: integer; 
 begin 
       for  N:=1 to 3 do 
            begin   k:=2; 
              while   k<=800 
44

                 begin  y:=2*k+N; 
                    writeln (N:4, k:4, 9:4); 
                     k:=k+2; 
                 end; 
          end; 
end. 
Массив  дегеніміз-бір  типтегі  берілгендер  жиыны.басқаша 
айтқанда  массив-бір  атауға  біріктірілген  айнымалылардың  реттелген 
тізбегі.  Айнымалылардың  массив  элементтерінің  типтері  бірдей 
болады. Массив бір ғана атпен белгіленеді.мысалы: нақты сандардан 
құралған  тізбекті  К  атаулы  массив  деуге  болады.  Массивтің  əр 
элементі  массивтың  атымен  белгіленеді  де,оның  индексі  қойылады, 
яғни  массив  элементтері  индекстерібойынша  реттеліп  жазылады. 
Мысалы:  А
1

2
,...,А

  немесе  жалпы  түрде      A
i
,i=1,2,…n.  Паскаль 
тілінде массив элементтерінің индексі алгаритмдік тілдегі тəрізді тік 
жақшаға алынып жазылады. 
Мысалы:  A[i] 
Паскаль  тіліндегі  массив  ұғымы  алгаритмдік  тілдегі  массив 
ұғымына  сəйкес  келеді.  Алгаритмдік  тілдегі    ТИП  Атау  өлшем 
(мысалы:  нақ  таб A[1:N]) орнына  Паскаль  тілінде  атау:массив 
(индекстердің  алғашқы .. соңғы  мəні  элемент  типі – түрінде 
жазылады. 
Егер бағдарламада массив пайдаланынлатын болса,онда ол немесе 
айнымалы VAR бөлігінде  немесе  тип TYPE  бөлігінде  бейнеленуі 
қажет. 
Массив айнымалы бөлігінде былай белгіленеді: 
VAR  массив аты:ARRAY [t1] of  t2: 
Мұндағы ARRAY(массив), of (одан) қызмет сөздері, t1-real,integer 
базалық  тілінен  өзге  кез  келген  стандартты  типі, t2-Паскаль  тілінде 
пайдалануға  болатын  массив  элементттерінің  типі.  Индекс  типі 
стандартты бүтін немесе нақты бола алмайды. 
Массивтерді  дұрыс жазуға мысалдар келтірейік: 
Var 
Mas:ARRAY [1..N] of real; 
жыл :Array  [қаңтар .. желтоқсан ] 
of  integer 
L:Array  [жол] of Bool AN
M:Array [char] of  кругж 
45

Егер бірнеше массив бірдей бағалық жəне индекстік типте болса, 
онда  оларды  бейнелегенде  бір  массив  ретінде  үтір  арқылы  бөліп 
жазуға болады. Мысалы: Var A,B,C: Arrray [1..10] of real ;мұнда əр бір 
А,В,С- массивтері, элемент типтері нақтылы болатын  10 элементтер 
тұрады.  
Бағдарламада  «индекс»  жəне  «индекстар  типі»  ұғымдарын 
шатастыруға  болмайды.  Индекс  типі  массивті  бейнелегенде  
пайдаланылса,  индекс  массив    элементтерін  белгілеу  үшін 
операторлық    бөлікте  пайдаланылады.  Индексті  белгілегенде  қандай 
тип берілсе индекс сол типте ғана болуы қажет. 
Индекс,өрнек,  айнымалы  немесе  тұрақты  болып  берілуі  мүмкін. 
Сондықтан  да  көп  жағдайларда  массивтерді  индексті  айнымалылар 
деп  те  атайды.  Ал  индекссіз  айнымалыларды  массивтерден  ажырату 
үшін 
қарапайым 
 
айнымалылар 
дейді. 
Базалық 
типтегі 
айнымалыларға қандай амалдар қолданылса,массив элементтеріне де 
сондай  амалдарды  қолдануға  болады.  Мысалы:  бағдарламаның 
операторлық  бөлігінде  массив  элементтеріне  мынадай  амалдар : 
A[3]:=C[4]+5; S:=S+X[K]; P:=X[3*I+1]; жəне  т.с.с.  қолданылады. 
Массив  элементтеріндегі  енгізу  жəне  шығару  үшін  бағдарламаның 
мына үзінділерін пайдалануға болады: 
а) енгізу:  
FOR  I:=1 n DO 
READ ( A[I]), 
…………… 
б) шығару: 
FOR   I:=1 TO N DO 
WRITE ( A[I]); 
………………. 
Массивтің тип бөлігіндегі жазылуы 
Массив тип бөлігінде былай бейнеленеді:  
 TYPE тип аты=array [t1] of  t2 
 VAR  массив аты:тип аты; 
Яғни  мұнда  тип (TYPE) бөлігінде  массивтің  типі  көрсетіледі  де, 
одан  соң  айнымалы (VAR) бөлігінде  осы  типке  жататын  массивтер 
көрсетіледі.  Массивті TYPE бөлігінде  бейнелеу,  бейнелеулер 
бөлігінің  көлемін  үлкейтеді,  бірақ  бағдарламаны  тез  жөндеуге  
бағдарламада 
көп 
қате 
жібермеуге 
көмектеседі. 
Мысалы, 
бағдарламада 
нақты 40 элементтер 
тұратын 
А 
массиві 
пайдаланылатын болса, онда оны тип бөлігінде  была йөрнектеледі: 
46

TYPE  N= array [17740] of real; 
Var O:N; 
Бұның  артықшылығы,  егер  бағдарламада  типы    N  болатын 
бірнеше массив  А,В,С,Д пайдаланылатын болса, онда олар үшін: 
 Var  А,В,С,Д: N; 
түрінде жазса жеткілікті. 
 
Көп өлшемді массивтер 
  Біз  жоғарыда  бір  өлшемді  массивті,  яғни  əр  элементтің  бір  ғана 
индексі  бар  массивтерді  қарастырдық.  Математикада  массивтің 
ішіндегі  массивті  екі  өлшемді  (екі  өлшемді  тік  бұрышты  кесте) 
немесе матрица деп атайтыны белгілі. 
Мысалы: 
         54  36        бұның элементтерін  қысқаша  а
i,j
(i=1,2,3, j=1,2,3,4)  
А=    28  17   ,    арқылы белгілеп  A= (a
i,j
) түрде жазуға болады. 
         43  95    
Бұл    матрицаның  өлшемі  3ч4.  Матрица  тек  бір  атпен  белгіленеді 
де, индекстерді үтір  арқылы ажыратылып жазылады. Мысалы: A [I,J] 
немесе  A [I] [J] түрде  жазуға  болады.  Паскаль  тілінде  мұндай 
матрицаны тип бөлігінде төмендегідей өрнектеуге болады: 
1. TYPE     атау=ARRAY [1..N, 1..M] of  тип; 
Var A: атау 
Мысалы: 
TYPE T=ARRAY [1..3, 1..4] OF INTEGER; 
VAR A: T; 
немесе 
2. TYPE  атау= ARRAY [1..N] OF ARRAY  [ 1..M] OF mun; VAR  A: 
атау; 
мысалы, 
TYPE T= ARRAY [1..3] OF ARRAY [1..4] OF тип; 
VAR A:T; 
1-ші  жағдайда  индекстің  əрбір  типі  белгіленеді  де,  одан  соң 
массив  элементтерінің  базалық  типі  көрсетіледі. 2-ші  жағдайда 
алдымен [1..N] типі  көрсетіледі  де,  одан  соң  күрделі  базалық  тип [ 
1..M] OF тип  көрсетіледі.  Егер  бағдарламада  матрицаның  тік  жəне 
жатық жолдарын былай жазу қажет болса, онда оны былай бейнелеу 
қолайлы болады: 
TYPE 
T1= ARRAY [ 1..M] OF INTEGER; 
47

T= ARRAY [1..N] OF T1; 
VAR 
A: T; 
B:T1; 
Мұнда  алдымен  бір  жолдың  типі  Т1  көрсетіледі  де,  одан  соң  ол 
жолдың  типі  арқылы  матрицаның  типі  (Т)  көрсетіледі.  Айнымалы 
бөлігінде  екі  өлшемді  массив  А  жəне  бір  өлшемді    Массив  В 
көрсетілген. 
Массивтерге мысалдар: 
1-мысал S= ∑
N
i=1
a

  бағдарлама  құру  керек.  Бағдарламаны  үш 
вариантта құралық: 
а) массив элементтерін сақтамай есептеу: 
PROGRAМ  MA 1; 
VAR 
        A, S: REAL; 
        N, I: INTEGER; 
BEGIN 
        S:= 0; 
        WRITE IN (N санын енгіз:); 
        READ ( N); 
WRITELN (  сандарды бос орын арқылы енгіз ); 
FOR I:=1 TO N DO 
BEGIN 
        READ (A); 
       S:= S+A 
       END
WRITE LN ( _ _ _ _ _ _ ); 
WRITELN (  қосынды S= , S:6:2) 
         END. 
1) Мұнда массив үшін бір ғана ұяшық беріледі. 
2) Массив жадыда сақталмайды. 
б)  Массивті  айнымалы  бөлігінде    бейнелеу  жəне  массив 
элементтерін жадыда сақтау: 
PROGRAМ  MA 2; 
const N=7; 
VAR 
A: ARRAY [1..N] OF REAL; 
S: REAL; 
I: INTEGER; 
48

BEGIN 
WRITELN ( санды бос орын арқылы енгіз: ); 
FOR I:=1 TO N DO READ ( A[I] ); 
S:= 0; 
FOR I:=1 TO N DO S:= S+A [I]; 
WRITE LN ( _ _ _ _ _ _ ); 
WRITELN (  қосынды S= , S:6:2) 
         END. 
1) Мұнда массив үшін 7 ұяшық (N-ұяшық) беріледі; 
2) массив жадыда сақталады. 
в)  массивті  тип  бөлігінде  бейнелеу  жəне  массив  элементтерін 
жадыда сақтау. 
PROGRAМ  M 3; 
const N=7; 
TYPE T= ARRAY [1..N] OF REAL; 
VAR 
T:T; 
S: REAL; 
I: INTEGER; 
BEGIN 
WRITELN ( массив элементтерін бос орын арқылы енгіз: ); 
FOR I:=1 TO N DO READ (A[ I ]); 
S:= 0; 
FOR I:=1 TO N DO 
S:= S+A[ I ]; 
WRITE LN ( _ _ _ _ _ _ ); 
WRITELN (  қосынды S= , S:6:2) 
 END. 
 
8-Дəріс. Жолдар. Символдық мəліметтерді өңдеудің есептерін 
программалау. Мəліметтер құрылымында қолданатын есептерді 
программалаудың ерекшеліктері. 
Мəтін деп жолдар тізбегін айтады. Жол симвалдар тізбегінен тұ-
рады.  Жолдың  тұрақты,  енетін  симвалдарының  саны 256-дан  арт-
пайтын  апострофтар  ішіне  алынған  симвалдар  тізбегін  айтады. 
Жолдың  айнымалысының  типі  бағдарламаның  тип  бөлігінде  немесе 
тікелей айнымалы бөлігінде бейнеленеді. 
Aйнымалы бөлігінде белгіленуі: 
 
49

VAR 
<айнымалы аты>: string [жолдың максимал ұзындығы]; 
Мысалы: 
VAR 
tex: string [29]; 
AT: string [40]; 
Жолға мынадай амалдар қолданылады: 
1. Жалғастыру амалы,ол қарапайым “+” белгісімен белгіленеді 
‘ауыл’  +  ‘адамдары’  
      ‘ауыладамдары’ 
2. Салыстыру амалы,олар: =,< >,>,>=,<,<= 
Мысалы: 
‘SAM’= ‘SAM’       TRUE 
‘SAM’> ‘SAM  ‘     TRUE  
‘BBB’ < ‘BB’           FALSE 
3. Меншіктеу амалы,ол  “ : = ” арқылы белгіленеді. 
а) А: string [6];A:= ‘қалам  қас;’ 
A:= ‘ қалам   ’ 
Жолдың  симвалдарын,  олардың  орналасу  орындары  (индексі) 
бойынша табуға болады. Индекстің типі бүтін болады, ол айнымалы 
атауынан соң квадрат жақша ішіне алынып жазылады. 
 Мысалы: S= ‘Алматы’ болса , онда  S[2]= ‘л’, S[4]= ‘A’ береді. 
Жолдық функциялар  
Паскаль тілінде төмендегі стандарт функциялар пайдаланады
1. CHR(I) - I   санына сəйкес симвалды береді. Мысалы: 
CHR(1)= ‘I’ , CHR (250)= ‘з’ , CHR =(255)=  ‘r’ 
2. ORD (S)-S симвалының кодын береді. Мысалы: 
ORD (з)=250,ORD (r) =255. 
3. COPY (S,N,M)-S жолының      N-1  орындағы  симвалынан  бастап  
М симвал бөліп алады. S-жолдың айнымалы,  N,M- бүтін сан. 
Мысалы: 
Program  BOLY; 
VAR   N,M:integer; 
S:string [12]; R:string[8]; 
begin 
writeln (‘N,M,S- енгіз,’); 
readln  (N,M,S); 
R:=copy (S,N,M); 
50

Write (‘R=’, R) 
end.  
егер N=4,M=6,S=‘Алматылық ’ болса,онда   R= ‘матылы’болады. 
4. CONCAT  (S1,S2,…,SN)– жолдардың 
реті 
бойынша 
жалғастырады. Мысалы: concat (‘a’, ‘b’, ‘c’)= ‘abc’ 
5. LENGTH (S) –Sжолдың  айнымалысының    мəніндегі  симвалдар 
санын береді. Мысалы:   length (‘ABCD’)=4 
6. POS (S1,S2) - S1 кіші  жолы  S2- жолының  бөлігі  болатынын 
немесе    болмайтынын  анықтайды.  Бұл  функциялардан    шыққан 
нəтиже    бүтін  сан  болады  да,   S1-мəні, S2-мəніне  сəйкес  келетін 
орынды  көрсететін  санға  тең  болады.  Егер  нəтиже  нөлге  тең  болса, 
онда  S1 жолы   S2 жолының бөлігі бола алмайды. Мысалы:     
POS (‘ab’, ‘abcd’)=1;  
POS (‘ab’, ‘array’)=0; 
Мысал: Текстегі кіші əріптерді үлкен əріптерге алмастыру. 
program NAK; 
VAR t:string [15]; 
str,prop:string[33]; 
I,l,p;integer; 
begin 
writeln (‘ұзындығы U -дан кем текст енгіз;’); 
readln (t):l:=longth (t); 
str:= ‘а,б,в,г,д...s’;PROP:= ‘АБВ…S’; 
for I:=1 TO l DO 
begin 
P:=PAS (t[I],str); 
write (PROP[p]) 
end 
end. 
UPCASE (CH)-латынның  кіші  əріптерін  оған  сəйкес  үлкен  əріпке 
аударады. Мысалы: UPCASE (‘a’)= ‘A’;UPCASE (‘q’)= ‘Q’. 

Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   10




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет