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 Тролль Ну да, думаю я на русском, но ты просто вопрос построил не так и я вопрос не так понял. Хм, действительно немного глючит моя версия. Ну что же, спасибо за помощь. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.