program exited with exitcode=217

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

program exited with exitcode=217

Сообщение chernyshov_nikita » 18.11.2013 00:09:03

Здравствуйте! На днях писал программу (скажу честно - в школе задали), определяющую наличие одинаковых цифр в числе, т. е. нужно узнать, есть ли в данном числе 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.
Надеюсь на понимание и помощь, заранее спасибо.
chernyshov_nikita
незнакомец
 
Сообщения: 3
Зарегистрирован: 17.11.2013 23:48:21

Re: program exited with exitcode=217

Сообщение Vadim » 18.11.2013 03:23:49

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

у Вас зачем?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: program exited with exitcode=217

Сообщение chernyshov_nikita » 18.11.2013 05:01:14

9 раз я делаю цикл, чтобы все 9 чисел проверить
chernyshov_nikita
незнакомец
 
Сообщения: 3
Зарегистрирован: 17.11.2013 23:48:21

Re: program exited with exitcode=217

Сообщение Vadim » 18.11.2013 05:13:57

А по первому пункту Вы ничего не хотите сказать?
По второму пункту. Тогда Вы должны были сравнивать введённое число с переменной i, а в Вашей программе этого нет. Может быть Вы что-то другое имели в виду?
Каким образом Вы гарантируете программе, что в Вашей строке будет именно 9 чисел?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: program exited with exitcode=217

Сообщение chernyshov_nikita » 18.11.2013 06:10:59

по 1 пункту - исправлю, согласен - ошибка, а вот по второму: рассматриваю 9 чисел (от 1 до 9), которые в строке ищутся, т. е. 9 - это не количество чисел в строке, а проверяемые числа, так как команде pos без разницы сколько чисел или знаков в моей строке
chernyshov_nikita
незнакомец
 
Сообщения: 3
Зарегистрирован: 17.11.2013 23:48:21

Re: program exited with exitcode=217

Сообщение Лекс Айрин » 18.11.2013 08:43:29

chernyshov_nikita писал(а):а проверяемые числа, так как команде pos без разницы сколько чисел или знаков в моей строке


Ноль забыли. Или по условиям задачи ноль не цифра?
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: program exited with exitcode=217

Сообщение debi12345 » 18.11.2013 12:34:42

Запустить в режиме отладки с включенной опцией "Останавливаться на исключениях". В этом случае прога не вылетит, а остановится - и отладчик покажет на чем происходит ошибка.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: program exited with exitcode=217

Сообщение Sergei I. Gorelkin » 18.11.2013 13:16:05

У функции pos первый аргумент - строка или Variant. Попытка передать число приводит к вызову функции для Variant, и технически программа вылетает из-за отсутствия модуля Variants в секции uses.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1405
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград


Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19

Рейтинг@Mail.ru