Процесс перехода от проблемы к коду. Как ты научился? - PullRequest
8 голосов
/ 26 сентября 2008

Я учу / помогаю студенту программировать.

Я помню, что следующий процесс всегда помогал мне, когда я начинал; Это выглядит довольно интуитивно, и мне интересно, был ли кто-то еще схожим.

  1. Прочтите проблему и поймите ее (конечно).
  2. Определение возможных «функций» и переменных.
  3. Напишите, как бы я делал это шаг за шагом (алгоритм)
  4. Переведите это в код, если есть что-то, что вы не можете сделать, создайте функцию, которая сделает это за вас, и продолжайте двигаться.

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

Так что для описания проекта вроде:

Система должна рассчитать цену Товара на основе следующих правил (описание правил ... клиент, скидки, наличие и т. Д. И т. Д. И т. Д.)

Первый шаг - понять, в чем проблема.

Затем укажите предмет, правила, переменные и т. Д.

псевдокод что-то вроде:

function getPrice( itemPrice, quantity , clientAge, hourOfDay ) : int 
   if( hourOfDay > 18 ) then
      discount = 5%

   if( quantity > 10 ) then
      discount = 5%

   if( clientAge > 60 or < 18 ) then
      discount = 5%


        return item_price - discounts...
end

А затем передать его на язык программирования ..

public class Problem1{
    public int getPrice( int itemPrice, int quantity,hourOdDay ) {
        int discount = 0;
        if( hourOfDay > 10 ) {
             // uh uh.. U don't know how to calculate percentage... 
             // create a function and move on.
            discount += percentOf( 5, itemPriece );
            .
            .
            .
            you get the idea..

        }
     }
    public int percentOf( int percent, int i ) {
             // .... 
    }


}

Вы пошли на подобный подход? .. Кто-то научил вас подобному подходу, или вы обнаружили себя (как я :()

Ответы [ 13 ]

1 голос
/ 26 сентября 2009

Я думаю, что есть лучший способ заявить о вашей проблеме.

Вместо того, чтобы определять его как «систему», определите, что ожидается в терминах пользовательских входов и выходов.

"В окне пользователь должен выбрать элемент из списка, а в окне должно быть указано, сколько он стоит."

Затем вы можете указать ему некоторые факторы, определяющие стоимость, в том числе образцы товаров и их стоимость.

(это тоже очень похожая на TDD идея)

1 голос
/ 26 сентября 2008

Да .. ну, TDD не существовало (или не было так популярно), когда я начал. Будет ли TDD способ перейти от описания проблемы к коду? ... Разве это не немного продвинуто? Я имею в виду, когда «будущий» разработчик с трудом понимает, что такое язык программирования, разве это не будет контрпродуктивно?

А как насчет Hamcrest, который делает переход от алгоритма к коду.

0 голосов
/ 26 сентября 2008

Имейте в виду, что если вы получаете скидку 5%, тогда еще 5%, вы не получаете скидку 10%. Скорее, вы платите 95% от 95%, что составляет 90,25% или 9,75%. Таким образом, вы не должны добавлять процент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...