Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
123
36 / 0 / 1
Регистрация: 18.03.2015
Сообщений: 213

Цикл работает не так как я хочу. Исключение IndexOutOfRangeException

13.09.2019, 00:03. Показов 1993. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программа должна после каждого считывания строки записывать ее в ячейку массива и прибавлять к переменной отвечающей за количество записываний единицу. А потом рандомно в диапазоне равном количеству записей вывести в строке строку массива.

В файле 5 строк, то есть считать программа должна пять раз и индекс массива должен быть 5. Но у меня вылазит IndexOutOfRangeException. Непонятно в чем причина, еще я не очень внимательный.


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
var
  f: text;
  foe: integer;
  foes: array[1..10] of string;
 
begin
  var i: integer;
 
  assign(f, 'враги.txt');
  reset(f);
    i := 1;
  while not eof(f) do
    try
  begin
    read(f, foes[i]);
        i := i + 1;
  end;
  foe := random(1, i);
  write('Вы встретили' + foes[foe]);
  except
  on System.IndexOutOfRangeException do
    writeln('Фигня какая-то');
 
end;
    read;
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.09.2019, 00:03
Ответы с готовыми решениями:

Реализация шифра Цезаря. Как обойти исключение IndexOutOfRangeException?
Здравствуйте, подскажите пожалуйста как обойти исключение: надо было реализовать шифр Цезаря.. привожу код: using System; ...

Процедура val работает не так как я хочу
У меня есть ввод с клавиатуры f01,f02,f03,f04 формул. Если записывать вместо процедуры val напрямую присвоение переменной формулы в...

Код работает но не так как я хочу. Что делать?
procedure TForm2.N36Click(Sender: TObject); begin if (sDBEdit9.Text='') and (sDBEdit10.Text='') and (sDBEdit11.Text='') then begin ...

4
 Аватар для kotAV
142 / 108 / 57
Регистрация: 15.09.2017
Сообщений: 425
13.09.2019, 01:05
Лучший ответ Сообщение было отмечено Sun Serega как решение

Решение

Андрей1926,
Pascal
15
    readln(f, foes[i]);
А вообще, не используйте статические массивы, используйте динамические:

Pascal
1
2
3
4
5
6
begin
  var enemies := ReadAllLines('враги.txt');
  writeln($'Вы встретили {enemies[Random(enemies.Length)]}');
  
  readln;
end.
1
123
36 / 0 / 1
Регистрация: 18.03.2015
Сообщений: 213
13.09.2019, 01:46  [ТС]
kotAV, ух ты, пасиба. Так где у меня ошибка? Переменная ведь не выходит за рамки десяти. Не очень понимаю что сделал не так. //понял не разглядел LN

Вообще мои знания ограничиваются уроками с ютуба и парой книжек довольно устаревших уже. И мне говорили что ассижн это не актуальная фигня уже давно.
0
 Аватар для kotAV
142 / 108 / 57
Регистрация: 15.09.2017
Сообщений: 425
13.09.2019, 04:07
Лучший ответ Сообщение было отмечено Андрей1926 как решение

Решение

Писать на PascalABC.NET в стиле FreePascal всё равно что идти в ресторан и жрать там дошик))

Цитата Сообщение от Андрей1926 Посмотреть сообщение
мои знания ограничиваются уроками с ютуба и парой книжек довольно устаревших уже
Если хотите нормальную книгу, то есть Книга А.В. Осипова по PascalABC.NET (именно по нему). Она ещё не дописана, но страниц 300-350 точно есть, скучать не придётся)) Если задумаете читать, то сразу экспериментируйте над приведёнными там программами. А если лень читать столько, то есть кратка справка в самом PascalABC.NET (F1). Ютуб почти не смотрел, там чаще всего одна ересь на фрипаскальском доисторическом))
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
13.09.2019, 08:35
Ну и кроме этих источников, на главном сайте http://pascalabc.net есть несколько презентаций, в кратце объясняющих основные фичи языка, а так же примеры у вас в папке C:\PABCWork.NET\Samples.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.09.2019, 08:35
Помогаю со студенческими работами здесь

Цикл не работает так как надо
Всем привет! Народ, у меня цикл в программе работает не так как надо. 1 круг цикла происходит в норме, а когда начинается 2ой он...

Исключение System.IndexOutOfRangeException
Всем привет, проблема следующая. Написал небольшую программу, суть программы такова, берется массив из 20 элементов. В него загоняются...

Почему цикл работает не так, как ожидается?
Двумя способами реализовал цикл, который увеличивает годовую зарплату на 10% при нажатии 'y' до тех пор пока не будет введен символ 'n', но...

Почему возникает исключение IndexOutOfRangeException?
Подскажите, в чем может быть ошибка?

Цикл ввода строкового массива работает не так, как нужно
Объясните пожалуйста, почему цикл выполняется на один раз меньше числа, которое мы вводим с клавиатуры. То есть если я введу число 5, то...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru