1. Используя стек, описать процедуру pairs(f) для решения следующей задачи. В
текстовом файле f находится последовательность символов, сбалансированная
по круглым скобкам. Требуется для каждой пары соответствующих
открывающей и закрывающей скобок вывести на экран номера их позиций в
последовательности, упорядочив пары номеров в порядке возрастания номеров
позиций закрывающих скобок. Например, для текста A+(45-F(X)*(B-C))
надо вывести: 8 10; 12 16; 3 17 .

2. Реализовать с помощью указателей стек - однонаправленный список, в котором все вставки и удаления выполняются с головного элемента, называемого вершиной стека.

Операции:
procedure init_stack (var S: stack);{ создание стека }
procedure push (var S: stack;x:elemtype);{ положить x в стек S}
procedure pop (var S: stack; var x:elemtype);{ изъять из стека S головной элемент и присвоить его x}

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

Операции:
procedure init_queue(var Q: queue);{ создание очереди Q}
procedure enqueue(var Q: queue; x:elemtype);{поставить в очередь Q элемент х}
procedure dequeue(var Q: queue; var x:elemtype);{взять из очереди Q элемент и присвоить х}