- •Қазақстан республикасының білім және ғылым министрлігі
- •«Информатика» пәнінің Бағдарламалау бөлімінен дәрістерге арналған
- •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ң орналасуы
- •Динамикалық жадымен жұмыс атқаратын процедуралар мен функциялар:
- •Пайдаланылған әдебиеттер
Шартты соңында тексеру арқылы қайталау жарлығы
Оператордың жалпы түрі:
repeat
….
until <шарт>;
Орындалу ережесі: repeat сөзінен кейін жазылған операторлар бір рет орындалады. Шарт жалған болса операторлар қайталанып орындала береді. Шарт ақиқат болғанда ғана тоқтайды, яғни орындалмайды.
3-есеп. N натурал саны берілген. Оның жай сан екендігін анықтаңдар.
program prog_3;
var i, n,f: integer;
begin
repeat
write (' Натурал сан енгізіңдер N=');
readln (n);
until n>0;
f:=0;
for i:=2 to n div 2 do
if n mod i = 0 then f:=i;
if f = 0 then writeln (n : 6, ' жай сан ')
else writeln (n : 6,' жай сан емес ')
end.
Есепті шешу алгоритмі:
Бағдарлама денесін айнымалыларды сипаттаудан бастаймыз.
Натурал сан енгіземіз.
3. 2-ден n/2 аралығындағы натурал сандар n санының бөлгіші бола ма, соны тексереміз.
4. f-тің мәніне байланысты нәтижені шығарамыз.
Айнымалылар:
n-зерттелетін сан;
i-цикл айнымалысы;
f-көмекші айнымалы.
4-есеп. n натурал саны берілген. Оны жай көбейткіштерге жіктеңдер.
program prog_4;
var i, n, f, j : integer;
begin
repeat
write (' Натурал сан енгізіңдер n=');
readln (n);
until n>0;
write (n : 6, '=1');
f :=0; j:=n;
for i: = 2 to n div 2 do
begin
if j mod i = 0 then begin f:=1;
{i көбейткіштердің n санында нешеу екендігін анықтау }
while j mod i = 0 do
begin
write ('*', i);
j:= j div i
end;
end;
{f бірден үлкен жай көбейткіштердің табылғандығын анықтайды}
if f = 0 then writeln ('*', n)
else writeln
end.
Есепті шешу алгоритмі:
Бағдарлама денесін айнымалыларды сипаттаудан бастаймыз.
Натурал сан енгіземіз.
Параметрі і циклде n/2-ден артпайтын натурал сандарды анықтаймыз.
Егер мұндай сан бөлгіш болса, онда n-ді кішірейту арқылы санын анықтаймыз.
5. f-тің мәніне байланысты нәтижені шығарамыз.
Айнымалылар:
n - зерттелетін сан;
i, j - цикл айнымалысы;
f-көмекші айнымалы.
5-есеп. n және m натурал сандары берілген. Олардың өзара жай сандар екендігін анықтаңдар. Өзара жай сандардың 1-ден басқа ортақ бөлгіштері болмайды.
program prog_5;
var i, n, m, k : integer;
f : boolean;
begin
repeat
write ('Натурал сан енгізіңдер n=');
readln (n);
write ('Натурал сан енгізіңдер m=')
readln (m);
until (n>0) and (m>0);
f := false;
if n>m then k := m else k :=n;
for i : = 2 to k do
if (n mod i = 0) and (m mod i =0) then f :=true;
if f then writeln(n,',',m,' өзара жай сандар емес')
else writeln (n ,',', m,' өзара жай сандар')
end.
Есепті шешу алгоритмі:
1. Бағдарлама денесін айнымалыларды сипаттаудан бастаймыз.
2. m, n натурал сандарын енгіземіз.
3. Параметрі i циклде 2-ден бастап ең кіші санға дейінгі сандарды анықтаймыз және әрбір m,n сандарының бөлгіші болатындығына тексереміз.
f-тің мәніне байланысты нәтижені шығарамыз.
Айнымалылар:
m,n- зерттелетін сан;
i- цикл айнымалысы;
f- көмекші айнымалы;
k- m,n сандарының кішісі.
6-есеп. n және m натурал сандары берілген. Олардың ең үлкен ортақ бөлгішін табыңдар.
program prog_6;
var I, n, m, k, d : integer;
begin
repeat
write (' Натурал сан енгізіңдер n=');
readln (n)
write (' Натурал сан енгізіңдер m=');
readln (m)
until (n>0) and (m>0);
if n>m then k :=m else k :=n;
for i := 1 to k do
if (n mod i = 0) and (m mod i=0) then d :=i;
writeln ('n,m сандарының ең үлкен ортақ бөлгіші =', d)
end.
Есепті шешу алгоритмі:
1. Бағдарлама денесін айнымалыларды сипаттаудан бастаймыз.
2. m, n натурал сандарын енгіземіз.
3. Параметрі i циклде 1-ден бастап ең кіші санға дейінгі сандарды анықтаймыз және олардың әрқайсысы бір мезгілде m, n сандарының бөлгіші болатындығына тексереміз.
4. Осы бөлгішті d айнымалысында сақтаймыз.
5. Нәтижені шығарамыз.
Айнымалылар:
m, n – зерттелетін сан;
i- цикл айнымалысы;
d-ең үлкен ортақ бөлгіш;
k- m,n сандарының кішісі.
7-есеп. n және m натурал сандары берілген. Олардың ең кіші ортақ еселігін табыңдар.
program prog_7;
var i, n, m, k, d, ekoe : integer;
begin
repeat
write ('Натурал сан енгізіңдер n=');
readln (n);
write ('Натурал сан енгізіңдер m=');
readln (m);
until (n>0) and (m>0);
if n>m then k :=m else K:=n;
for i:= 1 to k do
if (n mod i =0) and (m mod i =0) then d:=i;
ekoe :=d*(n div d)*(m div d);
writeln ('n,m сандарының ең кіші ортақ еселігі')
writeln('ekoe =', ekoe)
end.
Есепті шешу алгоритмі:
1. Бағдарлама денесін айнымалыларды сипаттаудан бастаймыз.
2. m, n натурал сандарын енгіземіз.
3. Параметрі і циклде 1-ден бастап ең кіші санға дейінгі сандарды анықтаймыз және олардың әрқайсысы бірмезгілде m,n сандарының бөлгіші болатындығына тексереміз.
4. Осы бөлгішті d айнымалысында сақтаймыз.
ekoe := d*(n div d)*(m div d); екендігін ескеріп нәтижені шығарамыз.
Айнымалылар:
m, n -зерттелетін сан;
і-цикл айнымалысы;
d -ең үлкен ортақ бөлгіш;
екое- ең кіші ортақ еселік;
к – m,n сандарының кішісі.
8-есеп. Мына қатардың алғашқы N мүшесінің қосындысын табыңдар:
y = 1++++….., мұндағы x – кез-келген сан.
program prog_8;
var x, y, z : real; i, n : integer;
begin
write(‘x-тің мәнін енгізіңдер=’);
readln(x);
write(‘Қатардың мүшелерінің санын енгізіңдер n=’)
readln (n);
y := 1; z := 1;
for і := 1 to n-1 do
begin
z :=z*x;
y:=y+z(i+1)
end;
writeln(‘y =’, y)
end.
Есепті шешу алгоритмі:
1. Бағдарлама денесін айнымалыларды сипаттаудан бастаймыз.
2. Қатардың мүшелерінің санын N және x айнымалыны енгіземіз.
3. Циклде қатардың келесі санын анықтаймыз және оны қосындыға қосамыз.
4. Нәтижені шығарамыз.
Айнымалылар:
n-қатардың мүшелерінің саны;
x-қатардың айнымалысы;
d-ең үлкен ортақ бөлгіш;
ekoe-ең кіші ортақ еселік;
k- m, n сандарының кішісі;
z- қосымша айнымалы;
i- цикл айнымалысы;
y- қатардың қосындысы.
9-есеп. Мына қатардың берілген санынан артық мүшелерінің қосындысын есептеңдер:
y = 1+-+-…, мұндағы |x|<=1
program prog_9;
var x, y, z, e : real:
i : integer:
begin
repeat
write('Қатардың айнымалысы х-тің мәнін енгізіңдер=');
readln(x)
write('Есептеу дәлдігін енгізіңдер e=');
readln(e);
until (abs (x) <= 1) and (e<1) and (e<=x);
y := 1: z:= 1; i :=2;
repeat
z := (z*x*x)/1;
if i mod 2 = 0 then y :=y+z
else y := y-z;
i:=і+1;
until abs(z) <=e;
writeln ('Қатардың қосындысы y=', y);
end.
Есепті шешу алгоритмі:
1. Бағдарлама денесін айнымалыларды сипаттааудан бастаймыз.
2. Есептеу дәлдігі е және х айнымалыны енгіземіз.
3. Циклде қатардың келесі санын анықтаймыз және оның номеріне байланысты у қосындыға қосамыз немесе қосындыдан азайтамыз.
4. Нәтижені шығарамыз.
Айнымалылар:
х-қатардың айнымалысы;
z-қосымша айнымалы;
і-цикл айнымалысы;
у-қатардың қосындысы;
е-есептеу дәлдігі.
10-есеп. Соңы 0 болатын сандар тізбегін енгізіңдер. Осы тізбекте ең болмағанда қатар орналасқан екі бірдей санның бар екендігін анықтаңдар.
program prog_10;
var l, w, real;
f : boolean;
begin
write ('Сан енгіз='); readln (l)
write ('Сан енгіз='); readln (w);
f :=false;
repeat
if w = l then f := true;
l:=w;
write ('Сан енгіз=');
readln (w);
until w = 0;
if f then writeln ('Тізбекте қатар орналасқан тең сандар бар');
else writeln (' Тізбекте қатар орналасқан тең сандар жоқ');
end.
Есепті шешу алгоритмі:
1 Бағдарлама денесін айнымалыларды сипаттаудан бастаймыз.
2. Алғашқы екі санды l және w енгіземіз және f–тің алғашқы мәнін береміз.
3. Циклде осы екі санда тексереміз, егер олар тең болса f–ті анықтаймыз.
4. l :=w мәнін қайта меншіктейміз және w–дің жаңа мәнін енгіземіз.
5. f-ке байланысты нәтижені шығарамыз.
Айнымалылар:
l-алдыңғы сан;
w-қарастырылып отырған сан;
f-қосымша айнымалы.
11-есеп. Соңы 0 болатын нөлдік емес сандар тізбегін енгізіңдер. Осы тізбектің өспелі екендігін анықтаңдар.
program prog_11;
var е, w :real;
f : boolean;
begin
write ('Сан енгіз='); readln (е);
write ('Сан енгіз='); readln (w);
f:= true;
repeat
if w <=е then f :=false;
е:=w;
write ('Сан енгіз=');
readln (w)
until w=0;
if f then writeln (' Тізбек өспелі')
else writeln (' Тізбек өспелі емес')
end.
Есепті шешу алгоритмі:
1. Бағдарлама денесін айнымалыларды сипаттаудан бастаймыз.
2. Алғашқы екі санды е және w енгіземіз және f–тің алғашқы мәнін береміз.
3. Циклде өспелі тізбек мүшелерінің қасиеттерінің бұзылуын іздейміз.
4. е:=w мәнін қайта меншіктейміз және w–дің жаңа мәнін енгіземіз.
5. f–ке байланысты нәтижені шығарамыз.
Айнымалылар:
е-алдыңғы сан;
w-қарастырылып отырған сан;
f-қосымша айнымалы.
12-есеп. Билеттің кезегінде ерлер және әйелдер тұр. Басынан бастап алғашқы әйелге дейін тұрған ер адамның санын анықтаңдар.
program prog_12;
var pol : string;
i, k, n : integer;
begin
repeat
write ('Тізбектің ұзындығын енгізіңдер n=');
readln (n);
until n>0;
k:=0;
for i:=1 to n do
begin
writeln ('Жынысын енгізіңдер');
readln (pol);
if pol ='ер' then k := k+1
else break
end;
if k = 0 then writeln ('Кезектің алдында ерлер жоқ')
else writeln ('Кезектің алдында ерлер саны =', k)
end.
Есепті шешу алгоритмі:
1. Бағдарлама денесін айнымалыларды сипаттаудан бастаймыз.
2. Тізбектің ұзындығын енгіземіз және есептеу үшін к-ның алғашқы мәнін береміз.
3. Циклде адамның жынысын енгіземіз.
4. Егер бұл ер адам болса к-ның мәнін бірге арттырамыз.
5. Әйтпесе циклді break операторы арқылы тоқтатамыз.
6. к-ның мәніне байланысты нәтижені шығарамыз.
Айнымалылар:
к-санау саны;
і-цикл айнымалысы;
n-кезекті адамдардың саны;
f-қосымша айнымалы;
pol-адам жынысы.
6-лекция. Айнымалының алдын ала анықталған құрылымдық типтері.