JavaScript Exercises

  

This is in JavaScript

1. Write a program that uses the TokenScanner class to display the longest word that appears in a file chosen by the user. A word should be defined as any consecutive string of letters and digits, just as it is in the TokenScanner class.

2. Write a program called CountWordFrequencies that reads a sequence of lines and produces a table showing how many times each word appears. Your program should be able to replicate the following sample run:

Enter the lines of text, ending with a blank line.

One fish

Two fish

Red fish

Blue fish

Blue: 1

Fish: 4

One: 1

Red: 1

Two: 1

3. Write a function elapsedTime that returns how many milliseconds are required to perform an operation. The elapsedTime function takes two parameters. The first is a callback function that implements the operation whose running time you want to measure. The second argument, which is optional and defaults to 1, indicates how many repetitions of the function call should occur between the time measurements. Although it is impossible to use Date.now to measure short running time, you can for example, see how long it takes to call a function 100,000 times and then compute the average running time by dividing the total elapsed time by the number of repetitions. You could therefore see how long it takes for the Math library to calculate the square root of 2 by calling: elapsedTime(function() {Math.sqrt(2);}, 100000)

4. When playing Scrabble, one of the most useful things to memorize is the list of all legal two-letter words. It is easy to use the English lexicon to create a list of two-letter words, but there are at least two strategies for doing so. The most natural one is to iterate through the words for doing so. The most natural one is to iterate through the words in the lexicon and print those whose length is two. A somewhat less obvious strategy is to generate all 26×26 combinations of letters and see which ones are words. Implement each of these strategies and then use the elapsedTime function from the preceding exercise to see which strategy is more efficient. 

5. One of the most important strategic principles in Scrabble is to conserve your S tiles, because the rules for English plurals mean that many words take an S-hook at the end. Some, of course, allow an S tile to be added at the beginning, but it turns out that there are 680 words including for example the words cold and hot tat allow an S-hook on both ends. Write a program that uses the EnglishLexicon class to display a list of all such words.

No plagiarism! Please put it in NotePad