Страница 1 из 1

program exited with exitcode=217

СообщениеДобавлено: 18.11.2013 00:09:03
chernyshov_nikita
Здравствуйте! На днях писал программу (скажу честно - в школе задали), определяющую наличие одинаковых цифр в числе, т. е. нужно узнать, есть ли в данном числе 2 одинаковых цифры. Решено было написать программу со строками. Написал и, вроде, даже по логике все подходит и должно бы работать, но, как обычно это случается, найдется какая-нибудь проблема, которую объяснить такому программисту как я очень сложно. Проблема в следующем: после запуска программы и ввода числа, прога вылетает и вылазит окошко с надписью "program exited with exitcode=217"
текст программы:
с:=0;
a:=0;
writeln('введите число');
readln(s);
for i:=1 to 9 do
begin
b:=pos(a,s);
if (b>0) then
begin
delete(s,b,1);
b:=pos(a,s);
if (b>0) then
begin
c:=c+1
delete(s,b,1);
end;
end;
a:=a+1;
end;
if (c>0) then
writeln('да')
else
writeln('нет');
end.
Надеюсь на понимание и помощь, заранее спасибо.

Re: program exited with exitcode=217

СообщениеДобавлено: 18.11.2013 03:23:49
Vadim
chernyshov_nikita
1) Вы ищете тип-цифру в типе-строке, а в строке надо искать именно строку. ;)
2) Вот эта конструкция:
Код: Выделить всё
for i:=1 to 9 do

у Вас зачем?

Re: program exited with exitcode=217

СообщениеДобавлено: 18.11.2013 05:01:14
chernyshov_nikita
9 раз я делаю цикл, чтобы все 9 чисел проверить

Re: program exited with exitcode=217

СообщениеДобавлено: 18.11.2013 05:13:57
Vadim
А по первому пункту Вы ничего не хотите сказать?
По второму пункту. Тогда Вы должны были сравнивать введённое число с переменной i, а в Вашей программе этого нет. Может быть Вы что-то другое имели в виду?
Каким образом Вы гарантируете программе, что в Вашей строке будет именно 9 чисел?

Re: program exited with exitcode=217

СообщениеДобавлено: 18.11.2013 06:10:59
chernyshov_nikita
по 1 пункту - исправлю, согласен - ошибка, а вот по второму: рассматриваю 9 чисел (от 1 до 9), которые в строке ищутся, т. е. 9 - это не количество чисел в строке, а проверяемые числа, так как команде pos без разницы сколько чисел или знаков в моей строке

Re: program exited with exitcode=217

СообщениеДобавлено: 18.11.2013 08:43:29
Лекс Айрин
chernyshov_nikita писал(а):а проверяемые числа, так как команде pos без разницы сколько чисел или знаков в моей строке


Ноль забыли. Или по условиям задачи ноль не цифра?

Re: program exited with exitcode=217

СообщениеДобавлено: 18.11.2013 12:34:42
debi12345
Запустить в режиме отладки с включенной опцией "Останавливаться на исключениях". В этом случае прога не вылетит, а остановится - и отладчик покажет на чем происходит ошибка.

Re: program exited with exitcode=217

СообщениеДобавлено: 18.11.2013 13:16:05
Sergei I. Gorelkin
У функции pos первый аргумент - строка или Variant. Попытка передать число приводит к вызову функции для Variant, и технически программа вылетает из-за отсутствия модуля Variants в секции uses.