gvozd Posted February 16, 2005 Report Share Posted February 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 Quote Link to comment Share on other sites More sharing options...
Тролль Posted February 16, 2005 Report Share Posted February 16, 2005 (edited) 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. Edited February 16, 2005 by Тролль Quote Link to comment Share on other sites More sharing options...
gvozd Posted February 16, 2005 Author Report Share Posted February 16, 2005 Тролль Во-первых, с чего ты взял, что я пытался записать алгоритм на русском языке, а во-вторых, спасибо за помощь, просто я думал, что указывается с какого символа по какой. Теперь все работает. Quote Link to comment Share on other sites More sharing options...
Тролль Posted February 16, 2005 Report Share Posted February 16, 2005 gvozd с чего ты взял, что я пытался записать алгоритм на русском языкеС этого обычно начинается работа над программой. Ты же думаешь на русском языке?Любая программа - это перевод с русского на Pascal или C... И, кстати, ты неправ, что все работает. Твоя версия не будет правильно работать для слов с повторяющимися буквами. Попробуй сам, например, для слов "корова" и "рот". Quote Link to comment Share on other sites More sharing options...
gvozd Posted February 16, 2005 Author Report Share Posted February 16, 2005 Тролль Ну да, думаю я на русском, но ты просто вопрос построил не так и я вопрос не так понял. Хм, действительно немного глючит моя версия. Ну что же, спасибо за помощь. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.