Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Bakit-pasсал-лек.doc
Скачиваний:
45
Добавлен:
01.05.2015
Размер:
665.6 Кб
Скачать

1. Бір өлшемді массивтер

Массив – бұл бір атауға ие болатын және оперативті жадының ұяшықтарында тізбектей орналасатын бір типтегі элементтердің жиынтығы. Паскаль тіліндегі массив индекспен анықталатын, алдын-ала белгілі бір типтегі компоненттерден тұрады. Массив бір өлшемді немесе көп өлшемді болуы мүмкін. Массивтің типін (түрін) көрсету үшін array қызметші сөзі қолданылады. Бұл сөзден соң массив компоненттерінің типі көрсетіледі.

Массив типін сипаттау құрылымының жалпы түрі:

array <өлшемі> of <типтің аталуы>

Массивтің өлшемін (элементтерінің санын) аралық (диапозон) түрінде немесе мәліметтердің саналатын типінің аталуы түрінде береді.

Массивті type-типтерді сипаттау бөлімінде, const-тұрақтылар бөлімінде немесе var-айнымалыларды сипаттау бөлімінде сипаттауға болады. Массивтердің атын және массив айнымалыларын бағдарламалаушы өзі береді.

Мысалы бір өлшемді он бүтін сандардан тұратын массивтің типін былай көрсетуге болады:

type

mas = array [1…10] of integer;

var

m1 : mas;

Осы типті сәйкес айнымалыларды анықтау барысында былай беруге болады:

var

m1 : array [1…10] of integer;

Бір өлшемді массивтерді өңдеуге бірнеше мысалдар қарастырайық.

1-есеп. Сандық массив берілген. Ең үлкен санды табыңдар. Егер мұндай сан бірнешеу болса, олардың санын анықтаңдар.

program prog_1;

const m=100;

var mas : array[1..m] of integer;

i, max, k, n : integer;

begin

write(' Массивтің өлшемін енгізіңдер n=');

readln(n);

write('Массив элементтерін енгізіңдер');

readln(mas[1]);

max := mas[1]; k:=1;

for і:= 2 to n do begin

write('Массив элементтерін енгізіңдер');

readln(mas[і]);

if max<mas[і] then begin

max :=mas[і]; k:= 1 end

else

if max = mas[і] then k:=k+1;

end;

writeln('max=', max, 'мұндай элементтер саны-', k)

end.

Есепті шешу алгоритмі:

1. Бағдарлама денесін айнымалыларды сипаттаудан бастаймыз.

2. Массивтің ұзындығы n-ді, массивтің элементтерін енгіземіз және бірінші санды max-нің алғашқы мәні ретінде меншіктейміз.

3. Әрбір элементті тексеріп қараймыз, егер массивтің келесі бір элементі max-тан үлкен болса, соны max:= mas[і] және k:=1 қайта меншіктейміз.

4. Егер mas[і]=max болса, онда k-нің мәнін бірге арттырамыз.

  1. Нәтижені шығарамыз.

Айнымалылар:

mas-сандар массиві;

n-массив өлшемі;

i-цикл айнымалысы;

max-ең үлкен элемент мәні;

k-ең үлкен элементтер саны.

2-есеп. Сандық массив берілген. Осы массивтегі ең үлкен элементті табыңдар және оны бірінші орынға орналастырыңдар.

program prog_3;

const m=100;

var mas : array[1..m] of integer;

i, k, new, n : integer;

begin

write ('Массивтің өдшемін енгізіңдер n=');

readln(n);

write('Массивтің’ , n, ' элементтерін енгізіңдер');

for i:= 1 to n do

read(mas[i]);

writeln;

new := mas[n];

k:=n;

for i:= n downto 1 do

if mas[i] >new then begin

k:=i;

new := mas[i] end;

mas [k] := mas [1];

mas [1] := new;

for i:= 1 to n do

write(mas[i] :4);

writeln

end.

Есепті шешу алгоритмі:

1. Бағдарлама денесін айнымалыларды сипаттаудан бастаймыз.

2. Массивтің ұзындығы n–ді, массивтің элементтерін енгіземіз.

3. Ретпен солдан оңға қарай массивтің әрбір элементін тексереміз, үлкен элементін new := mas[i] табамыз және оның рет номерін есте сақтаймыз.

4. Табылған элемент пен бірінші элементтің орнын алмастырамыз.

5. Нәтижені шығарамыз.

Айнымалылар:

mas-сандар массиві;

n-массив өлшемі;

і- цикл айнымалысы

к- үлкен элементтің рет номері.

new -ең үлкен элемент мәні.

3-есеп. Сандық массив берілген. Осы массивті кему реті бойынша орналастырыңдар.

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

1. Ең үлкен элементті табамыз.

2. Оны бірінші элементпен алмастырамыз.

3. Осы процесті жалғыз ең кіші элемент қалғанша n-1, n-2 және т.б. элементтер үшін қайталаймыз.

program prog_4;

const m=100;

var mas : array[1…m] of integer;

i, j, k, new, n : integer;

begin

write ('Массивтің өлшемін енгізіңдер =');

readln (n);

write ('Массивтің', n, 'элементін енгізіңдер');

for i:= 1 to n do

read(mas[i]);

writeln;

for j:=1 to n-1 do begin

new := mas[n];

k :=n;

for i:= n downto j do

if mas[i] > new then begin

k:= i;

new := mas[i] end;

mas[k] := mas[j];

mas[j] := new;

end;

for i:= 1 to n do

write(mas[i] : 4);

writeln

end.

Есепті шешу алгоритмі:

1. Бағдарлама денесін айнымалыларды сипаттаудан бастаймыз.

2. Массивтің ұзындығы n–ді, массивтің элементтерін енгіземіз.

3. Ретпен солдан оңға қарай массивтің әрбір элементін тексереміз, ең үлкен элементін new := mas[i] табамыз және оның рет номерін k := i есте сақтаймыз.

4.Табылған элемент пен бірінші элементтің орнын алмастырамыз.

5. Нәтижені шығарамыз.

Айнымалылар:

mas-сандар массиві;

n-массив өлшемі;

i, j -цикл айнымалылары;

к-үлкен элементтің рет номері;

new -ең үлкен элемент мәні.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]