Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.12.2009, 08:21
Nurlan Nurlan вне форума
Прохожий
 
Регистрация: 29.12.2009
Сообщения: 28
Репутация: 10
Сообщение Проверить истинность высказывания "все цифры данного числа различны" в Delphi 7

я не знаю что надо написать чтобы программа проверяла числа
Ответить с цитированием
  #2  
Старый 29.12.2009, 09:05
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Элеменатрно...
Код:
//Есть число n
var
 n : Word;//число
 s : String;//строка-массив символов
 i, j : word;
 check : boolean;
begin
 Check := True;
 s := IntToStr;//перевести число в строку
 for i := 0 to Length(s)-1 do//от нуля до конца строки
  for j := i to Length(s)-1 do//от определенного символа до конца строки 
   if S[i]=S[j] then//если определенный символ совпадает с любым остальным
    Check := false;//то проверка не пройдена
 if Check then//если проверка пройдена
  ShowMessage('Сопадений нет')
 else//если проверка не пройдена
  ShowMessage('Совпадения есть');
end;
Код написпал "на коленке", т.е. нужно его потестить...но направление верное...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...

Последний раз редактировалось NIch, 29.12.2009 в 09:08.
Ответить с цитированием
  #3  
Старый 29.12.2009, 09:06
Аватар для s0Creator
s0Creator s0Creator вне форума
Местный
 
Регистрация: 20.02.2008
Адрес: Московская область
Сообщения: 420
Репутация: 884
По умолчанию

Сперва получить из числа все цифры
Проще всего переведя в строку - тогда каждый символ и есть число.
Если нельзя через строку, последовательно mod и div.
Далее по очереди ( в цикле ) берешь цифрыот первй до предпоследней и сравниваешь их ( в еще одном цикле ) с цифрами от следующей до последней.
Если нашел хоть одно совпадение - высказывание ложно.
_________
ЗЫ: опоздал - поправлю NIch : строки вроде начинаются с 1 и при j := i - S[i]=S[j] ( у меня "на коленке" и похуже бывает )

Последний раз редактировалось s0Creator, 29.12.2009 в 09:11.
Ответить с цитированием
  #4  
Старый 29.12.2009, 12:59
Аватар для m0nzt3r
m0nzt3r m0nzt3r вне форума
Прохожий
 
Регистрация: 02.12.2008
Адрес: Россия, Москва
Сообщения: 7
Репутация: 11
По умолчанию

А через множества не проще?
Ответить с цитированием
  #5  
Старый 29.12.2009, 13:16
Аватар для s0Creator
s0Creator s0Creator вне форума
Местный
 
Регистрация: 20.02.2008
Адрес: Московская область
Сообщения: 420
Репутация: 884
По умолчанию

Цитата:
Сообщение от m0nzt3r
А через множества не проще?
Поясни на примере.
Ответить с цитированием
  #6  
Старый 29.12.2009, 13:19
Аватар для m0nzt3r
m0nzt3r m0nzt3r вне форума
Прохожий
 
Регистрация: 02.12.2008
Адрес: Россия, Москва
Сообщения: 7
Репутация: 11
По умолчанию

Цитата:
Сообщение от s0Creator
Поясни на примере.
Вот простенький:

Код:
var
  st:string; mn:set of char; i:byte; ok:boolean;
begin
  st:=Edit1.Text;
  ok:=true;
  for i:=1 to Length(st) do begin
    if st[i] in mn then ok:=false
    else mn:=mn+[st[i]];
  end;
  if ok=true then ShowMessage('Win!') else ShowMessage('Fail!');
end;

Это если вводить текстом число. Если оно просто целым числом передается, вначале преобразуй его в строку и все. А так - эта прога будет работать даже для буквенных строк, в принципе.
Ответить с цитированием
  #7  
Старый 29.12.2009, 17:58
Nurlan Nurlan вне форума
Прохожий
 
Регистрация: 29.12.2009
Сообщения: 28
Репутация: 10
По умолчанию

спасбо всем с наступающим вас ) проверю
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:28.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter