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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.11.2013, 18:36   #1
shadezx
Пользователь
 
Регистрация: 24.10.2013
Сообщений: 75
По умолчанию String,Char> pascal

Здраствуйте,нужно решить задачу по строкам, условие звучит так:
"Дано предложение нужно вычеслить самое длинное слово и самое меньшое слово и вывести на экран".
я предполагаю что нужно сначала определить длину каждого слова и записать ету длину в переменную, а потом сравнит и записать в max i min
но у меня проблема я не знаю как подсчитать длину каждого слова.
Буду благодарен за помощь.
shadezx вне форума Ответить с цитированием
Старый 16.11.2013, 18:44   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

http://www.programmersforum.ru/showt...369#post398369
пример разворота строки в массив слов.
Сразу же в цикле можешь определять длину a[count] и запоминать ее если она больше всех.
Идея ясна?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.11.2013, 18:53   #3
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Чуть помогу..
Код:
for i := 1 to Length(s) do 
    if s[i] in [' ', '.', '!', ',', '?'] then begin <крутим для max min> wrd := '' end
    else wrd := wrd + s[i];
Poma][a вне форума Ответить с цитированием
Старый 16.11.2013, 18:58   #4
shadezx
Пользователь
 
Регистрация: 24.10.2013
Сообщений: 75
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
http://www.programmersforum.ru/showt...369#post398369
можешь определять длину a[count] и запоминать ее если она больше всех.
Большое спасибо.
вы имели ввиду
if a[count]>s[i] then max:=a[count]
так?
shadezx вне форума Ответить с цитированием
Старый 16.11.2013, 19:32   #5
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
if a[count]>s[i] then max:=a[count]
Неа.. 1) Вы сравниваете строку с символом.. что лишено смысла в данном случае..
2) В паскале строки сравнивают по символьно.. в лексикографическом порядке.. поэтому строка '9' будет больше '120'.. так что это вообще не применимо..

Поэтому.. вариант №1..
Сливать слова в массив (см. код Виталия).. потом бежим по массиву a..
Код:
max := 1;
for i := 2 to Length(s) do
     if Length(a[max]) < Length(a[i]) then
            max := i;

WriteLn (a[max])
Мой же вариант позволяет сделать это в один проход и без доп. памяти
Poma][a вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
new string из char[] JOFRIF Общие вопросы по Java, Java SE, Kotlin 2 21.05.2013 08:21
char и string Narusegava Общие вопросы C/C++ 4 01.12.2012 23:37
string-char-wchar_t-char-string чето потерял magog7 Общие вопросы C/C++ 0 08.08.2011 20:21
String To Char RIO Общие вопросы C/C++ 2 22.06.2010 00:30
String и char Julinja Паскаль, Turbo Pascal, PascalABC.NET 9 03.01.2009 12:10