Псевдокод: четкое определение?

голоса
5

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

string checkRubric(gpa, major)
    bool brake = false
    num lastRange
    num rangeCounter
    string assignment = unassigned
    array bus['business']= array('person a'=>array(0, 2.9), 'person b'=>array(3, 4))
    array cis['computer science']= array('person c'=>array(0, 2.9), 'person d'=>array(3, 4))
    array lib['english']= array('person e'=>array(0, 4))
    array rubric = array(bus, cis, lib)

foreach (rubric as fieldAr)
    foreach (fieldAr as field => advisorAr)
        if (major == field)
            foreach (advisorAr as advisor => gpaRangeAr)
                    rangeCounter = 0
                foreach (gpaRangeAr as gpaValue)
                    if (rangeCounter < 1)
                        lastRange = gpaValue
                    else if (gpa >= lastRange && gpa <= gpaValue)
                        assignment = advisor
                        brake = true
                        break
                    endif
                    rangeCounter++
                endforeach
                if (brake == true)
                    break
                endif
            endforeach
            if (brake == true)
                break
            endif
        endif
    endforeach
    if (brake == true)
        break
    endif
endforeach
return assignment

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

Задан 22/03/2010 в 03:43
источник пользователем
На других языках...                            


8 ответов

голоса
3

Бесстыдно вырванные из Википедии :

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

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

Ответил 22/03/2010 в 03:51
источник пользователем

голоса
0

Мои два цента на это:

Я говорю псевдокод любой код, который не выполняет, как насчет вас? Спасибо (ссылки на эту тему приветствуется)

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

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

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

EDIT: Возможно , еще одно правило , я хотел бы добавить к моему определению является то, что он должен походить на человеческий язык , чем язык программирования. Как и в, равно вместо ==, назначить вместо =. Причиной этого является то , что, например, присваивание и равенства операторы различны на разных языках.

Ответил 22/03/2010 в 03:51
источник пользователем

голоса
7

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

Ответил 22/03/2010 в 03:52
источник пользователем

голоса
1

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

Пример OP является немного ближе к реальному коду , чем псевдокод. Например, ++не на всех языках. Она также может иметь совсем другое значение в других.

Ответил 22/03/2010 в 03:52
источник пользователем

голоса
1

Ну, если я не компилировать код / ​​связать мой C ++, он не будет выполнять, так что я не думаю, что «Код, который не выполняет» является приемлемым определение.

Точно так же как языки сценариев, не выполняются, они зачастую интерпретируются.

Мое определение псевдо-код будет выглядеть так:

«[Сжатый] Код, синтаксис агностик, написанный для передачи функции, поведение, или алгоритм.»»

Ответил 22/03/2010 в 03:53
источник пользователем

голоса
1

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

Защита сумма (х):
    Результат = 0
    для каждой записи в х:
        добавить текущую запись в результате
    отчет о результатах

Или, в несколько ином стиле:

сумма (х):
   Пусть х массив
   Пусть результат будет целое число, представляющее результат, изначально-

   для элемента х:
       Результат + = пункт

   возвращаемый результат

Вы можете использовать элементы конкретного синтаксиса (и, на самом деле, мой псевдо-код, как правило очень похожи на Python), но она должна быть понятной широкой аудитории и не должно быть препятствий синтаксисом. Например, я использую «+ =», но это потому, что это очень компактный и удобный, не потому, что это необходимо. Если вы нашли «endforeach» полезно и удобно в вашей экспозиции, это было бы нормально; Однако, я бы сказал, что такая вещь не принадлежит в псевдо-коде, как он выглядит более поскупился, чем полезно или пояснения.

Ответил 22/03/2010 в 04:01
источник пользователем

голоса
0

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

Ответил 22/03/2010 в 04:03
источник пользователем

голоса
1

Набросок программы, написанный в форме, которая может быть легко преобразована в реальные заявления программирования.

ПСЕВДОКОД не может быть скомпилирован и не выполняется, и нет никаких реальных правил форматирования или синтаксиса. Это просто один шаг - важная один - в производстве окончательного кода. Преимущество псевдокода является то, что она позволяет программисту сконцентрироваться на алгоритмах, не заботясь о всех синтаксических деталях конкретного языка программирования.

Ответил 29/05/2012 в 06:42
источник пользователем

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