Кубы чисел от A до B

Задача: 

Вывести на экран кубы чисел от A до B.

Алгоритм решения задачи: 

Для решения задачи используется цикл for.

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

var
        a, b: integer;
begin
        write('A: '); readln(a);
        write('B: '); readln(b);
        if a then
                for a := a to b do 
                        writeln (a * a * a);
readln;
end.

Комментарии

А для чего мы if a

А для чего мы if a

Потому что кубы выводятся от

Потому что кубы выводятся от a до b.
Пользователь может ввести значения так, что a будет больше b. В таком случае цикл for не выполнится.
Действительно, if здесь лишнее. Оно имеет смысл только в случае, когда обрабатывается ситуация, где значение b меньше, чем a:

var
    a,b:integer;
 
begin
    write('A: '); readln(a);
    write('B: '); readln(b);
    if a then
        for a:=a to b do
            writeln(a*a*a)
    else
        for a:=a downto b do
            writeln(a*a*a);
 
end.

а как переделать программу в

а как переделать программу в while?

в цикле while

var
    a, b, c, i : integer;
begin
    write('a: '); 
    readln(a);
    write('b: '); 
    readln(b);
    if a > b then {если a больше b - меняем местами}
    begin
        c := a;
        a := b;
        b := c;  
    end;
    i := a;
    while (i = b) do
    begin
        writeln(i * i * i);
        i := i + 1;
    end;       
end.

Может так? var

Может так?
var
a,b:integer;
begin
write('A: '); readln(a);
write('B: '); readln(b);
if a while a writeln(a*a*a);
inc(a)
end;
else
while b writeln(b*b*b);
inc(b)
end;
end.

ПОМОГИТЕ!

Вывести на экран произведение чисел от 15 до 25, тоесть чтобы было типа 15*16*17*18....все произведение в одном числе!

Вот так можно.

Var a:integer;
Begin
   a:=1;
   For i:=15 to 25 do a:=a*i;
   Writeln(a);
End.

С телефона пишу. Неудобно до ужаса.