...
for i:=1 to {ne znayu}
do {zapolnit' massiv}
for i:=1 to ...
do writeln(s[i]);
{zatem soverwit' kakie to deistviya s otdelnymi slovami: tipa naxozhdeniya samogo dlinnogo slova i t. p.}
Как это будет выглядеть (хотя бы примерно) ?
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Строковой массив |
Вячеслав Л. |
Сообщение
#1
|
Бывалый Группа: Пользователи Сообщений: 227 Пол: Мужской Реальное имя: Вячеслав Репутация: 3 |
Возможно ли разбиение строки на слова посредством массива типа string? То есть, что-то типа:
... Как это будет выглядеть (хотя бы примерно) ? -------------------- Само знание есть сила
|
volvo |
Сообщение
#2
|
Гость |
Выбирай: Разбиение на слова. Все способы.
|
Вячеслав Л. |
Сообщение
#3
|
Бывалый Группа: Пользователи Сообщений: 227 Пол: Мужской Реальное имя: Вячеслав Репутация: 3 |
До того как открывать тему, я посмотрел эту ссылку (видел где-то ее в другой теме). То, что там написано, мне непонятно. Полно неизвестных функций, процедур и оператор. Я это не знаю и не понимаю. Соответственно, на моем уровне предлагаемыми вариантами воспользоваться не могу. Пытаюсь разобраться, появился вопрос этой темы - прошу ответить.
-------------------- Само знание есть сила
|
volvo |
Сообщение
#4
|
Гость |
Ближе к концу смотрел, метод klem4, например? Куда уж проще? А писать без функций/процедур - извини, но зачем тогда учить Паскаль? Лучше вообще не писать тогда уже. С другой стороны - с чего ты решил, что если ты не понял ТАМ, то поймешь ЗДЕСЬ?
Цитата Полно неизвестных функций, процедур и оператор. Например? Что именно непонятно, скажем, в методе из поста №7 по ссылке? |
Вячеслав Л. |
Сообщение
#5
|
Бывалый Группа: Пользователи Сообщений: 227 Пол: Мужской Реальное имя: Вячеслав Репутация: 3 |
Нда, извиняюсь, там действительно есть такая идея с массивом 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 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
1. Первый раз вижу подобную строчку что это значит?
Константe limits типа set присвоено знаение, указанное в квадратных скобках. Про set (множество) читай в учебнике.limits = [#0..#32,'.',',',':',';','!','?','"']; 2. Что это значит?
Заголовок функции. Тоже не проходили?..function GetWords(s : string; var w : TWords) : byte; 3. Что за тип такой byte, мы такой тип не проходили (насколько я знаю)? Нельзя ли его заменит типом уже проходимым нами? Целочисленный тип с диапазоном 0..255, занимает в памяти 1 байт."уже проходимым" ? Можно)). Замени на integer или word (хотя это не совсем рационально). 4. Что такое ?
Оператор для работы с типом set (множество), проверка на содержание элемента (s[i] в данном случае) в множестве (limits в данном случае).s[i] in limits 5. Это зачем?
Присвоение возвращаемого значения функции (см. 2)GetWords := n; -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Вячеслав Л. |
Сообщение
#7
|
Бывалый Группа: Пользователи Сообщений: 227 Пол: Мужской Реальное имя: Вячеслав Репутация: 3 |
Цитата Про set (множество) читай в учебнике Книги по паскалю сейчас нет, учебник в самом паскале не работает (баг какой-то ). Хотя бы в двух словах, что это такое и пример в две строчки. В принципе, думаю, что смогу разобраться сам.Цитата Константe limits типа set присвоено знаение, указанное в квадратных скобках Это типа защита от дурака, чтоб не вводил лишнее, или что-то другое?Цитата Заголовок функции. Тоже не проходили?.. Функции еще никоим образом не проходили, даже не касались их. Только теоретически знаю, что это такое.Цитата "уже проходимым" ? Можно)). Когда писал даже не заметил, как это звучит... Цитата Замени на integer или word (хотя это не совсем рационально). И все таки я заменю на integer.Честно, говоря, легче не стало, я так и не знаю как это делать. Жду помощи, надеюсь на вас -------------------- Само знание есть сила
|
Lapp |
Сообщение
#8
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Книги по паскалю сейчас нет, учебник в самом паскале не работает (баг какой-то ). Хотя бы в двух словах, что это такое и пример в две строчки. Тип множество похож на понятие множества, известное из математики (теория множеств), но не совсем то. Множества - это как бы признак наличия величин. Работает только для перечислисых и порядковых типов с не более, чем 256 значениями. Например, можно объявить set of char (множество ascii-символов, их как раз 256). Множества допускают операции включения/исключения элементов и объединения/вычитания. В множестве не может быть двух или более одинаковых элементов: он либо есть, либо нет его. Например:m: set of byte; m:=['a','b']; Допустим, ты хочешь узнать, какие символы встречаются в строке. Делаешь так: var Это типа защита от дурака, чтоб не вводил лишнее, или что-то другое? Нет. Это прямая функциональность кода.Честно, говоря, легче не стало, я так и не знаю как это делать. Жду помощи, надеюсь на вас Мы, конечно, можем помочь, но только НЕ ПОТОМУ, что тебе в лом искать учебник (в Инете можно найти легко) или исправлять какой-то баг. Если есть вопрос, если что-то непонятно, если что-то не получается - пожалуйста, поможем. Но заменять тебе учебник - учти, я делал это в первый и последний раз. Будь, пожалуйста, поуважительнее, не расходуй чужое время.-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Вячеслав Л. |
Сообщение
#9
|
Бывалый Группа: Пользователи Сообщений: 227 Пол: Мужской Реальное имя: Вячеслав Репутация: 3 |
Оба привиденных фрагмента программ не работают, хотя я их дополнил до целых программ как знал. В обоих случаях вылетает ошибка:
» 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 Пол: Мужской Реальное имя: Вячеслав Репутация: 3 |
Цитата но в отладчике посмотреть значения переменных можно Как это сделать?Цитата ты забыл описать переменную C: char. Аааа, да, забыл.Цитата я об авторах этой поделки - PascalABC Какого ты о них невысокого мнения... Цитата Я бы не рекомендовал тебе начинать работу с PascalABC, Да, я уже об этом думал. Скорее всего, правда, надо скачать ТурбоПаскаль, а то у меня уже давно возникали проблемы в ABC с метками и бесило, то, что переменной нельзя присваивать тип longint, а только integer. Например в проге вычисления факториала это имеет значение. Имхо, косячный это маленько компиллятор. Цитата она в прошлый раз мне самовольно перековеркала все ассоциации файлов и так нагадила на диске, что я ее замучался потом выкорчевывать. Нда не завидую тебе -------------------- Само знание есть сила
|
Вячеслав Л. |
Сообщение
#12
|
Бывалый Группа: Пользователи Сообщений: 227 Пол: Мужской Реальное имя: Вячеслав Репутация: 3 |
Все, взял программу, приведенную klem4, переделал ее на свой вкус. Кажется, разобрался с ней. Про множества, функции и процедуры прочитал в учебнике.
Цитата Цитата но в отладчике посмотреть значения переменных можно Как это сделать?Спасибо всем за советы. Сообщение отредактировано: Вячеслав Людской - -------------------- Само знание есть сила
|
Lapp |
Сообщение
#13
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
уже, догадался. Вот и хорошо. Боюсь, я бы не сказал с ходу, как это делать в АВС.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Текстовая версия | 20.04.2024 19:03 |