![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Вячеслав Л. |
![]()
Сообщение
#1
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 227 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Возможно ли разбиение строки на слова посредством массива типа string? То есть, что-то типа:
... Как это будет выглядеть (хотя бы примерно) ? -------------------- Само знание есть сила
|
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Выбирай: Разбиение на слова. Все способы.
|
Вячеслав Л. |
![]()
Сообщение
#3
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 227 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
До того как открывать тему, я посмотрел эту ссылку (видел где-то ее в другой теме). То, что там написано, мне непонятно. Полно неизвестных функций, процедур и оператор. Я это не знаю и не понимаю. Соответственно, на моем уровне предлагаемыми вариантами воспользоваться не могу. Пытаюсь разобраться, появился вопрос этой темы - прошу ответить.
-------------------- Само знание есть сила
|
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Ближе к концу смотрел, метод klem4, например? Куда уж проще? А писать без функций/процедур - извини, но зачем тогда учить Паскаль? Лучше вообще не писать тогда уже. С другой стороны - с чего ты решил, что если ты не понял ТАМ, то поймешь ЗДЕСЬ?
Цитата Полно неизвестных функций, процедур и оператор. Например? Что именно непонятно, скажем, в методе из поста №7 по ссылке? |
Вячеслав Л. |
![]()
Сообщение
#5
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 227 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Нда, извиняюсь, там действительно есть такая идея с массивом string. Именно от klem4. Не внимательно просматривал.
Насколько понимаю, ты счиатешь мне стоит попробовать разобраться с этим способом. Тогда вопросы: 1. Цитата limits = [#0..#32,'.',',',':',';','!','?','"']; Первый раз вижу подобную строчку что это значит?2. Цитата function GetWords(s : string; var w : TWords) : byte; Что это значит?3. Что за тип такой byte, мы такой тип не проходили (насколько я знаю)? Нельзя ли его заменит типом уже проходимым нами? 4. Что такое Цитата s[i] in limits ?5. Цитата GetWords := n; Это зачем?-------------------- Само знание есть сила
|
Lapp |
![]()
Сообщение
#6
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
1. Первый раз вижу подобную строчку что это значит?
Константe limits типа set присвоено знаение, указанное в квадратных скобках. Про set (множество) читай в учебнике.limits = [#0..#32,'.',',',':',';','!','?','"']; 2. Что это значит?
Заголовок функции. Тоже не проходили?..function GetWords(s : string; var w : TWords) : byte; 3. Что за тип такой byte, мы такой тип не проходили (насколько я знаю)? Нельзя ли его заменит типом уже проходимым нами? Целочисленный тип с диапазоном 0..255, занимает в памяти 1 байт."уже проходимым" ![]() 4. Что такое ?
Оператор для работы с типом set (множество), проверка на содержание элемента (s[i] в данном случае) в множестве (limits в данном случае).s[i] in limits 5. Это зачем?
Присвоение возвращаемого значения функции (см. 2)GetWords := n; -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Вячеслав Л. |
![]()
Сообщение
#7
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 227 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Цитата Про set (множество) читай в учебнике Книги по паскалю сейчас нет, учебник в самом паскале не работает (баг какой-то ![]() Цитата Константe limits типа set присвоено знаение, указанное в квадратных скобках Это типа защита от дурака, чтоб не вводил лишнее, или что-то другое?Цитата Заголовок функции. Тоже не проходили?.. Функции еще никоим образом не проходили, даже не касались их. Только теоретически знаю, что это такое.Цитата "уже проходимым" ? Можно)). Когда писал даже не заметил, как это звучит... ![]() Цитата Замени на integer или word (хотя это не совсем рационально). И все таки я заменю на integer.Честно, говоря, легче не стало, я так и не знаю как это делать. Жду помощи, надеюсь на вас ![]() -------------------- Само знание есть сила
|
Lapp |
![]()
Сообщение
#8
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Книги по паскалю сейчас нет, учебник в самом паскале не работает (баг какой-то Тип множество похож на понятие множества, известное из математики (теория множеств), но не совсем то. Множества - это как бы признак наличия величин. Работает только для перечислисых и порядковых типов с не более, чем 256 значениями. Например, можно объявить set of char (множество ascii-символов, их как раз 256). Множества допускают операции включения/исключения элементов и объединения/вычитания. В множестве не может быть двух или более одинаковых элементов: он либо есть, либо нет его. Например:![]() m: set of byte; m:=['a','b']; Допустим, ты хочешь узнать, какие символы встречаются в строке. Делаешь так: var Это типа защита от дурака, чтоб не вводил лишнее, или что-то другое? Нет. Это прямая функциональность кода.Честно, говоря, легче не стало, я так и не знаю как это делать. Жду помощи, надеюсь на вас Мы, конечно, можем помочь, но только НЕ ПОТОМУ, что тебе в лом искать учебник (в Инете можно найти легко) или исправлять какой-то баг. Если есть вопрос, если что-то непонятно, если что-то не получается - пожалуйста, поможем. Но заменять тебе учебник - учти, я делал это в первый и последний раз. Будь, пожалуйста, поуважительнее, не расходуй чужое время.![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Вячеслав Л. |
![]()
Сообщение
#9
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 227 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Оба привиденных фрагмента программ не работают, хотя я их дополнил до целых программ как знал. В обоих случаях вылетает ошибка:
» Nepredvidennoe isklyu4enie EAccessViolation. Access violation at address 0069CADC in module 'PascalABC.exe'. Read of address 00000004. Programma zaverwena. Сами программы вот: var varВозникает вопрос: правильно ли я их дополнил? Цитата Мы, конечно, можем помочь, но только НЕ ПОТОМУ, что тебе в лом искать учебник (в Инете можно найти легко) или исправлять какой-то баг. Если есть вопрос, если что-то непонятно, если что-то не получается - пожалуйста, поможем. Но заменять тебе учебник - учти, я делал это в первый и последний раз. Будь, пожалуйста, поуважительнее, не расходуй чужое время Несколько учебников, я скачал сегодня, как исправить баг я не знаю. По теории больше обращаться не буду. Действительно не стоит, прочитать это я могу сам. Сглупил, простите.Что касается разбиения строки - буду искать более простой способ. С данными здесь способами я так и не разобрался. -------------------- Само знание есть сила
|
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
Цитата Возникает вопрос: правильно ли я их дополнил? Первую - правильно, она должна отработать (хотя ничего тебе не выведет, но в отладчике посмотреть значения переменных можно). Вторую - не совсем, ты забыл описать переменную C: char. После добавления ее программа тоже должна отработать.Теперь - о грустном. Я бы не рекомендовал тебе начинать работу с PascalABC, по собственному опыту знаю, иногда, чтобы заставить его выполнять простейшие для Turbo Pascal/FPC действия, надо очень сильно извращаться. Сейчас посмотрю, что там они опять нахимичили со множествами (я об авторах этой поделки - PascalABC)... Добавлено через 11 мин. Update В PascalABC.NET отрабатывают обе программы... Старую версию (которая без .NET) уж извини, ставить не буду, она в прошлый раз мне самовольно перековеркала все ассоциации файлов и так нагадила на диске, что я ее замучался потом выкорчевывать. |
Вячеслав Л. |
![]()
Сообщение
#11
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 227 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Цитата но в отладчике посмотреть значения переменных можно Как это сделать?Цитата ты забыл описать переменную C: char. Аааа, да, забыл.Цитата я об авторах этой поделки - PascalABC Какого ты о них невысокого мнения... ![]() Цитата Я бы не рекомендовал тебе начинать работу с PascalABC, Да, я уже об этом думал. Скорее всего, правда, надо скачать ТурбоПаскаль, а то у меня уже давно возникали проблемы в ABC с метками и бесило, то, что переменной нельзя присваивать тип longint, а только integer. Например в проге вычисления факториала это имеет значение. Имхо, косячный это маленько компиллятор. Цитата она в прошлый раз мне самовольно перековеркала все ассоциации файлов и так нагадила на диске, что я ее замучался потом выкорчевывать. Нда не завидую тебе ![]() -------------------- Само знание есть сила
|
Вячеслав Л. |
![]()
Сообщение
#12
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 227 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
Все, взял программу, приведенную klem4, переделал ее на свой вкус. Кажется, разобрался с ней. Про множества, функции и процедуры прочитал в учебнике.
Цитата Цитата но в отладчике посмотреть значения переменных можно Как это сделать?Спасибо всем за советы. Сообщение отредактировано: Вячеслав Людской - 29.10.2009 14:27 -------------------- Само знание есть сила
|
Lapp |
![]()
Сообщение
#13
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
уже, догадался. Вот и хорошо. Боюсь, я бы не сказал с ходу, как это делать в АВС.. ![]() -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 21.06.2025 18:04 |