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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.07.2008, 08:03   #1
Vitas1234
Пользователь
 
Регистрация: 24.05.2008
Сообщений: 12
По умолчанию Задача

Дано натуральное число п. Проверить, будут ли все цифры числа различными.
вот тут начал а как дальше незнаю?
var
l,e,errcode:integer;
s:string;
q,w,i,ch:char;
begin
write('input chislo: ');
read(e);
str(e,s);
i:='1';
For l:=1 to Length(s) do

помогите переделать проседуру проверки ввода (что бы пропускала только буквы и пробел.)
procedure vvod(var t:word;a,b:word);
var
x,y,code:integer;
l:string;
flag:boolean;
begin
x:=wherex;
y:=wherey;
repeat
flag:=true;
readln(l);
if (code<>0) or (not(t>a)) or (not(t<b)) then
begin
gotoxy(x,y);
clreol;
write('error');
delay(1000);
gotoxy(x,y);
clreol;
flag:=false;
end;
until flag=true;
end;
Vitas1234 вне форума Ответить с цитированием
Старый 07.07.2008, 09:03   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Я так слегка намекну как можно узнать повторяются ли цифры в числе:
Код:
var s:string;e,i,w:integer; a:string[10];b:boolean;
begin
s:='12345689';b:=false;a:='0000000000';
//********* FOR ******************
for i :=1  to Length(s)  do
begin
 val(s[i],e,w);
 if a[e+1]='0' then  a[e+1]:='1'
 else begin
  b:=true;
  break;
 end;
end;
//******* END FOR ****************{}
if b then writeln('повтор') else writeln('неа');
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.07.2008, 11:07   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Мне кажется можно сделать проще.
Код:
uses crt;
var s:string[10];//больше 10 знаков нет смысла проверять
    i,j,k:byte;
begin
clrscr;
write('Vvedite chislo ne bolee 10 znazkov:');
readln(s);
k:=0;
for i:=1 to length(s) do
for j:=1 to length(s) do
if (s[i]=s[j])and(i<>j)then
   begin
    k:=k+1;
    writeln('Povtorjajutsa!');
    readln;
    exit;
  end;
if k=0 then writeln('Ne povtorjajutsa!');
readln
end.
puporev вне форума Ответить с цитированием
Старый 07.07.2008, 11:44   #4
Crazy_Wolfy
Пользователь
 
Аватар для Crazy_Wolfy
 
Регистрация: 03.07.2008
Сообщений: 34
По умолчанию

var
i,t: byte;
s: string;
begin
writeln('введите число');
read(s);
for i:=1 to 11 do begin
if i=11 then begin
write('есть одинаковые цифры! press enter');
read;
halt; end;
for t:=1 to i do if (s[i]=s[t]) and (i<>t) then
begin
совершенство понятие относительное, учеба вещь постоянная...

Последний раз редактировалось Crazy_Wolfy; 07.07.2008 в 11:52.
Crazy_Wolfy вне форума Ответить с цитированием
Старый 07.07.2008, 11:46   #5
Crazy_Wolfy
Пользователь
 
Аватар для Crazy_Wolfy
 
Регистрация: 03.07.2008
Сообщений: 34
По умолчанию

write('есть одинаковые цифры! press enter');
read;
halt; end;
end;
end.
вторая часть. в делфи проверил.
совершенство понятие относительное, учеба вещь постоянная...
Crazy_Wolfy вне форума Ответить с цитированием
Старый 07.07.2008, 12:10   #6
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

По процедуре ввода. Если Вам нужен не посимвольный контроль ввода, а правильный итоговый ввод, то можно сделать так. Вводить можете что угодно, а на экране будут только буквы и пробелы.
Код:
uses crt;
var
str:string;
procedure Vvod(var s:string);
var m:set of char;
    i:integer;
begin
clrscr;
m:=['A'..'Z','a'..'z','А'..'п','р'..'ё',' '];
write('Vvedite stroku: ');readln(s);
for i:=length(s) downto 1 do
if not (s[i] in m) then delete(s,i,1);
writeln;
writeln(s);
readln
end;
begin
Vvod(str);
end.
puporev вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача по ООП Lenivec** Фриланс 2 17.07.2008 15:17
Задача Nil_rus Помощь студентам 3 15.05.2008 09:05
Задача/C++ Stan Помощь студентам 2 24.01.2008 20:33
Задача по ТП. GE076 Помощь студентам 11 07.12.2007 19:29