Ошибка времени выполнения: "Индекс находился вне границ массива" - PascalABC.NET
Формулировка задачи:
Помогите разобраться , уже не знаю что делать
Вот код:
Листинг программы
- type
- masiv_cifr_chisla_abcd=array [1..4] of 0..9;
- var
- abcd,n,k,sum,m:integer;
- mas:masiv_cifr_chisla_abcd;
- krat:boolean;
- begin
- write('Введите abcd= ');
- readln(abcd);
- n:=0;
- repeat
- n:=n+1;
- mas[n]:=abcd mod 10;
- mas[n]:=abcd div 10;
- until abcd=0;
- sum:=0;
- for k:=1 to n do
- sum:=sum+mas[k];
- krat:=sum mod 3=0;
- if krat then
- writeln('Сумма цифр числа',abcd,'кратно',m)
- else
- writeln('Сумма цифр числа ',abcd,'не кратно',m);
- readln;
- end.
Решение задачи: «Ошибка времени выполнения: "Индекс находился вне границ массива"»
textual
Листинг программы
- type
- masiv_cifr_chisla_abcd=array [1..4] of 0..9;
- var
- tmp:integer; //временная переменная для сохранения значения 4-х значного числа
- abcd,n,k,sum,m:integer;
- mas:masiv_cifr_chisla_abcd;
- krat:boolean;
- begin
- write('Введите abcd= ');
- readln(abcd);
- write('Введите m='); readln(m); // вводим число для проверки кратности
- tmp:=abcd; //обязательно сохраняем оригинальное значение
- n:=0;
- repeat
- n:=n+1;
- mas[n]:=abcd mod 10;
- abcd:=abcd div 10; // уменьшаем значение переменной! у вас было mas[n]:=abcd mod 10;
- until abcd=0;
- sum:=0;
- for k:=1 to n do
- sum:=sum+mas[k];
- krat:=sum mod m=0;
- if krat then
- writeln('Сумма цифр числа ',tmp,' кратно ',m)
- else
- writeln('Сумма цифр числа ',tmp,' не кратно ',m);
- readln;
- end.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д