Сандар теориясы” бөлімінің есептері
Есептерді шығаруға қажетті қосымша мәліметтер:
- Жай сан – 1-ден үлкен және 1 мен өзіне ғана бөлінетін бүтін сан.
- Кемел сан (совершенное число) - өзіне дейінгі бөлгіштерінің қосындысына тең болатын сан (санның өзін қоспағанда).
- Достас сандар - әрқайсысы екіншісінің дұрыс бөлгіштерінің қосындысына тең болатын сандар жұбы.
- Қатар периоды – мәтіннің қайталанатын бөлігі.
Есеп: Берілген санның жай сан болатынын анықтау керек.
Паскальдағы программасы:
var n,i,k: integer;begin writeln ('sandi endir:'); readln (n); k:=0; {=бөлгіштердің санын анықтау=} for i:=1 to Round (n/2) do if n mod i=0 then k:=k+1; if k=2 then writeln (n,' – zhai san') else writeln (n,' – zhai san emes');end.Тест:
Берілгені: | ||
Нәтиже: | 8 – zhai san emes | 11 – zhai san |
Есеп: [a, b] аралығындағы барлық жай сандарды табу керек.
Паскальдағы программасы:
var a,b,n,i,k: integer;begin writeln ('aralyqtin shekaralarin endir:'); readln (a,b); writeln ('zhai sandar:'); for n:=a to b do begin k:=0; {= бөлгіштердің санын анықтау =} for i:=1 to Round (Sqrt(n)) do if n mod i=0 then k:=k+1; if k=2 then write(n);end;end.Тест:
Берілгені: | 10, 100 |
Нәтиже: | 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 |
Есеп: Берілген бүтін сан – кемел сан ба?
Паскальдағы программасы:
var n,i,s: integer;begin writeln ('sandi endir:'); readln (n); s:=0; {==Bolgishter qosyndysyn tabu==} for i:=1 to (n div 2) do if n mod i=0 then s:=s+i; if s=n then writeln ('Kemel san'); else writeln ('Kemel san emes');end.Тест:
Берілгені: | |
Нәтиже: | Kemel san |
Есеп: [a, b] аралығындағы барлық кемел сандарды табу керек.
Паскальдағы программасы:
var a,b,n,i,s: integer;begin writeln ('aralyqtin shekaralarin endir:'); readln (a,b); writeln ('Kemel sandar:'); for n:=a to b do begin s:=0; {==Bolgishter qosyndysyn tabu==} for i:=1 to (n div 2) do if n mod i=0 then s:=s+i; if s=n then write(n,' '); end;end.Тест:
Берілгені: | 0 100 |
Нәтиже: | 6 28 |
Есеп: Берілген екі бүтін сан өзара достас сандар ма?
Паскальдағы программасы:
var n,m,i,s1,s2: integer;begin writeln ('Eki san endir:'); readln (n,m); s1:=0; s2:=0; {=n-di bolgishterdin qosyndysyn tabu=} for i:=1 to (n div 2) do if n mod i=0 then s1:=s1+i; {=m-di bolgishterdin qosyndysyn tabu =} for i:=1 to (m div 2) do if m mod i=0 then s2:=s2+i; if (s2=n) and (s1=m) then writeln ('Sandar ozara dostas') else writeln ('Sandar ozara dostas emes');end.Тест:
Берілгені: | 220 284 |
Нәтиже: | Sandar ozara dostas |
Есеп: Берілген мәтіндегі периодты анықтау керек
Шешу идеясы: алдымен жолдық қатардың ұзындығы k анықталады, сосын k-ның барлық бөлгіштері t табылып, мәтіндегі ұзындығы t -ға тең барлық ішкі мәтіндер өзара салыстырылады.
Паскальдағы программасы:
var n,i,j,k,x,t,period: integer; a:string;begin writeln ('matindi endir:'); readln (a); n:=length(a); for i:=1 to n do begin k:=0; if n mod i=0 then begin t:=n div i; x:=1; for j:=1 to i-1 do begin if copy (a,1,t)=copy(a,x+t,t) then k:=k+1; x:=x+t; end; if k=i-1 then period:=t; end; end; writeln (copy (a, 1, period));end.Тест:
Берілгені: | информатикаинформатикаинформатика |
Нәтиже: | информатика |
Қорытынды (1.2-кесте):
1.2-кесте. | |||
Бейсик | Паскаль | Си | |
Цикл денесіндегі мәні кемімелі х айнымалысының і циклдік параметрдің өспелі мәніне тәуелділігі | for i=1 to nx=n-i+1next | for i:=1 to n dox:=n-i+1; | for(i=1;i<=n;i++) x=n-i+1; |
Еселі болу белгісі | 1. x \ y = x / y2. x mod y =0 | x mod y = 0 | x%y==0 |
Кесінді ұзындығы | sqr ((x1-x2)^2+(y1-y2)^2) | sqrt (sqr(x1-x2)+sqr(y1-y2)) | sqrt(pow(x1- x2,2)+pow(y1-y2,2)) |
Кілттік сөздер (глоссарий)
- Цикл есептеуіші (циклдік параметр) – цикл денесінің орындалу қадамының нөмірін сақтайтын айнымалы.
- Палиндром - солдан оңға және оңнан солға қарай бірдей оқылатын мәтін.
- Еселілік – бір санның екіншісіне қалдықсыз бөлінуі. Pascal тілінде бір санды екіншісіне бөлудің қалдығын mod арифметикалық амалы арқылы анықтайды (Си тілінде – % амалы).
З бетінше орындауға арналған тапсырмалар
Жазықтықтағы дөңес n-бұрыштың төбелерінің координаттары берілген болса, онда олардың координаттар басынан, яғни (0,0) нүктесінен ең алыс орналасқанын табу керек.
Берілген аралықта өзара достас сандар бар ма?
3. n-ге дейінгі бүтін сандардың қосындысын есептеудің жеңіл әдісін қолдануға программа жазу керек. Мысалы, n=9 болса онда 1,2,3,4,5,6,7,8,9 тізбегінің қосындысын былай есептеу анағұрлым жеңіл екені белгілі: 1+9=10, 2+8=10, 3+7=10, 4+6=10. Демек, 4*10+5=45.
Институт фойесінде сусын сататын автомат орналасқан. Оны студенттер мен институт қызметкерлері жиі пайдаланады және ол тек қана 2 теңгелік пен 3 теңгелік тиындарды ғана қабылдайды. Әрине, қажетті сусынды сатып алу үшін үнемі қалтаңда 2-лік пен 3-тік тиындарды алып жүру ыңғайсыз, сондықтан, қажетті тиындарды автоматтың жанында орналасқан қосалқы автоматтан алуға болады. Қосалқы автоматтың Сіз ендірген соманы қалай 2-лік пен 3-тік тиындарға айналдыратынын ойланып көрші. Программасын жаза алатыныңа сенімдімін.