1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| art88 |
27.10.2005 20:41
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 40 Пол: Мужской Реальное имя: Артём Репутация: 0 |
Задача такова:
Дана строка, найти в ней самое короткое слово (словами называются последовательности символов разделённые пробелами). ------------------------------------------------------------------------ Пожалуйста проверте моё решение этой задачи: она постоянно выводит ноль. ------------------------------------------------------------------------ Заранее спасибо Прикрепленные файлы
WORDLENG.PAS ( 626 байт )
Кол-во скачиваний: 244 |
![]() ![]() |
| Altair |
27.10.2005 20:51
Сообщение
#2
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: 45 |
To: art88 что-то ты намудрил
... var хотя и я не старался -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
| volvo |
27.10.2005 21:11
Сообщение
#3
|
|
Гость |
To: Altair
Ты чего? :smoke: :D var |
| art88 |
29.10.2005 17:40
Сообщение
#4
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 40 Пол: Мужской Реальное имя: Артём Репутация: 0 |
Уважаемые Altair и volvo, извините, но ваши программы не совсем корректно решают посавленную задачу!
------------------------------------------ В ситуациях, когда 1. Вводится пустая строк, строка пробелов, одно слово или в строке имеются слова одинаковой длинны ничего нельзя сказать о слове с наименьшей длинной, та как его(слова) в данной строке не будет. ------------------------------------------- В связи с этим прошу всё - таки, не решая задачу заново, найти пробел в моём решении(WL_Funct.pas): программа выводит длинну, когда это не нужно: 1.пустая строка или строка пробелов 2.в строке одно слово с началом несовпадающим с началом строки. ------------------------------------------- Надеюсь на понимание Прикрепленные файлы
WL_FUNCT.PAS ( 939 байт )
Кол-во скачиваний: 214 |
| Altair |
29.10.2005 17:53
Сообщение
#5
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 824 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Проверь так те пойдет?
program WordLen; но кстати неправ ты. Это твоя прога не по заданию. Она не дает понятие какое слово короткое она длинну мин. выводит а это разные вещи - длинна и слово. Может одну из наших прог доделать? -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
| volvo |
29.10.2005 18:06
Сообщение
#6
|
|
Гость |
Цитата Может одну из наших прог доделать? Легко... В моей программе достаточно добавить счетчик слов, и если он будет равен 0 или 1 то выдавать сообшение об ошибке... |
| volvo |
29.10.2005 19:16
Сообщение
#7
|
|
Гость |
art88,
вот так проверь: program WordLen; |
| art88 |
29.10.2005 20:42
Сообщение
#8
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 40 Пол: Мужской Реальное имя: Артём Репутация: 0 |
:D Я наверное вас уже достал, но всё-таки.
volvo, я немного доделал твою первую программу и всё бы хорошо, но длина первого слова всё время на 1 больше истинной, где ошибка? var Спасибо! |
| volvo |
29.10.2005 20:45
Сообщение
#9
|
|
Гость |
Я не понял, тебя твоя же чуть-чуть подправленная программа (из поста №7) уже НЕ устраивает? Тогда объясни, чем...
|
| art88 |
29.10.2005 22:29
Сообщение
#10
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 40 Пол: Мужской Реальное имя: Артём Репутация: 0 |
volvo, извини, просто эту задачу мне надо сдавать(я учусь в университете), а как оказалось при решении этой задачи нельзя использвать процедуры.
|
| volvo |
29.10.2005 22:39
Сообщение
#11
|
|
Гость |
Цитата при решении этой задачи нельзя использвать процедуры. Я же говорил, что легче в мою программку добавить несколько строк var |
| PORTUGAL |
6.02.2006 21:28
Сообщение
#12
|
|
Новичок ![]() Группа: Пользователи Сообщений: 20 Пол: Мужской Репутация: 0 |
А как сделать что бы вместо длины самого короткого слова, выводилось само слово?
|
| klem4 |
6.02.2006 21:38
Сообщение
#13
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
Код copy(s,start,min) -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
| PORTUGAL |
6.02.2006 22:05
Сообщение
#14
|
|
Новичок ![]() Группа: Пользователи Сообщений: 20 Пол: Мужской Репутация: 0 |
|
| volvo |
6.02.2006 22:07
Сообщение
#15
|
|
Гость |
WriteLn( copy(s,start,min) ); такое выдает? |
| greenday |
8.04.2006 23:07
Сообщение
#16
|
|
Гость |
Сорри, что поднял такую старую тему, просто меня интерисует тоже самое, т.е. поиск самого короткого слова в строке. я решал не много по другому, у мен получилось вот что:
Код program MINWORD; uses crt; var s: string; min,i: integer; begin clrscr; write('VVEDITE PREDLOZHENIE '); read(s);min:=256; repeat i:=pos(' ',s); delete(s,1,i); if (i-1 < min) and (i > 1) then min:=i-1; until i=0; write('Samoe korotkoe slovo = ',min); readkey; end. но это выводит только длину мин. слова. про copy я знаю, но не могу понять куда и как приписать счетчик чтобы он позицию считал. вообщем, помогите плиз, доделать мою прогу. надо чтобы выводил именно слово. заранее спс) |
| volvo |
8.04.2006 23:30
Сообщение
#17
|
|
Гость |
Цитата(greenday @ 8.04.2006 23:07) про copy я знаю, но не могу понять куда и как приписать счетчик чтобы он позицию считал. Плохой способ избрал вообще-то. Удаляешь символы из строки - строку придется дублировать. Ну, как знаешь: program MINWORD; |
| klem4 |
9.04.2006 5:15
Сообщение
#18
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
В принципе это можно исправить, запихнуть в процедуру и передавать строку не черерез var параметр ... Еу и строку соответственно глобально не описывать
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
| Гость |
9.04.2006 9:28
Сообщение
#19
|
|
Гость |
to klem4 к сожалению, нас процедурам не учили и по-этому ими пользоваться нельзя.
огромное вам спасибо! |
![]() ![]() |
|
Текстовая версия | 10.12.2025 13:48 |