Помогите составить програмку: Условие: Задан непустоой текст, в который входять только буквы и цыфры. Проверить или удовлетворяет он такое условие, что в текст входят только одна цыфра причём её значение равно длине текста
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
Работает ;) . Решение более рацыонально! Только начинаю разбираться с этими строками поэтому ещё не все функции перебробовал.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.