Ошибка в Pascal

программирование программы pascal

Program Stepeni;
Function S(x,y:Integer):Integer;
Var a,i,k,l:integer;
p:array of Integer;
begin
l:=y mod 2;
if l=0 then
begin
a:=y div 2;
Setlength(p,a);
k:=1;
for i:=0 to a do
p[i]:=sqr(x);
for i:=0 to a do
k:=p[i]*k;
S:=k;
end
else
begin
a:=y div 2;
SetLength(p,a);
k:=1;
for i:=0 to a do
p[i]:=sqr(x);
p[a]:=p[a] div x;
for i:=0 to a do
k:=p[i]*k;
S:=k
end;
end;
Begin
Write(S(2,3))
end.



Выдает : Ошибка времени выполнения: Индекс находился вне границ массива.

Примечание:
если индекс равен один вылазит та же ошибка.
Ответы:
Если размер массива a, а индекс первого элемента 0, то каким будет индекс последнего?


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.