Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Параметрлер - массивтар және параметрлер – жол



Айнымалы қоңырдың iшкi программаның үстiрт параметрлерiнiң тiзiмдерiндегi хабарлауы олардың сипаттамалар бөлiмiндегi хабарлаудан айнымалы айырмашылығы ретiнде әсер орын ала алады. Шындығында, екi жағдайларға көп ортақ, бiрақ бұл бiрi маңызды айырмашылық: үстiрт параметрлердiң тiзiмiндегi кез келген параметрдiң түрiмен тек қана үйреншiктi немесе бұрын жариялалған түр бола алады. Мысалы, сондықтан келесi процедураны жариялауға болмайды:

Procedure S (a: array [1..10] of Real);

үстiрт параметрлердiң тiзiмiнде өйткенi массивтың индекстерiн шекара көрсетушi түрін iс жүзiнде жариялайды.

Егер бiз массивтың қандай болса да элементi тапсырғыларымыз келсе, онда оның түрi бастапқы сипаттауы керек, бiрақ егер барлық массивтің iшкi программаларына берiлсе, онда пайда болмайтын мәселелер. Мысалы:

Type

atype = array [1..10]of Real;

Procedure S (a: atype);

.......

Жол iс жүзiнде өзiндiк массивпен, iшкi программаға оның берiлуi болып табылып ұқсас түр iске асатындығы:

type

intype = String [15];

outype = String [30];

Function St (s: intype): outype;.......

Тапсырма 1

1. N, m ның терiс емес бүтiн сандары берiлген A(n, m) есептеу,

Мұнда m+1, егер n=0,

A(n,m)=A(n-1,1), егер n<>0,m=0,

A(n-1,A(n,m-1)),если n>0,m>0

Рекурсивті процедураны қолданыңдар.

2. Белгілердің тап қалған жолы бойынша бүтiн санның мәнiнiң есептеуiн процедураны құрыңдар, он алтылық есептеу жүйесiнде санның болатын жазу.

3. s,t сандары берілген. f(t,-2s,1.17)+f(2.2,t,s-t) алыңдар,

онда f(a,b,c)=2a-b-sin c/5+|c|.

4. s,t нақты сандары берілген. g(1.2,s)+g(t,s)-g(2s-1,s*t) алыңдар,

онда g(a,b)=a^2+b^2/a^2+2ab+3b^2+4.

5. x нақты сан берілген. 1.7*t(0.25)+2*t(1+x)/6-t(x^2-1) алыңдар,

онда t(a)=(a^2k+1/(2k+1)!), a^2k/(2k)!.

6. a,b,c сандары берілген. max(a,b+a)+max(a,b+c)/1+max(a+b*c,1.15) алыңдар.

7. a,b сандары берілген. u=min(a,b),v=min(ab,a+b),min(u+v^2,3.14) алыңдар.

8. a0,...,a6 сандары берілген. x=1,2,3 үшін p(x+1)-p(x) мағынасын алыңдар,

онда p(y)=a6*y^6+a5*y^5+...+a0.

9. s,t,a0,...,a12 сандары берілген. p(1)-p(t)+p^2(s-t)-p^3(1) алыңдар,

онда p(x)=a12x^12+a11x^11+...+a0.

10. A1...an сандарының тiзбегiнде барлық мүшелердi алмастырады келесi 0-шi мән ең үлкен процедураны жазыңдар.

11. Ереже бойынша сандарының тiзбегiн өзгертетiн iшкi программаны жазу: Егер а1...аn тiзбек k-ның мәнi бар бiр де бiр мүше жоқ болса, онда ең кiшi мүшені k-ға алмастырыңдар. Басқа жағдайда өзгерiссiз қалдырыңдар.

12. a,b,c,d сандары берілген. Егер мұндай үшбұрыш бар болса бұл сандардың әрбiр үшi үшiн тiк төртбұрыштың ауданын анықтайтын процедураны сипаттаңдар.

13. M*n өлшемді үш матрица, олардың iшiнен басып шығаруға жолдардың үлкеннөлдерін

14. (x, y) орын ауыстыру x сөзiнiң бедербелгiсi қайта орнықтыруға бола тексеретiн логикалық функциядан y сөзiн алуға болатындығын сипаттаңдар.

15. Ереже бойынша төрт жолдан екi жол құрастыратын процедураны сипаттаңдар: (x,y,a,b)

a. x=(a1,a2,...,a8,x9,x10,...,x20);

b. y=(y1,y2,...,y5,b1,...,b6,y12,...,y20).

16. Екi векторлардың шығармасын есептейтiн процедураны сипаттаңдар.

17. А матрицасында n*n өлшемiді максимал элементiн және А (1, 1) элементтiң орындарымен өзгерген процедураны сипаттаңдар.

18. S циклдiк векторының элементтерiн k позициясынан солға қозғалтатын iшкi программаны сипаттаңдар.

19. n,m натуралды сан берілген. НОД рекурсивті процедураның есептеуін қолдана НОД(n,m) табыңдар.

20. n*m өлшемді матрица, (жолдағы максимал элементiнiң анықтауын iшкi программаны қолданылу) әрбiр жолдың максимал элементтерiнiң сомасын табатын iшкi программаны сипаттаңдар.

21. Барлық нөлдер бiрлiкпен нөлдердiң барлық бiрлiктiң Белгілерының бастапқы жол алмастыратын процедураны құраңдар. Алмастыру жолдың тап қалған позициясынан бастай орындалу тиiстi.

22. Бiрiншi тап қалған жол және екiншi тап қалған жол тәуелдi барлық Белгілер алып тастайтын процедураны құраңдар.

23. Ереже бойынша сандарының тап қалған тiзбегiн өзгертетiн iшкi программаны сипаттаңдар: бастапқыда теріс сандар iске аспай қалады, содан соң осы тiзбектiң барлық оң сандары.

24. Егер ол тапсырған нышан falseның әрiбi болып табылса, true-дың мәнiн қайтаратын iшкi программаны құрыңдар, және басқа жағдайда.

Кейбір бағдарламаларда қолдануға болатын ішкі программалар:

1.program z7; {Ариф.ортаны анықтайтын бағдарламаны құрастыру.Массив а }

uses crt;

var a: array [1..10] of integer;

s: real;

sum,n,i: integer;

begin

clrscr;

write('n=');readln(n);

for i:=1 to n do

begin

write('a[',i,']=');

readln(a[i]);

end;

sum:=0;

for i:=1 to n do

sum:=sum+a[i];

s:=sum/n;

writeln('ср ариф= ',s);

2.program z9;

uses crt; { n сандарының факториалын шығаратын программа құру

Мысалы: 5!=1*2*3*4*5

7!=1*2*3*4*5*6*7 }

var f,n,i: integer;

begin

clrscr;

write('n=');readln(n);

f:=1;

for i:=1 to n do f:=f*i;

write('f=',f);

3.program z24; { Составить программу для определения расстояния от точки (x3;y3) нүктесінен (x1;y1),(x2;y2) нүктелеріне түзу сызық арқылы өтетін арақашықтықты анықтау үшін бағдарламаны құру}

uses crt;

var x1,x2,x3,y1,y2,y3,a,b,c,d,t: real;

begin

clrscr;

write('x1=');readln(x1);

write('y1=');readln(y1);

write('x2=');readln(x2);

write('y2=');readln(y2);

write('x3=');readln(x3);

write('y3=');readln(y3);

a:=y2-y1;

b:=x1-x2;

c:=-x1*(y2-y1)+y1*(x2-x1);

t:=sqrt(a*a+b*b);

d:=abs((a*x3+b*y3+c)/t);

write('арақашықтық =',d);

4.program z31; { Жай сан бола ма екендігін анықтайтын бағдарлама құру. }

uses crt;

var a: real;

p: boolean;

i: integer;

begin

clrscr;

write('a=');readln(a);

p:=true;

for i:=2 to trunc(a-1) do

if a/i=trunc(a/i) then p:=false;

if p=true

then write('жай')

else write('күрделі');

5.program z32; { a және b екі саннынан НОД және НОК табылатын бағдарлама құру. }

uses crt;

var a,b,p: real;

nod,nok: real;

begin

clrscr;

write('a=');readln(a);

write('b=');readln(b);

p:=a*b;

while a<>b do

if a>b then a:=a-b

else b:=b-a;

nod:=a;

nok:=p/nod;

writeln('НОД:',a);

write('НОК:',nok);

6.program z38; { Сөйлем берілген. Онда қанша сөз бар екендігін анықтау. }

uses crt;

var tec: string;

l,i,n: longint;

begin

clrscr;

write('мәтінді енгізіңіз:');readln(tec);

l:=length(tec)+1;tec[l]:=' ';

for i:=1 to l do if tec[i]=' 'then n:=n+1;

write('мәтінде ',n,' сөз');

{ Мәтін берілген, "кот" сөзі қанша екендігін анықтау. }

7.uses crt;

var a: string;

i,m,k,n: longint;

begin

clrscr;

write('мәтін енгізіңіз ');readln(a);

k:=0;m:=length(a);

a:=a[m]+' ';

for i:=1 to m do if a[i+2]='кот'then inc(k);

write('мәтінде ',k,' кот сөзі ');

readln;

8.program z45; { n цифрына тең куб қосындысының екі таңбалы санын табу. }

uses crt;

var j,i: integer;

z,n: longint;

begin

clrscr;

write('n=');readln(n);

for j:=1 to 9 do

for i:=1 to 9 do

if i*i*i+j*j*j=n then z:=10*i+j;

write('z=',z);





Дата публикования: 2015-11-01; Прочитано: 1046 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.014 с)...