Сергей Иванов

Псевдокод

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

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

Несмотря на разнообразие языков программирования, все они имеют некоторые общие черты. К ним относятся переменные, циклы, блоки if-else и так далее. На самом деле, если убрать из программы все специфические особенности языка, то останется ее "логическое ядро", которое и является сутью любого алгоритма. Изолируя это ядро, мы неизбежно вынуждены прибегать к высокоуровневым конструкциям типа "Делать A, пока не произойдет B", где и A, и B могут быть довольно сложными операциями. Таким образом, эту суть алгоритма можно назвать псевдокодом.

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

Зачем нам нужен псевдокод?

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

Сначала рассмотрим псевдокод функции:

function max(array):             // получаем массив каким-то образом
    if len(array) == 0 then:     // сравнить размер массива с 0
        return -1                // пустой массив, максимума нет

    max = 0                      // предположим, что максимум 0
    
    for i in [1, len(array)]:    // итерация по массиву, 
                                 // индексы массива начинаются с 1
        if array[i] > max then:  // если мы найдем что-то большее,
            max = array[i]       // мы изменяем максимальное
    
    return max                   //  результат

Напомним, что в нашем псевдокоде индексация начинается с 1.

Это выглядит довольно просто и дает представление о внутренней логике алгоритма.

Теперь давайте посмотрим на код Python, который делает практически то же самое:

n = int(input())                # размер массива 
array = []                      # пустой массив
for i in range(n):              # делать что-то n раз
    array.append(int(input()))  # добавить элемент в массив

if n == 0:                      # пустой массив
    print(-1)

else:
    max = 0                     # текущий максимум 

    for i in array:             # итерация по массиву
        if i > max:         
            max = i             # обновить максимальное значение

    print(max)

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

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

Заключение

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

https://hyperskill.org/learn/step/15090