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

Узнай цену своей работы

Формулировка задачи:

Помогите разобраться , уже не знаю что делать Вот код:
Листинг программы
  1. type
  2. masiv_cifr_chisla_abcd=array [1..4] of 0..9;
  3. var
  4. abcd,n,k,sum,m:integer;
  5. mas:masiv_cifr_chisla_abcd;
  6. krat:boolean;
  7. begin
  8. write('Введите abcd= ');
  9. readln(abcd);
  10. n:=0;
  11. repeat
  12. n:=n+1;
  13. mas[n]:=abcd mod 10;
  14. mas[n]:=abcd div 10;
  15. until abcd=0;
  16. sum:=0;
  17. for k:=1 to n do
  18. sum:=sum+mas[k];
  19. krat:=sum mod 3=0;
  20. if krat then
  21. writeln('Сумма цифр числа',abcd,'кратно',m)
  22. else
  23. writeln('Сумма цифр числа ',abcd,'не кратно',m);
  24. readln;
  25. end.

Решение задачи: «Ошибка времени выполнения: "Индекс находился вне границ массива"»

textual
Листинг программы
  1. type
  2.   masiv_cifr_chisla_abcd=array [1..4] of 0..9;
  3. var
  4.   tmp:integer; //временная переменная для сохранения значения 4-х значного числа
  5.   abcd,n,k,sum,m:integer;
  6.   mas:masiv_cifr_chisla_abcd;
  7.   krat:boolean;
  8. begin
  9.   write('Введите abcd= ');
  10.   readln(abcd);
  11.   write('Введите m='); readln(m); // вводим число для проверки кратности
  12.   tmp:=abcd; //обязательно сохраняем оригинальное значение
  13.   n:=0;
  14.   repeat
  15.     n:=n+1;
  16.     mas[n]:=abcd mod 10;
  17.     abcd:=abcd div 10; // уменьшаем значение переменной! у вас было mas[n]:=abcd mod 10;
  18.     until abcd=0;
  19.       sum:=0;
  20.       for k:=1 to n do
  21.       sum:=sum+mas[k];
  22.       krat:=sum mod m=0;
  23.       if krat then
  24.         writeln('Сумма цифр числа ',tmp,' кратно ',m)
  25.         else
  26.           writeln('Сумма цифр числа ',tmp,' не кратно ',m);
  27.       readln;    
  28. end.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.357 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы