ОҚу -әдістемелік кешені 5В0070400


№ 3 лабораториялық жұмыс “Бір өлшемді массивтерді қолданып, циклдік құрылымды алгоритмдерді программалау ”



бет8/39
Дата08.06.2018
өлшемі0,84 Mb.
#41429
1   ...   4   5   6   7   8   9   10   11   ...   39

3 лабораториялық жұмыс

“Бір өлшемді массивтерді қолданып, циклдік құрылымды алгоритмдерді программалау ”


Жұмыстың мақсаты:ÝÅÌ-äà æ½ìûñ iñòåó ò¸ñiëäåðiìåí òàíûñó, Ïàñêàëü òiëiíäå ïðîãðàììàëà𠺽ðûï ¾éðåíó.

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

FOR i:=m1 TO m2 DO <оператор>;

немесе


FOR i:=m1 DOWNTO m2 DO <оператор>;

мұндағы i- цикл параметрі

m1 , m2 – цикл параметрінің бастапқы және соңғы мәні

Цикл параметрінің өзгеру қадамы 1 немесе -1. Егер цикл параметрінің мәні өсуіі қажет болса, онда ТО қызметтік сөзі бар құрылым пайдаланылады, ал егер төмендесе DOWNTO қызметтік сөзі қолданылады.

Егер цикл бөлімінде білнеше операто болса, онда программаның циклдік бөлімі операторлық жақшаларға BEGIN…END алынады. Цикл денесі цикл операторының басқаруымен цикл параметрі соңғы мәнге жеткенше орындалады. Массивтерді сипаттау айнымалалар бөлімінде келесі түрде көрсетіледі:

VAR <массив аты>:ARRAY [n…m] OF < элемент типі >

Мұндағы n-массив индексінің бастапқы мәні, m-индекстің соңғы мәні. Осы лабораториялық жұмыста элемент типтері INTEGER и REAL массивтері қолданылады

Массивтерді көрсету мысалдары:

CONST

L=3;


M=5;

VAR


NAME: ARRAY[1..L] OF INTEGER; (‘ NAME атты массивтің сипаттамасы

Индекса типі –шектелген.

Элемент типтері - INTEGER’)

MAS : ARRAY [1..M] OF REAL; (‘Децст,Нақты сандар массивтерін сипаттау.

Индекс типі –шектелген’)

R : ARRAY [1..10] OF INTEGER; (‘Нақты сандар массивтерін сипаттау.

Индекс типі –шектелген’)

Бір өлшемді массивтің элементтері массив атымен және оның соңындағы тік жақшадағы индекспен белгіленеді. Мысалы,

NAME [1], NAME [I+J], MAS [5], MAS [2*1] ; R [I-J*2].

Массив элементтерін енгізу/шығару үшін READ (READLN), WRITE (WRITELN) операторлары қолданылады. Мысалы,

VAR

ALFA : ARRAY [1..10] OF INTEGER;



I : INTEGER;

WRITELN (‘ПРОБЕЛ АРҚЫЛЫ МАССИВ ЭЛЕМЕНТТЕРІН ЕНГІЗІҢІЗ’);

FOR I:=1 TO 10 DO

READ (ALFA[I]);



.

.

БЕРІЛГЕНДЕРДІ ЕНГІЗУ


ПРОБЕЛ АРҚЫЛЫ МАССИВ ЭЛЕМЕНТТЕРІН ЕНГІЗІҢІЗ

7 85 32 4 56 12 47 6 98 71


Мысал. a1,a2, …, a10 сандық тізбектердің элементтерінің қосындысын мына формуламен S=a1+a2+ … +a10 есептеу программасын құрыңыз.

Есепті шешеу үшін циклдік алгоритм қолданамыз. Циклді дайындау қосындының нөлге тең бастапқы мәнін берумен анықталады. Цикл параметрі ретінде мүшелік тізбек нөмірін аламыз. Цикл параметрінің бастапқы мәні 1-ге тең, соңғы мән- мүшелік тізбек саны, цикл қадамы +1. Циклдің аяқталуы цикл параметрлерінің мәні мүшелік тізбек санынан асқанда орындалады.

а1,а2, …, а10 сандық тізбегін А атымен нақты сандар массиві ретінде, ал мүшелер қосындысын - S, массив өлшемін - N, цикл параметрін – I арқылы белгілейміз
Программа:

Program P1;

Const N=10;

A : ARRAY[1 .. N] OF REAL;

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];

WRITELN;


WRITELN (‘Қосынды мәні тең’,S:7:3);

WRITELN (‘ЕСЕПТЕУЛЕР АЯҚТАЛДЫ’);

END.

Программаға түсініктеме: Тұрақтыларды сипаттау бөлімінде айнымалылар бөлімінде сипатталған А массивінің өлшемі берілген. Индекс типі – шектелген. Элемент типтері REAL. Осы бөлімде мына айнымалылар сипатталған: I- цикл параметрі; S- қосынды



А массивінің элементтерін енгізуді ұйымдастыру үшін FOR операторы бар цикл қолданылады. Цикл параметрі ретінде тізбек мүшесінің нөмірі алынған. FOR операторының алдында тұрған WRITELN операторы қолданушы мен машина арасында байланыс ұйымдастыруға арналған. Осы оператор орындалғанда экранға мынадай мәлімет шығады:

ПРОБЕЛ АРҚЫЛЫ МАССИВ ЭЛЕМЕНТТЕРІН ЕНГІЗІҢІЗ

Сандар клавиатурадан пробел арқылы енгізіледі. Тізбек мүшелерінің қосындысын есептеу үшін FOR операторы бар цикл қолданылады. Қосындының бастапқы мәні S:=0 операторымен беріледі. Қосындының келесі мәні S:=S+A[I] операторы орындалғанда жүреді. Циклден шығу цикл параметрінің мәні I>10 болғанда жүреді.
Мысал: а1, а2, …, а15 сандық тізбек элементтерінің үлкенін табу программасын құрыңыз. Баспаға табылған үлкен элементті шығарыңыз.
PROGRAM P2;

CONST N=15; (*А массивінің өлшемі*)

VAR

A : ARRAY[1..N] OF INTEGER; (*А массивін сипаттау*)



AMAX : INTEGER; (*максималды элементті белгілеу*)

PN :INTEGER; (*максималды элементтің тізбектік нөмірі*)

I : INTEGER; (*цикл параметрі*)

BEGIN


WRITELN('ПРОБЕЛ АРҚЫЛЫ 15 САН ЕНГІЗІҢІЗ');

FOR I:=1 TO N DO

READ(A[I]);

AMAX:=A[1]; PN:=1; (*циклге дайындық*)

FOR I:=2 TO N DO (*цикл*)

IF A[I]>AMAX THEN

BEGIN

AMAX:=A[I];



PN:=I;

END;


WRITELN;

WRITELN('А ТІЗБЕГІНІҢ МАКСИМАЛДЫ ЭЛЕМЕНТІ');

WRITELN('A(',PN:2,')=',AMAX:4);

END.
ПРОБЕЛ АРҚЫЛЫ 15 САН ЕНГІЗІҢІЗ


11 2 3 4 5 6 7 8 9 10 11 12 13 14 15
А ТІЗБЕГІНІҢ МАКСИМАЛДЫ ЭЛЕМЕНТІ

A(15)= 15



Есептік тапсырмалар:


  1. Элементтері аn=n/(n+1), n=1,2,…,20 формуласымен анықталатын тізбек құру қажет.

  2. s1, …, …, s15 тізбек элементтерін кері тәртіпте жазу қажет, яғни s15, …, …, s1

  3. {aj}, j=1,2,3,..,8 массивінде минималды элементті табу программасын құру қажет. Есепті мына берілгендер бойынша шығарыңыз:

А) 3,-7,8,10,-75,128,7,10

Б) 100,25,117,18,-25,-5,17,7

4. а1, а2, …, а15 сандық тізбек элементтерінің кішісін табу программасын құрыңыз. Баспаға табылған кіші элементті шығарыңыз.
Ëàáîðàòîðèÿëûº æ½ìûñ òàïñûðìàëàðû:


  1. Ëàáîðàòîðèÿëûº æ½ìûñ ñèïàòòàìàñûìåí òàíûñû»ûç.

  2. Áåðiëãåí òàïñûðìàëàð¹à ïðîãðàììà º½ðûï, åñåïòi (îò÷åò) æàçáàøà ò¾ðäå ¼òêiçi»iç.

Áàºûëàó ñ½ðàºòàðû:

  1. Паскаль тілінде массивтер қалай сипатталады?

  2. Массив элементі қалай берлгіленеді?

  3. FOR операторының қандай жазылу формалары бар?

Лабораториялық жұмыс 1- тапсырмалары

1-кесте


Вариант



Мазмұны

1.



2.




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




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

    Басты бет