Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Работа со строками


Рекомендуемые сообщения

Очень нужна помощь! :nerd: Нужно решить задачку на Pascale по строкам: Каждое слово текста преобразовать так, чтобы оно читалось наоборот!! Заранее огромное спасибо!

Ссылка на комментарий
Поделиться на другие сайты

LenaFree:

Очень нужна помощь!
Куда запропастились Чип и Дейл? :) Ну да ладно, обойдемся... :)

program Palindroms;

var t:string; i,j,k:integer;

begin

WriteLn('Vvedite tekst ');ReadLn(t);

k:=0; t:=t+' ';

for i:=1 to Length(t) do

if t>='0' then k:=k+1

else begin if k<>0 then begin for j:=i-1 downto i-k do Write(t[j]);

k:=0 end; Write(t); end;

WriteLn; ReadLn;

end.

Ссылка на комментарий
Поделиться на другие сайты

LenaFree: Куда запропастились Чип и Дейл? :) Ну да ладно, обойдемся... :)

program Palindroms;

var t:string; i,j,k:integer;

begin

...skip...

end.

Еще можно загнать строку в массив символов, а потом переопределить порядок в массиве наоборот и собрать из нового массива строку.

Ссылка на комментарий
Поделиться на другие сайты

Тролль, честно не поняла о чем это ты: Куда запропастились Чип и Дейл? :nerd: Ну да ладно, обойдемся... ;) :no:

А за прогу большое спасиба,только у меня вопросик: почему не выводится последнее слово??

Ссылка на комментарий
Поделиться на другие сайты

boogger:

Строка и есть массив символов - только для нее в языке ограничен диапазон индексов элементов и дополнительно определены несколько дополнительных операций над всем массивом сразу.

Но надо не текст в обратном порядке воспроизвести, а каждое слово из текста перевернуть, при этом порядок слов в тексте должен остаться прямым. Поэтому в программе пришлось реализовать грамматический разбор текста с выделением слов, с учетом того, что в тексте слова могут разделяться неопределенным количеством пробелов и знаками препинания.

Программа и работает с введенной строкой в основном как с обычным массивом символов, через индексы элементов, поскольку строки - просто частный вид массивов символов. Почти без переделок в этой программе можно было бы вообще вместо строки использовать обычный массив, только немного сложнее будет ввод и длину введенного текста придется определять не готовой функцией, а подсчетом или по аналогии со строками в языке C - до спецсимвола конца строки.

P.S.

LenaFree:

о чем это ты: Куда запропастились Чип и Дейл?
Это был такой очень популярный мультсериал: "Чип и Дейл спешат на помощь" :nerd:

Последнее слово не выводится, наверное, потому, что у тебя при копировании пропал пробел между апострофами в операторе t:=t+' ';

Потому что конец слова в программе определяется по тому, что за ним следует пробел или знак препинания, а за последним словом введенного текста его чаще всего нет. Поэтому сразу после ввода текста программа дополняет введенную строку пробелом, чтобы конец последнего слова можно было определять таким же способом, как и всех предыдущих.

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Тролль: привет ЧИП :) но насколько я помню что строка не эквивалент массива, тк есть две реализации нулевой байт счётчик или же последний байт 0, есть реализация 0А0D - какой то из вариантов из Си, какой забыл. :D

Ссылка на комментарий
Поделиться на другие сайты

P.S.

LenaFree:Это был такой очень популярный мультсериал: "Чип и Дейл спешат на помощь" :)

Получается, что ты-мои верные помошники-бурундучки (2 в 1)!!! :D

Я даже не знаю как тебя отблагодарить.... Надеюсь, что сегодня сдам уже эту прогу!!! Спасибо тебе большое!!!

Ссылка на комментарий
Поделиться на другие сайты

P.S.

LenaFree:Это был такой очень популярный мультсериал: "Чип и Дейл спешат на помощь" :D

Я хочу выразить тебе глубокую признательность!!! и благодарность!!!

Я была бы счастлива, если бы мне не задали еще парочку задач: ей так понравился твой рациональный алгоритм! :)

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...