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

Оператордың жалпы түрі:

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.

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

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

  2. Натурал сан енгіземіз.

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.

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

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

  2. Натурал сан енгіземіз.

  3. Параметрі і циклде n/2-ден артпайтын натурал сандарды анықтаймыз.

  4. Егер мұндай сан бөлгіш болса, онда 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 сандарының бөлгіші болатындығына тексереміз.

  1. 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 айнымалысында сақтаймыз.

  1. 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-лекция. Айнымалының алдын ала анықталған құрылымдық типтері.

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