gvozd Опубликовано 16 февраля, 2005 Жалоба Поделиться Опубликовано 16 февраля, 2005 Почему не работает прога? program sost_slov;uses crt;varn,m: string;z,x,y,i: integer;word1, word2: string;begin clrscr; WriteLN('Введите первое слово'); ReadLN(word1); WriteLN('Введите второе слово'); ReadLN(word2); for i:=1 to length(word1) dobegin n:=copy(word1,i,i); for y:=1 to length(word2) do begin m:=copy(word2,y,y); if n=m then z:=z+1; end;end; If z>=length(word2) thenWriteLN('Составить можно') elseWriteLN('Составить нельзя');Writeln(z); ReadKey;end. Она должна проверять можно ли из первого слова составить второе. Работает через раз... :D Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 16 февраля, 2005 Жалоба Поделиться Опубликовано 16 февраля, 2005 (изменено) gvozd Удивительно, что она через раз работает. Ты не пытался алгоритм записать сначала на русском языке? А возможность того, что в слове есть повторяющиеся буквы, похоже, вообще не учитывалась. Как минимум, что за странные копирования подстрок типа copy(word,i,i). Может, имелось в виду copy(word,i,1)? Это кажется явной ошибкой, хотя для правильной работы этого изменения все равно недостаточно. P.S. Вот вариантик программы по твоему условию: можно ли из первого слова составить второе. program sost_slov;uses crt;varj,k: integer;word1, word2: string;begin clrscr; WriteLN('Word 1:'); ReadLN(word1); WriteLN('Word 2:'); ReadLN(word2); for j:=1 to length(word2) do begin k:=Pos(copy(word2,j,1),Word1); if k=0 then begin WriteLN('No'); Exit end; Delete(Word1, k,1) end; WriteLN('Yes');end. Изменено 16 февраля, 2005 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
gvozd Опубликовано 16 февраля, 2005 Автор Жалоба Поделиться Опубликовано 16 февраля, 2005 Тролль Во-первых, с чего ты взял, что я пытался записать алгоритм на русском языке, а во-вторых, спасибо за помощь, просто я думал, что указывается с какого символа по какой. Теперь все работает. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 16 февраля, 2005 Жалоба Поделиться Опубликовано 16 февраля, 2005 gvozd с чего ты взял, что я пытался записать алгоритм на русском языкеС этого обычно начинается работа над программой. Ты же думаешь на русском языке?Любая программа - это перевод с русского на Pascal или C... И, кстати, ты неправ, что все работает. Твоя версия не будет правильно работать для слов с повторяющимися буквами. Попробуй сам, например, для слов "корова" и "рот". Ссылка на комментарий Поделиться на другие сайты Поделиться
gvozd Опубликовано 16 февраля, 2005 Автор Жалоба Поделиться Опубликовано 16 февраля, 2005 Тролль Ну да, думаю я на русском, но ты просто вопрос построил не так и я вопрос не так понял. Хм, действительно немного глючит моя версия. Ну что же, спасибо за помощь. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти