Function f(n: integer): integer; begin if n> 2 then f: =f(n-1)+g(n-2); else f: =n+1; end; function g(n: integer): integer; begin if n> 2 then g: =g(n-1)+f(n-2); else g: =n; end; чему будет равно значение, вычисленное при выполнении вызова g(7)?
Чтобы заработал этот код надо добавить первой строкой: function G(n:integer):integer;forward; Так как в функции F присутствует вызов функции G, которая описана далее в программе.
function G(n: integer): integer; forward; function F(n: integer): integer; begin if n > 2 then F := F(n - 1) + G(n - 2) else F := 1; end;
function G(n: integer): integer; begin if n > 2 then G := G(n - 1) + F(n - 2) else G := 1; end;
Судя по полагается то , что они играли не зависимо за какую именно . посчитаем сколько вообще было встреч , у команды первой лиги команд в 2 раза больше так как . посчитаем отдельно каждую встречу внутри команд ,и между разными . по первой лиги это число сочетаний по высшей лиги это число сочетаний а между собой очевидно в сумме встреч. если не было ничьи то очевидно одно из двух 1) либо команда проиграет 2) либо команда выиграет число выигрышей и проигрышей будет равна количеству сыгранных игр . то есть если всего у команда побед то пусть количество выигрышей команды первой лиги равна , то другой что бы число делилось на 8 , очевидно что n либо само должно быть кратно 8 , либо должно делится на 8 , подходит при нем все выполняется
Romanf romanf отличник 2013-01-10t16: 13: 22+00: 00 1. подумать над алгоритмом 2. вот сам алгоритм: а. спросить у пользователя значения б. расчитать ответ в. выдать ответ на экран 3. написать код в паскале 4. исправить ошибки компиляции 5. протестировать, вводить разные числа 6. обнаружила, что если вводить числа наугад ответ получается отрицательным иногда 7. вставить код проверки введенных пользователем значений 8. убрать ошибки компиляции 9. протестировать 10. готово а вот и сама программа: program aerobus; uses crt; const totalplace = 160; var businessplaces, economyplaces: integer; businessprice, economyprice: real; totalcharge: real; a,b: integer; correctinput: boolean; begin clrscr; businessplaces: =totalplace div 4; economyplaces: = totalplace - businessplaces; writeln('business places count: ', businessplaces); writeln('economy places count: ', economyplaces); correctinput: =false; while not correctinput do begin write('please input business class ticket price: '); readln(businessprice); if(businessprice> 0) then begin correctinput: =true; end else begin writeln('the price should be a positive number, please try again'); end; end; economyprice: =businessprice/2; writeln('economy ticket price is: ', economyprice: 0: 2); correctinput: =false; while not correctinput do begin write('how many business tickets are left? : '); readln(a); if(a> =0) and (a< =businessplaces)then correctinput: =true; if(a< 0) then begin writeln('please input a positive number or 0, please try again'); end; if(a> businessplaces) then begin writeln('please input a number which is less or equal to the tolal business place count, please try again'); end; end; correctinput: =false; while not correctinput do begin write('how many economy tickets are left? : '); readln(b); if(b> =0) and (b< =economyplaces)then correctinput: =true; if(b< 0) then begin writeln('please input a positive number or 0, please try again'); end; if(b> economyplaces) then begin writeln('please input a number which is less or equal to the tolal economy place count, please try again'); end; end; totalcharge: =(businessplaces-a)*businessprice; totalcharge: =totalcharge+(economyplaces-b)*economyprice; writeln('the total charge is: ', totalcharge: 0: 2); writeln; writeln('press enter to exit'); readln; end.
function G(n:integer):integer;forward;
Так как в функции F присутствует вызов функции G, которая описана далее в программе.
function G(n: integer): integer; forward;
function F(n: integer): integer;
begin
if n > 2 then
F := F(n - 1) + G(n - 2)
else
F := 1;
end;
function G(n: integer): integer;
begin
if n > 2 then
G := G(n - 1) + F(n - 2)
else
G := 1;
end;
begin
writeln(F(7));
end.
ответ: 13