Является ли писать код из до сих пор считается алгоритмическое представление?

голоса
2

Я только что потерял 50% свой ответ на тест, потому что я написал код из вместо алгоритма на моем среднесрочном, натыкаясь меня от A до C. Является ли писать код из до сих пор считается алгоритмическим представлением?

Википедия: Алгоритм Представление (так как стиль программирования в значительной степени на основе консенсуса)

EDIT: Хорошо, так что позвольте мне сделать несколько замечаний ясно:

  1. Тест попросил псевдо-код, который мы никогда не «определенный» в классе; мы просто выписали английский язык для наших алгоритмов.

  2. Это класс Java, и выписал все решение в методе Java, наряду с комментариями. Все это было рукописное, и потребовалось больше времени, чтобы написать, чем псевдо-кода. Я думал, что это будет более понятно.

  3. Обычно я не сделал бы вопрос о таких вещах, но это разница между А и С, и у меня есть стипендия верхом на экзаменах.

  4. Наконец, я делаю этот пост по двум причинам:

    4.1 Я хочу показать, что современное программирование сообщество думает о псевдокоде и алгоритмического представления.

    4.2 Я хочу знать, что приемлемо в «реальном мире»; Я программирования на некоторое время, но я хочу, чтобы иметь возможность внести свой вклад с открытым исходным кодом проектов в ближайшее время, и я не хочу наступать на чьих пальцах ног. (Хотя я уверен, что эта тема имеет мало шансов прийти в реальном мире).

Опять же, спасибо за любую помощь / совет.

Задан 05/11/2008 в 00:12
источник пользователем
На других языках...                            


8 ответов

голоса
0

Все, что я знаю, вы не должны писать код, пока у вас есть algorithim.

Ответил 05/11/2008 в 00:15
источник пользователем

голоса
5

Вы можете привести пример. Если ваш код слишком много внимания уделяется специфике языка, которые не являются частью алгоритма, то понятно, что можно сказать, у вас не-алгоритм, смешанный с алгоритмом, что приводит к неправильному результату.

I Feel для рассуждений, весь смысл обучения, чтобы показать вам понять концепцию, а не наклоняться и отметьте все правильные коробки.

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

Ешьте и пересказывают менталитет, почему я не закончил.


Что касается вашего последнего комментария, важно понимать , псевдокод не определен. Там , как правило , повторно термины в нем, но не строгом языке больше , чем английский язык ( в противном случае было бы быть языком программирования, который может быть обработан и выполнен дословно)

Значением псевдокода является конкретизацией в логической части системы и не должно беспокоиться чрезмерно о синтаксисе за «имеет смысл»

Часто это может сделать псевдокод и более лаконичным и более понятным.

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

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

В то время как:

sub foo { 
   my @args = @_ ; 
   my( $a, $b )=(@args[0],@args[1]); 
   for( @{ $a } ){
       $b .= $_ ; 
       s/id//g; 
   }
   return [$b,$a];
}

может сделать некоторые когерентное Sence кому-то разбирающийся в Perl, к среднему читателю кода все они получают это «что, черт возьми, ты сказал» ответ. Документирование это не помогает много ни.

| there is a subroute foo which can take a list of strings, and a default string, 
\-  which then iterates all items in  that list, 
| \-  and for each item in that list 
|     1. appends the contents of that item to the end of the default string
|     2. removes all instances of the string "id" in that item
| 
 \ and returns a list, which contains 
    1. the concatentated default string 
    2. the modified input list 

Неожиданно она становится менее неоднозначной и больший процент людей может понять.

Таким образом, возможно, половина упражнения с написанием алгоритма этого упражнения в «Мало того, что вы должны доказать, что вы понимаете это, вы также должны доказать, что вы можете объяснить ваши рассуждения других, которых ничего не знают о проблеме», которая является жизненно важной возможность вам нужно. Если вы не можете сообщить, что вы сделали, никто не может его использовать.

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

Ответил 05/11/2008 в 00:20
источник пользователем

голоса
3

В этом случае, вы должны отложить до профессора.

Ответил 05/11/2008 в 00:23
источник пользователем

голоса
0

Проблема с использованием кода вместо псевдокода является то, что, теоретически, можно было бы предположить, что это код, не псевдокод. Во всяком случае, классы учителей вы для вашего ответа, а не для ваших знаний - вы бы лучше ответить на то, что вы просили, в терминах учитель любит. Да, все мы знаем, вы знаете лучше. Но это никогда не плохое упражнение, чтобы попытаться урезонить путь другого человека, вы знаете. И по крайней мере в моей стране учитель имеет право оценивать вас свободно, так что ... ладить с ним!

Ответил 05/11/2008 в 00:29
источник пользователем

голоса
2

Вы должны предоставить более подробную информацию. Вы задали для алгоритма, но поставляется код. Вы прокомментируете код? Сколько? (Я хотел бы видеть, вопрос и ответ, но, возможно, что это просит слишком много).

Так что я буду отвечать, исходя из собственного опыта. Если я прошу алгоритм, то я хочу что-то объясняет, в приличном английском, как решить проблему и / или соответствовать требованиям вопроса. Диаграммы также хорошо (иногда лучше). Пункт, форма точки, что угодно, - он просто должен быть ясным, четким и правильным.

Если вы предоставить мне код, который делает указанные выше, то полные марки. Тем не менее, если вы поставить код, который является чисто «язык» и довольно загадочно, то знаки будут потеряны - более или менее в зависимости от того, как загадочная код на самом деле. Даже с кодом, я хотел бы видеть диаграмму, а также, просто чтобы показать полное понимание концепций.

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

Ура,

Ответил 05/11/2008 в 00:49
источник пользователем

голоса
0

Просто поговорить с профессором и спросить его, почему вы получили вопрос неправильно. Спросите его, что правильный ответ будет, и то, что основное различие между ними.

Может быть, что алгоритм вы писали не правильно?

Ответил 05/11/2008 в 01:56
источник пользователем

голоса
0

Код представляет собой алгоритм, написанный так, что машина может выполнить его. Там нет ничего в этом определении, что говорит, что это не так и написано для человека, чтобы понять. Возможно, писать в Java затемнить свой алгоритм? Это определение будет согласован ли я с вашим учителем.

Ответил 05/11/2008 в 02:22
источник пользователем

голоса
2

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

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

Особенно в классе алгоритмов, это всегда важно, чтобы обеспечить доказательство правильности (будь то по индукции, противоречием и т.п.), а также обозначение большого-O для космической и времени-сложности вашего алгоритма.

Ответил 13/11/2008 в 21:04
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more