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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2019, 11:29   #1
Enotik_1998
Пользователь
 
Регистрация: 09.03.2018
Сообщений: 77
По умолчанию Работа со строками в pascal abc.net

Здравствуйте. Нужна помощь с задачей: Создать новый текст, содержащий все слова исходного текста, которые оканчиваются
на ту же букву, что и слово максимальной длины.
Как сделать, чтобы программа работала без copy?
Вот исходный код:
Код:
Program p1;
const
C = [' ', ',', '.'];
var
s,max_word: string;
i,k, prev: integer;
step: boolean;
begin
Write('Введите строку s=');
Read(s);
s:=s + ' ';
prev:=0;
for step:=false to true do
for i:=1 to length(s) do
begin
if s[i] in C then
begin
if i-prev>1 then
begin
if not step then 
begin
if i - prev - 1 > length(max_word) then
max_word := copy(s, prev + 1, i - prev - 1);
end
else 
if s[i - 1] = max_word[length(max_word)] then
write(copy(s, prev + 1, i - prev - 1), ' ');
end;
prev := i;
end;
end;
writeln;
end.
Enotik_1998 вне форума Ответить с цитированием
Старый 10.04.2019, 11:32   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Как сделать, чтобы программа работала без copy?
Например сделать свою функцию аналог copy.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 10.04.2019, 11:40   #3
Enotik_1998
Пользователь
 
Регистрация: 09.03.2018
Сообщений: 77
По умолчанию

блин, я не сильно шарю в паскале. Как можно ещё сделать без создания своей собственной функции?
Enotik_1998 вне форума Ответить с цитированием
Старый 10.04.2019, 11:46   #4
Enotik_1998
Пользователь
 
Регистрация: 09.03.2018
Сообщений: 77
По умолчанию

Да, и я не совсем так выразился. Как сделать эту программу без процедур или функций?
Enotik_1998 вне форума Ответить с цитированием
Старый 10.04.2019, 12:32   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Enotik_1998 Посмотреть сообщение
Как сделать, чтобы программа работала без copy?
ну, это же Pascal ABC.NET
тут доступен LINQ

вот, например, тут решение похожей (но другой!) задачи:
Цитата:
Код:
// в предложении найти все слова с одной буквой "а" и вывести их
// (c) Plague  http://programmersforum.ru/showpost.php?p=1686131&postcount=4
begin
  var s : string := 
    'Алексей Фёдорович Карамазов - главное действующее лицо романа Фёдора Михайловича Достоевского "Братья Карамазовы"';
  s.ToWords(Arr(' ','-','"')).Where(x->x.Count(i->i='а')=1).Print(NewLine)

// решение с запросом строки у пользователя
//  ReadString.ToWords(Arr(' ','-','"')).Where(x->x.Count(i->i='а')=1).Print(NewLine)

end.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal, работа со строками Magenta Помощь студентам 20 26.03.2015 22:53
Работа со строками Pascal ksenija15reg Помощь студентам 3 28.11.2013 23:25
Работа со строками (Pascal) Volk_xD Помощь студентам 8 17.12.2010 20:06
Работа со строками (Pascal) SmileGirl Помощь студентам 4 22.10.2010 01:17
Работа со строками (pascal) ДиM@ Помощь студентам 3 18.04.2010 09:39