Алматы Энергетика жєне Байланыс институты 

 

 

                                                                   

Инженерлік кибернетика кафедрасы

 

 

 

 

 

 

 

 

 

 

 

DELPHI ОРТАСЫНДА НЫСАНДЫҚ БАҒДАРЛАМАЛАУ

Лабораториялық жұмыстарды орындауға арналған әдістемелік нұсқаулар

 (барлық мамандықтың студенттері үшін)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Алматы 2004

 

Құрастырушылар: Л.Б. Суйебаева, А.У. Ақтаева. Нысандық бағдарламалау. Лабораториялық жұмыстарды орындауға арналған әдістемелік нұсқаулар. 1 Бөлім (барлық мамандықтың студенттері үшін). - Алматы: АЭжБИ, 2004. –45 б.

 

 

Әдістемелік нұсқауда Delphi ортасында нысандық бағдарламалау бойынша лабораториялық жұмыстарды орындауға, безендіруге және қорғауға арналған ұсыныстар мен талаптар қарастылған.

Әдістемелік нұсқау барлық мамандықтың студенттері үшін.

Ил.-4, Библиогр. 16  тақыр.

 

 

Пікір білдіруші: АЭжБИ-дің ИК кафедрасының доценті,

                               физ-мат.ғ.к.   М.У.    Зияханов

 

 

 

Алматы энергетика және байланыс институтының 2004 ж. жоспары бойынша баспаға басылады.

         

 

ã Алматы энергетика және байланыс институты , 2004 ж.


Мазмұны

 

 

Кіріспе…………………………………………...…………………………… … …5

1 №1 Зертханалық жұмыс. Консолды қосымшадағы қарапайым бағдарламаның құрылымы…………………                    6

2 №2 Зертханалық  жұмыс. Консолды қосымшада тармақталған алгоритмді бағдарламалау. …………………………………............................................... 8

3 №3 Зертханалық жұмыс.  Циклдік құрылымды алгоритмдерді бағдарламалау. ………………………………….                        10

4 №4 Зертханалық жұмыс. Консолды қосымшадағы массив типінде берілгендер құрылымын қолдана отырып есеп шығаруды Delphi ортасында бағдарламалау. ………………………………….                        12

5 №5 Зертханалық жұмыс. Массив типінде берілгендер құрылымын қолдана отырып есеп шығаруды Delphi ортасында бағдарламалау. ................... 15

6 №6 Зертханалық жұмыс. Бір өлшемді массивті өңдеу есебін шығаруды Delphi ортасында бағдарламалау ……………….   19

7 №7 Зертханалық жұмыс. Консолды қосымшадағы екі өлшемді массивті қолдана отырып есеп шығаруды Delphi ортасында бағдарламалау ………………. ……………….                                                   23

8 № 8 Зертханалық жұмыс. Массивтермен жұмыс жасау. String Grid  компоненттерін қолдану. ……. …………………                      27

9 №9 Зертханалық жұмыс. Символдар мен жолдар. Мәтінді өңдеу есептерін бағдарламалау ………………………………….............................................. 30

10 №10 Зертханалық жұмыс. Символдық және жолдық айнымалыларды қолдана отырып есеп шығаруды Delphi ортасында бағдарламалау .................... 32

Әдебиеттер тізімі  ………………. ………………............................................ 36


          Кіріспе

Компьютерлік және ақпараттық технологияның күрделілігіне орай болашақ мамандардың теориялық дайындығына талап күшейді.

“Нысандық бағдарламалау” пәні математикалық және инженерлік-техникалық есептерді шешетін математикалық үлгілеуді, ақпараттандыру мен бағдарламалауды жүзеге асыратын АИСУ-да және қолданбалы инженерлік есептерді бағдарламалау негізінің концепциясын жүзеге асыратын басқа пәндерде олардың даму мүмкіндігі болатын ғылыми –жаратылыстану пәні болып саналады.

Бұл пәннің мақсаты – ОЖ Windows-дағы Delphi-де бағдарламалау негізінің әдістері мен құралдарын студенттерге оқыту және таңдалынған мамандық есептерін шешу кезінде белсенді қолдануға дайындау.

Object Pascal бағдарламалау тілі – нысандық бағдарлау Паскаль, Delphi ортасында бағдарламалар шығару негізінің мәні, визуалды бағдарламалау технологиясының негізі, консолды қосымша бағдарламасынан бастап мәліметтер қоры мен Internet жұмысына арналған қосымша бағдарламасына дейін құру “Нысандық бағдарламалау” пәні болып табылады.

Object Pascal бағдарламалау тілінің негізгі теориялық мәселелері бойынша лекциялар, Delphi ортасында бағдарламалар шығарудың негізі, визуалды бағдарламалар технологиясының негізі, қажетті бағдарламалармен қамтамасыз етілген бүгінгі күнгі компьютерлері бар арнайы кластарда алгоритм мен бағдарламалау бойынша зертханалық сабақтар - “Нысандық бағдарламалау” пәнінің сабақтары.

Бұл курста зертханалық, практикалық, семестрлік жұмыстарды , сонымен қатар көрсетілген оқулықтар бойынша студенттің өз бетінше жұмыс жасауы, лекциялық материалдарды меңгеруі, семестрлік, лабораториялық және бақылау жұмыстарын орындауы талап етіледі.

Пән бойынша студенттің өзіндік жұмыстарының кең көлемі қарастырылған. СӨЖ курстық жұмыстар немесе басқа да тапсырмалар ретінде орындалуы қажет.

Жалпы нұсқаулар.

Оқу  жоспарына орай студенттер зертханалық жұмыстарды орындайды. Тапсырма нақты бір есепті шығаруда дағдыны дамытуға арналған. Әрбір бөлімнің есебін шығармас бұрын осы есепке байланысты курсты оқып білу  ұсынылады.

Әрбір тапсырма үш бөлімнен тұрады. Бірінші бөлімде студент әрбір тапсырмаға арналған алгоритм мен блок-сызбаны дайындайды. Екінші бөлімде студент (консолды қосымша, бағдарлама, класс, нысан, компонент жєне жоба) ұғымдарын меңгеру керек. Үшінші бөлімде студент бағдарлама құрастырады, тестілейді, терезелік қосымшаларды кіру технологиясын меңгереді, сонымен қатар жобалық бағдарламаны құру әдісін меңгеруі керек.

Тапсырманы орындауға талап.

Зертханалық жұмыстың орындалу мақсаты – студенттің теориялық білімі мен оны практикада қолдана білу деңгейін тексеру. Әр зертханалық жұмыс компьютерде есептеу нәтижесін шығарумен орындалады. Зертханалық жұмыстың есебі дәптерге немесе дискетке жазылады. Дәптер  беті нөмірленеді және шеті сызылады. Есеп шығарылмас бұрын оның шарты және нұсқа бойынша берілгені жазылады. Қажет болған жағдайда пайдаланылатын әдебиетке сілтемелер жасалынады. Блок-сызбалар сызғыш пен цикуль арқылы ұқыпты орындалады. Жұмыс соңында әдебиет тізімі келтіріледі, орындалу мерзімі көрсетіледі.

         

1 №1 зертханалық жұмыс. Консолды қосымшадағы қарапайым бағдарламаның құрылымы

 

Жұмыс мақсаты: Delphi бағдарламалау ортасында бағдарлама құрастыру құрылымымен таныстыру, өрнекті, меншіктеу операторларын, енгізу процедуралары мен нәтижені шығарудың жазу тәртібін үйрету.

Меншіктеу операторының жалпы түрі

V: =А;

мұнда А - өрнек, V – айнымалы. А өрнегі тұрақтылардан, айнымалылардан, функция аттарынан, операция амалдары мен жақшадан тұрады. Егер өрнек жақшадан тұрмаса, онда өрнек келесі түрде орындалады:

-       NOT;  

-       *, /, DIV, MOD, AND; 

-        +, -, OR; 

-        =, <>, <=, <, >=, >, IN.

 Енгізу процедурасының жалпы түрі

READ (V1, V2, …VN)  немесе  READLN (V1, V2, …VN),

мұндағы  V1, V2, … VN  айнымалылар идентификаторы. Айнымалылар мәні айнымалылар типімен сәйкес болуы керек.

Шығару процедурасының жалпы түрі

WRITE (P1, P2, …PN)  немесе  WRITELN (P1, P2, …PN),

мұндағы  P1, P2, … PN  шығарылатын айнымалылардың идентификаторлары. Айнымалылар мәні айнымалылар типімен сәйкес болуы керек.

 

№1 зертханалық жұмысқа тапсырма

 

Берілген аргументке у=f(x) функциясын есептеу бағдарламасын құрастыру. у=f(x) функциясы Delphi бағдарламалау ортасының ережесі жазылған өрнектің көмегімен шығарылады. Тапсырмалар нұсқасы:

 

-       f(x) = x mod 6 +x3 lnx;

-       f(x) = arcsin z2+|x+y|;

-       f(x)=ln|5x+3|+tgx;

-       f(x) = x3+ x div 3+ xmod 7;

-       f(x)=ln5x+x5sin2x+tgx3 ;

-       f(x) = ( 5x)1/2 +x5sin2 x3 ;

-       f(x) =  x div 2- x mod – e3x;

-       f(x)  =( x5+1.9)1/7+cospix3;

-       f(x) = sin5(x+y)/|x|+tgx+10-5;

-        f(x) = x7+ln |Pix+7|;

-        f(x)= (x2+sin(2x+1)+0.5)1/3;

-        f(x) = ex-1/sinx+ln(arctgx);


 

Жұмыстың орындалу мысалы: Келесі алгоритмді жүзеге асыратын бағдарлама құрастыру. Х-ке мєн беріп, f(x)  = x5 + ln(pi+|5+x|)1/2 функциясын есептеу.  Х3  есептеу  үшін 

хm =exp(m*ln(x)) формуласы қолданылады.

Бағдарлама мәтіні:

Program f1;

Var  X: integer;

        Y: Real;

Begin

Writeln (‘Х мәнін енгіз ’);

Readln(X);

Y:= exp(5*ln(x))+ln(sqrt(PI+ABS(5+x)));

Writeln (‘ Нәтиженің шығуы’);

Writeln (‘при Х=’, X , ‘Y=’ , Y:5:2);

Readln 

end.

 

 

 2 №2 зертханалық жұмыс. Тармақталған алгоритмді бағдарламалау дағдысын қалыптастыру

 

Жұмыс мақсаты: тармақталған алгоритмді бағдарламалау дағдысын қалыптастыру.

Шартты оператор есептеу үрдісінің бір бұтағы болып саналады. Шартты оператор құрылымының жазылуы:

IF <шарт> THEN < 1оператор> ELSE <2 оператор>:

Шартты оператор төмендегідей   алгоритммен жұмыс істейді. Бастапқыда шартты өрнек <шарт> есептелінеді. Егер нәтиже TRUEҚИҚАТ) болса, онда <1оператор> орындалады да, ал <2оператор> жіберіледі; егер нєтиже FALSE (ЖАЛҒАН) болса, керісінше, <1оператор> жіберіледі де, ал <2оператор> орындалады. Осы кезде ELSE сөзінен басталатын шартты оператор бөлімі қатыспаса, онда басқару шарттан кейінгі тұрған операторға беріледі.

 

№2 зертханалық жұмыс тапсырмалары.

 

Шартты оператор көмегімен тармақталған алгоритмді есептеу бағдарламасы мен алгоритмінің блок-сызбасын құрастыру. Тапсырмалар нұсқасы:

            әртүрлі түстегі m – жалаушалармен қанша түрлі сигналдар берілетінін анықтау. Сигналдар айырмашылығы матчтағы әртүрлі жалаушалардың орналасу ретімен түсіндіріледі. m = b есептеу;

-  жазылымда екі бірдей цифры жоқ барлық төрторынды сандарды алу;

-  3 сан берілген. Теріс таңбалы санның квадратын табу;

-  m саны берілген (m < 27). Цифр қосындысы m –ге тең барлық үшорынды сандарды алу;

-  х, у нақты сандары берілген (х ¹ у). Осы екі саннан кішілерді олардың жартықосындысымен, ал үлкендерді екі еселенген көбейтіндісімен ауыстыру;

-  адам жасын (жылы бойынша) анықтайтын n саны берілген (n £ 100). Осы санға «жыл», «жылғы», «жас» атауларын беру. Мысалы: 1 жыл, 23 жылғы, 45 жас;

-  а нақты саны берілген. 1+ 1/2 + 1/3, …  сандарының арасынан а-дан үлкен бірінші санды табу;  

-  х, у, z нақты сандары берілген. Табу керек:

a)            max (х, у, z)

b)  min (x, y, z) * max (х, у, z);

-  х, у нақты сандары берілген. F(x) есептеу керек.

 

 

 

 

-  p, x, y берілген.  Егер p < 0   онда t-ны  x пен y-тің қосындысы ретінде; егер p ³ 0, онда x пен y-тің айырмасы ретінде есептеу;

-  егер берілген мәтінде «А» әрпі «В» әрпіне қарағанда жиі кездессе, онда “true”-ны баспаға шығару, ал басқа жағдайда “false”-ты баспаға шығару бағдарламасын құру;

-  p саны берілген.  Егер p < 0,  онда y 

y = p^2  формуласы бойынша, егер  p ³ 0 -   y = p^5 формуласымен есептеледі.

Жұмысты орындауға мысал: Келесі алгоритмді жүзеге асыратын бағдарламаны құрастыру. х-ке мән беріп, функцияның мәнін есептеу

 


               

 

Бағдарлама мәтіні:

PROGRAM  P1;

VAR X, Y: REAL;

          Begin

          WRITELN (‘X мәнін енгіз’);

           READ (X);

           IF (X>-5) AND (X<0) THEN Y := (SQR(X)+ABS(X))

                    ELSE

           IF (X>=0) AND. (X<2) THEN Y: = 5*SQR(X)*X+COS(X);

           WRITELN (‘Функция мәнінің шығуы’);

           WRITELN (‘ при Х=’ ,X:5:2,  Y=’,Y:6:3);

           READLN

           end.

 

 

          3 №3 зертханалық жұмыс.  Циклдік құрылымды алгоритмді бағдарламалау.

 

 

Жұмыстың мақсаты: циклдік құрылымды алгоритмді Delphi бағдарламалау ортасының консолды қосымшасында бағдарламалай білу дағдысын қалыптастыру.

Delphi бағдарламалау ортасында циклдік құрылымды алгоритмді бағдарламалауға мүмкіндік беретін үш түрлі оператор бар.                  

FOR параметрімен бірге цикл операторының құрылымы:

FOR <цик_пар> := <бас_мән> TO <соңән> DO<оператор>;

FOR операторының орындалуы кезінде бастапқыда <бас_мән> өрнегі есептеледі және <цик_пар> := <бас_мән> меншіктелуі жүзеге асырылады. Осыдан кейін циклдік қайталану болады:

-<цик_пар> < <соңән> шартының тексерілуі. Егер шарт орындалмаса FOR операторы өз жұмысын аяқтайды;

-<оператор> операторының орындалуы;

-<цик_пар> айнымалысының  бірлікке өсуі.

FOR операторының басқа түрі:

FOR<цик_пар> :=<бас_мән>DOWNTO <соң_мән> DO<оператор>;

Цикл параметрінің өсу қадамы (-1)-ге тең, ал басқарушы шарт  <цик_пар> > <соңән> түріне енеді.

WHILE шартымен бірге цикл операторының түрі:

WHILE <шарт> DO <оператор>;

WHILE операторының орындалуы кезінде бастапқыда <шарт> есептелінеді және тексеріледі. Егер <шарт> өрнегі  TRUE мәнін қабылдаса, онда <оператор> орындалады, содан кейін <шарт> өрнегі есептелініп, оның тексерілінуі қайталанылады. Егер <шарт> FALSE мәнін қабылдаса, онда WHILE операторы өз жұмысын тоқтатады.

 REPEAT шартымен бірге цикл операторының түрі:

REPEAT <цикл_денесі> UNTIL<шарт>;

<цикл_денесі> операторлары бір рет болса да орындалады, содан кейін <шарт> өрнегі есептеледі; егер оның мәні FALSE болса, <цикл_денесі> операторлары қайталанады, ал керісінше REPEAT операторы өз жұмысын аяқтайды.

 

№3 зертханалық жұмыс тапсырмалары

 

Берілген n санымен х нақты санының өрнегін есептеу бағдарламасы мен алгоритмінің блок-сызбасын құрастыру. Өрнек мәні цикл операторларының көмегімен есептеледі. Өрнектің есептелінуі бірқатар дәлдікпен жүргізіледі. Бағдарлама құрастыру барысында циклді ұйымдастыру үшін әртүрлі цикл операторлары керек. Тапсырмалар нұсқасы:

-     Σ   x2  / n! ;

-     Σ x3/ k1/ n ;

-     Σ tgx ;

-     Σ x3+sinx /i!;

-     Σ 1/ i!+ Ö |x| ;

-     Σ 1 / Ö k+x ;

-     П (2k / 3k+1 ) – cos2x ;

-     П k /x3 k ;

-     П (1+sin kx ) / k! ;

-     П x7 / (1+n!);

-     П sin(2x+1)+0.5)k ;

-     П  ex-1/sinx/ln(arctgx);

Жұмыстың орындалу мысалы: Берілген ε=10-4 дәлдікпен қосындыны есептеу бағдарламасын құру. Егер кезекті қосынды ε-нан кіші болса, онда талап етілген дәлдікке жетті деуге болады. 

 

Σ  x2 +1 / ( k4+Ö |x3 +1| +1) есептеу керек

 

Бағдарлама мәтіні:

PROGRAM PSUM;

          VAR   X, S, AK, e : REAL;

                     K : INTEGER;

                Begin

                WRITELN(‘X және e енгіз’);

                READ(X, e);

      S: =0; K: =1;

      REPEAT

АK:= (SQR (X)+1)/(SQR (SQR (K))+K*SQR1 (ABS (SQR (X)*X+1))+1);

       S: = S+AK;    

       K: =K+1;

       UNTIL ABS (AK)<e;

       WRITELN (‘S= ’, S: 7:3, ‘AK= ’, AK: 6:3);

        READLN

end.

 

 

4 №4 зертханалық жұмыс. Консолды қосымшадағы массив типінде берілгендер құрылымын қолданып, Delphi бағдарламалау ортасында есеп шығару.

 

Жұмыс мақсаты: есеп шығару барысында массив типінде берілгендер құрылымын қолдана отырып бағдарламалау дағдысын қалыптастыру.

Массив – бір типті компоненттегі анықталған сандардан тұратын, берілгендер құрылымы. Массив компоненттеріне компонент индекстері нұсқауының көмегімен шығуға болады. Массив типінің сипатталуы:

TYPE<типтің_аты>=ARRAY [<индекс1_типі>, <индекс L_типі>] OF <тип >;

L индексінің саны массив өлшемін анықтайды. Содан кейін бағдарламаның VAR бөлімінде массив типінің айнымалылары сипатталады. Массив типін алдын ала сипаттамай-ақ, осы айнымалыларды сипаттау барысында массив ретінде анықтауға болады, мысалы:

VAR   A : ARRAY[1…10] OF REAL;

Берілген зертханалық жұмыста бірөлшемді массивтерді өңдеу есептері қарастырылады.

Delphi бағдарламалау ортасының консолды қосымшасында массивті енгізу және шығару процедуралары:

FOR  I: =1 TO N DO     READ (A [I]);

мұндағы, N массив элементтерінің санын анықтайтын тұрақты (N бағдарламаның CONST бөлімінде сипатталынады).

FOR  I: =1 TO N DO  WRITE (A [I]: M: L);

мұндағы,  Mнақты элементтерге арналған позиция саны, ал Lосы элементтің бөлшек бөліміне арналған позиция саны (массив бүтін элементтермен қолданылған жағдайда M ғана көрсетіледі).

Массивті мынадай түрде де шығаруға болады:

FOR  I: =1 TO N DO WRITELN (A [I]);

 

№4 зертханалық жұмыс тапсырмалары

 

Консолды қосымшада бірөлшемді массивті өңдеу есебінің бағдарламасы мен алгоритмінің блок-сызбасын құрастыру. Берілген тапсырмаларды бағдарламалау барысында әртүрлі цикл операторларын қолдану ұсынылады. Тапсырмалар нұсқасы:

-     2*n элементтерінен тұратын А бірөлшемді массиві берілген. Бірінші және екінші жартысының орындарын ауыстыру

-     А(10) берілген массивте барлық теріс элементтердің алдына бір элементтен қою;

-     А(15) массивінде ең кіші элементті тауып, нөлге айналдыру;

-     А(11) векторы берілген. Барлық жұп элементтерді К-ға ауыстыру, ал тақ элементтерді екі еселеу;

-     А(N) и В(N) екі бірөлшемді массивтері берілген. Олардың скаляр көбейтіндісін табу;

-     А(13) массиві берілген. К санындағы массив элементінің модулі бойынша ең үлкенін өзгерту;

-     А (а1, а2, … аn) бірөлшемді массиві берілген. Bi = Ai/6 массивін табу керек;

-     берілген екі өлшемді массивтің қосындысы мен айырмасын есептеу. Нәтижесін екі қарама-қарсы бағанда шығару;

-     өлшемді массив түрінде терілген айнымалы сандар ретіндегі (n<=100), өсуі бойынша реттелген ең ұзын қатарды табу;

-     V(N) векторы берілген. Осы вектор элементтерінің орташа мәніне жуық элементтің индексін анықтау;

-     Х(M), У(M) екі вектордың көбейтіндісін есептеу;

-     А(25) векторы берілген. Берілген К санына бөлінетін элементтердің қосындысын табу;

-     берілген массивтегі оң таңбалы және теріс таңбалы элементтердің санын табу;

-     А(N) массивіндегі соңғы теріс элементтің нөмірін табу;

-     массивтегі жұп нөмірде тұрған барлық жұп элементтердің қосындысын табу.

Жұмыстың орындалу мысалы. А(30) массивінің элементтерін өсуі бойынша реттеу бағдарламасын құру.

Бағдарлама мәтіні:

          PROGRAM SORT;

          CONST N=30;

          VAR A:ARRAY[1…N] OF INTEGER;

           I, L,C: INTEGER;

        Begin

WRITELN ('Берілгендерді енгіз);                    {А массивінің енгізілуі}

For  I: =1 TO N DO

READ (A [I]);

FOR I: =1 TO N-1 DO                              {А массивінің реттелуі}

FOR L: = I+1 TO N DO

IF A [I]>A [L] THEN BEGIN

C: =A [I];

A [I]: =A [L];

A [L]: =C;

        end;

WRITELN (‘А (30) векторының сортталу нәтижесі’);

FOR I: =1 TO N DO

WRITE (A [I]: 3);                             {А массивінің шығарылуы}

READLN

        END.

 

 

5 №5 зертханалық жұмыс. Массив типінде берілгендер құрылымын қолдана отырып, есеп шығаруды Delphi ортасында бағдарламалау.

 

Жұмыс мақсаты: есеп шығару барысында массив типінде берілгендер құрылымын қолдана отырып, Delphi ортасында бағдарламалау дағдысын қалыптастыру. Сонымен қатар форма (Form), мәтіндік өріс (Label),  редакторлеу өрісі  (Memo, Edit), жол тізімінің компоненті (List Box),  түймешік (Button) объектілерімен жєне олардың негізгі құрамдарымен:  (Name) қолтаңба (Caption),  түсі (Color)  шрифт (Font), түрі (Visible), көлемі (Width),  ұзындығы (Height) , реттелуі (Alignment) , өріс шекарасының анықталуы (Auto size), сөзді тасымалдау (Word Wrap), қол жеткізушілік (Enabled), редактор өрісіндегі мәтін (Text), тізімдегі элементтің индексін анықтау (Item index), тізім элементтерінің тапсырмасы (Items).

           

№5 зертханалық жұмыс тапсырмалары

 

Delphi бағдарламалау ортасында бірөлшемді массивті өңдеу есебінің бағдарлама-жобасы мен алгоритмінің блок-сызбасын құрастыру.

Төменде берілген тапсырмаларды бағдарламалау барысында циклдың әртүрлі операторларын және мәтіндік редакторлардың компоненттерін қолдануды ұсынады. Тапсырмалар нұсқасы:

-     N өлшемді вектор берілген. Ең кіші және ең үлкен элементтерден басқа элементтердің орташа мәнін анықтау;

-     А (N) берілген массивіндегі жұп және тақ элементтердің орнын ауыстыру;

-     Бірөлшемді массив түрінде берілген сандар ретінен ең үлкен элементті табу ;

-     Бірөлшемді массив берілген. Массивтің барлық  элементтері [-1; 1] аралығында ғана болатындай түрлендіру  келтіру керек.  Түрлендіру параметрлері мен алынған массивті баспаға шығару керек;

-     В(3,4) өлшеміндегі матрицаның баған элементтерін қосу. Нәтижесін өлшемі 4-ке тең бірөлшемді массив түрінде алу;

-     Х(11) массиві берілген. У1 = 05*Х1 функциясының мәнін есептеу. Нәтижені екі баған түрінде шығару;

-     9 өлшемді Х векторының ұзындығын шығару. Вектор ұзындығы L = X12 + … + X92  формуласымен есептеледі;     

-     А(16) векторының барлық жұп элементтерін нөлге айналдыру;

-     А(19) берілген массивіндегі барлық жұп элементтерді жою;

-     А(9) массиві берілген. Жұп және тақ элементтердің орнын ауыстыру;

-     берілген бірөлшемді екі массивтің көбейтіндісі мен айырмасын есептеу. Нәтижені екі вектор түрінде баспаға шығару;

-     екі вектор түрінде берілген А-ның және В-ның алты жұп мәні үшін АХ = В теңдеуін шешу. Нәтижені Х  массивіне орналастыру;

-     бірөлшемді массив түрінде берілген сандар ретінен ең кіші элементті табу;

-     бірөлшемді массив түрінде берілген сандар ретінен ең үлкен және ең кіші элементті табу; 

-     А(15) массив элементтерінің өсуі бойынша реттеу бағдарламасын  құру.

Жұмыстың орындалу мысалы: А(15)  бүтінмәнді массивтен ең үлкен және ең кіші элементтерді тауып, олардың орнын ауыстыру.

Шығарылуы:

-     жобаға арналған бума құру;

-     Standard бетінен Form1-ге келесі компоненттерді орналастыру (1 суретті қара);

-     Объектілер Инспекторының көмегімен (Name, Caption, Color,Font,Visible, Width,  Height , Alignment , Autosize, WordWrap, Enabled, Text, Items, Item Index) компоненттер құрамы үшін мән ретінде беру;

-  Label1 – Caption –А(15) массивінің ең үлкен және ең кіші элементтерін іздеу. Орындаған ст.: ФИО

-  Label2 – Caption - А (15) массивінің элементтерін енгізу

-  Edit1 – Теxt – Мәтін

-  Мемо1- LinesString List –“Memo1” сөзін алып тастау  - «ОК» батырмасын басу

-  Button1 - Caption - Енгізу

-       Button2 - Caption – Шығарылуы

-       Button3 - Caption – Нәтиже

-       Button4 - Caption – Тазалау

 


                                                    

 

 

 

 

 

 

 

 

 

 

1 –сурет. Формаға Label, Edit, Memo, ListBox, Button компоненттерін орналастыру

-     interface тарауында А(15) массивінің және қолданылатын айнымалылардың сипатталуы қойылады.

Const n=15;

 Var

Form1: Tform1:

A: array [1..n] of integer;

i, k, max, imax, min, imin : integer;

-     Form1Сreate формасын құру процедурасын бағдарламалау. Бұл үшін формаға екі рет шертіңіз және алынған Form1Сreate  процедурасын келесі түрде толтырыңыз:

Procedure Tform1.FormCreate (Sender:TObject);

Вegin

     I: =0;

     List Box1.Clear;

     List Box2.Clear;

          End;

-     Button1 түймешігін А(15) массивінің берілгендерін бір элементтен енгізетін түймешік ретінде бағдарламалау. Ол үшін Button1 түймешігін екі рет шертіңіз,  нәтижесінде Buttonlick дайын процедурасымен бағдарлама кодының редактор терезесі іске қосылады, жағдайды өңдеу Button1 түймешігін шерту арқылы жасалады. Процедураны дайындауды толтыру:

     Procedure Tform1.Button1Сlick (Sender: Object);

Begin

ListBox1.Items.Add (edit1. Text);

     I: =i+1;

     A [I]: = StrToInt (edit1. Text);

     Edit1.SetFocus;

     еnd;

-  Button2 түймешігін А(15) массивінің ең кіші және ең үлкен элементтерін іздеу, сонымен қатар олардың нөмірін табу және орындарын ауыстыру түймешігі ретінде бағдарламалау. Ол үшін Button2 түймешігін екі рет шертіңіз,  нәтижесінде Buttonlick дайын процедурасымен бағдарлама кодының редактор терезесі іске қосылады, жағдайды өңдеу Button2 түймешігін шерту арқылы жасалады Процедураны дайындауды толтыру: Procedure Tform1.Buttonlick(Sender:TObject);

Begin

Max: = a [1]; min: =a [1];

imin:=1;  imax:=1;

for k: =2 to  n do

begin

           if max< a [k] then begin

 max: =a [k]; imax: =k end;

           if min > a [k] then begin

 min: =a [k]; imin: =k  end;

end;

a [imax]: =min; 

a [imin]: =max;

for k: =1 to n do

ListBox2.Items.Add (Int To Str (a [k]));

еnd;

-     Button3 түймешігін А(15) массивінің ең кіші және ең үлкен элементтері мен олардың нөмірін Memo1 редакторлеу өрісінде шығару түймешігі ретінде бағдарламалау. Ол үшін Button3 түймешігін екі рет шертіңіз,  нәтижесінде Buttonlick дайын процедурасымен бағдарлама кодының редактор терезесі іске қосылады, жағдайды өңдеу Button3 түймешігін шерту арқылы жасалады Процедураны дайындауды толтыру:

Procedure Tform1.Button3Сlick (Sender: TObject);

Begin

Memo1.Lines.Add (‘ Результат’);

Memo1.Lines.Add (‘ max=’+inttostr(max));

Memo1.Lines.Add (‘ min=’+inttostr (min));

Memo1.Lines.Add (‘ imax=’+inttostr (imax));

Memo1.Lines.Add (‘ imin=’+inttostr (imin));

end;

-     Button4 түймешігін Memo1 редакторлеу өрісін және List Box1,

List Box2 жол тізімі компоненттерін тазалау түймешігі ретінде бағдарламалау. Ол үшін Button4 түймешігін екі рет шертіңіз,  нәтижесінде Buttonlick дайын процедурасымен бағдарлама кодының редактор терезесі іске қосылады, жағдайды өңдеу Button4 түймешігін шерту арқылы жасалады Процедураны дайындауды толтыру:

Procedure Tform1.Button4Сlick (Sender: Object);

Begin

Memo1.Clear;

ListBox1.Clear;

ListBox2.Clear;

end;

-     жобаны іске қосу (Run-Run, немесе F9);

-     бағдарламаны және жобаны өз бумаңда (File - Save as) сақтау. Бағдарламаның  ехе-файлын құрыңыз.

 

 

 

№6 зертханалық жұмыс. Delphi ортасында бірөлшемді массивті өңдеу есебін бағдарламалау

 

 

Жұмыс мақсаты: есеп шығару барысында Delphi ортасында бірөлшемді массивті өңдеу есебін бағдарламалау дағдысын қалыптастыру. Сонымен қатар жол тізімінің комбинацияланған компоненті (СоmboBox) объектісімен және  негізгі құрамдары: аты (Name), түсі (Color)  шрифт (Font), түрі (Visible), қол жеткізушілік (Enabled), тізімдегі элементтің индексін анықтау (Item index), тізім элементтерінің тапсырмасы (Items), жол санын анықтау (Dropdown Count), элементтерді сорттау (Sorted),  тізімді редакторлеу ережесі (Style). СomboBox компонентінде тізімді өңдеуге арналған негізгі операциялар – элементтерді қосу, іздеу, жою, сорттау.

 

№6 зертханалық жұмыс тапсырмалары

 

Delphi бағдарламалау ортасында бірөлшемді массивті өңдеу есебінің бағдарлама-жобасы мен алгоритмінің блок-сызбасын құрастыру. Төменде берілген тапсырмаларды бағдарламалау барысында циклдың әртүрлі операторларын және мәтіндік редакторлардың компоненттерін, сонымен қатар СоmboBox енгізу мен шығарудың комбинацияланған жолдарын қолдануды ұсынады. Тапсырмалар нұсқасы:

-     В(10) векторын есептеу, мұнда В (I) = SIN (I);

-     А(13) векторы берілген. 3-ке бөлінетін барлық элементтердің қосындысын табу; 

-     А(17) векторы берілген. Тақ элементтерді жойып, түрлендіру;

-      (20) векторы берілген. Бірінші және соңғы элементтердің орнын ауыстыру;

-     А(N), В (М) масссивтері берілген. Ең үлкен элементті табу;

-     А(21) берілген массивінен барлық тақ элементтерді жою;

-     А(35) массивінің 5-ке бөлінетін элементтерінің көбейтіндісі;

-     А(25) векторы берілген. Массивтің барлық тақ элементтерінің қосындысын табу;

-     А(17) массиві берілген. Массивте теріс элементті іздеу;

-     А(13) берілген массивінде көршілес оң элементтерді тауып, алғашқы жұптың нөмірін табу;

-     А(15) массиві берілген. А берілген санынан үлкен элементтердің қосындысын табу;

-     А(10) берілген массивіндегі үлкен мәнді барлық элементтердің нөмірін табу;

-     А(9) массивінде берілген В санына тең элементтерді іздеп, біреуінің нөмірін баспаға шығару;

-     В(15) берілген массивінде барлық теріс элементтердің санын және көбейтіндісін табу;

-      А(12) берілген массивіндегі барлық теріс элементтерді үш дәрежеге шығару.

Жұмыстың орындалу мысалы: А(17) бүтінмәнді массивіндегі жұп элементтердің ішінен ең үлкенін жєне оның нөмірін табу

Шығарылуы:

-     жобаға арналған бума құру.

-     Standard бетінен Form1-ге келесі компоненттерді орналастыру (2 суретті қара):

-     Объектілер Инспекторының көмегімен (Name, Caption, Color, Font, Visible, Width,  Height , Alignment, Autosize, WordWrap, Enabled,Text, Items, Item Index, Dropdown Count, Sorted, Style) компоненттер құрамы үшін мән ретінде беру;

-     Label1 – Caption –А (15) массивінен мах және мin элементтерін іздеу. Орын.ст.: ФИО

-     Label2 – Caption - А (17) массивінің элементтерін енгізу

-     Мемо1- LinesString List –“Memo1”  сөзін алып тастау- «ОК» түймешігін басу

-     Button1 - Caption - Енгізу

-     Button2 - Caption – Шығарылуы

-     Button3 - Caption – Нәтиже

-     Button4 - Caption – Тазалау

-  interface тарауында А(17) массивін және қолданылатын айнымалыларды сипаттау.

Const n=17;

 Var

Form1: Tform1:

A: array [1.. n] of integer;

i,k, max,imax  : integer;

 

 

 

 

 

 

 

 


                                 

 

 

 

 

 

 

 

 

 

 

 

2сурет. Label, Edit, Memo, Combo Box, Button компонентерінің  формада орналасуы         

 

- Form1Сreate формасын құру процедурасын бағдарламалау. Бұл үшін формаға екі рет шертіңіз және алынған Form1Сreate  процедурасын келесі түрде толтырыңыз:

Procedure Tform1.FormCreate (Sender: Object);

Begin

     i: =0;

     ComboBox1.Clear;

     ComboBox2.Clear;

     ComboBox1.TabOrder: =0; 

end;

- Button1 түймешігін А(17) массивінің берілгендерін бір элементтен енгізетін түймешік ретінде бағдарламалау. Ол үшін Button1 түймешігін екі рет шертіңіз,  нәтижесінде Button1Сlick дайын процедурасымен бағдарлама кодының редактор терезесі іске қосылады, жағдайды өңдеу Button1 түймешігін шерту арқылы жасалады. Процедураны дайындауды толтыру:

     Procedure Tform1.Button1Сlick (Sender: Object);

Begin

    ComboBox1.Items.Add (ComboBox1.Text);

    i: =i+1;

   A [i]: = StrToInt (ComboBox1.Text);

   ComboBox1.SetFocus;

   еnd;

- Button2 түймешігін А(17) массивінің ең үлкен элементін іздеу, сонымен қатар оның нөмірін табу түймешігі ретінде бағдарламалау. Ол үшін Button2 түймешігін екі рет шертіңіз,  нәтижесінде Button2Сlick дайын процедурасымен бағдарлама кодының редактор терезесі іске қосылады, жағдайды өңдеу Button2 түймешігін шерту арқылы жасалады. Процедураны дайындауды толтыру:

Procedure Tform1.Button2Сlick (Sender: Object);

Begin

Max: = a [1]; 

imax: =1;

for k: =2 to n do

        if (max< a [k]) and  (a [k] mod 2 = 0) then

begin max: =a [k]; imax: =k

end;

for k: =1 to n do

if a [k] mod 2 = 0 then

ComboBox2.Items.Add (IntToStr (a [k]));

 end;

 - Button3 түймешігін А(17) массивінің ең үлкен элементін және оның нөмірін Memo1 редакторлеу өрісінде шығару түймешігі ретінде бағдарламалау. Ол үшін Button3 түймешігін екі рет шертіңіз,  нәтижесінде Button3Сlick дайын процедурасымен бағдарлама кодының редактор терезесі іске қосылады, жағдайды өңдеу Button3 түймешігін шерту арқылы жасалады. Процедураны дайындауды толтыру:

Procedure Tform1.Button3Сlick (Sender: Object);

Begin

Memo1.Lines.Add (‘ Результат’);

Memo1.Lines.Add (‘ max=’+inttostr (max));

Memo1.Lines.Add (‘ imax=’+inttostr (imax));

end;

- Button4 түймешігін Memo1 редакторлеу өрісін Combo Box1, Combo Box2 жол тізімі компоненттерін тазалау түймешігі ретінде бағдарламалау. Ол үшін Button4 түймешігін екі рет шертіңіз,  нєтижесінде Button4Сlick дайын процедурасымен бағдарлама кодының редактор терезесі іске қосылады, жағдайды өңдеу Button4 түймешігін шерту арқылы жасалады Процедураны дайындауды толтыру:

Procedure Tform1.Button4Сlick (Sender: Object);

Begin

Memo1.Clear;

ComboBox1.Clear;

ComboBox2.Clear;

end;

-  жобаны іске қосу. (Run-Run, немесе F9);

-       бағдарламаны және жобаны(File - Save as) өз бумаңызды сақтау.

 

 

 

7 №7 зертханалық жұмыс. Консолды қосымшада екі өлшемді массивті қолданып есеп шығаруды Delphi ортасында бағдарламалау.

 

Жұмыс мақсаты: екіөлшемді массивті өңдеу есебін бағдарламалау дағдысын қалыптастыру.

Массив типін сипаттау:

TYPE < типтің _аты >=ARRAY [<тип_1инд>, [<тип_2инд>] OF <тип >;

Бағдарламада массив типіндегі айнымалылардың VAR тарауында сипатталуы, мысалы:

                   TYPE  2mas=ARRAY [1..5, 1..5] OF INTEGER;

VAR  A,B,C: 2mas;

Бағдарламаның VAR тарауында массив типіндегі айнымалыларды төмендегідей түрде де сипаттауға болады:

VAR  A,B,C: ARRAY [1..M, 1..N] OF REAL;

мұндағы M және Nмассивтегі жол мен баған саын анықтайтын тұрақтылар.

Компьютер жадысында массив элементтері бірінен соң бірі орналасады, кіші адрестен үлкен адреске өткенде массивтің оң жақ индексі мейлінше тез ауысады.  Егер бағдарламада массивтің  сипатталуы:

VAR  A: ARRAY [1..3, 1..2] OF BYTE;

                                BEGIN

A [1,1]: =1; A [2,1]: =2; A [3,1]: =3;

    A [1,2]: =4; A [2,2]: =5;      A [3,2]: =6;

READLN;

END.

түрінде болса, онда компьютер жадысында байттар 1, 4, 2, 5, 3, 6 мәндерімен реттеліп орналасады.

Берілген зертханалық жұмыста екі өлшемді массив есептері қарастырылған. Екі өлшемді массивті енгізу және шығару фрагменті:

{ A[N,N] массивін енгізу, мұнда N - тұрақты}

                                                    FOR  I: = TO N DO

FOR  J: = I TO N DO

                                                  READ (A [I, J]);

{ A[N,N] массивін әр жол бойынша шығару}

FOR  I: = I TO N DO

BEGIN

FOR  J: =1 TO N DO

WRITE (A [I, J]: 4):

WRITELN; end;

READ LN;

END.

 

 

№7 зертханалық жұмыс тапсырмалары

 

Екіөлшемді массивті өңдеу есебінің бағдарламасы мен алгоритмінің блок-сызбасын құрастыру. Тапсырманы бағдарламалау барысында екі өлшемді массивті өңдеуге арналған әртүрлі цикл операторларын қолдану керек. Тапсырмалар нұсқасы: 

-     А(N,N) квадрат матрицасы берілген. Барлық тақ элементтерді олардың квадратымен ауыстыру, ал жұп элементтерді екі еселеу;

-     А(M,N) массиві берілген. Бірінші тұрған элемент пен ең үлкен элементтің орындарын ауыстыру;

-     А(N,M) массивінің әрбір жолындағы теріс элементтердің санын тауып, оларды В(N) векторын жазу;

-     А(N,N), В(N,N) екі массиві берілген. Осы екі массивтің қайсысының ізі аз болса, соны баспаға шығару;

-     А(N,N) массивіндегі 3-ке немесе 5-ке бөлінетін элементтердің санын табу;

-     задан массив А(N,N) массивінің әрбір жолындағы соңғы теріс элементтердің нөмірін табу;

-     А(M,M) массивінің әрбір жолындағы осы жол элементтерінің орташа арифметикалық шамасынан үлкен элементтердің санын табу;

-     А(N,N) массивін «ирек сызық» түрінде толтыру;

-     А(N,M) массивінің бірінші жолындағы оң элементерді осы жолдың бірінші элементіне, ал теріс элементтердіі соңғы элементіне көбейту керек;

-     А(4,3) өлшеміндегі матрицаның баған элементтерін қосу. Нәтижені  өлшемі 3 болатын бірөлшемді массивте шығару;

-     задана матрица А(5,7) матрицасынан К бағанын жою. Нәтижені жол бойынша шығару;

-      екі матрицаның көбейтіндісін табу;

-     квадрат матрицаның периметрінде орналасқан элементтерді нөлмен толтыру;

-     А(N,N) матрицасының бас диагоналы мен бүйір диагоналының орнын ауыстыру;

-     А(N,M) өлшеміндегі матрицаның периметрінде орналасқан элементтерді қосу. 

Жұмыстың орындалу мысалы: А(5,5) екіөлшемді массив жолының ең кіші элементтерінен кемуі бойынша бірөлшемді массив құру бағдарламасын жазу.

Бағдарлама мәтіні:

PROGRAM SORT;

CONST N=5;

TYPE MAS=ARRAY [1..N, 1..N] OF INTEGER:

VAR A: MAS;

                B: ARRAY [1..N] OF INTEGER;

                I, J, L, MIN, C: INTEGER;

BEGIN

WRITELN (‘А[5,5] массивінің элементтерін енгізу);

  FOR   I: =1 TO N DO    { А екіөлшемді массивінің енгізілуі}

  FOR   J: = I TO N DO                                              

        READ (A [I, J]);

{екіөлшемді массив жолының ең кіші элементтерінен В бірөлшемді

 массивін құру}

FOR  I: =1 TO N DO

BEGIN

            MIN: =A [I, 1];

            FOR   J: =1 TO N DO

            IF A [I, J]< MIN THEN

MIN: = A [I, J];

B [I]: =MIN:

END;

{В массивінің реттеліп жазылуы жєне А массив жолының ең кіші элементтерінің кемуі бойынша түрленіп шығарылуы}

FOR  I: =1 TO N-1 DO

FOR  L: =I+1 TO N DO

                 IF B [I]<B [L] THEN
BEGIN

         C: =B [I];

B [I]: =B [L];

B [L]: =C;

FOR  J: =1 TO N DO

BEGIN   

C: =A [I, J];

A [I, J]: =A [L, J];

A [L, J]: =C;  

END;

END;

          FOR  I: = I TO N DO     { А массивін шығару}

BEGIN

          FOR  J: =1 TO N DO

          WRITE (A [I, J]: 4);                       

          WRITELN; 

end;

END. 

 

 

8 №8 зертханалық жұмыс. Массивтермен жұмыс. String Grid компоненттерін қолдану. String Grid кестесінің негізгі ерекшелігі

 

Жұмыстың мақсаты: Delphi бағдарламалау ортасында көпөлшемді массивтерді есептеуді немесе стандартты операцияларды орындауға арналған String Grid мәтіндік жолын кестеге қолдануды үйрену.

String Grid объектісі формада екі өлшемді кестені құруға арналған . String Grid компонентін массив элементтерін енгізу мен шығаруда, сонымен қатар массивпен жұмыс жасауда әртүрлі операцияларды орындағанда қолдану ыңғайлы. String Grid компонентінің белгісі Additional қосымша бетінде болады.

String Grid компоненті жол мен баған  санынан тұратын кесте болып табылады. Егер алғашқы жол мен бағанның керекті санын белгілесе, онда тік және көлденең скроллингтегі компоненттер терезесінде тұрақты кездесетін жолдар мен бағандар тақырыптамасын беруге болады. Жолдар мен бағандар қиылысында ұяшық болады. Егер ұяшыққа өңдеу ережесі тапсырылса, онда бағдарламаны орындау кезеңінде ұяшықта орналасқан мәліметтерді енгізуге және өңдеуге рұқсат беріледі. Кестенің жолы мен бағанын нөмірлеу нөлден басталады.

Әрбір ұяшықта біріншісі баған нөмірі және екіншісі жол нөмірі болып саналатын сандар беріледі. Мысалы, (4,5) координаталы ұяшық төртінші бағанда, бесінші жолда орналасқан.

String Grid компонентінің негізгі құрамы: Name (компоненттің аты), ColCount (кесте бағанының саны) , RowCount  (кесте жолының саны), Cells (кесте ұяшығы), FixedCols (белгіленген бағандар саны), FixedRow (белгіленген жолдар саны),  Options - go Editing (редакторлеу ережесіне кіру мүмкіндігінің тапсырмасы).

 

№8 зертханалық жұмыс тапсырмалары

 

-     А(N,N) массиві мен М өлшемді В векторы берілген. Массивтің алғашқы баған элементтері кемуі бойынша реттелген. В векторына А массивінің жаңа жолы ретінде бірінші баған элементтері бойынша ретін сақтап қосу;

-     А (N,N) массивінде К-шы и L-ші бағандардың орнын ауыстыру. Нәтижені жол бойынша шығару;

-     B(M,M) квадрат матрицасында бас диагоналдағы ең үлкен элементі бар жолды берілген нөмірлі элементі бар жолмен ауыстыру;

-     квадрат матрица жол бойынша бірөлшемді массив түрінде берілген. Матрицаның төменгі ұшбұрышын баспаға шығару;

-     А(4,3) матрицасының барлық элементтерінің қосындысын табу;

-     А(N,N) массив элементтерінің орташа мәнін анықтау;

-     А(N,N) массив элементтерінің орташа мәніне жуық элементтің индексін табу;

-     тік бұрышты матрица транспорленген матрицаға түрлендіріп, оны жол бойынша баспаға шығару;

-          квадрат матрицаның диагонал элементтерінен бірөлшемді массив алу.  Бірөлшемді массив элементтерін қоса отырып, матрица ізін табу;

-          матрица мен вектор берілген. Олардың көбейтіндісін табу. Жол бойынша шығару;

-          А(N,N) берілген квадрат матрицасын бағанды санға көбейтуді пайдаланып түрлендіру, яғни бірінші жолдың бас диагонал элементінен басқалары нөлге айналуы керек;

-          А(3,4) массивінің барлық оң элементтерін үш дәрежеге шығару;

-          F(N,N) массивінің бас диагоналдан төмен орналасқан элементтерінің қосындысын табу;

-          А(16) массивін А(4,4) матрицасына түрлендіру;

-          А(4,5) матрицасы жолдарының ең кіші қосындысын табу;

-          А(5,4) екі өлшемді массивінің әр жолының элементтерін кемуі бойынша сорттау

Жұмыстың орындалу мысалы: А(4,4)  бүтінсанды матрицасының бірінші және соңғы жолдарының орындарын ауыстыру. 

Шығарылуы:

-          жаңа буманың жобасын құру;

-          standard и Additional беттерінен Form1-ге келесі компоненттерді орналастыру (3 суретті қара): 

-          объектілер Инспекторыныњ көмегімен (Name, Caption, Color, Font, Visible, Width,  Height , Alignment, Autosize, WordWrap, Enabled, ColCount, RowCount, Cells, FixedCols, FixedRow ,  options - go Editing) компоненттер құрамы үшін мєн ретінде беру;

-          Label1 – Caption –№ 8 Лаб. жұмыс. Орын.ст.: ФИО

-          Label2 – Caption - А (4,4) массивінің элементтерін енгізу

-          Button1 - Caption - Енгізу

-          Button2 - CaptionШығарылуы

-          Button3 - Caption Тазалау

-          FixedCols – 0:

-          FixedRows – 0;

-          ColCount – 4;

-          RowCount – 4;

-          Options- go Editing –True;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


3–сурет. Label, Button, String Grid компоненттерінің формада орналасуы

 

-     interface тарауында А(4,4) массивін мен қолданылатын айнымалыларды сипаттауды қою.

Const n=3;

 Var

Form1: Tform1:

i,j: integer;

-     «1 шығару» батырмасын іске қосып,  On Click жағдайды өңдегішті құрамыз:

      Procedure Tform1.Button1Сlick (Sender: Object);

      Begin

      for I: =1 to 3 do

Begin

StringGrid2.Cells [I, 0]: = StringGrid1.Cells [I, 3];

StringGrid2.Cells [I, 3]: = StringGrid1.Cells [I, 0];

StringGrid2.Cells [I, 1]: = StringGrid1.Cells [I, 1];

StringGrid2.Cells [I, 2]: = StringGrid1.Cells [I, 2];

End; end;

-         «2 шығару» батырмасын іске қосып,  процедураны дайындауды толтырамыз:

Procedure Tform1.Button2Сlick (Sender: Object);

Begin

StringGrid2.Rows [0]: = StringGrid1.Rows [3];

StringGrid2.Rows [1]: = StringGrid1.Rows [1];

StringGrid2.Rows [2]: = StringGrid1.Rows [2];

StringGrid2.Rows [3]: = StringGrid1.Rows [0];

End;

-     «Тазалау» батырмасын іске қосып,  процедураны дайындауды толтырамыз:

Procedure Tform1.Button4 Сlick (Sender: Object);

Begin

for I: =0 to 3 do

for  j: =0 to 3 do

StringGrid2.Cells [j, i]: = ’     end;

End.

-     жобаны іске қосу. (Run-Run, немесе F9);

-     бағдарламаны және жобаны өз бумаңда сақтау (File - Save as)

 

 

 

9 №9 зертханалық жұмыс. Символдар мен жолдар.

Мәтінді өңдеу есептерін шығару бағдарламасы.

 

Жұмыс мақсаты: консолды қосымшадағы мәтінді өңдеу есебін шығаруды Delphi ортасында бағдарламалау дағдысын қалыптастыру.

STRING типі ұзындығын алдын ала анықтау қиынға соғатын жолдар үшін кеңінен қолданылады. Ол көбінесе символдардың берөлшемді массивіне ұқсайды.

 ARRAY [0..N] OF CHAR, алайда, соңғысынан айырмашылығы, жолдағы символдар саны –айнымалы 0-ден N-ге дейін өзгереді, мұндағы N –жолдағы ең көп символдар саны. STRING [N] типін хабарлаумен анықталады және 255-тен көп емес реттік нөмірдің кез келген тұрақтысы болуы мүмкін. Егер сипаттамада N көрсетілмесе, онда жол ұзындығы мүмкін болатын ең үлкен мәнге N= 255 ие.  Жолдағы символдың кез келгеніне өту символдың бірөлшемді массиві элементіне өтуі секілді жүзеге асырылады.

Жолдар мен символдарға қолданылатын әрекеттер төменде сипатталған стандартты процедуралар мен функциялардың көмегімен жүзеге асырылады:

LENGTH (ST) INTEGER типіндегі функция; ST жолының ағымдағы ұзындығын анықтайды.

CONCAT (ST1 [, ST2, STK]) STRING типіндегі функция; возвращает строку, жолдар тізбегін ST1, ST2, STK параметрлерін құрайтын жолды қайтарып береді.

COPY (ST, IND, COUNT) – функция типа STRING типіндегі функция; ST жолындағы COUNT символдардың ішінен IND нөмірлі символдан бастап көшіреді.

DELETE (ST, IND, COUNT) – процедура; ST жолындағы COUNT символдардың ішінен IND нөмірлі символдан бастап  жояды.

INSERT (SUBST, ST, IND) – процедура; ST жолына жататын, IND нөмірлі символдан басталатын SUBST  жолын қояды.

POS (SUBST, ST)INTEGER типіндегі функция; ST жолына жататын SUBST жолының бірінші енгенін іздейді және осы жол басталатын позицияның нөмірін қайтарады; егер SUBST жолы табылмаса, нөлді қайтарады.

STR (X, ST) – процедура; о X санын ST символдар жолына түрлендіреді.

VAL (ST, X, CODE) – процедура; ST  символдар жолын X айнымалысының ішкі көрсетіліміне түрлендіреді: егер түрлендіру сәтті өтсе, онда CODE параметрінде нөл болады, ал кері жағдайда ST жолындағы қате символдың позиция нөмірі болады және осы кезде X өзгермейді.

UPCASE (CH) CHAR типіндегі функция; бас әріпке қатысты, жолдық латын әрпін көрсететін СН символдық өрнек үшін қайтарады.

 

№9 зертханалық жұмыс тапсырмалары

 

Консолды қосымшада жол символдарын қолданып есеп шығару үшін алгоритм мен бағдарлама жасау. Бағдарламаны дайындау барысында жол символдарын өңдеу үшін қолданылатын жоғарыда келтірілген стандартты процедуралар мен функцияларды пайдалану ұйғарылады. Тапсырмалар нұсқасы:

-     Берілген символдар жолынан «а» әрпінен басталатын ең ұзын сөзді тауып, оны кері қатарда шығару;

-     Орыс алфавиті әріптерін кодтауды шығару кестесінің бағдарламасын жазу;

-     пернетақтадан енгізілген жолдардан бастапқы бос жолдарды жоятын бағдарламаны жазу;

-     пернатақтадан енгізілген жолдың екілік сан екендігін тексеретін бағдарламаны жазу;

-     пернатақтадан енгізілген жолдың оналтылық сан екендігін тексеретін бағдарламаны жазу;

-     жолдан бос жолды жоятын бағдарламаны жазу;

-     жол ұзындығын анықтайтын бағдарламаны жазу;

-     «е.» әрпі орналасқан берілген жолдан позиция нөмірін анықтайтын бағдарлама жазу;

-     берілген символдар жолындағы «!» белгісі бар жолды түрлендіру, жолдағы «!» белгісілерін нүктеге ауыстыру.

-     символдар жолы берілген. Жолға «АВС» әріптер тобының ену санын анықтау;

-     берілген мәтіннен латын әріптерінің дауысты дыбыстары (а, е, о,u,i) ең көп кездесетін барлық сөздерді табу;

-     берілген мәтіннің бастапқы үш сөзіне «р» әрпінің ену санын анықтау;

-     берілген мәтіннен «9» цифрынан басталатын ең ұзын цифрлар тобын табу;

-     берілген мәтіннен  цифрлар қосындысын табу;

-     берілген мәтіннен  сөздер санын табу. 

Жұмыстың орындалу мысалы: S Символдар жолынан «+» белгісін «-» белгісін ауыстыруды санау. 

PROGRAM SL;

VAR S: STRING;

I, K: INTEGER;

BEGIN

WRITELN (‘Ввод текста’);          

 READLN (S);

FOR  I: =1 TO LENGTH (S) DO

IF S [I]= ‘+’ THEN T [I]= ‘-’

WRITELN (S);

READLN

END.

 

 

 

10 №10 зертханалық жұмыс. Символдық және жолдық айнымалыларды қолданып есеп шығаруды Delphi ортасында бағдарламалау.

 

Жұмыстың мақсаты: Символдық және жолдық айнымалыларды қолданып есеп шығаруды Delphi ортасында бағдарламалау дағдысын қалыптастыру.

 

№10 зертханалық жұмыс тапсырмалары

 

Символдар жолын қолданып есеп шығаруға арналған алгоритм мен бағдарлама-жобасын дайындау. Бағдарламаны дайындау барысында жол символдарын өңдеу үшін қолданылатын стандартты процедуралар мен функцияларды пайдалану ұйғарылады. Тапсырмалар нұсқасы:

-     фамилиядағы әріптер санын анықтау;

-     латын алфавитінің әріптерін және олардың кодын шығару;

-     берілген жолдың ұзындығын анықтау. Осы жолдың екінші сөзін шығару;

-     берілген мәтіндегі әрбір әріпті осы әріптен кейін алфавит бойынша төртінші тұрған әріпке ауыстыратын Цезар кодымен кодтаңыз;

-     берілген мәтінді жолға бөлу;

-     мәтінде берілген сөз неше рет кездесетіндігін анықтау;

-     қолданушы енгізген жолдың палиндром екендігін анықтайтын бағдарламаны құру;

-     жүгірмелі жолды шығаратын бағдарламаны дайындау;

-     жазу машинасынын жұмысын көрсететін бағдарламаны дайындау;

-     тең уақыт аралығы арқылы таймер көмегімен нақты кодты орындауды бағдарламалау;

-     қолданушыны екі жолды енгізуге және мейлінше қысқа жолды шығаруға шақыратын бағдарламаны құрыңыз;

-     екі түймешікті қолданбалы интерфейс құрыңыз;

-     хабарламаны телеграф стилінде шығаратын бағдарламаны жазу;

-     қолданушы енгізген символ кодын беретін бағдарламаны жазу;

-     символдарды кодтау кестесінің бірінші бөлімін шығару бағдарламасын жазу.

Жұмыстың орындалу мысалы: Мәтін берілген. Мәтіндегі сөздің және «р» әрпінің санын табу.

Шығарылуы:

-     жобаға арналған бума құру.

-     standard бетінен Form1-ге келесі компоненттерді орналастыру (4 суретті қара):

-     объектілер Инспекторының көмегімен (Name, Caption, Color, Font, Visible, Width,  Height , Alignment, Autosize, WordWrap, Enabled,Text) компоненттер құрамы үшін мән ретінде беру;

-  Label1 – Caption –№ 10 зерт. жұмыс. Орын.ст. : Фамилиясы, аты, жөні.

-  Label2 – CaptionМәтінді енгізу

-               Мемо1- LinesString List  Memo1” сөзін алып тастап  - «ОК» түймешігін басу.

-  Button1 - Caption - Енгізу

-  Button2 - Caption – Шығару

-  Button3 - CaptionТазалау

-     Button1 түймешігін мәтінді енгізетін түймешік ретінде бағдарламалау. Ол үшін Button1 түймешігін екі рет шертіңіз,  нәтижесінде Buttonlick дайын процедурасымен бағдарлама кодының редактор терезесі іске қосылады, жағдайды өңдеу Button1 түймешігін шерту арқылы жасалады. Процедураны дайындауды толтыру:

     Procedure Tform1.Button1Сlick (Sender: Object);

Begin

    Text: =edit1. Text;

     Edit1.SetFocus;

      n: = length (text); 

      kol1: =0; kol2: =1;

      for i: =2 to n do

      if (text [I] = ‘  ‘) and  (text [I]=’p’ then begin

       kol1: =kol1+1;

       kol2: =kol2+1;

end;

end;

 

 

 

 

 

 


                                                                                                                            

 

 

 

 

 

 

 

 

 

 

 

 

4–сурет. Label, Edit, Memo, Button компоненттерінің формада орналасуы

 

-     interface тарауында мәтінді және қолданылатын айнымалыларды сипаттауды қою.

 Var

Form1: Tform1:

Text: string;

i,kol1,n,kol2: integer;

-     Button2 түймешігін нәтижені нөмірін Memo1 редакторлеу өрісінде шығару түймешігі ретінде бағдарламалау. Ол үшін Button3 түймешігін екі рет шертіңіз,  нәтижесінде Button2Сlick дайын процедурасымен бағдарлама кодының редактор терезесі іске қосылады, жағдайды өңдеу Button2 түймешігін шерту арқылы жасалады. Процедураны дайындауды толтыру:

Procedure Tform1.Button2Сlick (Sender: Object);

Begin

Memo1.Lines.Add (‘ Результат’);

Memo1.Lines.Add (‘ количество слов=’+inttostr (kol2));

Memo1.Lines.Add (‘число вхождений буквы «р»=’+inttostr (kol1));

end;

-     Button3 түймешігін А(17) массивінің ең үлкен элементін және оның нөмірін Memo1 редакторлеу өрісінде шығару түймешігі ретінде бағдарламалау. Ол үшін Button4 түймешігін екі рет шертіңіз,  нәтижесінде Button4Сlick дайын процедурасымен бағдарлама кодының редактор терезесі іске қосылады, жағдайды өңдеу Button3 түймешігін шерту арқылы жасалады. Процедураны дайындауды толтыру:

Procedure Tform1.Button3Сlick (Sender: Object);

Begin

Memo1.Clear;

Edit1.text: =’ ‘;  

end;

-          жобаны іске қосу. (Run-Run, немесе F9);

-          бағдарламаны және жобаны өз бумаңда (File - Save as) сақтау.

 

 

 

Әдебиеттер тізімі

 

1.     Информатика. Базовый курс. Под ред. Симоновича. - С-Пб.: Питер, 1999

2.     Фигурнов В.Э.IBM PC для пользователя. - М.: ИНФРА-М, 1998

3.     Анин Б. Защита компьютерной информации. - С -Пб.: 2000

4.     Бобровский. С Delphi 5. - С-Пб.: Питер, 2001

5.     Мейер Д Теория реляционных БД. - М.: Мир, 1987

6.     Свириденко С.С. Современные информационные технологии. - М.: Мир, 2000

7.     Николь Н., Альбрехт Р. Электронные таблицы. - М.: Мир,1999

8.     Жуков А. Изучаем Delphi.   М.: Питер, 2002

9.     Федоренко Ю. Алгоритмы и программы на Турбо Паскаль. - С-Пб.: Питер, 2001

10.                        Культин Н. Программирование в Delphi - С-Пб.: изд. «БХВ», 1998

11.                        Стив Тейксейра, Ксавье Пачеко  Borland Delphi. – М.: изд. «Вильямс», 2003

12.                        Синтес  А. Объектно-ориентированное программирование. - М.: изд. «Вильямс», 2002

13.                        Архангельский  А.Я. Программирование в Delphi.- М.: изд. «Бином», 2003

14.                        Керман Митчелл Программирование и отладка в Delphi.- М.: изд. «Вильямс», 2002

15.                        Кандзюба С.П., Громов В.Н., Delphi. Базы данных. - М.: изд. «Диа софт», 2001

16.                        Бобровский. С Delphi. Учебный курс. - С-Пб.: изд. «Питер», 2003

 

 

 

       2005  ж. жиындық жоспары, реті 22

 

 

Сүйебаева Ләйлә Біләлқызы

Ақтаева Әлкен Өмірбекқызы

 

 

 

DELPHI ОРТАСЫНДА НЫСАНДЫҚ БАҒДАРЛАМАЛАУ

Лабораториялық жұмыстарды орындауға арналған әдістемелік нұсқаулар

 (барлық мамандықтың студенттері үшін)

 

 

 

Редакторы Ж.А. Байбураева 

 

 

 

Басуға қол қойылады __. __. __.                                       Қалпы 60х84  1/ 16

Басылымы  50 экз.                                                  №1 типографиялық қағаз

 Көлемі 2.3. оқу-баспа табағы                                    Тапсырыс ___бағасы  74    

 

 

 

Алматы энергетика және байланыс институтының

көшірмелі-көбейткіш бюросы

480013 Алматы, Байтұрсынов, 126