|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.03.2011, 14:30 | #1 |
Регистрация: 27.03.2011
Сообщений: 3
|
TurboPascal (Строки)
Здравствуйте, помогите пожалуйста решить эту задачу:
Задано предложение, состоящее из слов, разделённых пробелами. Определить самое длинное слово и написать кол-во букв в нём. Вот то, что я написал, если ввожу более 3 слов - не получается. Код:
s:=copy(a,1,i-z); delete(a,1,i-z); но на что заменить, догадаться не могу. Последний раз редактировалось JigSaw; 27.03.2011 в 14:53. |
27.03.2011, 22:52 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
главная ошибка - это то, что Вы удаляете символы из строки, по которой у Вас идёт цикл FOR
так нельзя! (либо нужен цикл с условием и ручками изменять i, либо цикл от конца строки к началу..) а может проще? Сделать примерно так? Код:
|
29.03.2011, 18:23 | #3 |
Регистрация: 27.03.2011
Сообщений: 3
|
Serge_Bliznykov, большое спасибо, понял ошибки. =)
Не могли бы привести пример с "цикл от конца строки к началу"? Любопытно) Последний раз редактировалось JigSaw; 29.03.2011 в 18:32. |
29.03.2011, 21:55 | #4 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,882
|
for i := length(s) downto 1 do ...
прямо чистый английский язык ) |
30.03.2011, 14:00 | #5 |
Регистрация: 27.03.2011
Сообщений: 3
|
phomm, я знаю как выглядит этот цикл. Имел в виду именно что идёт после do, но уже сам разобрался)
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Строки в TurboPascal 7.0 | Сержuk | Помощь студентам | 10 | 09.03.2011 13:38 |
Програма на TurboPascal | bignick | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 25.09.2010 12:30 |
TurboPascal - help! | Lexone | Помощь студентам | 5 | 29.03.2009 15:38 |