Давайте по строчкам пойдем.
Program 1; - имя программы не может начинаться/являться числом
var - всё норм
n,m,p : real; не понимаю, зачем эти переменные объявлять как real, когда можно сделать их int'ами + не хватает переменной i
begin - всё норм
Так как у нас произведение, нам нужно переменной p присвоить единицу.
read(n,m) - не хватает точки с запятой, и я бы писал сначала число, а потом степень в которую надо возвести, а не наоборот.
for i := 0 to n do, если уж мы идём с нуля, тогда цикл должен кончится в n-1 (можно начать с 1, закончить n)
p := m * p; - всё норм
write(p) - не хватает точки с запятой
end - не хватает точки
Рабочий код:
Program pow1;
var
n, m , p,i : integer;
begin
p:= 1;
read(m,n);
for i :=0 to n-1 do
p:=m*p;
write(p);
end.
В целом если смотреть на цикл с параметром в С++, то он немного отличается от других языков.
Его конструкция: for ( объявление переменной; условие; операция с переменной)
Давайте на примере разберем, как он работает.
for (int i = 0; i < 2; i ++) {какое-то действие}
На первом шаге i = 0, затем мы проверяем условие, 0 < 2 - да, следовательно, увеличиваем i на единицу.
Второй шаг i = 1, проверяем условие, 1 < 2 - да, следовательно, увеличиваем i на единицу, i = 2.
Третий шаг i = 2, проверяем условие 2 < 2 - нет, следовательно, цикл завершен.
Еще в плюсах можно пропускать выражения, то есть, с цикла for мы можем даже создать бесконечный цикл.
for (;;)
Но это используется очень редко, поэтому заострять внимание на этом смысла нет.
Совсем забыл, переменную для счетчика цикла можно объявлять как в самом for, так и за его пределами, в примере я объявлял переменную в цикле.
Пример:
int i;
for ( i = 0; i < N; i++)
И
for (int i = 0; i < N; i++)
Разные записи, но делают они одно и тоже.
offset
isset
x1 echo
В итоге должно получится:
@echo offset x=0:isset /a x=x1 echo %x%if not x==10 goto s