Как составить псевдокод алгоритма

Перевод
статьи
«How to write Pseudocode: A beginner’s guide».

Зачем вообще писать псевдокод?

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

То же самое касается и кода. Если вы будете сразу писать настоящий код какого-то сложного функционала, вы можете в результате напрасно потерять много времени. Такое может произойти, например, при использовании неподходящего алгоритма или при непродуманном дизайне программы. Чтобы этого избежать, мы пишем псевдокод.

Что такое псевдокод?

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

Есть ли альтернатива написанию
псевдокода?

Да, есть и другие варианты. Вы можете
пользоваться диаграммами
UML, блок-схемами,
а также языком
ДРАКОН. Все это может быть использовано
с теми же целями, но потребует больше
ресурсов по сравнению с псевдокодом.

Операторы

Операторы это инструкции, предписывающие
компьютеру выполнить определенное
действие.

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

Математические операторы

Математические операторы — неотъемлемая
часть разработки решения. Они позволяют
нам производить различные манипуляции
с хранимыми значениями. Вот как
используются распространенные
математические символы:

Присваивание: ← или :=
Пример: c ← 2πr, c := 2πr  
Сравнение: =, ≠, <, >, ≤, ≥
Арифметические действия: +, −, ×, /, mod
Пол/потолок: ⌊, ⌋, ⌈, ⌉
Пример: a ←    ⌊b⌋    + ⌈c⌉
Логические: and, or
Сумма, произведение: Σ Π
Пример: h ←    Σa∈A    1/a 

Ключевые слова

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

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

START: это начало вашего псевдокода.
INPUT: это данные, полученные от пользователя (путем ввода на клавиатуре или через устройство ввода).
READ / GET: это input, используемый при чтении данных из файла.
PRINT, DISPLAY, SHOW: Вывод вашего output на экран или соответствующее устройство вывода.
COMPUTE, CALCULATE, DETERMINE: Эти слова используются для вычисления результата выражения.
SET, INIT: используются для инициализации значений.
INCREMENT, BUMP: используются для увеличения значения переменной.
DECREMENT: используется для уменьшения значения переменной. 

Условия

При разработке алгоритмов нам нужно
оценивать выражения и делать так, чтобы
инструкции выполнялись в зависимости
от того, является ли значение выражения
истиной или ложью (True или False).

Вот некоторые распространенные
условия, используемые в псевдокоде:

IF — ELSE IF — ELSE

При помощи этих слов указывается, что инструкции должны быть выполнены при соблюдении определенных условий. (Сами слова в буквальном переводе означают IF — «если», ELSE IF — «еще если», ELSE — «в противном случае», THEN — «тогда, в таком случае», — прим. перев.). Условий при этом может быть несколько, как и переменных.

Вот if-блок с одним условием:

IF вы счастливы
    THEN улыбайтесь
ENDIF 

Вот if-блок с разделом else. ELSE позволяет запустить выполнение каких-то инструкций, если первое условие, заданное при помощи IF, не соблюдено.

IF вы счастливы THEN
     улыбайтесь
ELSE
     хмурьтесь
ENDIF 

Мы можем добавлять дополнительные условия для выполнения разных инструкций.

IF вы счастливы THEN
     улыбайтесь
ELSE IF вам грустно
     хмурьтесь
ELSE
     сохраняйте обычное выражение лица
ENDIF 

CASE

Case-структуры используются, если нужно
проверить одну переменную на совпадение
с несколькими условиями.

INPUT цвет
CASE цвет —
     красный: PRINT "красный"
     зеленый: PRINT "зеленый"
     синий: PRINT "синий"
OTHERS
     PRINT "Пожалуйста, введите значение цвета"
ENDCASE 

Вариант
OTHERS опционален. Условия обычно бывают
в виде чисел или букв.

Итерации

«Итерировать» означает повторять
набор инструкций, чтобы получить
последовательность результатов (для
достижения какой-то цели).

Структура FOR

Цикл FOR принимает группу элементов и
запускает код в цикле для каждого
отдельного элемента.

FOR каждый месяц года
     Вычислить количество дней
ENDFOR 

Структура WHILE

Цикл WHILE похож на цикл FOR. Но цикл FOR это
способ повторять блок кода до того
момента, как
определенное условие
станет истиной. В отличие от цикла FOR,
цикл WHILE длится, пока какое-то условие
является истиной.

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

PRECONDITION: переменная X равна 1
WHILE Население < Ограничение
     Compute Население as Население + Рождения - Смерти
ENDWHILE 

Функции

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

Function очисти монитор
   Pass In: ничего
   Укажи операционной системе очистить монитор
   Pass Out: ничего
Endfunction 

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

call: очисти монитор

Обертывание программ

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

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

PROGRAM сделайчашкучая
END

Обработка исключений

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

BEGIN 
     инструкции 
EXCEPTION 
     WHEN тип исключения
         инструкции для обработки исключения
     WHEN другой тип исключения
         инструкции для обработки исключения
END

Заключение

Для написания псевдокода нет каких-то технических правил. Главное — писать псевдокод так, чтобы людям было легко его читать, а ход программы был понятен.

Есть различные руководства по написанию псевдокода, более специфичного для какого-то определенного языка программирования. Например, есть правила стиля псевдокода для языков Fortran, Pascal, C, Basic.

A Pseudocode is defined as a step-by-step description of an algorithm. Pseudocode does not use any programming language in its representation instead it uses the simple English language text as it is intended for human understanding rather than machine reading.
Pseudocode is the intermediate state between an idea and its implementation(code) in a high-level language.

What is PseudoCode: A Complete Tutorial

What is PseudoCode: A Complete Tutorial

What is the need for Pseudocode

Pseudocode is an important part of designing an algorithm, it helps the programmer in planning the solution to the problem as well as the reader in understanding the approach to the problem. Pseudocode is an intermediate state between algorithm and program that plays supports the transition of the algorithm into the program.

Pseudocode is an intermediate state between algorithm and program

Pseudocode is an intermediate state between algorithm and program

How to write Pseudocode?

Before writing the pseudocode of any algorithm the following points must be kept in mind. 

  • Organize the sequence of tasks and write the pseudocode accordingly.
  • At first, establishes the main goal or the aim. 

    Example:

    This program will print first N numbers of Fibonacci series.

  • Use standard programming structures such as if-else, for, while, and cases the way we use them in programming. Indent the statements if-else, for, while loops as they are indented in a program, it helps to comprehend the decision control and execution mechanism. It also improves readability to a great extent.

    Example:

    IF “1”
       print response
           “I AM CASE 1”

    IF “2”
       print response
           “I AM CASE 2”

  • Use appropriate naming conventions. The human tendency follows the approach of following what we see. If a programmer goes through a pseudo code, his approach will be the same as per that, so the naming must be simple and distinct.
  • Reserved commands or keywords must be represented in capital letters.

    Example: if you are writing IF…ELSE statements then make sure IF and ELSE be in capital letters.

  • Check whether all the sections of a pseudo code are complete, finite, and clear to understand and comprehend. Also, explain everything that is going to happen in the actual code.
  • Don’t write the pseudocode in a programming language. It is necessary that the pseudocode is simple and easy to understand even for a layman or client, minimizing the use of technical terms.

Good vs Bad ways of writing Pseudocode:

Good Vs Bad way of writing Pseudocode

Good Vs Bad way of writing Pseudocode

Pseudocode Examples:

1. Binary search Pseudocode:

Binary search is a searching algorithm that works only for sorted search space. It repeatedly divides the search space into half by using the fact that the search space is sorted and checking if the desired search result will be found in the left or right half.

Example: Given a sorted array Arr[] and a value X, The task is to find the index at which X is present in Arr[].

Below is the pseudocode for Binary search.

BinarySearch(ARR, X, LOW, HIGH)
       repeat till LOW = HIGH
              MID = (LOW + HIGH)/2
              if (X == ARR[mid])
                  return MID

                      else if (x > ARR[MID]) 
                  LOW = MID + 1

                      else                  
                  HIGH = MID – 1

2. Quick sort Pseudocode:

QuickSort is a Divide and Conquer algorithm. It picks an element as a pivot and partitions the given array around the picked pivot.

Say last element of array is picked as pivot then all elements smaller than pivot element are shifted on the left side of pivot and elements greater than pivot are shifted towards the right of pivot by swapping, the same algorithm is repeatedly followed for the left and right side of pivot until the whole array is sorted.

Below is the pseudocode for Quick sort

QUICKSORT(Arr[], LOW, HIGH) {
   if (LOW < HIGH) {
       PIVOT = PARTITION(Arr, LOW, HIGH);
       QUICKSORT(ARR, LOW, PIVOT – 1);  
       QUICKSORT(ARR, PIVOT + 1, HIGH); 
   }
}

Here, LOW is the starting index and HIGH is the ending index.

Difference between Algorithm and Pseudocode

Algorithm

Pseudocode

An Algorithm is used to provide a solution to a particular problem in form of a well-defined step-based form.

A Pseudocode is a step-by-step description of an algorithm in code-like structure using plain English text.

An algorithm only uses simple English words 

Pseudocode also uses reserved keywords like if-else, for, while, etc.

These are a sequence of steps of a solution to a problem

These are fake codes as the word pseudo means fake, using code like structure and plain English text

There are no rules to writing algorithms

There are certain rules for writing pseudocode

Algorithms can be considered pseudocode 

Pseudocode cannot be considered an algorithm

It is difficult to understand and interpret

It is easy to understand and interpret

Difference between Flowchart and Pseudocode

Flowchart

Pseudocode

A Flowchart is pictorial representation of flow of an algorithm.

A Pseudocode is a step-by-step description of an algorithm in code like structure using plain English text.

A Flowchart uses standard symbols for input, output decisions and start stop statements. Only uses different shapes like box, circle and arrow.

Pseudocode uses reserved keywords like if-else, for, while, etc.

This is a way of visually representing data, these are nothing but the graphical representation of the algorithm for a better understanding of the code 

These are fake codes as the word pseudo means fake, using code like structure but plain English text instead of programming language

Flowcharts are good for documentation

Pseudocode is better suited for the purpose of understanding

1. Infosys Pseudocode Questions:

What will be the output of the following pseudocode?

Question 1) for i=0 to 4 step 1 do
                           If  i==i++ + –i then do
                                  display i
                           end-if
                     end-for
Answer: 0

Question 2)  Set Character c = ‘7’
                                    switch(c)
                                    case ‘1’: display “One”
                                    case ‘7’: display “Seven”
                                    case ‘2’: display “Two”
                                    default: display “Hello”
                                    break
                           end-switch 
Answer: SevenTwoHello

Question 3) Integer a, p
                   Set a = 5
                   a = a + 1
                   a = a * 2
                   a = a / 2
                   p = a / 5 + 6
                   print p 
Answer: 7

Question 4) Integer a, b, c
                    Set b = 40, a = 20, c = 20
                    a = a + c
                    c = c + a
                    a = a + c
                    c = c + a
                    Print a + b + c 
Answer: 300

Question 5) Integer a, b, c
                    Set a = 4, b = 3, c = 1
                    if (a >> (c – 1) && b << (c + 1))
                           a = a + c
                    Else
                          b = a <<< C
                    End if
                    Print a – b + c           
Answer: 3                                                               

2. Accenture Pseudocode Questions:

What will be the output of the following pseudocode?

Questions 1) What will be the output of the following pseudocode for a = 5, b = 1?

                      Integer funn(Integer a, Integer b)
                      if(b + a || a – b) && (b > a) && 1)
                          a = a+b+b-2
                          return 3-a
                      Else
                          return a-b+1
                      End if
                      return a + b
                      End function fun()
Answer: 5

Questions 2) What will be the output of the following pseudocode for a = 5, b = 1?

                       Integer funn(Integer a, Integer b)
                       if((b mod a && a mod b) || (a ^ b > a))
                                a=a ^ b
                       Else
                                return a-b
                       End if
                       return a + b
                       End function funn()
Answer: 5

Questions 3) What will be the output of the following pseudocode?

                      Integer a, b, c
                      Set a = 4, b = 4, c = 4
                      if (a & (b ^ b) & c)
                               a = a >> 1
                      End if
                      Print a + b + c
Answer: 12

Questions 4) What will be the output of the following pseudocode for a = 10, b = 11?

                     Integer funn(Integer a, Integer b)
                     if(0)
                          return a – b – funn(-7, -1)
                     End if
                          a = a + a + a + a
                     return a
                     End function funn()
Answer: 40

Questions 5) What will be the output of the following pseudocode for a = 5, b = 1?

                      Integer funn(Integer a, Integer b)
                      if(b + a || a – b) && (b > a) && 1)
                           a = a + b + b – 2
                           return 3 – a
                      Else
                           return a – b + 1
                      End if
                      return a + b
                      End function fun()
Answer: 5

3. Capgemini Pseudocode Questions

What will be the output of the following pseudocode?

Question 1) What will be the output of the following pseudocode for a=8, b=1?

Integer funn(Integer a, Integer b)
If(a > b && a > 0)
     Return a + b + funn (b-1, a-1)
End if
Return a + b
Answer: 16

Question 2) What will be the output of the following pseudocode for p=7, q=2?

Integer funn(Integer p, Integer q)
           if(p + q < 10)
                 Return 1 + funn(p + 1, q + 1)
              Else
                 Return 2
           End if
Answer: 3

Question 3) What will be the output of the following pseudocode for a=2, b=7, c=7?

      Integer funn(Integer a, Integer b, Integer c)
      if ((b + a) < (a – b))
            a = a + c
            b = (10 + 10) + c
      End if
      Return a + b + c
Answer: 16

Question 4) What will be the output of the following pseudocode? 

String str1 = “err”, str2 = “krr”
Print (count consonant(upper(reverse(str2) + reverse(str1))))
Answer: 5

Question 5) What will be the output of the following pseudo code?

Integer a, b, c
Set a = 2, b = 11, c = 5
if ((4 + 5) < (6 + b))
      b = c & a
End if
Print a + b + c
Answer: 7

PseudoCode Frequently Asked Questions ( FAQ )

1) What are the 5 Rules of pseudocode?

Five important rules for writing pseudocode are:

  1. Write one statement per line.
  2. Initial keywords should be represented in capital case(READ, WRITE, IF, WHILE, UNTIL).
  3. Indentation of pseudocode should be similar to the actual program to show hierarchy.
  4. Ending the multiline structure is necessary.
  5. Keep statements in simple language(English).

2) How do I start pseudocode?

At first, the purpose of the process should be written to make the aim clear.

3) Is pseudocode easy to learn?

Pseudocode uses plain text mostly written in English language which makes it easy to understand and present.

4) Why do we use pseudocode?

Pseudocode provides easier understanding to people as compared to the conventional programming language code that it is an efficient and platform-independent description of the important principles of an algorithm.

5) Is pseudocode an algorithm?

Pseudocode is used to represent an algorithm but the structure of a pseudocode may not follow the same flow as an algorithm is a well-defined sequence of steps that provides a solution for a given problem.

6) What is the difference between pseudocode and flowchart?

A flowchart is a diagrammatic representation that illustrates a solution model and solution flow to a given problem whereas Pseudocode is an informal high-level description of the operating principle of an algorithm.

7) What is the difference between pseudocode and code?

Pseudocode is just a way to represent the algorithm of the program, it is how the code would look like when if it is actually programmed. Source code is the actual code that can be compiled by the compiler and then be executed by the machine.

8) Which is easier to use algorithm or pseudocode?

Pseudocode is written in English language thus it is easy to understand, construct and simpler to debug on the other hand algorithm is quite complex to construct as it sometimes involves code snippets in it and hence it is a bit difficult when it comes to debugging algorithm.

9) How do you declare a variable in pseudocode?

In pseudocode Assigning a value to a variable is indicated using an arrow symbol (←). The arrow points from the value being assigned towards the variable it is being assigned to. 
Example: String ← “GeeksforGeeks”, would be a valid assignment.

10) What is end if in pseudocode?

To terminate a multiple line if command the endif command is used. The command can either be specified as two separate words, ‘end if’ or as a single word, ‘endif’.

Conclusion:

In the above discussion, we understood the importance of pseudocode in understanding an algorithm. Pseudocode is a lot simpler to construct and debug as compared to an algorithm. 


Загрузить PDF


Загрузить PDF

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

  1. 1

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

  2. 2

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

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

    Помните, что псевдокод субъективен и не стандартизирован. В нем нет четко установленного синтаксиса – есть только негласное правило использовать стандартные конструкции, которые другие программисты могли бы понять без особых проблем. Если вы пишете код самостоятельно, псевдокод поможет вам упорядочить мысли и разработать план. Если вы работаете вместе с другими инженерами (и не имеет значения, каков их уровень владения предметом), важно использовать как минимум основные конструкции, чтобы все остальные понимали, что вы хотели сделать.

    • Если вы учитесь программированию в каком-либо учреждении, скорее всего, вам предложат тест на знание так называемых стандартов псевдокода. У различных преподавателей и в различных учебных заведениях стандарт может быть разным.
    • Понятность – основной критерий псевдокода, поэтому псевдокод будет полезен, если вы применяете в работе стандартные конструкции. Вам нужно будет превратить псевдокод в язык программирования, и псевдокод позволит вам упорядочить в голове всю структуру.
  4. 4

    Научитесь разбираться в алгоритмах. Алгоритм – это процедура для решения проблемы средствами, знакомыми программе, и порядок, в котором будут выполняться действия. Алгоритм – это просто набор шагов, которые позволяют решать какую-либо задачу: последовательность действий, выбор, итерация и тип обращения.

    • В языке программирования С операторы последовательности есть всегда.
    • Выбор – это структура “if then else”.
    • Итерация выполняется с помощью набора обращений:”while”, “do”, “for.”
    • Тип обращения выбирается с помощью оператора “switch”.
  5. 5

    Знайте, какие три элемента управляют алгоритмом. Если вы можете применить функцию “sequence” (последовательности), функцию “while” (зацикливание) и “if-then-else” (если-то, функция выбора), у вас есть все основные элементы для написания работающего алгоритма.[1]

    • SEQUENCE (последовательность) – это линейная прогрессия, при которой одна задача выполняется после другой в определенной последовательности. Например:
      • READ (прочитать) высота прямоугольника
      • READ (прочитать) ширина прямоугольника
      • COMPUTE (запрограммировать) участок как высота x ширина
    • WHILE – это зацикливание (повторение) проверки на выполнение условий в начале. Начало и конец цикла обозначаются словами WHILE (пока) и ENDWHILE (конец действия пока). Цикл завершается только в том случае, если условие выполняется. К примеру:
      • WHILE население < предел
        • Compute (запрограммировать) население как население + рождения – смерти
      • ENDWHILE
    • IF-THEN-ELSE (если … , то … , иначе…) – это функция выбора, при которой делается выбор между двумя вариантами действий. Бинарный выбор определяется четырьмя ключевыми словами: IF, THEN, ELSE, and ENDIF. Например:
      • IF (если) рабочие часы > норм макс THEN (то)
        • Показать время переработки
      • ELSE (иначе)
        • Показать время работы
      • ENDIF (конец)

    Реклама

  1. 1

    Разберите пример простой программы. Представьте, что программа должна заменять сочетание букв “foo” в текстовом файле. Программа прочитает каждую строку в этом файле, поищет нужное сочетание в каждой строке и заменит его на другое. Повторяющиеся шаги начинаются с пробелов – в идеале так должно быть и в настоящем коде. Первоначальный набросок псевдокода может выглядеть так:

    • открыть файл
    • в каждой строке файла:
      • найти сочетание
      • удалить сочетание
      • вставить другое сочетание
    • закрыть файл
  2. 2

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

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

    Используйте код для добавления новых функций. Псевдокод помогает программистам продумать решение проблемы. Это можно сравнить с промежуточными расчетами в уравнении. При правильном использовании псевдокод может сделать сложную задачу простой. Можно дорабатывать псевдокод понемногу, по шагу за раз:

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

    Реклама

  1. 1

    Пишите только по одному обращению в строке. Каждое обращение в псевдокоде должно задавать компьютеру лишь одно действие. Чаще всего при правильном описании задачи каждой задаче будет соответствовать одна строка псевдокода. Напишите список задач, затем превратите его в псевдокод, а потом трансформируйте псевдокод в настоящий выполнимый код.[2]

    • Список задач:
      • Прочитать имя, стоимость часа, количество часов
      • Выполнить расчеты
      • сумма до вычета = стоимость часа * количество часов
      • вычет = сумма до вычета * коэффициент вычета
      • сумма после вычета = сумма до вычета – вычет
      • Записать имя, сумму до вычета, вычет, сумма после вычета
    • Псевдокод:
      • READ имя, стоимостьЧаса, количествоЧасов, коэффициентВычета
      • суммаДоВычета = стоимостьЧаса * количествоЧасов
      • вычет = суммаДоВычета * коэффициентВычета
      • суммаПослеВычета = суммаДоВычета – вычет
      • WRITE имя, суммаДоВычета, вычет, суммаПослеВычета
  2. 2

    Пишите большими буквами первое слово основной функции. В примере, приведенном выше, READ и WRITE выделены большими буквами, поскольку они являются основными функциями программы. Важными ключевыми словами могут быть READ, WRITE, IF, ELSE, ENDIF, WHILE, ENDWHILE, REPEAT и UNTIL.

  3. 3

    Пишите то, что имеете в виду, а не программируйте. Некоторые программисты пишут псевдокод как программу – например, “if a % 2 == 1 then”. Однако тем, кто будет читать псевдокод, будет сложно разобраться в абстрактных символах. Гораздо проще будет понять фразу вроде “если нечетное число то”. Чем понятнее вы будете писать, тем проще людям будет понять, что вы имеете в виду.[3]

  4. 4

    Прописывайте совершенно все. Все, что происходит в рамках одного процесса, должно быть описано максимально подробно. Псевдокод напоминает простые инструкции. В псевдокоде редко используются переменные – гораздо чаще в нем описывается, что должна делать программа с более понятными объектами: номерами счетов, именами, суммами транзакций.[4]

    • Приведем пример хорошего псевдокода:
      • Если номер счета и пароль подходят, то показать основную информацию счета.
      • Рассчитать общую стоимость пропорционально к сумме в счет-фактуре по каждому отправлению.
    • Приведем пример неудачного псевдокода:
      • пусть g=54/r (Не используйте переменные. Лучше опишите то, что под ними скрывается.)
      • выполнять основную обработку до тех пор, пока процесс не завершится (Нужно уточнить, что такое основная обработка и что будет свидетельствовать об окончании процесса.)
  5. 5

    Используйте стандартные инструменты языков программирования. Даже несмотря на то что стандартов для псевдокода не существует, другим программистам будет проще понимать ваши действия, если вы будете использовать конструкции из существующих языков программирования (из тех, где есть последовательности). Используйте “if”, “then”, “while”, “else” и “loop” либо их аналоги на русском языке так же, как вы делали бы это на языке программирования. Обратите внимание на следующие конструкции:

    • if CONDITION then INSTRUCTION. Это означает, что отдельная инструкция будет срабатывать лишь в том случае, если будет выполняться отдельное условие. Инструкцией в данном случае считается шаг, который программа должна будет выполнить. Условие означает, что данные должны соответствовать определенному набору требований, после проверки которых программа сможет работать.
    • while CONDITION do INSTRUCTION. Это означает, что инструкцию нужно повторять снова и снова, пока условие не перестанет выполняться.
    • do INSTRUCTION while CONDITION. Эта конструкция похожа на while CONDITION do INSTRUCTION. В первом случае условие проверяется до того, как начинает действовать инструкция, однако в этом случае сначала запускается инструкция, и задача INSTRUCTION будет инициирована как минимум один раз.
    • for a = NUMBER1 to NUMBER2 do INSTRUCTION. Это означает, что переменная “a” будет автоматически принимать значение NUMBER1. “a” будет увеличиваться на единицу в каждом шаге, пока значение переменной не достигнет NUMBER2. Для обозначения переменной можно использовать любую другую букву.
    • function NAME (ARGUMENTS): INSTRUCTION. Каждый раз, когда в коде используется определенное сочетание букв, оно служит названием для какой-либо инструкции. Аргументы – это список переменных, которые используются для уточнения инструкции.
  6. 6

    Отделяйте шаги блоками. Блоки – это элементы синтаксиса, которые связывают несколько инструкций в одну. С помощью блоков можно упорядочивать информацию (например, шаги из блока 1 всегда выполняются перед шагами в блоке 2) или объединять ее (к примеру, инструкция1 и инструкция2 имеют одну и ту же тематику). В целом, следует отделять все запросы, чтобы показать их зависимость от других.[5]
    Есть два способа сделать это.

    • С помощью фигурных скобок:
      • {
      • INSTRUCTION1
      • INSTRUCTION2
      • …}
    • С помощью пробелов. При использовании пробелов каждая инструкция одного и того же блока должна будет начинаться на одном и том же расстоянии от левого края экрана. Блоки внутри блоков будут располагаться дальше. Инструкция блока верхнего уровня закрывает подблок, даже если ниже есть инструкция с таким же количеством пробелов в начале.
      • BLOCK1
      • BLOCK1
        • BLOCK2
        • BLOCK2
          • BLOCK3
        • BLOCK2
          • BLOCK3
      • BLOCK1

    Реклама

  1. 1

    Сначала опишите цель процесса. Это поможет вам понять, является ли ваш псевдокод завершенным. Если с помощью псевдокода можно решить задачу, он считается завершенным. Опишите процесс. Если он простой, вам потребуется совсем мало строк. Перечитайте то, что написали, и подумайте:

    • Поймет ли этот псевдокод кто-нибудь, кто хотя бы минимально знаком с процессом?
    • Можно ли будет с легкостью превратить псевдокод в настоящий компьютерный код?
    • Описывает ли псевдокод процесс целиком и не были ли упущены какие-либо детали?
    • Сможет ли целевая аудитория понять каждое название объекта в псевдокоде?
  2. Изображение с названием Write Pseudocode Step 1

    2

    Напишите первые шаги, которые подготовят вас к инструкциям. Обычно в первой части кода определяются переменные и другие элементы, которые делают алгоритм рабочим.

    • Включите величины переменных. Укажите в коде, как будет использоваться каждая переменная и каждая единица данных.[6]
    • Определите средства управления. Вам нужно будет описать их языком псевдокода (текст и изображения в языках объектно-ориентированного программирования и более простые средства в других языках) точно так же, как вы сделали бы это при работе с настоящим кодом.[7]
  3. Изображение с названием Write Pseudocode Step 2

    3

    Напишите функциональный псевдокод. Опирайтесь на принципы псевдокода, создавая событийный или объектно-ориентированный код после указания “настроек” программы. Каждая строчка кода должна описывать функцию запроса, зацикливания, выбора или любую другую функцию.

  4. Изображение с названием Write Pseudocode Step 4

    4

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

    • Многие программисты предпочитают превращать псевдокод в обычный код комментариями. Это позволяет другим программистам, которые также работают над этим проектом, анализируют его или чему-то учатся, понять, что хотел сделать разработчик каждой конкретной строчкой.
    • Начинайте комментарии с символов / /, чтобы компьютер не смог прочитать их. Наклонные черты должны отделяться пробелом. Например:
      • / / IF у робота нет впереди препятствия THEN
        • / / Сдвинуть робота
        • / / Добавить в историю команд команду сдвинуть
        • / / RETURN правдиво
      • / / ELSE
        • / / RETURN неправдиво не сдвигать робота
      • / / END IF
  5. Изображение с названием Write Pseudocode Step 5

    5

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

    • Оцените модули кода в соответствии с охватываемыми ими элементами. Например, к ключевым операциям компьютера относится чтение и получение информации из файла, запись в файл или вывод на экран, математические вычисления, оценка данных переменных, сравнение одного или нескольких элементов. Для всех этих процессов есть свое место в компьютерном коде, а также в псевдокоде, который вы создаете для этой программы.
    • Встройте в псевдокод конкретные задачи. Когда отделите пробелами каждую новую задачу, представьте эту информацию в псевдокоде, подражая реальному языку программирования, но не придерживаясь четких правил языка программирования.
    • Проверьте, все ли нужные элементы присутствуют в псевдокоде. Даже если какие-то из технических подробностей вроде объяснений переменных будут не нужны, каждая задача и каждый элемент должны быть четко прописаны.
  6. 6

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

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

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

    Реклама

  1. 1

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

  2. 2

    Используйте элементы программирования, соответствующие вашему языку программирования. Эти элементы могут включать в себя описание переменных, запросы if и loop. Каждую строчку можно воплотить в жизнь по-разному. Все будет зависеть от уровня языка программирования, которым вы пользуетесь.

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

    Внедрите псевдокод. Если псевдокод будет написан просто, грамотно и четко, при запуске программы весь алгоритм будет работать более эффективно и без ошибок.

  4. 4

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

    Реклама

Советы

  • Постарайтесь понять принцип основных операций, который выполняет компьютер. Код должен давать компьютеру команду выполнять операции. Понимание принципов этих операций поможет вам написать псевдокод, который будет отслеживать, что делает основной код.
  • Используйте пробелы как можно более эффективно. Пробелы можно применять для разделения элементов кода, и особенно это важно в псевдокоде – людям так будет легче читать. Представьте, что пробел – это отдельный блок. Строки, которые начинаются с одного и того же количества пробелов, находятся в одном и том же блоке, и они имеют приблизительно одинаковую важность для процесса в алгоритме.

Реклама

Об этой статье

Эту страницу просматривали 63 029 раз.

Была ли эта статья полезной?

Рассказываем, как написать псевдокод и что это вообще такое.

Псевдокод — это построчное неформальное описание кода будущей программы. Он полезен, когда нужно:

  • Описать работу алгоритма. С помощью псевдокода можно объяснить, где и как в программе появляется определенная структура, механизм или прием.
  • Объяснить устройство программы пользователям, которые плохо разбираются в разработке. При написании программы используется строгий синтаксис — иначе она не смогла бы правильно работать. Людям, особенно новичкам, проще воспринимать код на более простом и естественном языке, где понятна задача каждой строки.
  • Работать над кодом в команде. Сеньор-разработчики часто используют псевдокод для решения сложных проблем, с которыми сталкиваются мидлы и джуны, или просто чтобы объяснить свои действия.

Псевдокод будет действительно полезен и упростит разработку, если его правильно написать. Разберем основные правила работы с ним.

Описываем цель программы

Писать псевдокод лучше в простом текстовом редакторе, ему не потребуется сложное форматирование.

Сначала нужно обозначить цель кода в одной или двух строках. Краткое описание цели позволяет структурировать документ и объясняет задачи программы каждому читателю псевдокода.

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

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

Используем стандартные конструкции разработки

Хотя единых требований к псевдокоду не существует, проще понять текст, в котором используются конструкции из языков программирования. Команды «если» (if), «то» (then), «пока» (while), «иначе» (else) и «цикл» (loop) можно применять так же, как и в любом языке программирования. Часто используются следующие конструкции:

  • Если Условие, то Инструкция — инструкция выполняется только при соблюдении условия. Она означает действие, выполняемое программой. Условие формулирует требования, в соответствии с которыми выполняется действие.
  • Пока Условие выполнять Инструкцию — инструкция повторяется многократно, пока выполняется условие. Программа проверяет условие, а затем выполняет инструкцию.
  • Выполнять Инструкцию пока Условие — Эта конструкция похожа на предыдущую, но программа сначала выполняет инструкцию и только потом проверяет условие. Поэтому Инструкция выполняется один раз без проверки условия.
  • Функция Имя (Аргументы): Инструкция — При каждом упоминании в коде указанного имени запускается инструкция. Аргументы обозначают список переменных, которые уточняют инструкцию.

Читайте также:
Как правильно писать комментарии к коду: несколько важных примеров

Делаем разделы текста заметнее

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

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

Используем пустые строки и отступы

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

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

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

Если в псевдокоде используются команды «если» и «то», их можно сразу заменить на IF и THEN: «IF ввод числа THEN вывод результата».

Подробно и последовательно описываем действия программы

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

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

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

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

Читайте также:
Как читать чужой код: 6 правил, которые стоит помнить разработчику

Проверяем себя

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

  • Понятен ли псевдокод человеку, который не знаком с процессом?
  • Легко ли будет преобразовать псевдокод в код на вашем языке программирования?
  • Описан ли процесс полностью, с учетом всех деталей?
  • Понятны ли читателям имена всех объектов?

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

Так выглядит псевдокод — пример нахождения факториала:

INPUT number
SET factorial := 1, i := 1
WHILE i <= number DO     
     COMPUTE factorial := factorial * i
     INCREASE i by 1
END LOOP
PRINT factorial

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

Посмотреть предложения Хекслета

ПСЕВДОКОДЫ

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

Для записи предложений используются:

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

Для реализации псевдокодов, в них
резервируются следующие ключевые слова:

АЛГОРИТМ,

НАЧАЛО_алгоритма,

КОНЕЦ_алгоритма,

ПОДАЛГОРИТМ,

НАЧАЛО_вспомогательного алгоритма,

КОНЕЦ_вспомогательного алгоритма,

НАЧАЛО_описания переменных,

КОНЕЦ_описания переменных,

НАЧАЛО_если <условие>,

ТО,

ИНАЧЕ,

КОНЕЦ_если,

НАЧАЛО_цикла с предусловием <условие входа в
цикл>,

КОНЕЦ_цикла с предусловием,

НАЧАЛО_цикла с постусловием,

КОНЕЦ_цикла с постусловием <условие выхода из
цикла>,

НАЧАЛО_цикла с параметром <параметр, его
диапазон и шаг>,

КОНЕЦ_цикла с параметром <параметр цикла>.

Основное внимание при представлении
алгоритма в псевдокодах уделяется структуре
алгоритма. Особенность псевдокодов заключается
в том, что каждое предложение начинается со
звездочки или нескольких звездочек. В
псевдокодах звездочка используется как
индикатор начала строки. В псевдокодах вместо
звездочек, в принципе, можно использовать любые
другие символы (например: пробел, – как это
делается в школьном алгоритмическом языке, но
это менее наглядно). Число звездочек определяет
уровень вложенности (о вложенности структур
алгоритма читай далее) данного предложения в
алгоритме, то есть одна звездочка – первый
уровень вложенности, две звездочки – второй
уровень вложенности и т.д. Исключением является
только нулевой уровень, в котором звездочки
отсутствуют. Звездочки используются по той
простой причине, что данный символ, используемый
в языках программирования как символ умножения,
никогда не стоит в начале предложения, но в
данном случае позволяют структурировать
алгоритм, то есть подчеркнуть, выделить
структуры алгоритма, уровень их вложенности.

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

ПРАВИЛО ЗВЕЗДОЧЕК.

Правила звездочек:

1)число звездочек в первом и последнем
предложениях должно быть одинаково;

2)количество звездочек от одного
предложения к другому не изменяется, если только
в них не встречаются ключевые слова НАЧАЛО…,
КОНЕЦ….

3)число звездочек в предложениях,
следующих после предложения, словом НАЧАЛО …
увеличивается на одну;

4)число звездочек в предложениях,
имеющих слово КОНЕЦ…, уменьшается на одну по
сравнению с предыдущим.

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

 ЗАДАЧА №1. Алгоритм задачи представлен в
графическом виде:

 

Представить его в псевдокодах.

РЕШЕНИЕ.

В псевдокодах данный алгоритм будет иметь вид:

НАЧАЛО алгоритма

{——– ВВОД А, В, С ————}

* ВЫВОД(‘ВВЕДИТЕ ДЛИНЫ ТРЕХ СТОРОН
ТРЕУГОЛЬНИКА’)

* ВВОД(а, в, с)

{——– линейный блок расчета полупериметра и
площади ———-}

* P:= 0.5*(a+в+c)

* S:= SQRT( P*(P-a)*(P-в)*(P-c) )

{———– Вывод результата ———–}

* ВЫВОД(‘ПЛОЩАДЬ ТРЕУГОЛЬНИКА =>’, S:5:2)

КОНЕЦ алгоритма

КОНЕЦ ЗАДАЧИ.

В {…} даны комментарии к шагам алгоритма.

ЗАДАЧА N2. Алгоритм решения задачи представлен в
графическом виде:

 

Представить его в псевдокодах.

РЕШЕНИЕ.

В псевдокодах данный алгоритм будет иметь вид:

НАЧАЛО алгоритма

{————-– ВВОД ЗНАЧЕНИЯ Х —————-}

* ВЫВОД(‘ВВЕДИТЕ ЗНАЧЕНИЕ ПЕРЕМЕННОЙ Х’)

* ВВОД(Х)

{————-– Определение значения Y ———–}

* НАЧАЛО если x<=0

* * ТО Y:=X*X

* * ИНАЧЕ Y:=X+1

* КОНЕЦ если

{————–– Вывод результата —————-}

* ВЫВОД(Y)

КОНЕЦ алгоритма

КОНЕЦ ЗАДАЧИ.

ЗАДАЧА N3. Алгоритм заданный в графическом виде
имеет вид:


Представить заданный алгоритм в псевдокодах.

РЕШЕНИЕ.

В псевдокодах данный алгоритм может быть
реализован в виде:

НАЧАЛО алгоритма

{——– начало линейного блока ———–}

* S:=0

* I:=1

{——-– цикл получения результата ————}

* НАЧАЛО цикла с предусловием, если I<=10

** S:=S+I

** I:=I+1

* КОНЕЦ цикла с предусловием

{——-– Вывод результата ————-}

* ВЫВОД(S)

КОНЕЦ алгоритма

ЗАДАЧА РЕШЕНА.

ЗАКЛЮЧЕНИЕ.

Псевдокоды – это один из методов
представления алгоритмов. В псевдокодах
алгоритм разбивается на предложения, каждое из
которых описывает некоторый шаг алгоритма.
Основное внимание уделяется структуре
алгоритма. Каждое предложение начинается со
звездочки или нескольких звездочек. Звездочка
используется как индикатор начала строки. Число
звездочек определяет уровень вложенности
данного шага алгоритма. При кодировании
алгоритма в языке программирования звездочки
кодируются пробелами, тем самым структура
алгоритма будет определять структуру блока
операторов.

Добавить комментарий