Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Бердибаева Сымбат.2.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
255 Кб
Скачать
☆

2.3 Көмекші программа арқылы құрылған есептер

Процедурага арналған есептер.

Процедура деп –орындалу барысында бір немесе бірнеше мән болатын көмекші программа.Процедураның сипатталуы:

Procedure P(g1:t1;g2:t2;…var g3:t3);

<жергілікті параметрлер мен көмекші программаларды анықтау және сипаттау бөлімі.>

Begin

O1;

O2;

….

End;

9.8. d цифрын k оң бүтін санының оң шетінен қосып жазатын AddRightDigit(d, k) процедурасын сипаттау керек (d – ену параметрі (0..9 аралығындағы бүтін сан), k – әрі ену, әрі шығу параметрі болатын бүтін шама). Осы процедураны пайдаланып, мәні берілген k санының оң шетіне d1 және d2 цифрлары қосып жазылсын және әр қосылу нәтижесі жеке шығарылсын.

Procedure Addrightdigit(D:integer; var K:integer);

begin

k:=k*10+D

end;

var

K,D1,D2:integer;

begin

write(' K sanin engiz ');

readln(K);

write('D1 sifrin engiz');

readln(D1);

Addrightdigit(D1,K);

writeln(K);

write('D2 sifirin engiz');

readln(D2);

Addrightdigit(D2,K);

writeln(K);

end.

Функцияға арналған есептер.

Функция деп – орындалу барысында бір ғана мән болатын көмекші программа.Функцияның сипатталуы:

Function F(g1:t1;g2:t2;..):T;

<жергілікті параметрлер мен көмекші программаларды анықтау жіне сипаттау бөлімі.>

Begin

P1;

P2;

…

End;

9.29. Оң бүтін k параметріндегі цифрлардың санын анықтауға мүмкіндік беретін DigitCountK(k) функциясын сипаттау керек. Осы функцияны пайдаланып, мәндері берілген бес бүтін элементтің цифрларының саны есе

Function DigitCount(K:integer):integer;

var S:String;

begin

Str(K,S);

DigitCount:=Length(S);

end;

var

i,N: integer;

begin

for i:=1 to 5 do

begin

write('N engiz');

readln(N);

writeln(DigitCount(N));

end;

end.

10.17. n бүтін саны және n элементтен тұратын жиын берілген. Осы жиындағы соңғы максимум элементтен кейін орналасқан элементтер санын анықтау керек.

var

N,Ni,Max,MaxNum,i:integer;

begin

write('N engiz');

readln(N);

for i:=1 to N do

begin

write(i,'san:');

readln(Ni);

if i=1 then

begin

Max:=Ni;

MaxNum:=i;

end;

if Ni>=Max then

begin

Max:=Ni;

MaxNum:=i;

end;

end;

writeln(n-MaxNum);

end.

10.22. n (n>2) бүтін саны және n элементтен тұратын жиын берілген. Осы жиындағы ең кіші екі элементті анықтап, оларды өсу реті бойынша шығару керек.

Var

Min1,Min2,R,Sum:real;

N,i: integer;

begin

Sum:=0;

write('N engiz');

readln(N);

for i:=1 to N do

begin

write(i,'sandi engiz');

readln(R);

if i=1 then

begin

Min1:=R;

Min2:=R;

end;

if R<Min2 then

if R<Min1 then

begin

Min2:=Min1;

Min1:=R;

end

else if R<>Min1 then Min2:=R;

if Min1=Min2 then Min2:=R;

end;

Writeln(Min1,' ',Min2);

end.

2.4 Бір өлшемді массивтерге арналған есептер

Массив деп –бір типті реттелген шамалардың шектелген жиынтығын айтады.Массивтің әрбір элементі массив аты және индекс арқылы анықталады.Егер программада массив қолданылса,онда ол Var айнымалы бөлігінде немесе Type типтер бөлімінде сипатталуы тиіс

11.2. n (n>0) бүтін саны берілген. Мәндері 2-нің 1-ден n-ге дейінгі дәррежелері болатын (2,4,8,16,…) n элементтен тұратын массивті құрып, шығару керек.

var

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

N,i:integer;

begin

write('N engiz');

readln(N);

a[1]:=2;

for i:=2 to N do a[i]:=a[i-1]*2;

for i:=1 to N do writeln(i,' : ',a[i]);

end.

11.26. Бүтін n элементтен тұратын а массиві берілген. Ондағы тақ сандар мен жұп сандардың ауысып отыратынын тексеру керек. Егер ауысып отырса – 0 саны, ауыспаса – осы заңдылықты бұзған бірінші элементтің нөмірі шығарылсын.

Var

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

N,i,temp: integer;

begin

write('N engiz');

readln(n);

FOR I:=1 TO n DO

begin

write(i,'sandi engiz');

readln(a[i]);

end;

Temp:=abs(a[1] mod 2);

i:=2;

while (i<=N) and(temp<> abs(a[i] mod 2)) do

begin

temp:= abs(a[i] mod 2);

inc(i);

end;

if i=N+1 then writeln('0')

else writeln(i);

end.