1. Читает предложение пользователя с помощью оператора <>, разбивает предложение на массив слов (подсказка: используйте split (/regex/, $ string)) и выводит количество слов в предложении.

  2. Создает хеш, который содержит слова из предложения в качестве ключей и количество вхождений каждого слова в качестве связанного значения, и выводит количество вхождений каждого слова в предложении в алфавитном порядке.

Итак, вышеупомянутый вопрос был дан мне как задание! и прежде чем вы думаете, что я собираюсь попросить кого-то, чтобы решить это, я не просто ищу некоторые инструкции о том, как завершить это!

Я закончил первую часть, которая была довольно простой! это вставит это ниже:

print("please enter a sentence!\n");
$x = <>;
chomp $x;

@bases=split(" ",$x);
print ("@bases\n");
foreach $i (@bases){
  print("$i\n");
}

$size=@bases;
print("the amount of words in this sentence are:$size\n");

Я понимаю, что второй вопрос просит меня сделать, но у меня возникли проблемы с его реализацией! Как же можно посчитать, сколько раз слово повторяется в предложении, а затем использовать его как значение для этого точного слова! я просто не знаю! так что, может быть, если кто-то может направить меня на правильном пути! Я был бы так благодарен!

благодарю вас! если я пойму что-нибудь еще, я вставлю это!

1 ответ1

0

Думайте о хэше как о массиве, чьи индексы (называемые "ключами") не ограничиваются целочисленными значениями. В этой задаче ключами, естественно, будут слова, которые обрабатывает ваш скрипт, а значения хеш-функции - это число вхождений для каждого ключа. Таким образом , каждый раз , когда вы найдете слово, использовать его в качестве хэш - ключа, увеличивающиеся хэш - значение на единицу.

Чтобы напечатать результат в алфавитном порядке, вы должны создать отсортированный массив всех ключей хеш-функции и создать цикл (foreach или for зависимости от вкуса), печатая каждый ключ хеш-функции и соответствующее значение хеш-функции.

Так как это упражнение, вы должны найти , как выразить это в коде.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .