program kabisalar (input, output);
var yil: integer {(yil1) and (yil 2000)};
function kabisa (y:integer) : boolean;
агар y йил кабиса булса, функциянинг šиймати true, акс іолда – false булади
begin
read (yil);
if kabisa (yil) then write (КАБИСА)
else write (ОДДИЙ)
end.
Kabisalar дастурида kabisa функция тасвири тўѓри бурчакли тўртбурчак билан алмаштирилган. Масаланинг биринчи ва учинчи ќисми дастурлаштирилди, ќолган ќисмига эса янги масала деб ќараш мумкин. Унинг таърифи тўѓри бурчакли тўртбурчак ичида ёзилган.
Kabisa функцияни тасвирлаш учун ечиш усули – ќоидасини аниќлаб олиш зарур. Бу усул (ќоида) га асосан кабиса йиллари аниќланади:
Асрларни (мисол учун, 1800, 1900, 2000) билдирадиган йиллар сони тўртга бўлинса, у йиллар кабиса йиллар бўлади. Масалан, 2000 йил кабиса йил, чунки 18 ва 19 сонлари 4 га бўлинмайди.
4 га бўлинадиган ќолган ћамма йиллар кабиса йиллари бўлади. Масалан, 1988 йил кабиса, 1987 йил эса кабиса эмас.
Бу ќоидалар ёрдамида функцияни тузамиз:
function kabisa (y:integer) : boolean;
begin
if y mod 100 = 0
then {аср}
if y mod 400 = 0
then kabisa:=true
else kabisa :=false
else {аср эмас}
if mod 4=0
then kabisa:=true
else kabisa:=false
end;
Функцияни дастурдаги тўртбурчак ўрнига ќўямиз:
program kabisalar (input, output);
var yil:integer ((yil 1) and (yil 2000));
function kabisa (y:integer) : boolean;
begin
if y mod 100 = 0
then {аср}
if y mod 400 = 0
then kabisa :=true
else kabisa :=false
Do'stlaringiz bilan baham: |