Пәнінің контенті 5В050111 – Информатика


Begin операторлар бөлімі End



бет11/21
Дата11.10.2023
өлшемі1.1 Mb.
#480348
түріСабақ
1   ...   7   8   9   10   11   12   13   14   ...   21
Олимпиада есептер3н шешу 2д3стер3

Begin
операторлар бөлімі
End;
Формальды параметрлер деп процедура ішінде қолданылатын және процедураны әр шақырғанда әртүрлі бастапқы және соңғы мәнге ие болатын айнымалыларды атайды.
Программаның процедура бөліміндегі негізгі программаға қатысы жоқ айнымалы жергілікті айнымалы деп аталады. Олар процедурадан шығу кезінде жойылып кетеді. Жергілікті айнымалылар процедураның VAR бөлімінде сипатталуы тиіс.
Негізгі программаның қажетті жерінде процедураны шақыру операторы орналасады.
Процедураны шақыру операторының жазылу үлгісі:
Процедура аты (нақты параметрлер тізімі);
Процедураны қолдана отырып бірнеше нәтиже алуға болады. Бір ғана функция мәнін есептейтін ішкі программаны Паскальда функция деп атайды.
Функцияның жазылуының жалпы түрі:


FUNCTION функция аты (формальды параметрлер аты:типі):нәтиженің типі;
begin
функция денесінің операторлары
end;
Функция нәтижесі функция атымен бірдей болуы керек.
Функцияны шақыру операторының жазылу үлгісі:
Нәтиже:=функция аты (нақты параметрлер);
Рекурсия деп процедураның орындалу барысында өзіне-өзі сілтеу жасауды жүзеге асыратын есептеу процесін ұйымдастыруды айтады.
Мұндай сілтеу шексіз қайталанбауы үшін ішкі программа мәтінінде ол орындалғанда сілтеуді болдырмайтын қандай да бір шарт орналасуы керек.
Рекурсивті процедура мен функцияны қолдану мысалдары:
1. Берілген санның цифрларының қосындысын табу процедурасын қолданып, барлық үш таңбалы сандардың ішінен цифрларының қосындысы берілген N- ге тең сандарды шығарыңдар.
Мыс: N=5
Жауабы:104, 212,113,203, 410, 401,500.
2. Екі натурал санның ЕҮОБ табу процедурасын қолданып, берілген N санның ең үлкен ортақ бөлгішін табыңдар.
Ішкі программаны қолдану мысалына олимпиада есебін қарастырайық: Бірнеше әр түрлі сомадағы ақшалар берілген. Берілген натурал санды берілген ақшалар сомалары арқылы қалай өрнектеуге болады?
Мысалы: Кіріс файлы 514 {берілген сан- s}
2 {ақша саны- n1}
3 {өсу ретімен берілген ақша сомасы
а-массиві}
5
(514 санын 3 және 5 сом 2 түрлі ақша сомасымен қалайша өрнектеуге болады?)
Шығыс файлы 3
101
(Жауабы:3 сомдықтан үшеу және 5 сомдықтан 101, яғни 514=3*3+5*101)
Есептің Turbo Pascal тіліндегі программасы:
Program Moneta;
Var s,I,n,n1,k,l,l1:integer; a:array[1..100] of integer; label 10;
Procedure NOD (q,v:integer;var h:integer);
Begin while q<>v do
If q>v then q:=q-v elsr v:=v=q;h:=q;end; {ең үлкен ортақ бөлгішті
табу процедурасы}
begin readln(s);readln(n1); for i:=1 to n1 do readln(a[i]); NOD(a[1],a[2],l1); for i:=1 to n1-1 do NOD(a[i],l1,l); n:=s div a[n1];
Repeat
if n<=0 then begin write(‘no’);Goto 10; end; k:=s-n*a[n1]-l1;
if k mod l=0 then begin i:=i-1;l:= k div a[i]; l1:=a[i]; writeln)(l); end else n:=n-1;end;
Untili<=1
Writeln(n)
10: end.




Достарыңызбен бөлісу:
1   ...   7   8   9   10   11   12   13   14   ...   21




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет