На этом форуме отвечают на конкретные вопросы. Фраза «я не понимаю, как решать» — это не вопрос. На вопрос «как решить задачу №X» вас отошлют к материалам сайта kpolyakov.spb.ru. За бессвязный поток слов и неспособность формулировать свои мысли — бан.

Если у вас не сходится ответ на какую-то задачу, пожалуйста сразу представляйте свое «правильное» решение.
Программы "заворачивайте" в тэг [pre2]...[/pre2], при этом сохраняются все отступы и применяется моноширинный шрифт. Если у вас используется сочетание "[i]" для обозначения элемента массива или строки, ставьте пробел после открывающей скобки. Иначе система выделит все дальнейшее курсивом.

Для регистрации на форуме щелкните по ссылке «Вход-регистрация» вверху страницы. В открывшееся окошко «ник» введите свою фамилию на русском языке (например, Иванов). В окошко «пароль» введите придуманный вами пароль, состоящий из латинских букв и цифр. Поставьте галочку в окошке «зарегистрироваться, я новый участник» и нажмите кнопку «ОК».

АвторСообщение



Сообщение: 1
ссылка на сообщение  Отправлено: 13.11.16 08:08. Заголовок: №11_ДЕМО_2017


В ответе к заданию №11 ДЕМО_2017 у меня получается 34. Не 33 как в ответе.
Построила дерево и написала программу. 34. Вот программа:
program Demo2017_N11;
var s: integer;
procedure F(n: integer);
begin
write( 'n=',n);
s:=s+n;
writeln( ' S=',S);
if n > 2 then begin
F(n -3);
F(n -4);
end
end;
begin
F(10);
writeln('Otvet:',s);
end.

Окно вывода:
n=10 S=10
n=7 S=17
n=4 S=21
n=1 S=22
n=0 S=22
n=3 S=25
n=0 S=25
n=-1 S=24
n=6 S=30
n=3 S=33
n=0 S=33
n=-1 S=32
n=2 S=34
Otvet:34

Где я ошиблась?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 8 [только новые]


Администратор




Сообщение: 1200
ссылка на сообщение  Отправлено: 13.11.16 10:28. Заголовок: Гаврюкова пишет: Где..


Гаврюкова пишет:
 цитата:
Где я ошиблась?

В оригинале writeln стоит внутри if.

___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 2
ссылка на сообщение  Отправлено: 13.11.16 11:18. Заголовок: N11_ демо


Поставила внутрь. Числа получаются такие же как и при построения дерева. Опять 34!
program Demo2017_N11;
var s: integer;
procedure F(n: integer);
begin
writeln( 'n=',n);
s:=s+n;
if n > 2 then begin
F(n -3);
F(n -4);
writeln( ' S=',S);
end
end;
begin
F(10);
writeln('Otvet:',s);
end.

n=10
n=7
n=4
n=1
n=0
S=22
n=3
n=0
n=-1
S=24
S=24
n=6
n=3
n=0
n=-1
S=32
n=2
S=34
S=34
Otvet:34

Такой же ответ получается и при решении подстановкой.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Сообщение: 1201
ссылка на сообщение  Отправлено: 13.11.16 11:56. Заголовок: Гаврюкова пишет: Так..


Гаврюкова пишет:
 цитата:
Такой же ответ получается и при решении подстановкой.

Внутри if - это вот так:
 procedure F(n: integer);  
begin
if n > 2 then begin
writeln( 'n=',n);
s:=s+n;
F(n -3);
F(n -4);
writeln( ' S=',S);
end
end;


___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 3
ссылка на сообщение  Отправлено: 13.11.16 12:58. Заголовок: Спасибо! Т.е., когда..


Спасибо! Т.е., когда строишь дерево из 10, - после 4 и 3 не смотреть! И на 2 тоже!


Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 4
ссылка на сообщение  Отправлено: 13.11.16 13:11. Заголовок: ege_11 N82


Рассуждая по этому алгоритму (Ваши задания ege_11) в задаче N82 д.б. ответ 33.
У меня получается 16 и деревом и в Паскале.

n=5
n=4
n=3
n=2
S=14
S=14
S=14
n=2
S=16
S=16
Otvet:16

Где я опять заблудилась?

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Сообщение: 1202
ссылка на сообщение  Отправлено: 13.11.16 13:33. Заголовок: Гаврюкова пишет: Где..


Гаврюкова пишет:
 цитата:
Где я опять заблудилась?

Программу покажите.

___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 6
ссылка на сообщение  Отправлено: 13.11.16 17:55. Заголовок: может так


Если там два раза writeln(n), то получается, что числа, которые будут выведены, для суммирования - повторяются 2 раза?
program Z11_N82;
var s, s1: integer;
procedure F(n: integer);
begin
writeln('n=',n);
s:=s+n;
writeln( ' S=',S);
if n > 1 then begin
writeln( 'n_=',n);
s1:=s1+n;
F(n -1);
F(n -3);
writeln( ' S1=',S1);
end
end;
begin
F(5);
writeln('Otvet:',s+s1);
end.

Otvet:33

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Сообщение: 1204
ссылка на сообщение  Отправлено: 15.11.16 22:45. Заголовок: Да, можно и так. А м..


Да, можно и так. А можно было везде использовать s (убрать s1).

___________________________________________________
Имей мужество пользоваться собственным умом. (И. Кант)
Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 718
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет