- •Қазақстан республикасының білім және ғылым министрлігі
- •«Информатика» пәнінің Бағдарламалау бөлімінен дәрістерге арналған
- •1. Бағдарламалау жүйелері туралы жалпы мағлұмат.
- •Есептi эем-де шығарудың негiзгi кезеңдерi
- •2. Turbo Pasсal бағдарламалау жүйесі
- •Turbo Pascal бағдарламалау ортасында жұмыс істеудің негізгі кезеңдерін қарастырайық:
- •3. Паскаль бағдарламасының құрылымы
- •4. Бағдарламалау жүйесінің негізгі компоненттері. Парадигмалары. Классификациясы.
- •3. Айнымалының алдын-ала анықталған қарапайым типтері
- •1. Шартты оператордың жалпы түрі:
- •1. Параметрлі қайталау операторы (for).
- •2. Циклдік оператордың for-downto түрі
- •1. Шартты алдын-ала тексеру арқылы қайталау жарлығы
- •Шартты соңында тексеру арқылы қайталау жарлығы
- •1. Бір өлшемді массивтер
- •2. Көп (екі) өлшемді массивтер
- •1. Жолдар.
- •2. Стандартты функциялар
- •1. Процедуралар
- •2. Функциялар.
- •1. Мәтіндік файлдар
- •2. Типтік файлдар
- •3.Типтік емес файлдар
- •Рекурсивті деректердің типтері. Байланысқан тізімдер. Стектер. Кезектер. Деректер. Ағаштар. Екілік ағаштардың негізгі амалдары. Жадының динамикалық бөлінуі. Көрсеткіштер.
- •Адрес және сiлтеме.
- •Дк жадысында үйменiң орналасуы
- •Динамикалық жадымен жұмыс атқаратын процедуралар мен функциялар:
- •Пайдаланылған әдебиеттер
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-нің мәнін бірге арттырамыз.
Нәтижені шығарамыз.
Айнымалылар:
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 -ең үлкен элемент мәні.
