Presentation is loading. Please wait.

Presentation is loading. Please wait.

7/6/2016 1R. Smith - University of St Thomas - Minnesota CISC 130: Today’s Class Computer HardwareComputer Hardware Recap: next programRecap: next program.

Similar presentations


Presentation on theme: "7/6/2016 1R. Smith - University of St Thomas - Minnesota CISC 130: Today’s Class Computer HardwareComputer Hardware Recap: next programRecap: next program."— Presentation transcript:

1 7/6/2016 1R. Smith - University of St Thomas - Minnesota CISC 130: Today’s Class Computer HardwareComputer Hardware Recap: next programRecap: next program Scanning for Words FunctionScanning for Words Function Working on Assignment 10Working on Assignment 10

2 Computer Hardware Four Big TechnologiesFour Big Technologies –Processor circuitry –RAM –External, persistent storage (hard drives, USB flash) Old stuff: punched cards, older hard drives, floppies, tapesOld stuff: punched cards, older hard drives, floppies, tapes –User interface (displays, keyboards, mice Everything gets smaller and cheaperEverything gets smaller and cheaper No examples of ancient GUI stuff (too clunky!)No examples of ancient GUI stuff (too clunky!) 7/6/2016 2R. Smith - University of St Thomas - Minnesota

3 Recap History Paper scheduleHistory Paper schedule Plus PlusPlus Plus Counting CharactersCounting Characters Scanning for WordsScanning for Words Counting Word LengthsCounting Word Lengths Assignment 10Assignment 10 7/6/2016 3R. Smith - University of St Thomas - Minnesota

4 7/6/2016 4R. Smith - University of St Thomas - Minnesota Reporting Word Length Sample program:Sample program: We type in a line of textWe type in a line of text For each word, we print out its lengthFor each word, we print out its length Input: a rusty tattered cogInput: a rusty tattered cog Output: 1 - 5 - 8 – 3 -Output: 1 - 5 - 8 – 3 - A working function is in yesterday’s notesA working function is in yesterday’s notes

5 7/6/2016 5R. Smith - University of St Thomas - Minnesota Identifying Word boundaries For each char: are we inside or outside a word?For each char: are we inside or outside a word? Use ‘states’ and a comb structureUse ‘states’ and a comb structure –One level of ‘if’ checks for white space –One level of ‘if’ checks the ‘state’ Input = White Space Input = other character State = IN Next State = OUT [ended a word] Next State = IN [inside a word] State = OUT Next State = OUT [outside a word] Next State = IN [started a word]

6 7/6/2016 6R. Smith - University of St Thomas - Minnesota Comb structure for word boundaries if (isspace(ch)) { if (state == OUT) { if (state == OUT) { // handle text outside of a word } else { // found the end of a word state = OUT; } } else { // not white space if (state == OUT) { // found the start of a word state = IN; } else { // handle text inside of a word }}

7 7/6/2016 7R. Smith - University of St Thomas - Minnesota How do we count word length? When we start a word, it’s 1 char longWhen we start a word, it’s 1 char long When we’re inside a word,When we’re inside a word, –we add another char to the length When we end a word,When we end a word, –we don’t add another char –we save the result Input = White Space Input = other character State = IN Next State = OUT Next State = IN State = OUT Next State = OUT Next State = IN

8 7/6/2016 8R. Smith - University of St Thomas - Minnesota How do we count word length? When we start a word, it’s 1 char longWhen we start a word, it’s 1 char long When we’re inside a word,When we’re inside a word, –we add another char to the length When we end a word,When we end a word, –we don’t add another char –we save the result Input = White Space Input = other character State = IN Next State = OUT Print the count Next State = IN Increment count State = OUT Next State = OUT do nothing Next State = IN count = 1

9 7/6/2016 9R. Smith - University of St Thomas - Minnesota Printing Word Lengths – part 1 void wlengths(char in[LINELEN]) { int i = 0;// loop index char ch = ‘1’;// char variable int state = OUT;// state variable cc = 0;// character count for a word while (ch != 0) { ch = in[i]; ch = in[i]; if (isspace(ch) || ch == 0) { // check for the end of a word if (state == IN) { printf(“ %d – “, cc); state = OUT; }

10 7/6/2016 10R. Smith - University of St Thomas - Minnesota Printing Word Lengths – part 2 } else { // not white space // check for the start of a word // check for the start of a word if (state == OUT) { if (state == OUT) { cc = 1; state = IN; // handle text inside of a word // handle text inside of a word } else { } else { cc = cc + 1; }} i = i + 1; }}

11 Assignment 10 Do it in stepsDo it in steps First, make sure this example worksFirst, make sure this example works Second, create an array in Main to count lengthsSecond, create an array in Main to count lengths –Be sure to initialize its contents to zero –Change the function to count word lengths –Write a function (temporary) to print out the array’s contents Third, write the histogram functionThird, write the histogram function 7/6/2016 11R. Smith - University of St Thomas - Minnesota

12 Sample “drawing” function Draw right triangles with nested for loopsDraw right triangles with nested for loops 7/6/2016 12R. Smith - University of St Thomas - Minnesota

13 7/6/2016 13R. Smith - University of St Thomas - Minnesota Creative Commons License This work is licensed under the Creative Commons Attribution-Share Alike 3.0 United States License. To view a copy of this license, visit http://creativecommons.org/licenses/by- sa/3.0/us/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.


Download ppt "7/6/2016 1R. Smith - University of St Thomas - Minnesota CISC 130: Today’s Class Computer HardwareComputer Hardware Recap: next programRecap: next program."

Similar presentations


Ads by Google