Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 20.11.2021
Сообщений: 21

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

26.01.2022, 19:45. Показов 1280. Ответов 11

Студворк — интернет-сервис помощи студентам
В 13 строчке ошибка времени выполнения массива. Плюс нужно чтобы эта программа была с подпрограммами.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
var
a: array [0..9] of integer; 
ch: char;    
num, i, j:byte;  
min, k: integer;  
begin
for i:=0 to 9 do 
a[i]:=0;   
read(ch);  
while ch<>'.' do 
begin
num:=ord(ch)-48; 
a[num]:=a[num]+1;
read(ch); 
end; 
for i:=0 to 9 do  
begin
min:=a[0]; 
k:=0;      
for j:=0 to 9 do  
begin
if a[j]<min then 
begin
min:=a[j]; 
k:=j;
end;
end;
if a[k]<>0 then
write(k,' ');
a[k]:=maxint;
end;
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.01.2022, 19:45
Ответы с готовыми решениями:

Ошибка времени выполнения: Индекс находился вне границ массива
Всем доброго времени суток! Есть задача.В строчке tip:=s; выдает ошибку &quot;B3.pas(28) : Ошибка...

Ошибка времени выполнения: Индекс находился вне границ массива
const n=4; var mas,max,nom: array of integer; i,z,wat,b,k:integer; begin mas:=0; for i:=1...

Ошибка времени выполнения: Индекс находился вне границ массива
Здравствуйте. Пишу клеточный автомат &quot;Жизнь&quot;. Уже появились проблемы. Вот кусок кода: const...

11
Вирусоборец
 Аватар для thyrex
14444 / 7486 / 1579
Регистрация: 06.09.2009
Сообщений: 27,129
27.01.2022, 07:47
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
var a: array [0..9] of integer; 
    ch: char;    
 
 procedure FillArray;
 var num, i, j: byte;
 begin 
  for i:= 0 to 9 do
   a[i]:= 0;   
  readln(ch);  
  while ch<>'.' do 
   begin
    num:= ord(ch)-48; 
    a[num]:= a[num]+1;
    readln(ch); 
   end; 
 end;
 
 procedure Ascending;
 var i, j: byte;
     min, k: integer;  
 begin 
  for i:= 0 to 9 do  
   begin
    min:= a[0]; 
    k:= 0;      
    for j:= 0 to 9 do  
     begin
      if a[j]<min then 
       begin
        min:= a[j]; 
        k:= j;
       end;
     end;
    if a[k]<>0 then
     write(k,' ');
    a[k]:= maxint;
   end; 
 end;
 
begin
 FillArray;
 Ascending; 
end.
1
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,381
27.01.2022, 10:21
предложу свой вариант:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 procedure FillArray(var a:array of integer);
 var i: integer;
    ch: char;
 begin 
   for i:= 0 to 9 do  a[i]:= 0;   
   read(ch);  
   while ch<>'.' do begin
      Inc( a[ord(ch)-ord('0')]); 
      read(ch); 
   end; 
   ReadLn
 end;
 
 procedure Ascending(a:array of integer);
 var i, j, k : integer;  
 begin 
  repeat
    k:=0;
    while (k<=9) and (a[k]=0) do Inc(k);
    for j:=k+1 to 9 do
       if (a[j]>0) and (a[j]<a[k]) then k:=j;
    if k<=9 then begin
         write(k,' ');
         a[k]:= 0;
    end
  until k>9;
 end;
 
var a: array [0..9] of integer; 
 
begin
 FillArray(a);
 Ascending(a); 
end.
0
0 / 0 / 0
Регистрация: 20.11.2021
Сообщений: 21
27.01.2022, 17:10  [ТС]
Program1.pas(32) : Неправильный тип параметров подпрограммы
0
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,381
27.01.2022, 17:28
lil tigers, Pascal у тебя какой?
0
0 / 0 / 0
Регистрация: 20.11.2021
Сообщений: 21
27.01.2022, 17:32  [ТС]
Program1.pas(13) : Ошибка времени выполнения: Индекс находился вне границ массива.
0
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,381
27.01.2022, 17:33
Лучший ответ Сообщение было отмечено lil tigers как решение

Решение

можешь такой код заюзать.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 type TMyArray =array [0..9] of integer;
 procedure FillArray(var a: TMyArray);
 var i: integer;
    ch: char;
 begin 
   for i:= 0 to 9 do  a[i]:= 0;   
   read(ch);  
   while ch<>'.' do begin
      Inc( a[ord(ch)-ord('0')]); 
      read(ch); 
   end; 
   ReadLn
 end;
 
 procedure Ascending(a: TMyArray);
 var i, j, k : integer;  
 begin 
  repeat
    k:=0;
    while (k<=9) and (a[k]=0) do Inc(k);
    for j:=k+1 to 9 do
       if (a[j]>0) and (a[j]<a[k]) then k:=j;
    if k<=9 then begin
         write(k,' ');
         a[k]:= 0;
    end
  until k>9;
 end;
 
var
  a: TMyArray;
begin
 FillArray(a);
 Ascending(a); 
end.
0
0 / 0 / 0
Регистрация: 20.11.2021
Сообщений: 21
27.01.2022, 17:34  [ТС]
Program2.pas(9) : Ошибка времени выполнения: Индекс находился вне границ массива.
0
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,381
27.01.2022, 17:37
хотя, конечно, на Pascal ABC.NET всю твою задачу можно в пару строчек кода записать

Добавлено через 1 минуту
Цитата Сообщение от lil tigers Посмотреть сообщение
Program2.pas(9) : Ошибка времени выполнения: Индекс находился вне границ массива.
в смысле?
что ты туда вводишь, расскажи мне!
0
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,381
27.01.2022, 17:38
Лучший ответ Сообщение было отмечено lil tigers как решение

Решение

1
0 / 0 / 0
Регистрация: 20.11.2021
Сообщений: 21
27.01.2022, 17:42  [ТС]
спасибо, все заработало. я просто тупой
0
 Аватар для mr-Crocodile
3053 / 1672 / 657
Регистрация: 19.03.2019
Сообщений: 5,381
27.01.2022, 17:48
Цитата Сообщение от lil tigers Посмотреть сообщение
спасибо, все заработало.
да не за что.

я знаю, ты вводил цифр по одной и после каждой нажимал Enter.
теоретически такого быть не должно, так как по заданию на вход подаётся строка из цифр, которая заканчивается "." (точкой).
Поэтому в коде нет защиты от этого.
Но практически можно легко прописать foolproof код:
Pascal
9
      if ch in ['0'..'9'] then Inc( a[ord(ch)-ord('0')]);
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.01.2022, 17:48
Помогаю со студенческими работами здесь

Ошибка времени выполнения: Индекс находился вне границ массива
var n,i,x,err,a,q:longint; s:string; begin read(n); for i:=1 to n do begin readln(s);...

Ошибка времени выполнения: Индекс находился вне границ массива
Сама задача» Дана прямоугольная матрица целых чисел NхM. Поменять местами первый столбец и...

Ошибка времени выполнения: Индекс находился вне границ массива
program ggghf; var k,i:integer;s:string; begin s:='abzcdefgzz'; for i:=1 to length(s) do begin...

Ошибка времени выполнения: Индекс находился вне границ массива
program z_5; var s: array of integer; i, a, b, c: integer; begin a := 0; b := 0;...

Ошибка времени выполнения: Индекс находился вне границ массива
Программа должна считать максимальный компонет из файла f, при запуске выдает ошибку &quot;Ошибка...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru