Другие языки программирования и технологии

в чому моя помилка? на 10-11 рядку помилка 113, програма на паскалі

var a,n,z:integer; begin writeln('Vvedite chisla A i n'); read(a,n); z:=a; if n>1 then while n>1 do a:=a*z; n:=n-1; writeln(a); else begin if n=1 then a:=a; else a:=1; writeln(a); readln; end.
begin и end после условия
if n>1 then
кто ставить будет? естественно,
else begin
будет выдавать ошибку, потому что этот else никак не связан с if.
вторая ошибка, там же, что
else >>begin есть, а соответсвующего ему end нет.
AX
Arman Xaxhatryan
955
Лучший ответ
одного END не хватает... Лень искать где.
Это возведение в целую степень? Попробуйте так:
var a,n,z:integer;
begin
writeln('Vvedite chisla A i n');
read(a,n);
z:=a;
if n>1 then
begin
while n>1 do
begin
a:=a*z;
n:=n-1;
end;
writeln(a);
end {перед else точка с запятой не ставится}
else begin
if n=1 then
a:=a
else a:=1;
writeln(a);
end;
readln;
end.
var a,n:integer;
begin
writeln('Vvedite chisla A i n');
read(a,n);
while n>1 do begin
a:=a*a;
n:=n-1;
write(a:7); {Примечание1}
end; {Примечание2}
writeln;
readln;
end.
Вот этот условный оператор: while n>1 do работает так: "пока условие n>1 истинно, делай... "
Не понятно зачем эта строка: if n>1 then, которая работает так: "если условие n>1 истинно, то делай... "
Примечание1: здесь ВСЕ результаты будут выведены в одну строку
Примечание2: если нужен только один конечный результат, то поставь end; перед write(a:7);
может так
var a,n,z:integer;
begin
writeln('Vvedite chisla A i n');
read(a,n);
z:=a;
if n>1 then

while n>1 do
begin
a:=a*z;
n:=n-1;
writeln(a);
end;
if n=1 then
a:=a
else a:=1;
writeln(a);
readln;
end.