Q:

Как динамически менять количество переменных?

Есть переменная N - количество ящиков. Предположим 2 ящика. В 1 ящике - 2 моркови, а во втором - 3. Здесь мы просто введем 3 переменные: N, b1, b2 (b - ящики). А что делать если например  мне будут даны не 2, а три или пять ящиков, а переменных всего лишь 2. Как сделать, чтобы если было N=5, то и переменных было 5 соответствующих ящикам.

A:

Обычно для этих целей используют массивы, в частности динамические. Выглядит это примерно так (с учетом того, что компилятор Free Pascal):
program test;

var n,i,sum:integer;
    box:array of integer;

begin
    writeln('Введите количество ящиков: ');
    readln(n);
    SetLength(box,n);
    for i:=0 to n-1 do // Нумерация элементов массива начинается с 0, номер последнего элемента - длина массива - 1
    begin
        writeln('Введите количество морковок в ',i+1,' ящике'); // для человека привычнее нумеровать с 1, поэтому к номеру ящика прибавляем 1
        readln(box[i]);
    end;
    // Ну и что-то с этим массивом теперь делаем, например посчитаем сумму:
    sum:=0;
    for i:=0 to n-1 do sum:=sum+box[i];
    writeln('Сумма: ', sum);
end.

