Jump to content
СофтФорум - всё о компьютерах и не только

Почему не работает?


gvozd
 Share

Recommended Posts

Почему не работает прога?

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

Link to comment
Share on other sites

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 by Тролль
Link to comment
Share on other sites

Тролль

Во-первых, с чего ты взял, что я пытался записать алгоритм на русском языке, а во-вторых, спасибо за помощь, просто я думал, что указывается с какого символа по какой. Теперь все работает.

Link to comment
Share on other sites

gvozd

с чего ты взял, что я пытался записать алгоритм на русском языке
С этого обычно начинается работа над программой. Ты же думаешь на русском языке?

Любая программа - это перевод с русского на Pascal или C...

И, кстати, ты неправ, что все работает. Твоя версия не будет правильно работать для слов с повторяющимися буквами. Попробуй сам, например, для слов "корова" и "рот".

Link to comment
Share on other sites

Тролль

Ну да, думаю я на русском, но ты просто вопрос построил не так и я вопрос не так понял. Хм, действительно немного глючит моя версия. Ну что же, спасибо за помощь.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...