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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2008, 14:06   #1
svobodys
Пользователь
 
Регистрация: 07.10.2008
Сообщений: 42
По умолчанию Помогите пожалуйста с программой на паскале.

В заданныйтекст только входят цифры и буквы. Определить, совпадает ли текст с конечным отрезком ряда 0123456789 (например 9,89,789)
svobodys вне форума Ответить с цитированием
Старый 28.10.2008, 14:17   #2
Min
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 239
По умолчанию

не понятно условие....... если в текст будут входить быквы, то он УЖЕ НЕ будет совпадать с конечным отрезком ряда, который этих букв не содержит..... я правильно понял или штото не так?
пример приведи входных-выходных данных.....
Надо бы избавиться от привычки ставить многоточие.....
Min вне форума Ответить с цитированием
Старый 28.10.2008, 14:52   #3
svobodys
Пользователь
 
Регистрация: 07.10.2008
Сообщений: 42
По умолчанию

ДА вот я тоже чота не пойму никак. потому и спросил((

Может вроде того, как думаешь?

1.Вводим строку.
2.В цикле от 1 до конца строки смотрим, если есть не цифры, сообщаем "нет" и выходим из программы.
3.В цикле от 2 до конца строки смотрим, если ord(s[i])-ord(s[i-1])=1 и последний символ='9' выводим "да" иначе выводим "нет".

Последний раз редактировалось rpy3uH; 28.10.2008 в 20:58.
svobodys вне форума Ответить с цитированием
Старый 28.10.2008, 14:57   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Вроде недавно такую выкладывал, не помню где.
Код:
uses crt;
var s:string;
    i,k:integer;
begin
clrscr;
writeln('Введите текст:');
readln(s);
for i:=1 to length(s) do
if not(s[i] in ['0'..'9'])then {если попались не цифры}
     begin
       write('Не совпадает!');
       readln;
       halt;
     end;
k:=0;
for i:=2 to length(s) do
if (ord(s[i])-ord(s[i-1])=1)and(s[length(s)]='9') then {если убывают на 1 и последняя 9}
k:=k+1;
if k=length(s)-1 then {если все цифры и выполняется условие}
write('Cовпадает!')
else write('Не совпадает!');
readln
end.
puporev вне форума Ответить с цитированием
Старый 28.10.2008, 15:16   #5
Min
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 239
По умолчанию

вот решение покороче чуток:

Код:
var s:string;
begin
 readln(s);
 if (pos(s,'0123456789')+length(s)=11) then writeln('yes') else writeln('No');
 readln;
end.
Надо бы избавиться от привычки ставить многоточие.....
Min вне форума Ответить с цитированием
Старый 28.10.2008, 15:20   #6
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Вообще-то не обязательно все цифры.
Цитата:
Определить, совпадает ли текст с конечным отрезком ряда 0123456789 (например 9,89,789)
puporev вне форума Ответить с цитированием
Старый 28.10.2008, 15:23   #7
Min
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 239
По умолчанию

проверь...... все работает.....
функция pos возвращает положение подстроки в строке......
Надо бы избавиться от привычки ставить многоточие.....
Min вне форума Ответить с цитированием
Старый 28.10.2008, 15:27   #8
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Извини, не врубился, мысленно переставил s и '0123456789'.
puporev вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста с программой на паскале. svobodys Помощь студентам 10 11.10.2008 16:55
ГОРИТ ДИПЛОМ!!!! пожалуйста помогите разобраться с программой alexs2141 Фриланс 6 03.06.2008 20:30
Помогите,пожалуйста,с довольно простенькой программой(Delphi) o_O Помощь студентам 4 27.05.2008 11:35
помогите пожалуйста с программой Assembler Norma Помощь студентам 3 08.12.2007 12:18