![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Нужно написать подпрограмму которая обеспечивает вывод в Мемо, в возрастающем порядке всех трехзначных целых чисел, в десятичной записи которых нет одинаковых цифр. Рекомендуется преобразовывать числа в строки и анализировать отдельные символы.
|
|
#2
|
|||
|
|||
|
Нужна помощь в реализации этого задания
|
|
#3
|
||||
|
||||
|
Переделайте вывод под Мемо:
Код:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
Var
i,n: Integer;
s: String;
begin
n := 1;
for i := 100 to 999
do begin
s := IntToStr(i);
if (s[1] in [s[2],s[3]]) or (s[2] in [s[1],s[3]]) or (s[3] in [s[2],s[1]])
then Continue;
Write(s:4);
if n mod 18 = 0 then WriteLn;
Inc(n);
end;
ReadLn;
end. |
|
#4
|
|||
|
|||
|
А вот с этим кодом?
Код:
procedure TfrmIntNumber.Button1Click(Sender: TObject); var min,max,a:integer; s:string; begin Memo1.Clear; max:=999; a:=100; for min:=100 to max do begin s:=inttostr(a); a:=min+1; if ord(s[1])=ord(s[2]) and ord(s[2])=ord(s[3]) and ord(s[1])=ord(s[3]) then break else s:=s[1]+s[2]+s[3]; Memo1.Lines.Add(s); end; end; Цитата:
|
|
#5
|
||||
|
||||
|
Всегда or или and (в условии) надо заключать в скобки:
Код:
procedure TfrmIntNumber.Button1Click(Sender: TObject); var min,max,a:integer; s:string; begin Memo1.Clear; max:=999; a:=100; for min:=100 to max do begin s:=inttostr(a); a:=min+1; if (ord(s[1])=ord(s[2])) and (ord(s[2])=ord(s[3])) and (ord(s[1])=ord(s[3])) then break else s:=s[1]+s[2]+s[3]; Memo1.Lines.Add(s); end; end; |
|
#6
|
|||
|
|||
|
v1s2222, Спасибо за помощь в такой мелкой ошибке.
Что нужно дописать что б выводило только числа по условию задания? Страдалецъ, Спасибо за старания. |
|
#7
|
||||
|
||||
|
То что я вам дал, несколько отличается от вашего примера. Подумайте почему я использовал Continue а не Break.
|