Перейти к содержанию
СофтФорум - всё о компьютерах и не только

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


Рекомендуемые сообщения

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

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

Ссылка на комментарий
Поделиться на другие сайты

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.
Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Тролль

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

Ссылка на комментарий
Поделиться на другие сайты

gvozd

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

Тролль

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

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...