Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
нурдәулет.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2.02 Mб
Скачать

2.3 Жиындарға арналған есептер

Жиын – шектелген, алайда реттелмеген бір типті элементтер. Жиын термині программалауда оның математикалық түсінігімен тепе – тең қолданылады. Жиынға бiр ғана ат қойылады.  Жиындар типiн баяндау.  Жиын типi Set, of – түйiндi сөзiмен, одан кейiн жиынды айқындайтын негiзгi типiмен баяндалады;  Var бөлiмiнде: Var жиын_аты: Set of негiзгi_тип;  Мысалы: Var c: set of char;  Type бөлiмiнде: Type  Тип_атауы = set of негiзгi_тип;  Var жиын_аты: тип_аты;  Мысалы: Type A=set of негiзгi_тип;  Жиынның айнымалысы мен тұрақтыларының мәндерi программаның нұсқаулар бөлiгінде конструктор көмегiмен жазылады. Конструктор деген квадрат жақшаға алынған барлық элементтердiң тiзiмi.  Мысалы: A1:=[1,3,5,25];  B1:=[ ]; {бос жиын};  C1:=[ ‘A‘,‘B‘,‘D‘];  Фигура:=[круг, ромб, квадрат]; 

Жиынның негiзгi типi ретiнде – кез келген қарапайым типiн қолдануға болады, бiрақ нақты сандар (real) типiн пайдалануға болмайды. Жиынның негiзгi типiне, бүтiн сандар (integer) типiнiң шектелген типiмен де анықтауға болады. Жиын элементтерiнiң саны – Паскаль тiлiнiң нұсқауымен анықталады. Ал жалпы элементтерiнiң саны: 64 пен 256 арасында. Жиындар элементтерi үтiр арқылы бөлектенiп, квадрат жақшаға алынып жазылады. Бос жиынды элементi көрсетiлген квадрат жақшаға алып белгiлейдi. Бос жиын бiреу және ол жиындардың кез келген типтерiне жатады. 

5 тапсырма

10.11. n бүтін саны және n элементтен тұратын жиын берілген. Осы жиындағы соңғы экстремальды (яғни, минимум немесе максимум) элементтің нөмірін шығару керек.

program MinMax11;

var

i,N,Ni,Min,Max,MinNum,MaxNum:Integer;

begin

Write('N:');

Readln(N);

for i:=1 to N do

begin

Write(i,'элемент:');

Readln(Ni);

if i=1 then

begin

Min:=Ni;

Max:=Ni;

MinNum:=i;

MaxNum:=i;

end;

if Ni<=Min then

begin

Min:=Ni;

MinNum:=i;

end;

if Ni>=Max then

begin

Max:=Ni;

MaxNum:=i;

end;

end.

6 тапсырма

10.30. n бүтін саны және n элементтен тұратын жиын берілген. Осы жиындағы қатар орналасқан максимум элементтердің минимум санын табу керек.

program Minmax30;

var

N,i,Ni,Nmax,Num,MinNum:Integer;

Begin

Num:=0;

Write('N:');

Readln(N);

MinNum:=N;

for i:=1 to N do

begin

Write(i,'санды енгиз:');

Readln(Ni);

if (i=1) or (Ni>Nmax) then

begin

Nmax:=Ni;

Num:=0;

MinNum:=N;

end;

if Ni=Nmax then inc(Num)

else

begin

if Num<MinNum then MinNum:=Num;

num=0;

end;

end;

if (Num<MinNum) and (ni==nmax) then MinNum:=Num;

Writeln(MinNum);

end.

2.4 Бір өлшемді массивке арналған есептер

Массив дегеніміз — реттелген біртекті елементтердің жиыны.  Паскальтілінде жеке — дара мәліметтермен қатар, қандай да бір жүйеде жиналыстырылған олардың топтары да қарастыруға болады. Осындай топтардың бірі – құрылымдық типі ARRAY (массив) мәліметтері.Массив дегеніміз – бі типті шамалардың реттелген белгілі бір тобы. Масивке кіретін айнымалыларды миассивтің элементтері дейді, олардың саны сипаттама бөлімінде жарияланып анықталады да, программаның орындалау барысында өзгермейді. Массив элементтерінің типі файлдан басқа кез келген (бүтін, нақты, символдық, жолдық, масивтік т.б.) типі бола алады.Массив тұтасымен бір атпен аталады, ал элементтерінің реті индекс арқылы көрсетіледі. Индекс массивтің идентификаторынан соң тік жақшаға алынып жазылады, мысалға: a[1], a[2], a[3], … ,a[i], …, a[n]. Массивтің типін анықтау үшін Array …of (…тұратын массив) қызметші сөздері қолданылады. Массив алдын ала типтерді сипаттайтын Type тарауында жарияланады немесе айнымалыларVar тарауында аталады.Жазылуының жалпы түрі:  Type  <массив аты >=array[<индекстер типі>]: of<элементтер типі>;  var  <айнымалылар>: <типтің аты>;  мұндағы: индекстер типі – 1-индекс, 2-индекс, …  элементтер типі – массивті құрайтын негізгі элементтердің типі.  Немесе массив айнымалылар тарауында анықталуы:  Var  <массив аты >: array[<индекстер типі>]: of<элементтердің типі>;

7 тапсырма

11.13. n (n–тақ сан) өлшемді а массиві берілген. Оның тақ нөмірлі элементтерін индекстерінің кему реті бойынша шығару керек: an, an-2, an-4, … Тармақталу операторы қолданылмасын.

var

a:array[1..10] of integer;

N,i:Integer;

begin

Write('N:');

Readln(N);

for i:=1 to N do

begin

write(i,' :');

readln(a[i]);

end;

i:=N;

While (i>=1) do

begin

writeln(i,' : ',a[i]);

i:=i-2;

end;

end.

8 тапсырма

11.25. Нөлдік емес бүтін n элементтен тұратын а массиві берілген. Оның элементтері геометриялық прогрессия құратынын тексеру керек (11.4-есепті қараңыз). Егер құраса – прогрессияның бөлімі, құрамаса – 0 саны шығарылсын.

program Array25;

var

a:array[1..10] of integer;

N,i:Integer;

znam:Real;

begin

Write('N: ');

Readln(N);

for i:=1 to N do

begin

write(i,' :');

readln(a[i]);

end;

znam:=a[2]/a[1];

for i:=2 to N do if znam <> a[i]/a[i-1] then znam:=0;

Writeln (znam);

end.

2.5 Екі өлшемді массивке арналған есептер Көп өлшемді массивтер бірден артық өлшемге ие. Көбінесе кесте түрінде ұсынылатын, екі өлшемді массивтер қолданылады. Мұндай массивтің әрбір элементінің екі индексі болады, біріншісі жол нөмерін, екіншісі – баған нөмерін анықтайды (жол мен бағандар қиылысында орналасқан элемент). Жолдар мен бағандарды нөмірлеу нөлден басталады. Екі өлшемді массивті ұсынылған әдістердің біреуімен жариялауға болады: 

тип [, ] массив_аты;  тип [, ] массив_аты = new тип [1-ші өлшем, 2-ші өлшем];  тип [, ] массив_аты =  {{1-ші жолдың элементтері},  {n-ші жолдың элементтері}};  тип [, ] массив_аты = new тип [, ]  {{1-ші жолдың элементтері },  { n-ші жолдың элементтері }};  Екі өлшемді массивтерде жол мен бағанның қиылысуында орналасқан әрбірэлементтіңорнысолжолжәне баған номеріменанықталады. Сондықтан екі өлшемді массивті сипаттау үшін екі индекс қолданылады. Массивтің элементін жазу кезінде индекстер массивтің атынан соң тік жақша ішіне жазылады және олардың арасына үтір қойылады.  Екі өлшемді немесе көп өлшемді массивтермен жұмыс істеу үшін, олар сипаттау бөлімінде көрсетілуі тиіс.  Екі өлшемді массивті var бөлімінде сипаттаудың жалпы түрі:  Var массив атауы: массив типінің атауы;  Екі өлшемді миассивті type бөлімінде сипаттаудың жалпы түрі: type

9 тапсырма

12.9. m´n өлшемді матрица берілген. Матрицаның жұп нөмірлі (2,4,…) қатарларындағы элементтерін шығару керек. Элементтер қатарлар бойынша шығарылсын, тармақталу операторы қолданылмасын.

program Matrix9;

var

a:array [1..10,1..10] of integer;

M, N, i, j:Integer;

begin

Write('N: ');

Readln(N);

Write('M: ');

Readln(M);

for i:=1 to M do

begin

writeln(i,': ');

for j:=1 to N do

begin

Write(j,' : ');

Read(a[i,j]);

end;

end;

i:=0;

while (i<M) do

begin

i:=i+2;

for j:=1 to N do Write(' : ',a[i,j]);

writeln(' : ');

end;

end.

10 тапсырма

12.35. m´n өлшемді бүтін матрица берілген. Оның тек қана тақ сандардан тұратын бағандарының ішіндегі ең біріншісінің нөмірін анықтау керек. Ондай баған табылмаса, баспаға 0 шығарылсын.

program Matrix35;

var

a:array [1..10,1..10] of integer;

Num, M, N, i, j:Integer;

begin

Write('N: ');

Readln(N);

Write('M: ');

Readln(M);

for i:=1 to M do

begin

writeln(i,': ');

for j:=1 to N do

begin

Write(j,' : ');

Read(a[i,j]);

end;

end;

for j:=1 to N do

begin

Num:=0;

for i:=1 to M do

if (a[i,j] mod 2) = 0 then

begin

Num:=Num+1;

end;

if Num=0 then break;

end;

Writeln(j);

End.

.