Автор: Yurka 20.01.2005 17:18
Помогите составить програмку:
Условие:
Задан непустоой текст, в который входять только буквы и цыфры. Проверить или удовлетворяет он такое условие, что в текст входят только одна цыфра причём её значение равно длине текста
Автор: Yurka 20.01.2005 17:20
самое интересное как сопоставить значение цыфры в тексте длине текста, ведь они в разных типах.
Автор: volvo 20.01.2005 17:28
Yurka
1. В следующий раз давайте более осмысленное название темы.
2. Кнопка "Редактировать" для чего? Зачем лишний пост?
3.
Цитата
как сопоставить значение цыфры в тексте длине текста
Очень просто:
Код
digit: char;
s: string;
begin
...
digit := ... {после чего в переменной digit зранится значение цифры, например '4' }
if ord(digit) - ord('0') = length(s) then ... { значение цифры = длине строки...}
end.
Автор: Yurka 21.01.2005 16:11
Спасибо большое
у меня тоже уже кое-какие идейки возникли
Код
var
s,s1:string;
c:char;
y,n,i:integer;
Begin
writeln('text:');
readln(s);
for i:=1 to length(s) do
if (s[i]='0') or (s[i]='1') or (s[i]='2') ... or (s[i]='9') then
begin
n:=n+1;
c:=s[i];
end;
y:=Length(s);
Str(y,S1);
if (n=1) and (c=s1[1]) then
write('da') else write('net');
end.
Вроде сработало. Функция Str() помогла
Автор: volvo 21.01.2005 18:52
Yurka
А если вот так?
Код
var
s: string;
n,i: integer;
begin
writeln('text:');
readln(s);
for i := 1 to length(s) do
if s[i] in ['0'..'9'] then
begin
inc(n);
if ord(s[i]) - ord('0') <> length(s)
then inc(n)
end;
if n = 1 then
write('da') else write('net')
end.
Автор: Yurka 21.01.2005 19:26
Работает ;) . Решение более рацыонально!
Только начинаю разбираться с этими строками поэтому ещё не все функции перебробовал.