Помощь - Поиск - Пользователи - Календарь
Полная версия: Строки
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Yurka
Помогите составить програмку:
Условие:
Задан непустоой текст, в который входять только буквы и цыфры. Проверить или удовлетворяет он такое условие, что в текст входят только одна цыфра причём её значение равно длине текста
Yurka
самое интересное как сопоставить значение цыфры в тексте длине текста, ведь они в разных типах.
volvo
Yurka
1. В следующий раз давайте более осмысленное название темы.
2. Кнопка "Редактировать" для чего? Зачем лишний пост?

3.
Цитата
как сопоставить значение цыфры в тексте длине текста
Очень просто:
Код

digit: char;
s: string;
begin
...
 digit := ... {после чего в переменной digit зранится значение цифры, например '4' }
 if ord(digit) - ord('0') = length(s) then ... { значение цифры = длине строки...}
end.
Yurka
Спасибо большое
у меня тоже уже кое-какие идейки возникли rolleyes.gif

Код

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