> 1 <

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

sys_dev

Members


Статус

5 сообщений

Где: Russia
Род занятий:
Возраст:

#7292   2014-03-02 15:05 GMT+3 часа(ов)      
Читаю первую главу книги "Structure and Interpretation of Computer Programs" и наткнулся на упражнение:

Цитата
Упражнение 1.3.
Определите процедуру, которая принимает в качестве аргументов три числа и возвращает сумму квадратов двух больших из них.



Сама суть задачи мне понятна. Не понятно что можно и что запрещено при решении задачи?
К примеру для решения этой задачи один из этапов это нахождение двух максимальных чисел. Вопрос этот этап выполнить прямо в коде этой результирующей процедуры или же допускается реализовать этот этап в виде отдельной процедуры и потом просто ее вызвать?

Как правило решаю задачи по методу: все что не запрещено явно - разрешено! Но тут что-то заморочился

sys_dev

Members


Статус

5 сообщений

Где: Russia
Род занятий:
Возраст:

#7295   2014-03-04 17:01 GMT+3 часа(ов)      
Пока решил так:
 
(define (sum-two-max-nums n1 n2 n3)
(define (square x) (* x x) )
(define (min x y) (if (< x y) x y) )
(define (the-smallest) (min (min n1 n2) n3) )
(- ((square n1) (square n2) (square n3))
(square the-smallest) )
 


Но имею ли я право пользоваться доп.процедурами? С одной стороны в книге идет уклон "разбивайте на задачи, а каждую задачу в виде процедуру" т.е. обычный программерский постулат. Но с другой стороны в задачах не всегда ясно прописывается о том что запрещено при решении задач

misha

Moderators


Статус

1273 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#7296   2014-03-04 18:14 GMT+3 часа(ов)      
К решению задач подходите творчески! Выработайте свой собственный стиль.
Набирайте код так, чтобы вам не приходилось считать скобки. Для начала попробуйте сразу забивать парные скобки, а не пытаться угадать количество закрывающих скобок.
Кстати, а вы свой код проверяете?

sys_dev

Members


Статус

5 сообщений

Где: Russia
Род занятий:
Возраст:

#7297   2014-03-04 21:10 GMT+3 часа(ов)      
2 misha:
Пока нет. Ищу хоть какой-нибудь Scheme-интерпретатор. Скачал racket, но пока непонятно как им пользоваться.

sys_dev

Members


Статус

5 сообщений

Где: Russia
Род занятий:
Возраст:

#7299   2014-03-04 21:18 GMT+3 часа(ов)      
Цитата
misha :
Для начала попробуйте сразу забивать парные скобки, а не пытаться угадать количество закрывающих скобок.


Именно так и делаю с первых минут как начал применять C++\C , уже больше 5 лет
> 1 <


Онлайн :

0 пользователь(ей), 33 гость(ей) :




Реклама на сайте: