![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Sheriff |
![]()
Сообщение
#1
|
Гость ![]() |
Заведите массив из десяти элементов символьного типа - Char. Введите его с клавиатуры. Далее - прочитайте строку и проверьте, возможно ли из символов, введенных в массив составить заданную строку.
Пример: Массив: А,Р,У,П,Q,К,W,Ф,О,S. Строка: УРОК Ответ: возможно. (В веденном массиве существуют сиволы "У", "Р", "О", "К"). Пытался сделать, так ничего и не получилось, помогите пжл!!(выложу свой код, не смейтесь).
|
![]() ![]() |
Айра |
![]()
Сообщение
#2
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 731 Пол: Женский Репутация: ![]() ![]() ![]() |
А какой-то из символов массива можно использовать несколько раз? Например, в массиве "М" и "А", а слово "мама"..
Смотри, если у тебя, наприме, массив будет "кккурокккк", то слово А получится равным "уроккккккк", и оно уже не будет совпадать с исходным.. Тебе нужно это обойти. Т.е. внутренний цикл при нахождении подходящего символа должен останавливаться. Подумай над этим)) И еще, зачем тебе readln(a) перед последним оператором сравнения? Сообщение отредактировано: Айра - 21.08.2008 16:23 |
Sheriff |
![]()
Сообщение
#3
|
Гость ![]() |
А какой-то из символов массива можно использовать несколько раз? Например, в массиве "М" и "А", а слово "мама".. Смотри, если у тебя, наприме, массив будет "кккурокккк", то слово А получится равным "уроккккккк", и оно уже не будет совпадать с исходным.. Тебе нужно это обойти. Т.е. внутренний цикл при нахождении подходящего символа должен останавливаться. Подумай над этим)) И еще, зачем тебе readln(a) перед последним оператором сравнения? Я думаю, что каждый символ используется 1 раз только. По поводу 2 части сообщения, то мне это тоже в голову пришло, но как остановить внутренний цикл не знаю. И как можно убрать уже найденный символ из массива M[i]? |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Цитата if S[j]=m[i] then Про лишний Readln(a) уже сказали... |
Гость |
![]()
Сообщение
#5
|
Гость ![]() |
... тебе нужно еще "обнулить" символ M[ i ], чтобы при следующем проходе он же не был найден второй раз. Для этого занеси в M[ i ] любой символ, который не будет встречаться в строке, скажем, #0... Про лишний Readln(a) уже сказали... Так?
|
Айра |
![]()
Сообщение
#6
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 731 Пол: Женский Репутация: ![]() ![]() ![]() |
Цитата По поводу 2 части сообщения, то мне это тоже в голову пришло, но как остановить внутренний цикл не знаю. Можно вместо for использовать while ![]() Цитата Так? Если у тебя в строке не попадутся цифры, то можно и так.. А вообще, думаю, предполагалось такое присваивание m[i]:=#0; |
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
Цитата Можно вместо for использовать while Break никто не отменял. Выходит из самого внутреннего цикла, что и требуется.
Спойлер (Показать/Скрыть)
|
nopsrer |
![]()
Сообщение
#8
|
Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Реальное имя: Максим Репутация: ![]() ![]() ![]() |
uses crt; |
Айра |
![]()
Сообщение
#9
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 731 Пол: Женский Репутация: ![]() ![]() ![]() |
for j:=1 to 10 do |
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
В следующий раз вот за такое:
Цитата for j:=1 to 10 do begin { <-- цикл по J } Срочно читать доки: Руководство по языку B.Pascal 7 & Objects/LR, и только потом, когда прочитаешь и поймешь все, о чем там написано, будешь отвечать. Особое внимание обратить на: Операторы цикла с параметром (for), конкретно - вот тут: Цитата Если оператор, содержащийся в теле оператора for, изменяет значение управляющей переменной, то это является ошибкой. |
nopsrer |
![]()
Сообщение
#11
|
Новичок ![]() Группа: Пользователи Сообщений: 15 Пол: Мужской Реальное имя: Максим Репутация: ![]() ![]() ![]() |
Ну раз нельзя, так нельзя. Тогда или просто использовать break
for j:=1 to 10 do begin или цикл while j:=1; ЗЫ: не судите строго, паскаль знаю только с школьного курса... |
Гость |
![]()
Сообщение
#12
|
Гость ![]() |
Спасибо всем, работает! но есть 1 вопрос, а как в этой программе можно было использовать goto? |
![]() ![]() |
![]() |
Текстовая версия | 21.07.2025 10:55 |