Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2012, 18:57   #1
GreenMan
 
Регистрация: 16.02.2012
Сообщений: 7
По умолчанию Встречается ли цифра в числе... Идеи?

Дано число в диапазоне [-1000..1000] и дана цифра от 0 до 9. Определить, встречается ли эта цифра в числе?

Думаю уже второй день, но нормального решения не могу найти... Ведь число может быть и однозначное, и двузначное, и трехзначное, и четырехзначное... Можете помочь? Как написать эту программу?
GreenMan вне форума Ответить с цитированием
Старый 18.03.2012, 19:11   #2
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Код:
var
  n:integer;
  cifr:char;  // вахаб, вахаб, сифер, сифер © х\ф "Не шутите с Зоханом" :D
begin
  write('число= ');
  readln(n);
  write('цифра= ');
  readln(cifr);
  if POS(cifr,IntToStr(n))<>0 then
    writeln(cifr,' содержится в ',n)
  else
    writeln(cifr,' не содержится в ',n);
  readln
end.
Все тривиальное просто
whatever вне форума Ответить с цитированием
Старый 18.03.2012, 19:45   #3
Ev[G]eN
C / C++ / Java
Пользователь
 
Регистрация: 23.01.2011
Сообщений: 14
По умолчанию

Код:
var
  Temp, Chislo, Cifra: Integer;
  Bool: Boolean;
begin
  Bool:=False;
  Chislo:=Random(2001)-1000;
  writeln('Число: ', Chislo);
  write('Цифра: ');
  readln(Cifra);
  Temp:=Abs(Chislo);
  while Temp > 0 do
  begin
    if Cifra = (Temp mod 10) then Bool:=True;
    Temp:=Temp div 10;
  end;
  write('Встречается ли ', Cifra, ' в ', Chislo, '? - ', Bool);
end.
Ev[G]eN вне форума Ответить с цитированием
Старый 18.03.2012, 20:15   #4
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Ev[G]eN, тоже вариант, только randomize забыл, нет смысла крутить цикл после того, как bool стал true, и, так как cifra у тебя integer, а не char, нужно добавить проверку, чтобы не ввели более одной цифры или вообще отрицательное число:

Код:
var
  Temp, Chislo, Cifra: Integer;
  Bool: Boolean;
begin
  Bool:=False;
  randomize;
  Chislo:=Random(2001)-1000;
  writeln('Число: ', Chislo);
  write('Цифра: ');
  readln(Cifra);
  while (cifra>9) or (cifra<0) do
    begin
      write('Цифра: ');
      readln(Cifra);
    end;
  Temp:=Abs(Chislo);
  while Temp > 0 do
  begin
    if Cifra = (Temp mod 10) then
      begin
        Bool:=True;
        break;
      end;
    Temp:=Temp div 10;
  end;
  write('Встречается ли ', Cifra, ' в ', Chislo, '? - ', Bool);
  readln
end.
Все тривиальное просто

Последний раз редактировалось whatever; 18.03.2012 в 20:19.
whatever вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
цифра или буква roborrr Microsoft Office Excel 9 14.03.2011 22:34
C++ Вывести на экран все натуральные числа из диапазона от A до B, в записи которых цифра 7 встречается maloy0103 Помощь студентам 1 27.12.2010 00:17
Последняя цифра A^B darter96 Помощь студентам 8 25.02.2010 19:44
наименьшая цифра числа в delphi SALOmandra Помощь студентам 2 22.04.2008 15:57