Что такое псевдокод: полное руководство

Опубликовано: 12 Декабря, 2022

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.

Для чего нужен псевдокод

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

Как написать псевдокод?

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

  • Организуйте последовательность задач и напишите соответствующий псевдокод.
  • Сначала устанавливает главную цель или задачу.

    Пример:

    This program will print first N numbers of Fibonacci series.

  • Используйте стандартные структуры программирования, такие как if-else , for , while и case так, как мы их используем в программировании. Делайте отступы в операторах if-else, поскольку циклы while имеют отступы в программе, что помогает понять механизм управления решениями и выполнения. Это также значительно улучшает читаемость.

    Пример:

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

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

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

    Пример: если вы пишете операторы IF…ELSE, убедитесь, что IF и ELSE написаны заглавными буквами.

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

Хорошие и плохие способы написания псевдокода:

Примеры псевдокода:

1. Псевдокод двоичного поиска :

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.

Пример: Учитывая отсортированный массив Arr[] и значение X , задача состоит в том, чтобы найти индекс, в котором X присутствует в Arr[] .

Ниже приведен псевдокод для двоичного поиска.

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. Псевдокод быстрой сортировки:

QuickSort is aDivide 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.

Ниже приведен псевдокод для быстрой сортировки.

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

Здесь LOW — это начальный индекс, а HIGH — конечный индекс.

Разница между алгоритмом и псевдокодом

Алгоритм

Псевдокод

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

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

Алгоритм использует только простые английские слова

Псевдокод также использует зарезервированные ключевые слова, такие как if-else, for, while и т. д.

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

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

Нет правил написания алгоритмов

Существуют определенные правила написания псевдокода.

Алгоритмы можно считать псевдокодом

Псевдокод нельзя считать алгоритмом

Трудно понять и интерпретировать

Это легко понять и интерпретировать

Разница между блок-схемой и псевдокодом

Блок-схема

Псевдокод

Блок-схема — это графическое представление потока алгоритма.

Псевдокод — это пошаговое описание алгоритма в кодообразной структуре с использованием простого текста на английском языке.

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

Псевдокод использует зарезервированные ключевые слова, такие как if-else, for, while и т. д.

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

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

Блок-схемы хороши для документации

Псевдокод лучше подходит для понимания

1. Вопросы о псевдокоде Infosys:

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:

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

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

Часто задаваемые вопросы по псевдокоду ( FAQ )

1) Каковы 5 правил псевдокода?

Пять важных правил написания псевдокода:

  1. Напишите по одному утверждению в строке.
  2. Исходные ключевые слова должны быть представлены заглавными буквами (ЧИТАТЬ, ЗАПИСАТЬ, ЕСЛИ, ПОКА, ДО).
  3. Отступ псевдокода должен быть похож на реальную программу, чтобы показать иерархию.
  4. Завершение многострочной структуры необходимо.
  5. Держите заявления на простом языке (английский).

2) Как запустить псевдокод?

Сначала цель процесса должна быть написана, чтобы сделать цель ясной.

3) Легко ли выучить псевдокод?

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

4) Почему мы используем псевдокод?

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

5) Является ли псевдокод алгоритмом?

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

6) В чем разница между псевдокодом и блок-схемой?

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

7) В чем разница между псевдокодом и кодом?

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

8) Что проще использовать алгоритм или псевдокод?

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

9) Как вы объявляете переменную в псевдокоде?

В псевдокоде присвоение значения переменной обозначается символом стрелки ( ← ). Стрелка указывает от присваиваемого значения к переменной, которой оно присваивается.
Пример: String ← «GeeksforGeeks» будет допустимым назначением.

10) Что такое end if в псевдокоде?

Чтобы завершить многострочную команду if, используется команда endif. Команда может быть указана как два отдельных слова «end if» или как одно слово «endif».

Вывод:

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