Пример простейшего ввода и вывода данных

Задача: 

Получить от пользователя данные, обработать их и вывести на экран

Программа на языке Паскаль: 

var
    a,b,c,d,sum: integer;
    mult: longint;
begin
    write('Input number a: ');
    readln(a);
    write('Input number b: ');
    readln(b);
    sum:= a+b;
    writeln('Sum of the numbers ',a,' and ',b,' is ',sum);
 
    writeln;
 
    writeln('Input below numbers c and d: ');
    read(c,d);
    mult:= c*d;
    writeln('The result of multiplying ',c,' and ',d,' is ',mult);
end.

Комментарии

Строки

В строке s записан некоторый текст, в котором могут присутствовать
круглые, квадратные и фигурные скобки (открывающие и закрывающие) .
(1) Написать процедуру-функцию, возвращающую номер позиции
закрывающей квадратной скобки, которая соответствует первой открывающей
квадратной скобке строки.
(2) Написать процедуру-функцию, заменяющую подстроку, которая
начинается с первого вхождения в строку s открывающей квадратной скобки и
заканчивается соответствующей ей закрывающей квадратной скобкой, на строку s1,
и возвращающую подстроку, заключенную между скобками в качестве своего
значения. Заранее спасибо!

Решение (про скобки)

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

Такие задачи дают в школе или вузе?

Решение

Задача "Елки-Палки"

Дети к Новому году решили вырастить большую елку из семян. Елка оказалась достаточно странной и росла очень быстро. Уже на второй день появился ствол. Еще через день от ствола отошли первые 2 ветки. В каждый следующий день от каждой соответствующей ветки и от ствола отходило 2 ветки. Сколько веток будет на елке через k дней, если 3<_K<_20?
Здесь надо использовать цикл или массив?

Надо использовать цикл. И

Надо использовать цикл. И похоже, что на каждой итерации умножать количество веток на два. Цикл выполнять от значения 3 до значения 20 (for i:=3 to 20 do ...)