MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_NextPart_01C3F9F1.B1D385D0" This document is a Single File Web Page, also known as a Web Archive file. If you are seeing this message, your browser or editor doesn't support Web Archive files. Please download a browser that supports Web Archive, such as Microsoft Internet Explorer. ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii" CS 211: Introduction to Computer Programming II

This presentation contains content that your browser may not be able to = show properly. This presentation was optimized for more recent versions of Micro= soft Internet Explorer.

If you would like to proceed anyway, click here.

------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/master04.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii"
Click to edit Master title style
Click to edit Master text styles
Second level
Third level
Fourth level
Fifth level
‹date/time› <= /span>
‹foo= ter› <= /span>
‹#&#= 8250; <= /span>
------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/master04.xml Content-Transfer-Encoding: quoted-printable Content-Type: text/xml; charset="utf-8" ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/preview.wmf Content-Transfer-Encoding: base64 Content-Type: image/x-wmf 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADU2NzgmJygpDA0AADAxMjMgISI0 AiQAACssLS4WFxgZLxsAACYnKCkMDQ4PKhEAACAhIiMCJCUFBgcAABYXGBkaGxwdHh8AAAwNDg8Q ERITFBUAAAIDBAUGBwgJCgsAAAQAAAAnAf//BAAAAPABAAADAAAAHgAHAAAA/AIAABwcHAAAAAQA AAAtAQAABAAAAC0BAQAOAAAAJAMFAAsAKgALAD0ACwA9AAsAKgALACoABAAAAC0BAgAEAAAALQED AAQAAAAnAf//AwAAAB4ABAAAAC0BAQAHAAAA/AIAAB0dHQAAAAQAAAAtAQQABAAAAC0BAQAOAAAA JAMFAAUAOAAFADkABgA5AAYAOAAFADgABAAAAC0BAQAEAAAALQEDAAQAAADwAQQABwAAAPwCAAAg ICAAAAAEAAAALQEEAAQAAAAtAQEADgAAACQDBQAGADgABgA5AAcAOQAHADgABgA4AAQAAAAtAQEA BAAAAC0BAwAEAAAA8AEEAAcAAAD8AgAAIiIiAAAABAAAAC0BBAAEAAAALQEBAA4AAAAkAwUABwA4 AAcAOQAIADkACAA4AAcAOAAEAAAALQEBAAQAAAAtAQMABAAAAPABBAAHAAAA/AIAACQkJAAAAAQA AAAtAQQABAAAAC0BAQAOAAAAJAMFAAgAOAAIADkACQA5AAkAOAAIADgABAAAAC0BAQAEAAAALQED AAQAAADwAQQABwAAAPwCAAAmJiYAAAAEAAAALQEEAAQAAAAtAQEADgAAACQDBQAJADgACQA5AAoA OQAKADgACQA4AAQAAAAtAQEABAAAAC0BAwAEAAAA8AEEAAcAAAD8AgAAKSkpAAAABAAAAC0BBAAE AAAALQEBAA4AAAAkAwUACgA4AAoAOQALADkACwA4AAoAOAAEAAAALQEBAAQAAAAtAQMABAAAAPAB BAAHAAAA/AIAACsrKwAAAAQAAAAtAQQABAAAAC0BAQAOAAAAJAMFAAsAOAALADkADAA5AAwAOAAL ADgABAAAAC0BAQAEAAAALQEDAAQAAADwAQQABwAAAPwCAAAtLS0AAAAEAAAALQEEAAQAAAAtAQEA DgAAACQDBQAMADgADAA5AA4AOQAOADgADAA4AAQAAAAtAQEABAAAAC0BAwAEAAAA8AEEAAcAAAD8 AgAAMDAwAAAABAAAAC0BBAAEAAAALQEBAA4AAAAkAwUADgA4AA4AOQAPADkADwA4AA4AOAAEAAAA LQEBAAQAAAAtAQMABAAAAPABBAAHAAAA/AIAADIyMgAAAAQAAAAtAQQABAAAAC0BAQAOAAAAJAMF AA8AOAAPADkAEAA5ABAAOAAPADgABAAAAC0BAQAEAAAALQEDAAQAAADwAQQABwAAAPwCAAA0NDQA AAAEAAAALQEEAAQAAAAtAQEADgAAACQDBQAQADgAEAA5ABEAOQARADgAEAA4AAQAAAAtAQEABAAA AC0BAwAEAAAA8AEEAAcAAAD8AgAANjY2AAAABAAAAC0BBAAEAAAALQEBAA4AAAAkAwUAEQA4ABEA OQASADkAEgA4ABEAOAAEAAAALQEBAAQAAAAtAQMABAAAAPABBAAHAAAA/AIAADg4OAAAAAQAAAAt AQQABAAAAC0BAQAOAAAAJAMFABIAOAASADkAEwA5ABMAOAASADgABAAAAC0BAQAEAAAALQEDAAQA AADwAQQABwAAAPwCAAA6OjoAAAAEAAAALQEEAAQAAAAtAQEADgAAACQDBQATADgAEwA5ABQAOQAU ADgAEwA4AAQAAAAtAQEABAAAAC0BAwAEAAAA8AEEAAcAAAD8AgAAPT09AAAABAAAAC0BBAAEAAAA LQEBAA4AAAAkAwUAFAA4ABQAOQAVADkAFQA4ABQAOAAEAAAALQEBAAQAAAAtAQMABAAAAPABBAAH AAAA/AIAAD8/PwAAAAQAAAAtAQQABAAAAC0BAQAOAAAAJAMFABUAOAAVADkAFgA5ABYAOAAVADgA BAAAAC0BAQAEAAAALQEDAAQAAADwAQQABwAAAPwCAABBQUEAAAAEAAAALQEEAAQAAAAtAQEADgAA ACQDBQAWADgAFgA5ABcAOQAXADgAFgA4AAQAAAAtAQEABAAAAC0BAwAEAAAA8AEEAAcAAAD8AgAA Q0NDAAAABAAAAC0BBAAEAAAALQEBAA4AAAAkAwUAFwA4ABcAOQAYADkAGAA4ABcAOAAEAAAALQEB AAQAAAAtAQMABAAAAPABBAAHAAAA/AIAAEVFRQAAAAQAAAAtAQQABAAAAC0BAQAOAAAAJAMFABgA OAAYADkAGgA5ABoAOAAYADgABAAAAC0BAQAEAAAALQEDAAQAAADwAQQABwAAAPwCAABISEgAAAAE AAAALQEEAAQAAAAtAQEADgAAACQDBQAaADgAGgA5ABsAOQAbADgAGgA4AAQAAAAtAQEABAAAAC0B AwAEAAAA8AEEAAcAAAD8AgAASkpKAAAABAAAAC0BBAAEAAAALQEBAA4AAAAkAwUAGwA4ABsAOQAc ADkAHAA4ABsAOAAEAAAALQEBAAQAAAAtAQMABAAAAPABBAAHAAAA/AIAAExMTAAAAAQAAAAtAQQA BAAAAC0BAQAOAAAAJAMFABwAOAAcADkAHQA5AB0AOAAcADgABAAAAC0BAQAEAAAALQEDAAQAAADw AQQABwAAAPwCAABOTk4AAAAEAAAALQEEAAQAAAAtAQEADgAAACQDBQAdADgAHQA5AB4AOQAeADgA HQA4AAQAAAAtAQEABAAAAC0BAwAEAAAA8AEEAAcAAAD8AgAAUVFRAAAABAAAAC0BBAAEAAAALQEB AA4AAAAkAwUAHgA4AB4AOQAfADkAHwA4AB4AOAAEAAAALQEBAAQAAAAtAQMABAAAAPABBAAHAAAA /AIAAFNTUwAAAAQAAAAtAQQABAAAAC0BAQAOAAAAJAMFAB8AOAAfADkAIAA5ACAAOAAfADgABAAA AC0BAQAEAAAALQEDAAQAAADwAQQABwAAAPwCAABVVVUAAAAEAAAALQEEAAQAAAAtAQEADgAAACQD BQAgADgAIAA5ACEAOQAhADgAIAA4AAQAAAAtAQEABAAAAC0BAwAEAAAA8AEEAAcAAAD8AgAAV1dX AAAABAAAAC0BBAAEAAAALQEBAA4AAAAkAwUAIQA4ACEAOQAiADkAIgA4ACEAOAAEAAAALQEBAAQA AAAtAQMABAAAAPABBAAHAAAA/AIAAFlZWQAAAAQAAAAtAQQABAAAAC0BAQAOAAAAJAMFACIAOAAi ADkAIwA5ACMAOAAiADgABAAAAC0BAQAEAAAALQEDAAQAAADwAQQABwAAAPwCAABbW1sAAAAEAAAA LQEEAAQAAAAtAQEADgAAACQDBQAjADgAIwA5ACQAOQAkADgAIwA4AAQAAAAtAQEABAAAAC0BAwAE AAAA8AEEAAcAAAD8AgAAXV1dAAAABAAAAC0BBAAEAAAALQEBAA4AAAAkAwUAJAA4ACQAOQAlADkA JQA4ACQAOAAEAAAALQEBAAQAAAAtAQMABAAAAPABBAAHAAAA/AIAAF9fXwAAAAQAAAAtAQQABAAA AC0BAQAOAAAAJAMFACUAOAAlADkAJgA5ACYAOAAlADgABAAAAC0BAQAEAAAALQEDAAQAAADwAQQA BwAAAPwCAABhYWEAAAAEAAAALQEEAAQAAAAtAQEADgAAACQDBQAmADgAJgA5ACcAOQAnADgAJgA4 AAQAAAAtAQEABAAAAC0BAwAEAAAA8AEEAAcAAAD8AgAAZGRkAAAABAAAAC0BBAAEAAAALQEBAA4A AAAkAwUAJwA4ACcAOQAoADkAKAA4ACcAOAAEAAAALQEBAAQAAAAtAQMABAAAAPABBAAHAAAA/AIA AGZmZgAAAAQAAAAtAQQABAAAAC0BAQAOAAAAJAMFACgAOAAoADkAKQA5ACkAOAAoADgABAAAAC0B AQAEAAAALQEDAAQAAADwAQQABwAAAPwCAABoaGgAAAAEAAAALQEEAAQAAAAtAQEADgAAACQDBQAp ADgAKQA5ACoAOQAqADgAKQA4AAQAAAAtAQEABAAAAC0BAwAEAAAA8AEEAAcAAAD8AgAAampqAAAA BAAAAC0BBAAEAAAALQEBAA4AAAAkAwUAKgA4ACoAOQArADkAKwA4ACoAOAAEAAAALQEBAAQAAAAt AQMABAAAAPABBAAHAAAA/AIAAGxsbAAAAAQAAAAtAQQABAAAAC0BAQAOAAAAJAMFACsAOAArADkA LAA5ACwAOAArADgABAAAAC0BAQAEAAAALQEDAAQAAADwAQQABwAAAPwCAABubm4AAAAEAAAALQEE AAQAAAAtAQEADgAAACQDBQAsADgALAA5AC0AOQAtADgALAA4AAQAAAAtAQEABAAAAC0BAwAEAAAA 8AEEAAcAAAD8AgAAcHBwAAAABAAAAC0BBAAEAAAALQEBAA4AAAAkAwUALQA4AC0AOQAuADkALgA4 AC0AOAAEAAAALQEBAAQAAAAtAQMABAAAAPABBAAHAAAA/AIAAHNzcwAAAAQAAAAtAQQABAAAAC0B AQAOAAAAJAMFAC4AOAAuADkALwA5AC8AOAAuADgABAAAAC0BAQAEAAAALQEDAAQAAADwAQQABwAA APwCAAB1dXUAAAAEAAAALQEEAAQAAAAtAQEADgAAACQDBQAvADgALwA5ADAAOQAwADgALwA4AAQA AAAtAQEABAAAAC0BAwAEAAAA8AEEAAcAAAD8AgAAd3d3AAAABAAAAC0BBAAEAAAALQEBAA4AAAAk AwUAMAA4ADAAOQAxADkAMQA4ADAAOAAEAAAALQEBAAQAAAAtAQMABAAAAPABBAAHAAAA/AIAAHp6 egAAAAQAAAAtAQQABAAAAC0BAQAOAAAAJAMFADEAOAAxADkAMgA5ADIAOAAxADgABAAAAC0BAQAE AAAALQEDAAQAAADwAQQABwAAAPwCAAB8fHwAAAAEAAAALQEEAAQAAAAtAQEADgAAACQDBQAyADgA MgA5ADMAOQAzADgAMgA4AAQAAAAtAQEABAAAAC0BAwAEAAAA8AEEAAcAAAD8AgAAfn5+AAAABAAA AC0BBAAEAAAALQEBAA4AAAAkAwUAMwA4ADMAOQA0ADkANAA4ADMAOAAEAAAALQEBAAQAAAAtAQMA BAAAAPABBAAHAAAA/AIAAICAgAAAAAQAAAAtAQQABAAAAC0BAQAOAAAAJAMFADQAOAA0ADkANQA5 ADUAOAA0ADgABAAAAC0BAQAEAAAALQEDAAQAAADwAQQABwAAAPwCAACCgoIAAAAEAAAALQEEAAQA AAAtAQEADgAAACQDBQA1ADgANQA5ADYAOQA2ADgANQA4AAQAAAAtAQEABAAAAC0BAwAEAAAA8AEE AAcAAAD8AgAAhISEAAAABAAAAC0BBAAEAAAALQEBAA4AAAAkAwUANgA4ADYAOQA3ADkANwA4ADYA OAAEAAAALQEBAAQAAAAtAQMABAAAAPABBAAHAAAA/AIAAIaGhgAAAAQAAAAtAQQABAAAAC0BAQAO AAAAJAMFADcAOAA3ADkAOAA5ADgAOAA3ADgABAAAAC0BAQAEAAAALQEDAAQAAADwAQQABwAAAPwC AACIiIgAAAAEAAAALQEEAAQAAAAtAQEADgAAACQDBQA4ADgAOAA5ADkAOQA5ADgAOAA4AAQAAAAt AQEABAAAAC0BAwAEAAAA8AEEAAcAAAD8AgAAioqKAAAABAAAAC0BBAAEAAAALQEBAA4AAAAkAwUA OQA4ADkAOQA6ADkAOgA4ADkAOAAEAAAALQEBAAQAAAAtAQMABAAAAPABBAAHAAAA/AIAAI2NjQAA AAQAAAAtAQQABAAAAC0BAQAOAAAAJAMFADoAOAA6ADkAOwA5ADsAOAA6ADgABAAAAC0BAQAEAAAA LQEDAAQAAADwAQQABwAAAPwCAACQkJAAAAAEAAAALQEEAAQAAAAtAQEADgAAACQDBQA7ADgAOwA5 ADwAOQA8ADgAOwA4AAQAAAAtAQEABAAAAC0BAwAEAAAA8AEEAAcAAAD8AgAAkpKSAAAABAAAAC0B BAAEAAAALQEBAA4AAAAkAwUAPAA4ADwAOQA9ADkAPQA4ADwAOAAEAAAALQEBAAQAAAAtAQMABAAA APABBAAHAAAA/AIAAJSUlAAAAAQAAAAtAQQABAAAAC0BAQAOAAAAJAMFAD0AOAA9ADkAPgA5AD4A OAA9ADgABAAAAC0BAQAEAAAALQEDAAQAAADwAQQABwAAAPwCAACWlpYAAAAEAAAALQEEAAQAAAAt AQEADgAAACQDBQA+ADgAPgA5AD8AOQA/ADgAPgA4AAQAAAAtAQEABAAAAC0BAwAEAAAA8AEEAAcA AAD8AgAAmJiYAAAABAAAAC0BBAAEAAAALQEBAA4AAAAkAwUAPwA4AD8AOQBAADkAQAA4AD8AOAAE AAAALQEBAAQAAAAtAQMABAAAAPABBAAHAAAA/AIAAJqamgAAAAQAAAAtAQQABAAAAC0BAQAOAAAA JAMFAEAAOABAADkAQQA5AEEAOABAADgABAAAAC0BAQAEAAAALQEDAAQAAADwAQQABwAAAPwCAACc nJwAAAAEAAAALQEEAAQAAAAtAQEADgAAACQDBQBBADgAQQA5AEIAOQBCADgAQQA4AAQAAAAtAQEA BAAAAC0BAwAEAAAA8AEEAAcAAAD8AgAAnp6eAAAABAAAAC0BBAAEAAAALQEBAA4AAAAkAwUAQgA4 AEIAOQBDADkAQwA4AEIAOAAEAAAALQEBAAQAAAAtAQMABAAAAPABBAAHAAAA/AIAAKCgoAAAAAQA AAAtAQQABAAAAC0BAQAOAAAAJAMFAEMAOABDADkARAA5AEQAOABDADgABAAAAC0BAQAEAAAALQED AAQAAADwAQQABwAAAPwCAACjo6MAAAAEAAAALQEEAAQAAAAtAQEADgAAACQDBQBEADgARAA5AEUA OQBFADgARAA4AAQAAAAtAQEABAAAAC0BAwAEAAAA8AEEAAcAAAD8AgAApaWlAAAABAAAAC0BBAAE AAAALQEBAA4AAAAkAwUARQA4AEUAOQBHADkARwA4AEUAOAAEAAAALQEBAAQAAAAtAQMABAAAAPAB BAAHAAAA/AIAAKioqAAAAAQAAAAtAQQABAAAAC0BAQAOAAAAJAMFAEcAOABHADkASAA5AEgAOABH ADgABAAAAC0BAQAEAAAALQEDAAQAAADwAQQABwAAAPwCAACqqqoAAAAEAAAALQEEAAQAAAAtAQEA DgAAACQDBQBIADgASAA5AEkAOQBJADgASAA4AAQAAAAtAQEABAAAAC0BAwAEAAAA8AEEAAcAAAD8 AgAArKysAAAABAAAAC0BBAAEAAAALQEBAA4AAAAkAwUASQA4AEkAOQBKADkASgA4AEkAOAAEAAAA LQEBAAQAAAAtAQMABAAAAPABBAAHAAAA/AIAAK6urgAAAAQAAAAtAQQABAAAAC0BAQAOAAAAJAMF AEoAOABKADkASwA5AEsAOABKADgABAAAAC0BAQAEAAAALQEDAAQAAADwAQQABwAAAPwCAACwsLAA AAAEAAAALQEEAAQAAAAtAQEADgAAACQDBQBLADgASwA5AEwAOQBMADgASwA4AAQAAAAtAQEABAAA AC0BAwAEAAAA8AEEAAcAAAD8AgAAsrKyAAAABAAAAC0BBAAEAAAALQEBAA4AAAAkAwUATAA4AEwA OQBNADkATQA4AEwAOAAEAAAALQEBAAQAAAAtAQMABAAAAPABBAAHAAAA/AIAALS0tAAAAAQAAAAt AQQABAAAAC0BAQAOAAAAJAMFAE0AOABNADkATgA5AE4AOABNADgABAAAAC0BAQAEAAAALQEDAAQA AADwAQQABwAAAPwCAAC2trYAAAAEAAAALQEEAAQAAAAtAQEADgAAACQDBQBOADgATgA5AE8AOQBP ADgATgA4AAQAAAAtAQEABAAAAC0BAwAEAAAA8AEEAAcAAAD8AgAAuLi4AAAABAAAAC0BBAAEAAAA LQEBAA4AAAAkAwUATwA4AE8AOQBQADkAUAA4AE8AOAAEAAAALQEBAAQAAAAtAQMABAAAAPABBAAH AAAA/AIAALq6ugAAAAQAAAAtAQQABAAAAC0BAQAOAAAAJAMFAFAAOABQADkAUQA5AFEAOABQADgA BAAAAC0BAQAEAAAALQEDAAQAAADwAQQABwAAAPwCAAC8vLwAAAAEAAAALQEEAAQAAAAtAQEADgAA ACQDBQBRADgAUQA5AFMAOQBTADgAUQA4AAQAAAAtAQEABAAAAC0BAwAEAAAA8AEEAAcAAAD8AgAA v7+/AAAABAAAAC0BBAAEAAAALQEBAA4AAAAkAwUAUwA4AFMAOQBUADkAVAA4AFMAOAAEAAAALQEB AAQAAAAtAQMABAAAAPABBAAHAAAA/AIAAMHBwQAAAAQAAAAtAQQABAAAAC0BAQAOAAAAJAMFAFQA OABUADkAVgA5AFYAOABUADgABAAAAC0BAQAEAAAALQEDAAQAAADwAQQABwAAAPwCAADExMQAAAAE AAAALQEEAAQAAAAtAQEADgAAACQDBQBWADgAVgA5AFcAOQBXADgAVgA4AAQAAAAtAQEABAAAAC0B AwAEAAAA8AEEAAcAAAD8AgAAxsbGAAAABAAAAC0BBAAEAAAALQEBAA4AAAAkAwUAVwA4AFcAOQBZ ADkAWQA4AFcAOAAEAAAALQEBAAQAAAAtAQMABAAAAPABBAAHAAAA/AIAAMnJyQAAAAQAAAAtAQQA BAAAAC0BAQAOAAAAJAMFAFkAOABZADkAWgA5AFoAOABZADgABAAAAC0BAQAEAAAALQEDAAQAAADw AQQABwAAAPwCAADLy8sAAAAEAAAALQEEAAQAAAAtAQEADgAAACQDBQBaADgAWgA5AFsAOQBbADgA WgA4AAQAAAAtAQEABAAAAC0BAwAEAAAA8AEEAAcAAAD8AgAAzc3NAAAABAAAAC0BBAAEAAAALQEB AA4AAAAkAwUAWwA4AFsAOQBdADkAXQA4AFsAOAAEAAAALQEBAAQAAAAtAQMABAAAAPABBAAHAAAA /AIAANDQ0AAAAAQAAAAtAQQABAAAAC0BAQAOAAAAJAMFAF0AOABdADkAXgA5AF4AOABdADgABAAA AC0BAQAEAAAALQEDAAQAAADwAQQABwAAAPwCAADS0tIAAAAEAAAALQEEAAQAAAAtAQEADgAAACQD BQBeADgAXgA5AGAAOQBgADgAXgA4AAQAAAAtAQEABAAAAC0BAwAEAAAA8AEEAAcAAAD8AgAA1NTU AAAABAAAAC0BBAAEAAAALQEBAA4AAAAkAwUAYAA4AGAAOQBhADkAYQA4AGAAOAAEAAAALQEBAAQA AAAtAQMABAAAAPABBAAHAAAA/AIAANbW1gAAAAQAAAAtAQQABAAAAC0BAQAOAAAAJAMFAGEAOABh ADkAYwA5AGMAOABhADgABAAAAC0BAQAEAAAALQEDAAQAAADwAQQABwAAAPwCAADY2NgAAAAEAAAA LQEEAAQAAAAtAQEADgAAACQDBQBjADgAYwA5AGQAOQBkADgAYwA4AAQAAAAtAQEABAAAAC0BAwAE AAAA8AEEAAcAAAD8AgAA2traAAAABAAAAC0BBAAEAAAALQEBAA4AAAAkAwUAZAA4AGQAOQBmADkA ZgA4AGQAOAAEAAAALQEBAAQAAAAtAQMABAAAAPABBAAHAAAA/AIAANzc3AAAAAQAAAAtAQQABAAA AC0BAQAOAAAAJAMFAGYAOABmADkAaAA5AGgAOABmADgABAAAAC0BAQAEAAAALQEDAAQAAADwAQQA BwAAAPwCAADf398AAAAEAAAALQEEAAQAAAAtAQEADgAAACQDBQBoADgAaAA5AGoAOQBqADgAaAA4 AAQAAAAtAQEABAAAAC0BAwAEAAAA8AEEAAcAAAD8AgAA4eHhAAAABAAAAC0BBAAEAAAALQEBAA4A AAAkAwUAagA4AGoAOQBsADkAbAA4AGoAOAAEAAAALQEBAAQAAAAtAQMABAAAAPABBAAHAAAA/AIA AOTk5AAAAAQAAAAtAQQABAAAAC0BAQAOAAAAJAMFAGwAOABsADkAbgA5AG4AOABsADgABAAAAC0B AQAEAAAALQEDAAQAAADwAQQABwAAAPwCAADm5uYAAAAEAAAALQEEAAQAAAAtAQEADgAAACQDBQBu ADgAbgA5AHAAOQBwADgAbgA4AAQAAAAtAQEABAAAAC0BAwAEAAAA8AEEAAcAAAD8AgAA6OjoAAAA BAAAAC0BBAAEAAAALQEBAA4AAAAkAwUAcAA4AHAAOQByADkAcgA4AHAAOAAEAAAALQEBAAQAAAAt AQMABAAAAPABBAAHAAAA/AIAAOrq6gAAAAQAAAAtAQQABAAAAC0BAQAOAAAAJAMFAHIAOAByADkA dAA5AHQAOAByADgABAAAAC0BAQAEAAAALQEDAAQAAADwAQQABwAAAPwCAADs7OwAAAAEAAAALQEE AAQAAAAtAQEADgAAACQDBQB0ADgAdAA5AHcAOQB3ADgAdAA4AAQAAAAtAQEABAAAAC0BAwAEAAAA 8AEEAAcAAAD8AgAA7u7uAAAABAAAAC0BBAAEAAAALQEBAA4AAAAkAwUAdwA4AHcAOQB5ADkAeQA4 AHcAOAAEAAAALQEBAAQAAAAtAQMABAAAAPABBAAHAAAA/AIAAPDw8AAAAAQAAAAtAQQABAAAAC0B AQAOAAAAJAMFAHkAOAB5ADkAewA5AHsAOAB5ADgABAAAAC0BAQAEAAAALQEDAAQAAADwAQQABwAA APwCAADy8vIAAAAEAAAALQEEAAQAAAAtAQEADgAAACQDBQB7ADgAewA5AH8AOQB/ADgAewA4AAQA AAAtAQEABAAAAC0BAwAEAAAA8AEEAAcAAAD8AgAA9PT0AAAABAAAAC0BBAAEAAAALQEBAA4AAAAk AwUAfwA4AH8AOQCCADkAggA4AH8AOAAEAAAALQEBAAQAAAAtAQMABAAAAPABBAAHAAAA/AIAAPb2 9gAAAAQAAAAtAQQABAAAAC0BAQAOAAAAJAMFAIIAOACCADkAhgA5AIYAOACCADgABAAAAC0BAQAE AAAALQEDAAQAAADwAQQABwAAAPwCAAD4+PgAAAAEAAAALQEEAAQAAAAtAQEADgAAACQDBQCGADgA hgA5AIkAOQCJADgAhgA4AAQAAAAtAQEABAAAAC0BAwAEAAAA8AEEAAcAAAD8AgAA+vr6AAAABAAA AC0BBAAEAAAALQEBAA4AAAAkAwUAiQA4AIkAOQCQADkAkAA4AIkAOAAEAAAALQEBAAQAAAAtAQMA BAAAAPABBAAHAAAA/AIAAPz8/AAAAAQAAAAtAQQABAAAAC0BAQAOAAAAJAMFAJAAOACQADkAlQA5 AJUAOACQADgABAAAAC0BAQAEAAAALQEDAAQAAADwAQQABwAAAPwCAAD///8AAAAEAAAALQEEAAQA AAAtAQEADgAAACQDBQCVADgAlQA5AJ4AOQCeADgAlQA4AAQAAAAtAQEABAAAAC0BAwAEAAAA8AEE AAQAAAAtAQIABAAAACcB//8cAAAA+wL5/wAAAAAAAJABAAAAAABAACJUYWhvbWEAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAQAAAAtAQQABAAAAC4BGAAEAAAAAgEBAAUAAAAJAjMzmQISAAAAMgot AEkABwAAAENTIDIxMToABAAEAAIABAAEAAQAAgAEAAAALgEAABwAAAD7AhAABwAAAAAAvAIAAAAA AQICIlN5c3RlbQAAAAAAAAAAAAAYAAAAAgAAAIA5FQDkBAAABAAAAC0BBQAEAAAA8AEEABwAAAD7 Avn/AAAAAAAAkAEAAAAAAEAAIlRhaG9tYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAC0B BAAEAAAALgEYAAQAAAACAQEABQAAAAkCMzOZAkIAAAAyCjUAEwAnAAAASW50cm9kdWN0aW9uIHRv IENvbXB1dGVyIFByb2dyYW1taW5nIElJAAMABAACAAMABAAEAAQAAwACAAIABAAEAAIAAgAEAAIA BAAEAAYABAAEAAIABAADAAIABAADAAQABAADAAQABgAFAAIABAAEAAIAAwADAAQAAAAuAQAABAAA AC0BBQAEAAAA8AEEABwAAAD7Avz/AAAAAAAAkAEAAAAAAEAAIlRhaG9tYQAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAABAAAAC0BBAAEAAAALgEYAAQAAAACAQEABQAAAAkCAAAAAjAAAAAyCkkANgAb AAAASW5zdHJ1Y3RvcjogQnJpYW4gTS4gRGVubmlzAAIAAgACAAEAAgACAAIAAgACAAIAAQACAAIA AQACAAIAAwABAAMAAgABAAMAAwACAAIAAQACAAQAAAAuAQAABAAAAC0BBQAEAAAA8AEEABwAAAD7 Avz/AAAAAAAAkAEAAAAAAEAAIlRhaG9tYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAC0B BAAEAAAALgEYAAQAAAACAQEABQAAAAkCAAAAAiUAAAAyClAAPQAUAAAAVGVhY2hpbmcgQXNzaXN0 YW50czoCAAIAAgADAAIAAQADAAIAAgACAAIAAgABAAIAAgACAAMAAQACAAEABAAAAC4BAAAEAAAA LQEFAAQAAADwAQQAHAAAAPsC/P8AAAAAAACQAQAAAAAAQAAiVGFob21hAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAEAAAALQEEAAQAAAAuARgABAAAAAIBAQAFAAAACQIAAAACDQAAADIKVgAmAAQA AABUb20gAgADAAMAAQAEAAAALgEAAAQAAAAtAQUABAAAAPABBAAcAAAA+wL8/wAAAAAAAJABAAAA AABAACJUYWhvbWEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAtAQQABAAAAC4BGAAEAAAA AgEBAAUAAAAJAgAAAAISAAAAMgpWAC8ABwAAAExlY2huZXIAAwACAAIAAwACAAMAAQAEAAAALgEA AAQAAAAtAQUABAAAAPABBAAcAAAA+wL8/wAAAAAAAJABAAAAAABAACJUYWhvbWEAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAQAAAAtAQQABAAAAC4BGAAEAAAAAgEBAAUAAAAJAgAAAAIiAAAAMgpW AD8AEgAAACwgQmluIExpbiwgUmFjaGVsIAEAAgACAAEAAwABAAIAAgACAAEAAgACAAIAAwACAAIA AgABAAQAAAAuAQAABAAAAC0BBQAEAAAA8AEEABwAAAD7Avz/AAAAAAAAkAEAAAAAAEAAIlRhaG9t YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAC0BBAAEAAAALgEYAAQAAAACAQEABQAAAAkC AAAAAhkAAAAyClYAYAAMAAAAR29sZHNib3JvdWdoAwACAAEAAgADAAIAAwABAAMAAgADAAIABAAA AC4BAAAEAAAALQEFAAQAAADwAQQAHAAAAPsC/P8AAAAAAACQAQAAAAAAQAAiVGFob21hAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAALQEEAAQAAAAuARgABAAAAAIBAQAFAAAACQL/AAACRgAA ADIKXAAiACoAAABodHRwOi8vd3d3LmNzLm5vcnRod2VzdGVybi5lZHUvfmJtZC9jczIxMS8CAAEA AgACAAEAAgACAAMABAADAAEAAgACAAIAAgADAAEAAgACAAQAAgACAAEAAwABAAMAAQADAAIAAgAC AAMAAwAEAAIAAgACAAIAAgADAAIAAgAEAAAALgEAAAQAAAAtAQUABAAAAPABBAAIAAAA+gIAAAEA AAD/AAACBAAAAC0BBAAFAAAAFAJcACIABQAAABMCXAB+AAQAAAAtAQIABAAAAPABBAADAAAAAAA= ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/master05.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii"
Click to edit Master title style
Click to edit Master subtitle styl= e
‹= date/time›
‹footer›
‹#›&#= 13;
------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/master05.xml Content-Transfer-Encoding: quoted-printable Content-Type: text/xml; charset="utf-8" ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/master02.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii"
‹header›
‹date/time›=
‹footer›
‹#›
------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/pres.xml Content-Transfer-Encoding: quoted-printable Content-Type: text/xml; charset="utf-8" ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0001.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii" CS 211: Introduction to Computer Programming II
CS 211:
Introduction to Computer Progra= mming II
Instructor: Brian M. Dennis
Teaching Assistants:
Tom Lechner, Bin Lin, Rachel Goldsborough
------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/master05_image001.gif Content-Transfer-Encoding: base64 Content-Type: image/gif R0lGODlhEAI/AHcAMSH+GlNvZnR3YXJlOiBNaWNyb3NvZnQgT2ZmaWNlACH5BAEAAAAALAAAAAAO Aj4AhwAAAAAAAAAAMwAAZgAAmQAAzAAA/wAzAAAzMwAzZgAzmQAzzAAz/wBmAABmMwBmZgBmmQBm zABm/wCZAACZMwCZZgCZmQCZzACZ/wDMAADMMwDMZgDMmQDMzADM/wD/AAD/MwD/ZgD/mQD/zAD/ /zMAADMAMzMAZjMAmTMAzDMA/zMzADMzMzMzZjMzmTMzzDMz/zNmADNmMzNmZjNmmTNmzDNm/zOZ ADOZMzOZZjOZmTOZzDOZ/zPMADPMMzPMZjPMmTPMzDPM/zP/ADP/MzP/ZjP/mTP/zDP//2YAAGYA M2YAZmYAmWYAzGYA/2YzAGYzM2YzZmYzmWYzzGYz/2ZmAGZmM2ZmZmZmmWZmzGZm/2aZAGaZM2aZ ZmaZmWaZzGaZ/2bMAGbMM2bMZmbMmWbMzGbM/2b/AGb/M2b/Zmb/mWb/zGb//5kAAJkAM5kAZpkA mZkAzJkA/5kzAJkzM5kzZpkzmZkzzJkz/5lmAJlmM5lmZplmmZlmzJlm/5mZAJmZM5mZZpmZmZmZ zJmZ/5nMAJnMM5nMZpnMmZnMzJnM/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwAM8wAZswAmcwAzMwA /8wzAMwzM8wzZswzmcwzzMwz/8xmAMxmM8xmZsxmmcxmzMxm/8yZAMyZM8yZZsyZmcyZzMyZ/8zM AMzMM8zMZszMmczMzMzM/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8Amf8AzP8A//8zAP8z M/8zZv8zmf8zzP8z//9mAP9mM/9mZv9mmf9mzP9m//+ZAP+ZM/+ZZv+Zmf+ZzP+Z///MAP/MM//M Zv/Mmf/MzP/M////AP//M///Zv//mf//zP///wECAwECAwECAwECAwECAwECAwECAwECAwECAwEC AwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwEC AwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwj/AAEIHEiwoMGDCAGwYJGwocOHECNKnEix osWLGDNq3Mixo8ePIEOKHDkyAEOSKFOqXMmypcuXMGPKnDmRRQCaOHPq3Mmzp8+fQC2aDEq0qNGj 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 ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0002.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii" CS 211: Introduction to Computer Programming II
Today’s Topics
nIntroduction to= inheritance
nReading
n9.1 – 9.5
------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/master04_image002.gif Content-Transfer-Encoding: base64 Content-Type: image/gif R0lGODlhNAA2AHcAMSH+GlNvZnR3YXJlOiBNaWNyb3NvZnQgT2ZmaWNlACH5BAEAAAAALAAAAAAz ADQAhQAAADMzzDY2zD4+zUlJzlZW0GJi0nBw1H5+14yM2pub3qmp4ra25cLC6c7O7djY8P/PAf/Q G//RNP/TRv/UV//Xaf/Ze//djP/hnf/mrv/qvf/ty//x1v/14f/36f/68P/79v/9+v/+/P///uHh 9Ojo9u/v+PT0+/j4/Pv7/f39/v///wECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwEC AwECAwECAwECAwECAwECAwECAwECAwECAwb/QIhwSCwahRHJhFKxXDAZzYbT8XxAIdEIwO12j2Bw ctl8RqfVa3br9YbfxDHTCZVSrVht2w2Hy8t1aHhre199b390Z3dqeoUAh4hKc2Z2aXlshZFhiZWC jZl7m2KTgIuXhI+jR52BjJiPkKtFraeDjpqzcaWKlrehbbq7ZL2fsKrCSLyer6m5ybW+oLHJysTM qLii1dHGztvQy67ZwHzh1+O/1NzittPI55Tp78/C3c3awezo7sf1uvfIrYtnSpo/cPbaGfymz0iA hxAjSpwoYACBAgYOIEigYAGDBg4ekChh4gSKFCpWgJnIsmXFixk3dvwYcmTJkylXttwJ8SVGwY0c PYIUSdIkyhWPeCr1GTMoTaI3jyZVupMp0JlDbRpNOZUqS6syhdYsihNpIa8uLf4M+1Rr2a5oI4J1 mpWs1LNxJc7FOjYqV7x5e6ptyhfqVrN7AssdfFWs4beAFe917PZuYsUPJ7e1+/cyZs11/SJugzkz Y7ahD8MNDLqv6sisT9N1DdmzZNmFK3cmXbr1Y8u8P+OmzHm0l9IBfOs23gW58uKr8z4XHT3u9Ne2 Y8NsvJk6bOnDu2MPfns7atpHgwAAOw== ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/master04_image003.gif Content-Transfer-Encoding: base64 Content-Type: image/gif R0lGODlhIgAaAHcAMSH+GlNvZnR3YXJlOiBNaWNyb3NvZnQgT2ZmaWNlACH5BAEAAAAALAAAAAAh ABkAhwAAAP8cHP8SEv8HB/8fH/8VFf89Pf84OP8yMv8tLf8mJv8+Pv85Of80NP8vL/8qKv87O/82 Nv8xMf8rK/8jI/83N/9bW/9WVv9RUf9MTP9HR/9CQv9dXf9YWP9TU/9OTv9JSf9ERP9fX/9aWv9V Vf9PT/9KSv9FRf9AQP9DQ/9UVP9ISP97e/92dv9wcP9ra/9mZv9hYf99ff93d/9ycv9tbf9nZ/9i Yv9/f/95ef90dP9vb/9paf9kZP9ubv9gYP9+fv91df9lZf+env+Zmf+UlP+Pj/+Kiv+Fhf+AgP+b m/+Wlv+Rkf+MjP+Hh/+Cgv+cnP+Xl/+Skv+Njf+IiP+EhP+Dg/+Vlf+QkP+amv+Li/+Tk/+fn/+6 uv+2tv+xsf+trf+oqP+jo/+7u/+3t/+zs/+urv+qqv+lpf+goP+9vf+4uP+0tP+wsP+rq/+np/+i ov++vv+/v/+hof+1tf+ysv+vr/+mpv+8vP+srP+pqf/AwP/Fxf/Bwf/Ly//Gxv/Cwv/Pz//MzP/I yP/ExP/U1P/Q0P/Nzf/Jyf/Y2P/V1f/R0f/Ozv/Kyv/c3P/Z2f/W1v/T0//d3f/a2v/X1//e3v/b 2//f3//S0v/Dw//Hx//g4P/k5P/h4f/n5//l5f/i4v/q6v/o6P/m5v/j4//t7f/r6//p6f/w8P/u 7v/s7P/y8v/09P/x8f/v7//29v/19f/z8//4+P/5+f/39//7+//6+v/8/P/9/f/+/v///wECAwEC AwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwEC AwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwEC AwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwEC AwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwj/ALt4+QImjJghRIoYOYIkCYsWLl7AiGHh AoYMGjYYOIAggYIAAgbsGUOmjJkzaNIoWcKkiZMnMmbQqGHjBocOHj6ACLGAQQMHDwgU4NNHzRo2 bdy8gQMlipQpVKrgyKFjB48eIkaQKGHiBAoIESRMoODnD6A4AgkaRKiQoUOIEilaxKixQsdAggYR kkPSJEqVLF3ClEnTJk6dKXo2KGToECKiRpEqZeoUqpWpOnxczaqCq1cIiRQtYtTILNqBBQ8mXNjw YUQYPypezOjoEaRIePXyLXkypZIrWATHnFnzZs4VmyRNosTYMeSjSd/MafqUihUgVDVjHdGZU6dK lkKP/y59tgsdtarbtg4SUUjsC54+gbpUGxKm3Jl21+mtErhwwsWFIsoopCS3XHOPFQWdUtNVZh12 mV1ViimnjOIdeOKRZpp56LHFmkPsvYBKKqqcEt989d2XV34k7fdXFsBp8dJwq4yoioAEGshcYwlG ZocbdzRY3XU5sLJKK65MWOGF4YmmYXnnpeahW6/AEksrNpooH322qTgIi2S4mBKMWMgoS5VG2ohj gcrt6FwfeBz1Y5DUTTGLLLS8YiSSSlr4XZPjbXheHmsRsUUttuBZ5ZVZnsilfXhpAuZ+eqDBRRa1 IHrnojWSuKaOkfBIVJxszDnHLbdoquieSVLoJ4ZOkjqH1qBh4IJLqogqaiWSJGqJYpeB+CGpfmbk YiuutmxqZac3DsjmcqG+SaouuRiLqqp5stonkxnK2kVAADt= ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/master04_image004.gif Content-Transfer-Encoding: base64 Content-Type: image/gif R0lGODlhBAA/AHcAMSH+GlNvZnR3YXJlOiBNaWNyb3NvZnQgT2ZmaWNlACH5BAEAAAAALAAAAAAB AD0AgAAAABwcHAIGjI+py+1aADt= ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/master04_image005.gif Content-Transfer-Encoding: base64 Content-Type: image/gif R0lGODlh4gEEAHcAMSH+GlNvZnR3YXJlOiBNaWNyb3NvZnQgT2ZmaWNlACH5BAEAAAAALAAAAADg AQIAhwAAAB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0t LS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BA QEFBQUJCQkREREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RU VFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdn Z2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6 ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2N jY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6Cg oKGhoaKioqOjo6SkpKWlpaampqenp6ioqKqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0 tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfH x8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra 2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t 7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///wEC AwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwEC AwECAwECAwECAwECAwECAwECAwECAwECAwECAwECAwj/AAMIEDBgAIECBg4cQIAggYIFCxgwaODg AQQIESJIkDBhAoUKFkJewJAhgwYNGzhw6ODBw4cPIEKIGDGCBIkSJUyYOHECBYoUKVSsWMGCRQsX L17AgBFDxowZNGrUsGHjxg0cOXTo2LGDRw8fPn4AARIkiJAhRIgUKWLkCBIkSZQsYcKkSRMnT6BA iRJFipQpVKpYsXLlCpYsWrRs2cKli5cvX8CACSNmzBgyZcyYOXMGTZo0atawYdPGzZs3cODEkTOH Dp06dezYuYMnTx49evbw6ePHz58/gAAFEjRoECFChQwdQoQoUSJFihYtYsSoUSNHjh5BghQpkqRJ lChV/6pkydKlS5gwZdK0iROnTp08efr0CRSoUKFEjRpFilSpUqaYcsopqKCSSiqqrLIKK6y00oor rrzyCiywxBKLLLPMQgsttXRYiy223HILLrjkosuJuuyyCy+89NKLLzD68gswwARjYzDCCDPMjsMQ Q0wxxgRpzDFEHoMMMskkmYwyyzS5DDNQMtPMlM04Y+UzWD4DzZbQRONlNNKEKc00ZFJjJjXVpKmm NWyyec2bcGIj55zZ1FmnNnjmuc2efG7DzZ+A/tnNoIQS6s2hiCb6zaKMNvoNOJBGKumk4VRqaaUC EWQQQgox5BBEElFkEUYaceQRSCKRZBJKKrHkEkwy0ehkE0468eQTUEIRZRRSSjHlFFRSUWUVVlpx 5RVYYpFlFlpqseUWXHLRZRdeevHlF2CCEWYYYoox5hhkklFmGWaaceYZaKKRZhpqqrHmGmyy0WYb brrx5htwwhFnHHLKMeccdNJRZx122nHnHXjikWceeuqx5x588tFnH3768ecfgAISaCCCCjLoIIQS Umghhhpy6CGIIpJoIooqsuhijDLSeCOOOvLoI5BCFmkkkkoy6WSUUlJppTNZasnll2CKSeY0Z6Kp Zpptugnnm3PSaWc2eerZ556BBlro14mG7Y2jZE9qtqSXXhoQADs= ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0004.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii" CS 211: Introduction to Computer Programming II
Inheritance
nBasic idea
nWant a new data abstraction
nMostly the same as another abstraction, already created
nCan we reuse the old one?
nStupid way
nCut and paste
nProblems
nMakes work for the programmer
nFixes to one don't propagate to the other
nIncreased code size
------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0005.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii" CS 211: Introduction to Computer Programming II
Inheritance
nSolution in C++
nAnd most other OOP languages
nInheritance
nTied to class mechanism
n"Derive" a new class from a "base" class
nTypes of inheritance
nSingle, can only inherit from one= class
nMultiple, can inherit from more than one class
nPractice seems to indicate a pref for single inheritance
------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0006.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii" CS 211: Introduction to Computer Programming II
Inheritance
class Car { =
  public:
    Car(int id =3D 0, cha= r* prod =3D "");
    ~Car();
    int getVin();
    void setVin(int nvin)= ;
   
    char* getProd(); =
    void setProd(char* nprod);
    void display(); <= /b>
  private:
    int vin;
    char* producer; <= /b>
};
Nothing exciting, <= /div>
just your basic class
------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0006_image006.gif Content-Transfer-Encoding: base64 Content-Type: image/gif R0lGODlhqwAzAHcAMSH+GlNvZnR3YXJlOiBNaWNyb3NvZnQgT2ZmaWNlACH5BAEAAAAALAAAAACp ADEAgQAAAAAAAP/PAQECAwLCjI+py+0Po5y0VoGz3rz7D4biSJbmSRroyrbuC7NqTNf2jQtzzvf+ v/sJh0RUsIhMKnWBpfMJbEKn1Nixis2KrtquF8P9iqvhsdlZPquL6bXb137Lb/G5HVa/61f5vT8l 9Sfo0jdouFF4qJioaMjYKPgI6Sc5qVdpaYeZKbfJ6eb5qRYqakZaKnaK6qW6qtXqigUbSzVLC2V7 ixaoG8nbS/kLfCk8rFls3ImcDLrMPOr8bBotnUpdzWqhvc3d7f3dXQAAOw== ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0007.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii" CS 211: Introduction to Computer Programming II
Inheritance
#include <iostream>
#include <cstring>
#include "Car.h"
using namespace std;=
Car::Car(int id, cha= r* prod)
  : vin(id)
{
  int len =3D strlen(prod);
  producer =3D new char[len + 1];&#= 13;
  strcpy(producer, prod); <= /span>
}
int Car::getVin() { = return vin; }
void Car::setVin(int= nvin) { vin =3D nvin; }
Just making a local copy of the passed in string.
Reminder, passing info to submember constructor
------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0007_image007.gif Content-Transfer-Encoding: base64 Content-Type: image/gif R0lGODlhrwBbAHcAMSH+GlNvZnR3YXJlOiBNaWNyb3NvZnQgT2ZmaWNlACH5BAEAAAAALAIAAACs AFcAgQAAAAAAAP/PAQECAwL/hI+pF+IPo5y02ouz3tyGBYZNR5bmiabRF7bIqMbyTGus68L1zvfn jRP5hsQiBRhc6IzMJg2ZTCyd1CoJGmVYt1xbFjTtisXYb3iMrpaz57TbuI623/RePDmv62f3YH4P iNKH8xdo2DGYc7gYk9hSyBh59KUkaYlIqQB5eekoxAnqkSkVWjrhCWaq+oBauaraqvkKO/oyaxpL ehuaa7sL2qv1yxlssDn8VgxwjJymzNw89hwtOU3NaH19mK0dyN299w1eJz6eXCtsrleujsbeToZu DE8uv0xP945vpb9PVQzNn49gAQXaQVfQ4I5eCRXWYOjQ3aiGEflMrCgtE0WMxY0obeSootVHkILM kIzH5mQXTyNVmmDpkoujljGv4Kkp8yZOfn52bhnUJgBNnxD6BL1HdCGhSUiTPlF0Kp1TGXHOABnq tGpUX1Opflohq6vXVGDDig1JtmjasyVdsfrK9odbB1rjttVFF6rdl2YFGBUKOLDgwYQLGz6MOLHi xYwbJ8br157kyZQrW3ar7LLmzZxT5u0MOrRoeyMyjz6NWnLp1Kxbs25g2rXs2ZVi0749Gzbu3bw1 2u4NPLTQ4MSLSzGOvHgBADs= ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0007_image008.gif Content-Transfer-Encoding: base64 Content-Type: image/gif R0lGODlh7QB/AHcAMSH+GlNvZnR3YXJlOiBNaWNyb3NvZnQgT2ZmaWNlACH5BAEAAAAALAMAAADp AHwAgQAAAAAAAP/PAQECAwL/hI+py+0PV5i02ouz3rz7D4ZdRJbm6QTCyrbuC8fyTNf2jedzgPb+ L9EJh8Si8fjiAZfMkgoJjUqnOGXzik08qdyu12jNipvbr/mMdoXHbF85DY9P1+26U47PH+n2fkoP GHjD51eoJYiYqGbIyPCmCJlH2Fj4GHmZNknZZ4np6aW5Wdf5WSoVKspGasoKlkq52iqrg/qaFTub W1Nre4WrCwzD28v0G3y8MkwMZIwcrLzs5jwtAx2N0kw9a31tkq3dyt1N8g1uKj4OUW7+iZ7+x67t /u4YL08vtm4fOY9/uO+sn78D+gAmEjgQQEGDghAOXMgQkEN/ECNKSkjGIrCJ//gqaozDkZ7Hj5kw FiO5zeSSkSjNhHzHsiUolcxksnqZLqZNKjjH6dx5iuaPn0Ch9OxGtOgeodKUXjp6LalTIlCjSZ0q pOqyq1hzaCXGtesgpj3Cit1FFttZRF97mV1bLe2Jt3CFyfVWV+LdO3kv7lVHty+LtqkCCx78F95h PIRhLdbT2NCEx5AT/6Ps17JCzHo1G+aMOPFk0JX/fiYd+u5p1Mn2rmYtIDKW0bBLM31dOzZZ3Lll r8zNliZt4J0x8iau2zjyg8qXB6d43Llvcs4hTVdX3brIU9G7Xnc0csLm7FR9RhFvoDvW75eXIlA/ lT1Bo3TgO5U/nCoh+0rZV+pEXw95Q3wHEYAN8FfUdQsZqJiAXhVWEIMPIAiUbBFaQ+FOkUXYlIMP NqKPhHx5WAUj+Q0yT4Y2fbWOiGqRWKIf5bhYlgg23ohjjjruiIGMtMinWZDYVQGkkEZK0AyNRy75 SpJFMgllklBOaRWKVF7Z5C9KYsllG1o+2WWQuGwZZpmz0UCmmWoys0qaa775YgxuwkkndXHViedJ coKZ526dzNlnoO/tKWiheCXBp6HCIapooxO+AaijfUKaqKTNJVOppQmVkamm0A3WqafbYSpqqeNF aiqdKqCa6psVtCoqBbDGGuqsPtlaagEAOw== ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0008.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii" CS 211: Introduction to Computer Programming II
Inheritance
char* Car::getProd()= { return producer; }
void Car::setProd(ch= ar* prod)
{
  delete producer; <= /div>
  int len =3D strlen(prod);
  producer =3D new char[len + 1];&#= 13;
  strcpy(producer, prod); <= /span>
};
Car::~Car() =
{ cout << "Wrecking a: ";
  this->display();
  cout << endl;
  delete producer; <= /div>
}
Deallocate the old string.
Use the this pointer to call one of my functions
------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0008_image009.gif Content-Transfer-Encoding: base64 Content-Type: image/gif R0lGODlh9QBiAHcAMSH+GlNvZnR3YXJlOiBNaWNyb3NvZnQgT2ZmaWNlACH5BAEAAAAALAQAAADv AF4AgQAAAAAAAP/PAQECAwL/hI+py+0PYwqi2ouz3rz7D4biiAXSiaYqSpHuC8fybK72jUftzPf+ H6rlhkTcDohMKmHCovMJOS6n1KqlCc1qDVKr99vDbsfFLviMFonJ7Js5DY+X2vTcW45Pr+v8aP6P t9c3uHAHeDglSLjIhej4pchIaPhYyRMp2UdpyfmCmVm32TkaBGoKIEqqyvF5Spa6GnvR6roFKytL W5t1i7uqu/vU60sKHFxGnLxhfDw0rGzJ3GwEXV0hPW3zbI2Ina2yzQ3o/c0irkxeLhF+Hqjext4e l/7+EC+vV/+Kj0uvz3CPHxh//xQEFOiFYEEEBxFWUbiwkcNiEZ0EaDgxUUUi/xgzatzopqPHJRDV XRwZq+Q3kSg/glzHsiXJl+tk9qNpL6bNmTgL6dzJsydDoMRUgjpJ1JdRRkiTKhX60ymVpZqiSnW5 kV3Tq/mybrtowirXZRW3jrg4dGzXgl/FiFU755/ZIHvewr0i15Miu3cFUBU2DK29vgNNBm7F9+5f Zy4E1yScMNvcDmDBgb2MObPmzZw7e/4MOrTo0Zyn3XIsNLVcWKhVuy43edni17QZ062N23Sq1rl7 H90927dwPyB4Dz/OJ/Ys48ibs9nE3Ll0LcqvBZ/uvLrf69ibU4rePbwdQ+DFm19Bnvt537Err39v 5E15+PQdyFdfv/bk+fn7p1QtgZ9/rs3Fn4D9ERiggal1UaCC9W3lnoMSHgBhghPidESDF77XlIYb rreDhx+ah5SII4ZXooUnZmXdihNi5uKLJsaIXYQ0GmjjjQLOqKN0KvYYUQEAOw== ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0008_image010.gif Content-Transfer-Encoding: base64 Content-Type: image/gif R0lGODlhLAF9AHcAMSH+GlNvZnR3YXJlOiBNaWNyb3NvZnQgT2ZmaWNlACH5BAEAAAAALAMAAAAn AXoAgQAAAAAAAP/PAQECAwL/hI+py+0Po5yUhouz3rz7D4biSJZchabqyrZQIMTyTNf2jef6zvf+ Twu4hsSikQUDKpfMpvMpPEqn1GPyic1qt71o9QsOv7jkshkqTqvT17P7DZ951/Q6sR3P67Vzu/9v sSc42NQHeIiogEfI2GhjmBh5uOhY2QgpmVlHadm5h6kZKsbpWfoGKppKRWraSoaqGlvE6lqLBSub i2TLW4arC1xB20vs8xuMPFa8XJjsvDLMLF1z/Gx9ED2tLVB9bZ29Ld3t7QwevjxOjmx+TpyuDsze zvsOnys/X1tvH4uf37qPXyp//0oFFBiKYMFOBxFmUriwUkOHkSBGvEQRnsWL/4QmZpzEcZvHj382 hvxE0pvJk3lGptzEUtzLbzGZuZypZmVNNzdxjtpZrKdPMDqB+hq6zmgvoUhXKaXXNN5TW0yjWpmq z+o9rK6qar3DFeDXfmFNeR3bomjZZmhFqV275GxbFW/hApE7F0Vdu8byatrLlwdevxMAB9YxmHAE w4dxJFb8gHHjR5ATSZ4cpPKky5hlPNaM4ELnjqDpiB5NunQYDKgxqq5yurXr11Y4y77xuW3s245y a2XNmyHttLaDIx5Ot7jx48gtKF/OvHnk3dANSndAvbrZ6wuya9/OHdvz7325Aye/9Lp39FmRr2ff /vV7+PE1n6dvE/R8/FAh7//n359f/wEYIFr3ESiSbuNRcyCCO/j20IKeYYCNgz9AiEiDg1CoiIXl DTUgTxwyICFfGNoRohkjRuZhFzilyEUGwrQoWEoawrHijDRG5xCMWciY1o488uMjFBcYUaJdJ05R JBNAXiWkY/bc+MqRXyQJ15JDNHlXjrBFKeU1XBpj5RpYrqVlciKWCROYlK0zJmJsluTmm7rE6ZiX gJjAZ59+/glooHompNag4R1aWFGGIsoodnjKsWijkiqyUqSTXirej5Ziiumjm3J6KZWCfQrqpHGS Wqqp/jyZaquhNYmqq40WyaqstvoYq62zglOrrrKKCmmaviI1YK/D/jpMrsc77pqDscu6SqWyzzK6 nrPTQkuJtNdSu4i22x56n7Xftrqbt+OCm4S455ILg7nrhrfBu9OqKy+7wtarVQEAOw== ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0019.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii" CS 211: Introduction to Computer Programming II
Inheritance
n// Just for completeness' sake
n
nvoid Car::display() {
n cout << producer << "["
n <= ;< vin << "]" << endl;
n}
------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0009.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii" CS 211: Introduction to Computer Programming II
Inheritance
#include "Car.h"
class PassCar : publ= ic Car
{
  public:
    PassCar(char* tp, bool sd,
        int id =3D 0, char* prod =3D "");
    ~PassCar(); <= /span>
    char* getType(); void setType(char* s);
    bool getSunRoof(); vo= id setSunRoof(bool b);
    void display(); <= /b>
 private:
    char* passCarType;= 3;
    bool sunRoof;
}; 
We are deriving PassCar from Car
Terminology: PassCar "inherits" from Car
------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0009_image011.gif Content-Transfer-Encoding: base64 Content-Type: image/gif R0lGODlhzQBuAHcAMSH+GlNvZnR3YXJlOiBNaWNyb3NvZnQgT2ZmaWNlACH5BAEAAAAALAIAAQDJ AGwAgQAAAAAAAP/PAQECAwL/DI6py+0Po5y02othMLn7D4biqG3kiabqWgWCycbyTFvuy9X6zq+b gOsJh0TMLVhMKpeAI5IJjc6cT6n1KvoBgTCs93uhVsHk8kI8NqvB6PT6LW274fSkdovv1vd2vH/O F0gjx5UjeDj496eH2Khyp1iIskFZaXmJmam5ydnp+QkK+kG4xTgaiZqqusra6voKq2iYQVpqahSb q7vL24s6S/t62+JbbHyMzJUFOyxRmwwdDQ3cAcna/PAsvc2tS+2hnfftEN5tfv47mYutUI7+/j4O 7i2P4A6Pz11fvct+nw8w2b5q/yQ1KBgwYa+B8/pRQ6gwYiyGDR22k4ixG8WK/xYPQMwIMt2Uj0FI hjxZSodJayhbTtxh0qVMbzxizrzZauMImzh7RtK5k6fPoS+ICCWKE+iJo0hlKl3aNOpLO0ylZnya oqrViFizbv26KIpWsPi6PiIL1uyjsWg1YmHbVppaFnDjCvxS166xuTFY6kXJV0bevzTLDCbMTM1h xDnXLGasKnANv5DzSZ5cWeLlRJkVbp7S2TOcx6FTviFduujp1AA/C2ZteTTssrJnx6tt+5zrvrnR 7abbWzfu4Nt++yDudjXy4sOX31XufFrz6HunU/dl/Ox1ZNm9bj/WXd336tDHL7Rufqrj9NjRs3cV Hur7fu7nr4pPAnVp/DvtF2Be7596igUooBn6hcbfMgQKU9+CYZXnYGQNRmgagBRKCOGFskx4YYIh HNiZhyCAmJmIp2iYiokcofighSy2OOCLG2Yoo2ou1qgMjTKqyA+OeXBIIY+0hEJkkUYeiWSSBQAA Ow== ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0009_image012.gif Content-Transfer-Encoding: base64 Content-Type: image/gif R0lGODlhowDeAHcAMSH+GlNvZnR3YXJlOiBNaWNyb3NvZnQgT2ZmaWNlACH5BAEAAAAALAEAAgCg ANoAgQAAAAAAAP/PAQECAwL/DI6py+0Po5y02mWu3rz7H2XgSJZmF4jnyrZm6sbybMH0jeOBoOb+ T9r1gMTiRWhMKiXIpfOZaEKnyR2PiiVah9mubOsNz6xXsXlF5p7XKIFbzY5XyGW5/eiu3/fMvJ4P yEAHFxg4WIioQPeXCLhI2Cj3GIm4yEhpN4np6Pe2yWd5+XlmCTnaFWp6SpW6Ktnp6boWKiqL1Wpr RquaWwWbx9tbtCvsRVtb7Psbmzx1HNyss8wc7fRcDXWMjJ2jvc19ow0N3uI9Tn7i/Y3uYs6uNQ38 DqR+Pv9Rf98dL68fzr/O3wh1AQV6IFjQIAeC9hTOAUjNYTqICSU+hNjQIgSE/xU19qGY0aMgih1F PuAY0mQUkilVHuBY0qUikjFlvqTZUiXMmjZ35hTp0+ZCmjxd7ixq8uhPj0qF4iG61OJRpECJRnS6 0SpVplqjOpy6VSJYrwrHYp0ANmxZrVfPjmRL1l/auHLZqjWY9m5du3Tv5e37Lq9ev3bbukUgGDA6 wYPnJT7cgLFicJIhvy08mRvjxosL97OM2LPhs5s5k9ucuVrp1M1Km9YserRT16yLuX6tOrbsnrp3 y6QNGsDt2r1u427d+3gy48RtGVcujLnl581lUYd8/fBz6Lmyu91e/dR27taTf8Y6Pvyo9I5TuH8P P34K88Dk27+PP7/+/fYH0v//D2CAsPw0noAG/kfggQouyJd/DD4IIT8JRkhhhb6hZWGGEE6oYYcG cuhhiPSBKGKJsZFoYopwOahii12x6GKMIMEoY43ToGhjjue1oWOPfuDoY41ABhnjkES2aOSRKSap ZIlMNhnik1B2KOWUGVZpZYVYZhnhllw+6OWXC4Yp5oFklingmWgCqOaaI9Lo5pVwxqnlnHR2aeed YOap55h89mnmn4CmKeigbBZq6JsgFJjojYg22lubkEL16KSiSWrpjItmqiCmnEpY6acvbipqgJ6W +supqHai6qo7DuWqea3GOqurta56K6q5lrqrqL1++iunwWY6rKXFTnospMlFNrpsos0a+uyg0QI6 bZ/V6nntndnSuW2c3br57ZrhojlumeWKee6X6XK5bpbtWvnulPFCOW+T9SpJIH/67stvv/7+y18B ADs= ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0010.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii" CS 211: Introduction to Computer Programming II
Inheritance
nOriginal class A= 3;
nBase class
nNew class B
nDerived class
nAdditional syntax on <= span style=3D'position:absolute;top:59.75%;left:22.09%;width:35.58%;height:5.5%= '>class B's declaration
nWithin class declaration
nCan add member variables
nCan override member variables
nCan add member functions
nCan override member functions
------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0011.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii" CS 211: Introduction to Computer Programming II
Inheritance
#include <iostream>
#include <cstring>
#include "PassCar.h"
using namespace std;=
PassCar::PassCar(cha= r* tp, bool sd,
 int = id, char* prod)
  : Car(id, prod), sunRoof(sd) =
{
  int len =3D strlen(tp); <= /span>
  passCarType =3D new char[len + 1]= ;
  strcpy(passCarType, tp); =
}
Initialize the Car part of this object.
Initialize the sunRoof part of this object.
------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0011_image013.gif Content-Transfer-Encoding: base64 Content-Type: image/gif R0lGODlh3ABYAHcAMSH+GlNvZnR3YXJlOiBNaWNyb3NvZnQgT2ZmaWNlACH5BAEAAAAALAAAAADb AFYAgQAAAAAAAP/PAQECAwL/jI+py+0Po5y02oud2Lz7D4biSJbmiabqyrag4cbyTNf27cL4zvf+ b9MBh8SicSc8KpfMZifpjEqnwQD1is2ioNqu98r9isfHMPmMRlrT7HbVDY+zzPK6fUO/6935vf/c 9yfoFThoCLZ2qPhVuOio1PgoORQ5aclTealZk7npmZP4KYoZOmrKWXqqCrraGtPpGgsb2zpLq2p7 a5qrK8rb6/kLrCk8bFlsLImc7LjMrOj8bBgtLUhd7XeNrae9bdftLQceDjdO3mZ+npauDpja/skO LyY/T/huf1mfn7XPj/gvHr6AzQYShGbw4LSECq0xbJjtIURuGSh0qYgxo8aNugwAePwIMqTIkSQl EjlAMqXKlSxbunwJM6bMmQBM+kBAM6fOnTx7+gRpU02An0SLGj26M2iVoUibOn36VOkMlFCrWr2a U2oLnFi7ev06UqsKqmDLmu0q1gTZs2zbNk07Yq3buXR7wv3Ata7evTTvcpDLN7DglX4BDz6M+CNc w4kbD9aa17FkxEoZT77M16RlzJzrPtzcObRbg5FFm9aLD/Tp1WZTqWYN+2uo17FrY11D27buqqV3 +y5aAAA7 ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0011_image014.gif Content-Transfer-Encoding: base64 Content-Type: image/gif R0lGODlh/wBmAHcAMSH+GlNvZnR3YXJlOiBNaWNyb3NvZnQgT2ZmaWNlACH5BAEAAAAALAMAAQD7 AGMAgQAAAAAAAP/PAQECAwL/TICpy+0Po5y02ouz3tkYDobiSJbmWXkfyrbuC8ePIajyjef6ntBC veIJh8TiJPBL2ozMpvPmS/48z6r1CopKgQes9wteaLfLsPnMHG+56LZbp16X3/R6Kb5m2/d8DT4/ 1yc4yPCXp0eYSGh4SKX4yMfY6AhZ2YZ0mClFadnpJanJ1eVJ+gQailiqSnSKyrkKm9Pq+hpr6zKL mnrLe5KrG9grnIWpa6wUNKzsV3x8XLscLfHrHCx9XeisvZmM7Y1AvS36TR4uvku+bH5unc67fo7u fgsfDz0PW29/j0+qHy+vn6d/ANsJhEQQYMCDO1Q4fAgx4kOFFMlIvIgxo8aN/xw7eszIolnFkSRL mjyJUtsoEyJTunwJM6ZMMiFn2ryJM6fKmjp7+vw5c+UdoESLGlUolETLo0ybOq3B86nUqUCTjlhK NatWl1ZFYN0KNizSqGLLmhXXNcTXs2zbbiLrNq7ctFnk2p0L967esHQ5rN0L2GnfDX8DGy462M/h xVITd2AMmaljDIUjW445+ULly5xRZrawubPokZ9TjD6NOS/q1aRVs35tzzXs2dVk074dqjSF0Lh7 Q0XB2/dt3UeEG9dEfNrx5XJsM8edPELw56ijQ5hOfbT1GdmZb3eAvTvn7w3Ci7dMPtt54enFrGfv /P3p9grMyz9Mv8d96PH3j1zv7x96AAYIWX7gEAibgQDYh6BdCjLYYFwPRrjahBTON+CFe1moYWcc dnjZhyBGJuKIjJVoIn4ZptgWiiwC5uKLesUoo4Mr1igWjTi69eBHPv4IZJBCDklkkT8WAAA7 ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0012.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii" CS 211: Introduction to Computer Programming II
Inheritance
nIn C++ we reuse two things
nInstance variables
nInstance behavior
nAlso have a whol= e bunch of goop to protect base classes from derived classes nInheritance is transitive
<= span style=3D'visibility:hidden'>n
------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0013.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii" CS 211: Introduction to Computer Programming II
Inheritance
nProblem: constructing a derived class nBase-class parts= are constructed before derived class parts
------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0014.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii" CS 211: Introduction to Computer Programming II
Inheritance
char* PassCar::getTy= pe() { return passCarType; };
void PassCar::setType(char* s) {
  int len =3D strlen(s);
  passCarType =3D new char[len + 1]= ;
  strcpy(passCarType, s); <= /span>
}
bool PassCar::getSun= Roof() { return sunRoof; };
void PassCar::setSunRoof(bool b)
{
  sunRoof =3D b;
}
Nothing exciting
here. Just straight
ahead definitions.
------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0014_image015.gif Content-Transfer-Encoding: base64 Content-Type: image/gif R0lGODlhnABJAHcAMSH+GlNvZnR3YXJlOiBNaWNyb3NvZnQgT2ZmaWNlACH5BAEAAAAALAAAAACa AEcAgQAAAAAAAP/PAQECAwLqjI+py+0Po5y0BoGz3rz7D4biSJbmeZ3qyrbuK6bwTNd2K9/6ztt5 DwwKQ7+h8QgsIpdMmLIJjZKe0qpVQ71qo9mtF9n9ioPhsVlXPqtn6bWb1X7LS/G5HVS/6zf5vb/v pwcYaDdIKGd46JaoqMbYaPYIKSY56VVpqYWZabXJKeX5CRUqykRaCoZ6eKo6xNpKBvsnu/dKu2N7 e5OrW8PbywaMKPz2S4xzvGacrLLMbOL8PCU9Fk1NdP1lne2xzc3h/Y0lfhVOLmBOni6+/t3O/Z4d fz1PXS99/5zPvJ/cf2whoMCBBAsaZFAAADs= ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0015.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii" CS 211: Introduction to Computer Programming II
Inheritance
void PassCar::displa= y() {
  cout << "PassCar(" << getProd()
       <= ;< ":" << passCarType
       <<  ":" << getVin() << ":" << sunRoof; =
}
PassCar::~PassCar() = {
  cout << "Junking a: ";
  this->display();
  delete passCarType;
}
Note that I can call public methods of the Car class just like my methods.
This definition overrides Car's definition of display.
Calls = ;
PassCar::= display
not
Car::display
------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0015_image016.gif Content-Transfer-Encoding: base64 Content-Type: image/gif R0lGODlh6QCkAHcAMSH+GlNvZnR3YXJlOiBNaWNyb3NvZnQgT2ZmaWNlACH5BAEAAAAALAEAAQDm AKEAgQAAAAAAAP/PAQECAwL/TICpy+0Po5y02ouz1mb7D4biSJaKcZjqyrbuGgjdS9f2/cZyivf+ D3zodsGi8egaEpHMpvOiXD6nVGp0x6tqtz+D4AuWcsfkZDg8K6vXois4zY7LK+53do7Pn858uP4v V4d2B1hIJjhoqHjI1yi2COmEeOYXaVnk5dhH2IPi+QkaKjpKWmp6ipqqSuoxSclp46o5S1tre4ub q1sLS6dbWSO7O0xcbHxMCSKciLOM/Awdjdxr4Wx3Yy2tvc3d10YMrJLdTV4+PTL+FU6Sbu7+bkuN 0Y7FQg+Pn69eklm83qovoEBc8jhMKwhloMKF3sQ9+5eQoUSFCA0+rBjh3sSN/8MwZtB4DSDHke88 fpQGEQJIkiw1mTyJ8iWAlS1roqFBM6QvmzwfBuOWMkHOnixlchiqDiFSohyNblj6iAFUphKdPiW3 birVhVavYuWkdevArl6/LggrNiDZsmYRoE2bby1bs2/hwpM796vdvQ2D1OUL+M2RfoELd8OrzLDi bYgTL358rslfyD0bh5hMuably5k739rM2bNoR6BDjz69rwph1J1Lo2Mt2vVr2Jllz6b92PZt3IZ1 7+YN2Pdv4HaFDycu1vhx5EyVo8PMPHKg6Fud86PeXA907L/+bOf+GdB38LSswyBP0vx59BvVr2fP 0D2M8fBlRKLPXn4L/OT17/+vr9YlMwEYl4ADEliSgQciWI5/ODHYoIJuQXiYhAtSiJKF/CHn4IMY atNhDh+CqOGIGUq4IXEhmmEiNCv+16JPKMYoo4IpAveiPTRKZ+CNvOX43o7glCikP0QW2dGRSHY3 45K7AOmQk0zaKOWUPVaZC5Qm+IibltdhGV6TYPKi5JgulWlmI16yk2Z5aLZ5k5hw9nXlnGq+aeea y82p5zd20ikgl7T1adqfgslpqH2IGkqoY4mmRuWjkNYpaaMfCAqbpSJViiefncKpaV5/hmoRp4uO +mmbpMJkaqStUvroqvNIOmmgtCrqaqyppilrRK/aSmuv1dwq7E6/XoIpa8VZUpAsastO0Oxpz0oQ 7WjTZkTsrmZeq1K2p+ap7ZjcCuFtromO60C1sYULJroNqOuZu1KVC+u57GIp71n0AnusJfC2dm+V +e4RbMBSDizUKgovzHDDDj9sQAEAOw== ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0015_image017.gif Content-Transfer-Encoding: base64 Content-Type: image/gif R0lGODlhkQCLAHcAMSH+GlNvZnR3YXJlOiBNaWNyb3NvZnQgT2ZmaWNlACH5BAEAAAAALAAAAQCP AIkAgQAAAAAAAP/PAQECAwL/BGKpy+0Po5y02hbQ3bz7Dx5ZSJbmCQWCoKHuC1sq28b2Hc9rjfc+ qKP9hsRLkFVMKjGrpnAJTR530epvuuNZtygslQs+ebPhcmj8Nas36Of6LWmT4XSHPF3PH5z8/kif d9ekBagmOFe4djiY+LaI2Aj2yBgZNglZGXVJmVm1idkp1TdKihda9DlIeNqTysl6VSo7+gfr4+q0 avuCq7qL05v7exPsO8w7m0yqe/xRnMvczKZM7Sdt8sxX25zR7f0N/l09rhpufo6err6+Tu7+Dh8v P09Db3+Pnz+bod/v//+OH8CBBAtmMYgwIT6BChs6HMfwocSJfrJRvBjQIsaN/9QicvxY0CPIkf5E kjx5zyTKlfFUsnwJUSNMji5n2ixV86ZOaDt7ysrp8ybQoDOHEn1p9OjKpEpPMm068inUj1Knbqxq 9SLWrBO3cn3o9WvDsGITki1r8CxagmrXAmzrtqTMuPbg0s1n927KuXpb8u2bETDIvIL9Fqb593DH xIqTEW4cEzLFx5KVUa68jzHmipsdXu5MSzPog6MRfi6tCnVa0aNPq3aNGnZp2a1Zg6Z923Zn3Lt1 b+b92zdm4MOFVyZ+3Lhk5MuVQ2b+3Hlj6NOlK6Z+3fph7Nu1F+b+3btg8OPFAyZ/3nxf9OvV62X/ 3v1d+PPl06V/335c/PvZ+Qv/D2CAAg5IYDcFAAA7 ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0015_image018.gif Content-Transfer-Encoding: base64 Content-Type: image/gif R0lGODlhkQB5AHcAMSH+GlNvZnR3YXJlOiBNaWNyb3NvZnQgT2ZmaWNlACH5BAEAAAAALAAAAACP AHcAgQAAAAAAAP/PAQECAwL/hA+By+0Po5y0Whny3bz7DyaCFpbmiTqBwCrpC8fW2rryjd90nfd+ uWONbL+iESNMko7MpiGYHDqnRmiUSM3KrEqs9mviXr3gckc8NqvP0XZ3Da+g3cu4nTF3j+78RZ5O 1rf2Byh4R6hXZ2iGmBi4ONWotwdZJulYCXaJmUm1OanYWTVJCvooqlOqWoha9Kl62pryChsrG7aa 2xZ665fxCxws/Ktb3DWMnKy8zNzcbAwdLT1NXT1kjZ2tvV2awf0NHh7tLV5ufl6Drr6uTc7+Dl/s Hk9fv0trn9+Or99PPe8v4DmAAguCI2gwYTaEChtOY+gwojx+Eh1CrIjRVMaN1Lkucvzo8ePGkCIx kiwp8SRKixRX5lPpMiHMmAVn0gxo82a/nDpftuzJjidQekKHwitqNOjPpOaQMkXn9GnTpVIPUq3K LSpWq1tlXu2KTSvYfWMFii1r7Szaf1/Xjmvr1pjauNDm0p14t57dvKv28u0G9y8pv4IdFVZ6eB3h xF0YQw3sWMjiyJMdV2Z8OXHmw5sLdxb8+W9ovqPzlr57mm7quKvdtl77Gm3ssrPH1gZ7u2vurbux 9q76W2rwp8OZFk963GjyocuBOnsOPbr06dSrAysAADs= ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0016.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii" CS 211: Introduction to Computer Programming II
Inheritance
#include <iostream>
#include "PassCar.h"
using namespace std;=
int main(int argc, c= har* argv[]) {
  int vins =3D 0;
  for (int i =3D 1; i < argc; i+= +) {
Car hooptie(vins++, argv[i]);
      hooptie.display();
      cout <= < endl;
   };
}
------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0017.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii" CS 211: Introduction to Computer Programming II
An Inheritance Example
... <= /div>
int main(int argc, c= har* argv[]) {
  int vins =3D 0;
  srand(time(0));
  for (int i =3D 1; i < argc; i = +=3D 2) {
    bool roofp =3D (rand(= ) % 2) ? true : false;
    PassCar hooptie(argv[= i+1], roofp, vins++, argv[i]);
    hooptie.display();= 3;
    cout << endl;&#= 13;
    Car acar =3D hooptie;=
    acar.display(); <= /b>
    cout << endl; &= #13;
  }
}
Assigning a derived object to a base object is not a good idea.
Which display do we get?
------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0017_image019.gif Content-Transfer-Encoding: base64 Content-Type: image/gif R0lGODlhEgFyAHcAMSH+GlNvZnR3YXJlOiBNaWNyb3NvZnQgT2ZmaWNlACH5BAEAAAAALAIAAAAO AW8AgQAAAAAAAP/PAQECAwL/hI+py+0PYwu02ouz3rz7D4biOErmiaYqEAjuC8fyTNf2jef6zvd7 sAoKh5KW74hMKpdMJJAIjRKNzar1is0KntKut6gNi8fkF/eLTiOo5bb7/VPL1Wy4/W4/z/fQOv4P qKXHR7jiF4iYmDRY2GhyqBgpecPoaOkAOam5uXXpGZHJKZpY+WnKMpqqWXrqGaoK+8baavkaezs2 S9toi+uLpbtL2PtbzBQsvEdszHyEnCy33Dyt8wydJk2tXWN9/ZW9HQ7T7d0FLi5OXh51jr6tvj7l Pp8DHy/UTt9sf2+o/z+DX78U+QD+EjjwREGDuBAmBMPQoMOHEBZGhDWRIqaL/wAzamRgkeMojx8V hBTJiWTJNSjpqVxp4GTLSS9hypwZqebKmzhJwUTDs2cgnSWDCv1D9KPRo3eSalzKFI5TilCjupn6 sKrVMlgTat2a6+c3sMy6DvxKVpBYL2jTAltrzu1BuFLayq1itp/du8fosuN7K++9vYAX+Z1CuLCz w0EoKI4l+Frix04Yo3BMGbLlIpMzV978oLPnz6AXYB4duLRJ0ahJqz7duqHqmLGNRS4Eu7bszbl1 72bM2veS23SCC1dC/Jvx48jh9mY+V+xy6MN/PqceXel07NWVcg+XXMX178XCK9xOvq/er+PTvx1M pgIq91zjtR9OgSX9+OXuI/FnhF5r5pkWhnwg7cdfMv75YOBGCIoxYEw8NVjRgxDSsiAP+V1mYYGt 3EShQh2q9UmGOIRI0IhZ3GaiDSj6o+IVkVn0Ij4xyuhIiwHVFCBqXekYQ41/3YgXH0CaseEcPY7m VDtCAkVClFJOSWWVVlIZzTlJzsalX0A+2WWYT/UApphmnrVMmWeuuY6JW7IJZ1bVvBlnnfbZoqad ep5yX557/nlJe34CSigvLkZYaKIS0jCooo5ic0ijj07KlgySUoppH3XQmWmnWY7DqaeiskXFpaOe +ogLpqLKamgthNpqrIZYIGutmiJqa5yw5sqrBAUAADs= ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0017_image020.gif Content-Transfer-Encoding: base64 Content-Type: image/gif R0lGODlhOQE8AHcAMSH+GlNvZnR3YXJlOiBNaWNyb3NvZnQgT2ZmaWNlACH5BAEAAAAALAAAAAA3 AToAgQAAAAAAAP/PAQECAwL/hI+py+0Po5w0BYGz3rz7D4biSJbmWQbVyrbuCwMXStf2jee1Gvf+ D3TMdMSi8YgU8ILMprMyTEqn1Oryic1qo9Wu94u6asdkHxeMTquV5bbbdV7L50jx+45fxOn8/i4P GHiw51doCGInqEhGeOj4mLgo+dT4aOkXOakJVHnpKZe5KQrT+WkKFjqqulJ66kqVuiob0fpqexQ7 q8tQe+ubk7srPPhbbDWMDNFrzJyS/MzbLF0UDC27PJ3NUW2tiq0Nztbd/R2ezT2+WW4ujZ4+uc7O 7P6+GC9fTF8veI/vq78PUD9/tgAGxDOQoCuDB98kVGiKYcM2DyF6CoAxo8aNvxw7epz4o6JFS4k8 7vCIMqXKZyJHOqrW8ZDKmTQzcnLpz6BJgjV74sQnUcHOn0SLBqUVs6hSoAKTLn2aT51TqFQh7Zpa Nauao3eGav2ahKs9rGDLnhDrjazZtRrQDvPK9qvbcXDjEp3bUK1dpiCz1N07DW/fB38BvxI8GIpe wzITp2V80bE3yJcQS37RkrIOy5dbZNaMg3NnVqBfjtb0ufSf05JSqw7DuvXrQqJj05qNybainrx7 +/4NPLhw4QUAADs= ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0018.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii" CS 211: Introduction to Computer Programming II
Inheritance
nProblem: destruc= ting a derived class nDerived parts are destructed before base parts
------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0020.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii" CS 211: Introduction to Computer Programming II
Builtin string class
nchar* strings are lame
nCan't hold null characters
nCan be conflated with a pointer to a single char
nCan't directly compare
nSmall library of operations
nNo bounds checking
n
= nstring class fixes many of the problems
n
------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/slide0003.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii" CS 211: Introduction to Computer Programming II
That’s a Wrap
nTakeaway
nInheritance promotes reuse
nInterface
nData structuring
nImplementation code
nReading
n9.1 – 9.5
------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/master04_stylesheet.css Content-Transfer-Encoding: base64 Content-Type: text/css Ym9keQ0KCXt3aWR0aDo1MzRweDsNCgloZWlnaHQ6NDAwcHg7fQ0KLlRCDQoJe21zby1zcGVjaWFs LWZvcm1hdDpub2J1bGxldFwyMDIyO30NCi5UDQoJe3RleHQtYWxpZ246bGVmdDsNCglmb250LWZh bWlseTpUYWhvbWE7DQoJY29sb3I6IzMzMzM5OTsNCgltc28tY29sb3ItaW5kZXg6MzsNCglmb250 LXNpemU6MjA5JTsNCgltc28tY2hhci13cmFwOjE7DQoJbXNvLWtpbnNva3Utb3ZlcmZsb3c6MTt9 DQouQkINCgl7bXNvLXNwZWNpYWwtZm9ybWF0OmJ1bGxldG47DQoJY29sb3I6IzMzMzNDQzsNCglt c28tY29sb3ItaW5kZXg6NzsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7DQoJZm9udC1zaXplOjYw JTt9DQouQg0KCXt0ZXh0LWFsaWduOmxlZnQ7DQoJZm9udC1mYW1pbHk6VGFob21hOw0KCWNvbG9y OmJsYWNrOw0KCW1zby1jb2xvci1pbmRleDoxOw0KCWZvbnQtc2l6ZToxNTIlOw0KCW1zby1jaGFy LXdyYXA6MTsNCgltc28ta2luc29rdS1vdmVyZmxvdzoxO30NCi5CMUINCgl7bXNvLXNwZWNpYWwt Zm9ybWF0OmJ1bGxldG47DQoJY29sb3I6cmVkOw0KCW1zby1jb2xvci1pbmRleDo2Ow0KCWZvbnQt ZmFtaWx5OldpbmdkaW5nczsNCglmb250LXNpemU6NTUlO30NCi5CMQ0KCXt0ZXh0LWFsaWduOmxl ZnQ7DQoJZm9udC1mYW1pbHk6VGFob21hOw0KCWNvbG9yOmJsYWNrOw0KCW1zby1jb2xvci1pbmRl eDoxOw0KCWZvbnQtc2l6ZToxMzMlOw0KCW1zby1jaGFyLXdyYXA6MTsNCgltc28ta2luc29rdS1v dmVyZmxvdzoxO30NCi5CMkINCgl7bXNvLXNwZWNpYWwtZm9ybWF0OmJ1bGxldG47DQoJY29sb3I6 IzMzMzNDQzsNCgltc28tY29sb3ItaW5kZXg6NzsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7DQoJ Zm9udC1zaXplOjUwJTt9DQouQjINCgl7dGV4dC1hbGlnbjpsZWZ0Ow0KCWZvbnQtZmFtaWx5OlRh aG9tYTsNCgljb2xvcjpibGFjazsNCgltc28tY29sb3ItaW5kZXg6MTsNCglmb250LXNpemU6MTE0 JTsNCgltc28tY2hhci13cmFwOjE7DQoJbXNvLWtpbnNva3Utb3ZlcmZsb3c6MTt9DQouQjNCDQoJ e21zby1zcGVjaWFsLWZvcm1hdDpidWxsZXRuOw0KCWNvbG9yOiNGRkNGMDE7DQoJbXNvLWNvbG9y LWluZGV4OjU7DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzOw0KCWZvbnQtc2l6ZTo1NSU7fQ0KLkIz DQoJe3RleHQtYWxpZ246bGVmdDsNCglmb250LWZhbWlseTpUYWhvbWE7DQoJY29sb3I6YmxhY2s7 DQoJbXNvLWNvbG9yLWluZGV4OjE7DQoJZm9udC1zaXplOjk1JTsNCgltc28tY2hhci13cmFwOjE7 DQoJbXNvLWtpbnNva3Utb3ZlcmZsb3c6MTt9DQouQjRCDQoJe21zby1zcGVjaWFsLWZvcm1hdDpi dWxsZXRuOw0KCWNvbG9yOiMwMEU0QTg7DQoJbXNvLWNvbG9yLWluZGV4OjQ7DQoJZm9udC1mYW1p bHk6V2luZ2RpbmdzOw0KCWZvbnQtc2l6ZTo1MCU7fQ0KLkI0DQoJe3RleHQtYWxpZ246bGVmdDsN Cglmb250LWZhbWlseTpUYWhvbWE7DQoJY29sb3I6YmxhY2s7DQoJbXNvLWNvbG9yLWluZGV4OjE7 DQoJZm9udC1zaXplOjk1JTsNCgltc28tY2hhci13cmFwOjE7DQoJbXNvLWtpbnNva3Utb3ZlcmZs b3c6MTt9DQouTg0KCXttc28tY2hhci13cmFwOjE7DQoJbXNvLWtpbnNva3Utb3ZlcmZsb3c6MTt9 DQouTjENCgl7bXNvLWNoYXItd3JhcDoxOw0KCW1zby1raW5zb2t1LW92ZXJmbG93OjE7fQ0KLk4y DQoJe21zby1jaGFyLXdyYXA6MTsNCgltc28ta2luc29rdS1vdmVyZmxvdzoxO30NCi5OMw0KCXtt c28tY2hhci13cmFwOjE7DQoJbXNvLWtpbnNva3Utb3ZlcmZsb3c6MTt9DQouTjQNCgl7bXNvLWNo YXItd3JhcDoxOw0KCW1zby1raW5zb2t1LW92ZXJmbG93OjE7fQ0KLk9CDQoJe21zby1zcGVjaWFs LWZvcm1hdDpub2J1bGxldFwyMDIyO30NCi5PDQoJe3RleHQtYWxpZ246bGVmdDsNCglmb250LWZh bWlseTpBcmlhbDsNCgljb2xvcjpibGFjazsNCgltc28tY29sb3ItaW5kZXg6MTsNCglmb250LXNp emU6ODUlOw0KCW1zby1jaGFyLXdyYXA6MTsNCgltc28ta2luc29rdS1vdmVyZmxvdzoxO30NCi5P MQ0KCXttc28tY2hhci13cmFwOjE7DQoJbXNvLWtpbnNva3Utb3ZlcmZsb3c6MTt9DQouTzINCgl7 bXNvLWNoYXItd3JhcDoxOw0KCW1zby1raW5zb2t1LW92ZXJmbG93OjE7fQ0KLk8zDQoJe21zby1j aGFyLXdyYXA6MTsNCgltc28ta2luc29rdS1vdmVyZmxvdzoxO30NCi5PNA0KCXttc28tY2hhci13 cmFwOjE7DQoJbXNvLWtpbnNva3Utb3ZlcmZsb3c6MTt9DQouQ0JCDQoJe21zby1zcGVjaWFsLWZv cm1hdDpub2J1bGxldG47DQoJY29sb3I6IzMzMzNDQzsNCgltc28tY29sb3ItaW5kZXg6NzsNCglm b250LWZhbWlseTpXaW5nZGluZ3M7DQoJZm9udC1zaXplOjYwJTt9DQouQ0INCgl7dGV4dC1hbGln bjpjZW50ZXI7DQoJZm9udC1mYW1pbHk6VGFob21hOw0KCWNvbG9yOmJsYWNrOw0KCW1zby1jb2xv ci1pbmRleDoxOw0KCWZvbnQtc2l6ZToxNTIlOw0KCW1zby1jaGFyLXdyYXA6MTsNCgltc28ta2lu c29rdS1vdmVyZmxvdzoxO30NCi5DQjFCDQoJe21zby1zcGVjaWFsLWZvcm1hdDpub2J1bGxldG47 DQoJY29sb3I6cmVkOw0KCW1zby1jb2xvci1pbmRleDo2Ow0KCWZvbnQtZmFtaWx5OldpbmdkaW5n czsNCglmb250LXNpemU6NTUlO30NCi5DQjENCgl7Zm9udC1mYW1pbHk6VGFob21hOw0KCW1zby1j aGFyLXdyYXA6MTsNCgltc28ta2luc29rdS1vdmVyZmxvdzoxO30NCi5DQjJCDQoJe21zby1zcGVj aWFsLWZvcm1hdDpub2J1bGxldG47DQoJY29sb3I6IzMzMzNDQzsNCgltc28tY29sb3ItaW5kZXg6 NzsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7DQoJZm9udC1zaXplOjUwJTt9DQouQ0IyDQoJe2Zv bnQtZmFtaWx5OlRhaG9tYTsNCgltc28tY2hhci13cmFwOjE7DQoJbXNvLWtpbnNva3Utb3ZlcmZs b3c6MTt9DQouQ0IzQg0KCXttc28tc3BlY2lhbC1mb3JtYXQ6bm9idWxsZXRuOw0KCWNvbG9yOiNG RkNGMDE7DQoJbXNvLWNvbG9yLWluZGV4OjU7DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzOw0KCWZv bnQtc2l6ZTo1NSU7fQ0KLkNCMw0KCXtmb250LWZhbWlseTpUYWhvbWE7DQoJbXNvLWNoYXItd3Jh cDoxOw0KCW1zby1raW5zb2t1LW92ZXJmbG93OjE7fQ0KLkNCNEINCgl7bXNvLXNwZWNpYWwtZm9y bWF0Om5vYnVsbGV0bjsNCgljb2xvcjojMDBFNEE4Ow0KCW1zby1jb2xvci1pbmRleDo0Ow0KCWZv bnQtZmFtaWx5OldpbmdkaW5nczsNCglmb250LXNpemU6NTAlO30NCi5DQjQNCgl7Zm9udC1mYW1p bHk6VGFob21hOw0KCW1zby1jaGFyLXdyYXA6MTsNCgltc28ta2luc29rdS1vdmVyZmxvdzoxO30N Ci5DVEINCgl7bXNvLXNwZWNpYWwtZm9ybWF0Om5vYnVsbGV0XDIwMjI7fQ0KLkNUDQoJe3RleHQt YWxpZ246bGVmdDsNCglmb250LWZhbWlseTpUYWhvbWE7DQoJY29sb3I6IzMzMzM5OTsNCgltc28t Y29sb3ItaW5kZXg6MzsNCglmb250LXNpemU6MjA5JTsNCgltc28tY2hhci13cmFwOjE7DQoJbXNv LWtpbnNva3Utb3ZlcmZsb3c6MTt9DQouSEJCDQoJe21zby1zcGVjaWFsLWZvcm1hdDpidWxsZXRu Ow0KCWNvbG9yOiMzMzMzQ0M7DQoJbXNvLWNvbG9yLWluZGV4Ojc7DQoJZm9udC1mYW1pbHk6V2lu Z2RpbmdzOw0KCWZvbnQtc2l6ZTo2MCU7fQ0KLkhCDQoJe3RleHQtYWxpZ246bGVmdDsNCglmb250 LWZhbWlseTpUYWhvbWE7DQoJY29sb3I6YmxhY2s7DQoJbXNvLWNvbG9yLWluZGV4OjE7DQoJZm9u dC1zaXplOjEzMyU7DQoJbXNvLWNoYXItd3JhcDoxOw0KCW1zby1raW5zb2t1LW92ZXJmbG93OjE7 fQ0KLkhCMUINCgl7bXNvLXNwZWNpYWwtZm9ybWF0OmJ1bGxldG47DQoJY29sb3I6cmVkOw0KCW1z by1jb2xvci1pbmRleDo2Ow0KCWZvbnQtZmFtaWx5OldpbmdkaW5nczsNCglmb250LXNpemU6NTUl O30NCi5IQjENCgl7dGV4dC1hbGlnbjpsZWZ0Ow0KCWZvbnQtZmFtaWx5OlRhaG9tYTsNCgljb2xv cjpibGFjazsNCgltc28tY29sb3ItaW5kZXg6MTsNCglmb250LXNpemU6MTE0JTsNCgltc28tY2hh ci13cmFwOjE7DQoJbXNvLWtpbnNva3Utb3ZlcmZsb3c6MTt9DQouSEIyQg0KCXttc28tc3BlY2lh bC1mb3JtYXQ6YnVsbGV0bjsNCgljb2xvcjojMzMzM0NDOw0KCW1zby1jb2xvci1pbmRleDo3Ow0K CWZvbnQtZmFtaWx5OldpbmdkaW5nczsNCglmb250LXNpemU6NTAlO30NCi5IQjINCgl7Zm9udC1m YW1pbHk6VGFob21hOw0KCW1zby1jaGFyLXdyYXA6MTsNCgltc28ta2luc29rdS1vdmVyZmxvdzox O30NCi5IQjNCDQoJe21zby1zcGVjaWFsLWZvcm1hdDpidWxsZXRuOw0KCWNvbG9yOiNGRkNGMDE7 DQoJbXNvLWNvbG9yLWluZGV4OjU7DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzOw0KCWZvbnQtc2l6 ZTo1NSU7fQ0KLkhCMw0KCXtmb250LWZhbWlseTpUYWhvbWE7DQoJbXNvLWNoYXItd3JhcDoxOw0K CW1zby1raW5zb2t1LW92ZXJmbG93OjE7fQ0KLkhCNEINCgl7bXNvLXNwZWNpYWwtZm9ybWF0OmJ1 bGxldG47DQoJY29sb3I6IzAwRTRBODsNCgltc28tY29sb3ItaW5kZXg6NDsNCglmb250LWZhbWls eTpXaW5nZGluZ3M7DQoJZm9udC1zaXplOjUwJTt9DQouSEI0DQoJe2ZvbnQtZmFtaWx5OlRhaG9t YTsNCgltc28tY2hhci13cmFwOjE7DQoJbXNvLWtpbnNva3Utb3ZlcmZsb3c6MTt9DQouUUJCDQoJ e21zby1zcGVjaWFsLWZvcm1hdDpidWxsZXRuOw0KCWNvbG9yOiMzMzMzQ0M7DQoJbXNvLWNvbG9y LWluZGV4Ojc7DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzOw0KCWZvbnQtc2l6ZTo2MCU7fQ0KLlFC DQoJe2ZvbnQtZmFtaWx5OlRhaG9tYTsNCgltc28tY2hhci13cmFwOjE7DQoJbXNvLWtpbnNva3Ut b3ZlcmZsb3c6MTt9DQouUUIxQg0KCXttc28tc3BlY2lhbC1mb3JtYXQ6YnVsbGV0bjsNCgljb2xv cjpyZWQ7DQoJbXNvLWNvbG9yLWluZGV4OjY7DQoJZm9udC1mYW1pbHk6V2luZ2RpbmdzOw0KCWZv bnQtc2l6ZTo1NSU7fQ0KLlFCMQ0KCXtmb250LWZhbWlseTpUYWhvbWE7DQoJbXNvLWNoYXItd3Jh cDoxOw0KCW1zby1raW5zb2t1LW92ZXJmbG93OjE7fQ0KLlFCMkINCgl7bXNvLXNwZWNpYWwtZm9y bWF0OmJ1bGxldG47DQoJY29sb3I6IzMzMzNDQzsNCgltc28tY29sb3ItaW5kZXg6NzsNCglmb250 LWZhbWlseTpXaW5nZGluZ3M7DQoJZm9udC1zaXplOjUwJTt9DQouUUIyDQoJe2ZvbnQtZmFtaWx5 OlRhaG9tYTsNCgltc28tY2hhci13cmFwOjE7DQoJbXNvLWtpbnNva3Utb3ZlcmZsb3c6MTt9DQou UUIzQg0KCXttc28tc3BlY2lhbC1mb3JtYXQ6YnVsbGV0bjsNCgljb2xvcjojRkZDRjAxOw0KCW1z by1jb2xvci1pbmRleDo1Ow0KCWZvbnQtZmFtaWx5OldpbmdkaW5nczsNCglmb250LXNpemU6NTUl O30NCi5RQjMNCgl7Zm9udC1mYW1pbHk6VGFob21hOw0KCW1zby1jaGFyLXdyYXA6MTsNCgltc28t a2luc29rdS1vdmVyZmxvdzoxO30NCi5RQjRCDQoJe21zby1zcGVjaWFsLWZvcm1hdDpidWxsZXRu Ow0KCWNvbG9yOiMwMEU0QTg7DQoJbXNvLWNvbG9yLWluZGV4OjQ7DQoJZm9udC1mYW1pbHk6V2lu Z2RpbmdzOw0KCWZvbnQtc2l6ZTo1MCU7fQ0KLlFCNA0KCXtmb250LWZhbWlseTpUYWhvbWE7DQoJ bXNvLWNoYXItd3JhcDoxOw0KCW1zby1raW5zb2t1LW92ZXJmbG93OjE7fQ0KLlRibEINCgl7bXNv LXNwZWNpYWwtZm9ybWF0Om5vYnVsbGV0bjsNCgljb2xvcjojMzMzM0NDOw0KCW1zby1jb2xvci1p bmRleDo3Ow0KCWZvbnQtZmFtaWx5OldpbmdkaW5nczsNCglmb250LXNpemU6NjAlO30NCi5UYmwN Cgl7Zm9udC1mYW1pbHk6VGFob21hOw0KCW1zby1jaGFyLXdyYXA6MTsNCgltc28ta2luc29rdS1v dmVyZmxvdzoxO30NCi5UYmwxQg0KCXttc28tc3BlY2lhbC1mb3JtYXQ6bm9idWxsZXRuOw0KCWNv bG9yOnJlZDsNCgltc28tY29sb3ItaW5kZXg6NjsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7DQoJ Zm9udC1zaXplOjU1JTt9DQouVGJsMQ0KCXtmb250LWZhbWlseTpUYWhvbWE7DQoJbXNvLWNoYXIt d3JhcDoxOw0KCW1zby1raW5zb2t1LW92ZXJmbG93OjE7fQ0KLlRibDJCDQoJe21zby1zcGVjaWFs LWZvcm1hdDpub2J1bGxldG47DQoJY29sb3I6IzMzMzNDQzsNCgltc28tY29sb3ItaW5kZXg6NzsN Cglmb250LWZhbWlseTpXaW5nZGluZ3M7DQoJZm9udC1zaXplOjUwJTt9DQouVGJsMg0KCXtmb250 LWZhbWlseTpUYWhvbWE7DQoJbXNvLWNoYXItd3JhcDoxOw0KCW1zby1raW5zb2t1LW92ZXJmbG93 OjE7fQ0KLlRibDNCDQoJe21zby1zcGVjaWFsLWZvcm1hdDpub2J1bGxldG47DQoJY29sb3I6I0ZG Q0YwMTsNCgltc28tY29sb3ItaW5kZXg6NTsNCglmb250LWZhbWlseTpXaW5nZGluZ3M7DQoJZm9u dC1zaXplOjU1JTt9DQouVGJsMw0KCXtmb250LWZhbWlseTpUYWhvbWE7DQoJbXNvLWNoYXItd3Jh cDoxOw0KCW1zby1raW5zb2t1LW92ZXJmbG93OjE7fQ0KLlRibDRCDQoJe21zby1zcGVjaWFsLWZv cm1hdDpub2J1bGxldG47DQoJY29sb3I6IzAwRTRBODsNCgltc28tY29sb3ItaW5kZXg6NDsNCglm b250LWZhbWlseTpXaW5nZGluZ3M7DQoJZm9udC1zaXplOjUwJTt9DQouVGJsNA0KCXtmb250LWZh bWlseTpUYWhvbWE7DQoJbXNvLWNoYXItd3JhcDoxOw0KCW1zby1raW5zb2t1LW92ZXJmbG93OjE7 fQ0KLmRlZmF1bHRCDQoJe21zby1zcGVjaWFsLWZvcm1hdDpub2J1bGxldFwyMDIyO30NCi5kZWZh dWx0DQoJe3RleHQtYWxpZ246bGVmdDsNCglmb250LWZhbWlseTpUYWhvbWE7DQoJZm9udC13ZWln aHQ6bm9ybWFsOw0KCWZvbnQtc3R5bGU6bm9ybWFsOw0KCXRleHQtZGVjb3JhdGlvbjpub25lOw0K CXRleHQtc2hhZG93Om5vbmU7DQoJdGV4dC1lZmZlY3Q6bm9uZTsNCgltc28tZmFyZWFzdC1oaW50 Om5vOw0KCWxheW91dC1mbG93Omhvcml6b250YWw7DQoJY29sb3I6YmxhY2s7DQoJbXNvLWNvbG9y LWluZGV4OjE7DQoJZm9udC1zaXplOjg1JTsNCgltc28tdGV4dC1yYWlzZTowJTsNCgltc28tbGlu ZS1zcGFjaW5nOiIxMDAgMCAwIjsNCgltc28tbWFyZ2luLWxlZnQtYWx0OjA7DQoJbXNvLXRleHQt aW5kZW50LWFsdDowOw0KCW1zby1jaGFyLXdyYXA6MDsNCgltc28ta2luc29rdS1vdmVyZmxvdzow Ow0KCWRpcmVjdGlvbjpsdHI7DQoJbXNvLXdvcmQtd3JhcDoxOw0KCW1zby12ZXJ0aWNhbC1hbGln bi1zcGVjaWFsOmJhc2VsaW5lOw0KCW1zby1hbnNpLWxhbmd1YWdlOkVOLVVTO30NCmE6bGluaw0K CXtjb2xvcjpyZWQgIWltcG9ydGFudDt9DQphOmFjdGl2ZQ0KCXtjb2xvcjojRkZDRjAxICFpbXBv cnRhbnQ7fQ0KYTp2aXNpdGVkDQoJe2NvbG9yOiMzMzMzQ0MgIWltcG9ydGFudDt9DQp= ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/script.js Content-Transfer-Encoding: quoted-printable Content-Type: application/javascript; charset="us-ascii" function LoadSld() { var sld=3DGetObj("SlideObj") if( !g_supportsPPTHTML ) { =09 sld.style.visibility=3D"visible" return } if( MakeNotesVis() ) return runAnimations =3D _InitAnimations(); =09 if( IsWin("PPTSld") ) parent.SldUpdated(GetSldId()) g_origSz=3DparseInt(SlideObj.style.fontSize) g_origH=3Dsld.style.posHeight g_origW=3Dsld.style.posWidth g_scaleHyperlinks=3D(document.all.tags("AREA").length>0) if( g_scaleHyperlinks ) InitHLinkArray() if( g_scaleInFrame||(IsWin("PPTSld") && parent.IsFullScrMode() ) ) document.body.scroll=3D"no" _RSW() if( IsWin("PPTSld") && parent.IsFullScrMode() ) FullScrInit(); =09 MakeSldVis(); ChkAutoAdv() if( runAnimations ) { if( document.all("NSPlay") ) document.all("NSPlay").autoStart =3D false; if( sld.filters && sld.filters.revealtrans ) setTimeout( "document.body.start()", sld.filters.revealtrans.duration * = 1000 ); else document.body.start(); } } function MakeSldVis()=20 { var fTrans=3Dg_showAnimation && SldHasTrans() if( fTrans )=09 { if( g_bgSound ) { idx=3Dg_bgSound.indexOf(","); pptSound.src=3Dg_bgSound.substr( 0, idx ); pptSound.loop=3D -(parseInt(g_bgSound.substr(idx+1))); } SlideObj.filters.revealtrans.Apply()=09 } SlideObj.style.visibility=3D"visible" if( fTrans ) SlideObj.filters.revealtrans.Play() } function MakeNotesVis()=20 { if( !IsNts() ) return false=20 SlideObj.style.display=3D"none" nObj =3D document.all.item("NotesObj") parent.SetHasNts(0) if( nObj ) {=20 nObj.style.display=3D"" parent.SetHasNts(1) } return 1 } function ChkAutoAdv() { if(SldHasTrans()) SlideObj.onfilterchange=3DAutoAdv else AutoAdv() } function AutoAdv() { if(!IsWin("PPTSld") || !gUseSldTimings )return var sld=3DGetCurSld() if( (sld.mAdvDelay>0) && !parent.IsFramesMode() ) setTimeout("parent.GoToNextSld()",sld.mAdvDelay) } function GetObj(id) { if(g_supportsPPTHTML) return document.all(id); else return document.getElementById(id); } function SldHasTrans() { return SlideObj.style.filter !=3D ""; } function GetSldId() { return sId=3Dlocation.href.substring(location.href.la= stIndexOf('/')+1) } function HideMenu() { if( frames["PPTSld"] && PPTSld.document.all.item("ctx= tmenu") && PPTSld.ctxtmenu.style.display!=3D"none" ) { PPTSld.ctxtmenu.styl= e.display=3D'none'; return true } return false } function IsWin( name ) { return window.name =3D=3D name } function IsNts() { return IsWin("PPTNts") } function IsSldOrNts() { return( IsWin("PPTSld")||IsWin("PPTNts") ) } function SupportsPPTAnimation() { return( navigator.platform =3D=3D "Win32"= && navigator.appVersion.indexOf("Windows")>0 ) } function SupportsPPTHTML() { var appVer=3Dnavigator.appVersion, msie=3DappVer.indexOf("MSIE "), ver=3D0 if( msie >=3D 0 ) ver=3DparseFloat( appVer.substring( msie+5, appVer.indexOf(";",msie) ) ) else ver=3DparseInt(appVer) return( ver >=3D 4 && msie >=3D 0 ) } function _RSW() { if( !g_supportsPPTHTML || IsNts() || ( !g_scaleInFrame && (!IsWin("PPTSld") || !parent.IsFullScrMode()) ) ) return var padding=3D0; if( IsWin("PPTSld") && parent.IsFramesMode() ) padding=3D6 cltWidth=3Ddocument.body.clientWidth-padding cltHeight=3Ddocument.body.clientHeight-padding factor=3D(1.0*cltWidth)/g_origW if( cltHeight < g_origH*factor ) factor=3D(1.0*cltHeight)/g_origH newSize =3D g_origSz * factor if( newSize < 1 ) newSize=3D1 s=3DSlideObj.style s.fontSize=3DnewSize+"px" s.posWidth=3Dg_origW*factor s.posHeight=3Dg_origH*factor s.posLeft=3D(cltWidth-s.posWidth+padding)/2 s.posTop=3D(cltHeight-s.posHeight+padding)/2 if( g_scaleHyperlinks ) ScaleHyperlinks( factor ) } function _InitAnimations() { animRuntimeInstalled =3D ''+document.body.localTime !=3D 'undefined'; isFullScreen =3D (window.name =3D=3D "PPTSld") && !parent.IsFramesMode(); g_animUseRuntime =3D g_showAnimation && animRuntimeInstalled && !(isFullSc= reen && parent.IsSldVisited()); if( g_animUseRuntime ) { collSeq =3D document.all.tags("seq"); if( collSeq !=3D null ) { for(ii=3D0;ii numSlds ) gSldJumpIdx =3D numSlds; if ( gSldJumpIdx >=3D 0 ) { if ( gSldJumpIdx =3D=3D 0 ) gSldJumpIdx =3D 1; var jumpTo =3D parseInt(gSldJumpIdx); gSldJump =3D 0; gSldJumpIdx =3D ""; win.GoToSld( parent.GetSldList().mList[jumpTo-1].mSldHref ) } } } function _KDH() { if( event.keyCode =3D=3D 8 ) { event.returnValue =3D 0; parent.GoToPrevSld(); } }function DocumentOnClick() { if( IsNts() || parent.HideMenu() ) return; if( ( g_allowAdvOnClick && (window.name=3D=3D"PPTSld") && !parent.IsFrames= Mode() ) || (event && event.keyCode=3D=3D32) ) { =09 if( g_animUseRuntime && g_animMainSequence && g_animMainSequence.cangonex= t ) return; parent.GoToNextSld(); } } var g_supportsPPTHTML =3D SupportsPPTHTML(), g_scaleInFrame =3D 1, gId=3D""= , g_bgSound=3D"", g_scaleHyperlinks =3D false, g_allowAdvOnClick =3D 1, g_showInBrowser = =3D 0, gLoopCont =3D 0, gUseSldTimings =3D 1; var g_showAnimation =3D g_supportsPPTHTML && SupportsPPTAnimation() && ( (w= indow.name=3D=3D"PPTSld" && !parent.IsFramesMode()) || g_showInBrowser );va= r g_animManager =3D null; var g_animUseRuntime =3D false; var g_animItemsToHide, g_animInteractiveItems, g_animSlideTime; var g_animMainSequence =3D null; var ENDSHOW_MESG=3D"End of slide show, click to exit.", SCREEN_MODE=3D"Fram= es", gIsEndShow=3D0, NUM_VIS_SLDS=3D13, SCRIPT_HREF=3D"script.js", FULLSCR_= HREF=3D"fullscreen.htm"; var gCurSld =3D gPrevSld =3D 1, g_offset =3D 0, gNtsOpen =3D gHasNts =3D gO= tlTxtExp =3D 0, gHasNarration =3D 0, gOtlOpen =3D true window.gPPTHTML=3DSupportsPPTHTML() var gMainDoc=3Dnew Array(new hrefList("slide0001.htm",1,-1,1),new hrefList(= "slide0002.htm",0,-1,1),new hrefList("slide0004.htm",0,-1,1),new hrefList("= slide0005.htm",0,-1,1),new hrefList("slide0006.htm",1,-1,1),new hrefList("s= lide0007.htm",1,-1,1),new hrefList("slide0008.htm",1,-1,1),new hrefList("sl= ide0019.htm",1,-1,1),new hrefList("slide0009.htm",1,-1,1),new hrefList("sli= de0010.htm",0,-1,1),new hrefList("slide0011.htm",1,-1,1),new hrefList("slid= e0012.htm",0,-1,1),new hrefList("slide0013.htm",0,-1,1),new hrefList("slide= 0014.htm",1,-1,1),new hrefList("slide0015.htm",1,-1,1),new hrefList("slide0= 016.htm",1,-1,1),new hrefList("slide0017.htm",1,-1,1),new hrefList("slide00= 18.htm",0,-1,1),new hrefList("slide0020.htm",1,-1,1),new hrefList("slide000= 3.htm",1,-1,1)); /********************************************* Frameset functions These functions control slide navigation and state of the frameset. **********************************************/ function FullScrInit() { g_allowAdvOnClick =3D GetCurSld().mAdvOnClk document.body.style.backgroundColor=3D"black" document.oncontextmenu=3Dparent._CM; document.onkeydown =3D _KDH; document.ondragstart=3DCancel document.onselectstart=3DCancel self.focus() } function Redirect( frmId ) {=09 var str=3Ddocument.location.hash,idx=3Dstr.indexOf('#'), sId=3DGetSldId() if(idx>=3D0) str=3Dstr.substr(1); if( window.name !=3D frmId && ( sId !=3D str) ) { obj =3D GetObj("Main-File") window.location.href=3Dobj.href+"#"+sId return 1 } return 0 } var MHTMLPrefix =3D CalculateMHTMLPrefix();=20 function CalculateMHTMLPrefix() { if ( document.location.protocol =3D=3D 'mhtml:') {=20 href=3Dnew String(document.location.href)=20 Start=3Dhref.indexOf('!')+1=20 End=3Dhref.lastIndexOf('/')+1=20 if (End < Start)=20 return href.substring(0, Start)=20 else=20 return href.substring(0, End)=20 } return ''; } function GetTags(base,tag) { if(g_supportsPPTHTML) return base.all.tags(tag); else return base.getElementsByTagName(tag); } function UpdNtsPane(){ if(frames["PPTNts"]) PPTNts.location.replace( MHTMLP= refix+GetHrefObj( gCurSld ).mNtsHref ) } function UpdNavPane( sldIndex ){ if(gNavLoaded) PPTNav.UpdNav() } function UpdOtNavPane(){ if(gOtlNavLoaded) PPTOtlNav.UpdOtlNav() } function UpdOtlPane(){ if(gOtlLoaded) PPTOtl.UpdOtl() } function SetHasNts( fVal ) { if( gHasNts !=3D fVal ) { gHasNts=3DfVal UpdNavPane() } } function ToggleOtlText() { gOtlTxtExp=3D!gOtlTxtExp UpdOtlPane() } function ClearMedia() { // Clear any sounds playing before launching another browser window. Other= wise, // in fullscreen mode, you'll continue to hear the sound in the frames mod= e. if (PPTSld.pptSound) PPTSld.pptSound.loop =3D 0; } function FullScreen() {=20 if ( PPTSld.g_animUseRuntime ) PPTSld.document.body.pause(); ClearMedia(); var href =3D ( document.location.protocol =3D=3D 'mhtml:') ? FULLSCR_HREF = : FULLSCR_HREF+"#"+GetHrefObj(gCurSld).mSldHref; if(PPTNav.event.ctrlKey) { var w =3D (window.screen.availWidth * 1.0) / 2.0 var h =3D w * (PPTSld.g_origH * 1.0) / PPTSld.g_origW win =3D window.open( MHTMLPrefix+href,null,"toolbar=3D0,resizable=3D1,top= =3D0,left=3D0," + "width=3D"+ w + ",height=3D" + h ); if( win.document.body && PPTSld.g_animUseRuntime ) win.document.body.PPTSldFrameset=3Dwindow; } else { win =3D window.open( MHTMLPrefix+href,null,"fullscreen=3Dyes" ); if( win.document.body && PPTSld.g_animUseRuntime ) win.document.body.PPTSldFrameset=3Dwindow; } } function ToggleVNarration() { rObj=3DPPTSld.document.all("NSPlay") if( rObj && !PPTSld.g_animUseRuntime ) { if( (rObj.playState =3D=3D 1)||(rObj.playState =3D=3D 0) ) rObj.Play() else if( rObj.playState =3D=3D 2 ) rObj.Pause() else return; } else if( PPTSld.g_animUseRuntime ) { narObj =3D PPTSld.document.all("narrationID") if( narObj ) narObj.togglePause() } } function GetCurSldNum() { =20 obj=3DGetHrefObj(gCurSld) if( obj.mOrigVis =3D=3D 1 ) return obj.mSldIdx else =20 return gCurSld } function GetNumSlds() { =20 if( GetHrefObj(gCurSld).mOrigVis =3D=3D 1 ) return GetSldList().mNumVisSlds; else return GetSldList().mList.length } function GetSldNum( href ) { for(ii=3D0; ii 1 ) PopSldList(); else if( !IsFramesMode() ) { if( gLoopCont ) GoToFirst() else EndShow() } } function GoToPrevSld() { ii=3DgCurSld-1 if( ii > 0 ) { obj=3DGetHrefObj(ii) while ( obj && ( obj.mVis =3D=3D 0 ) && ( ii>0 ) ) obj=3DGetHrefObj(--ii) if( ii =3D=3D 0 ) ii=3D1 GoToSldNum(ii) } } function GoToFirst(){ GoToSld( GetHrefObj(1).mSldHref ) } function GoToLast() { ii=3DGetSldList().mList.length if( ii !=3D gCurSld ) GoToSld( GetHrefObj(ii).mSldHref ) } function GoToSldNum( num ) { if( PPTSld.event ) PPTSld.event.cancelBubble=3Dtrue obj =3D GetHrefObj( num ) obj.mVis=3D1 gPrevSld=3DgCurSld gCurSld =3D num; PPTSld.location.replace(MHTMLPrefix+obj.mSldHref) if( IsFramesMode() ) { UpdNavPane(); UpdOtlPane(); UpdNtsPane() } } function GoToSld( href ) { if( PPTSld.event ) PPTSld.event.cancelBubble=3Dtrue GetHrefObj( GetSldNum(href) ).mVis=3D1 PPTSld.location.replace(MHTMLPrefix+href) } function SldUpdated( id ) { if( id =3D=3D GetHrefObj(gCurSld).mSldHref ) return gPrevSld=3DgCurSld gCurSld=3DGetSldNum(id) if( IsFramesMode() ) { UpdNavPane(); UpdOtlPane(); UpdNtsPane() } } function PrevSldViewed(){ GoToSld( GetHrefObj(gPrevSld).mSldHref ) } function HasPrevSld() { return ( gIsEndShow || ( gCurSld !=3D 1 && GetHrefO= bj( gCurSld-1 ).mVis =3D=3D 1 )||( GetCurSldNum() > 1 ) ) } function HasNextSld() { return (GetCurSldNum() !=3D GetNumSlds()) } function CloseWindow() { if( HideMenu() ) return; =09 var event =3D PPTSld.event; if( !IsFramesMode() && event && (event.keyCode=3D=3D27 || event.keyCode=3D= =3D32 || event.type=3D=3D"click" ) ) window.close( self ); CatchNumKeys( self, event ); } function Unload() { gIsEndShow=3D0; } function SetupEndShow() { gIsEndShow=3D1; PPTSld.document.body.scroll=3D"no"; PPTSld.document.onkeypress=3DCloseWindow; PPTSld.document.onclick=3DCloseWindow; PPTSld.document.oncontextmenu=3D_CM; } function EndShow() { if( IsFramesMode() ) return if( PPTSld.event ) PPTSld.event.cancelBubble=3Dtrue doc=3DPPTSld.document var dir =3D doc.body.dir if( dir !=3D "rtl" ) dir =3D "ltr"; doc.open() doc.writeln('


' + ENDSHOW_MESG + '

') doc.close() } function SetSldVisited(){ GetSldList().mList[gCurSld-1].mVisited=3Dtrue } function IsSldVisited(){ return GetSldList().mList[gCurSld-1].mVisited } function hrefList( sldHref, visible, advDelay, advClk ) { this.mSldHref=3D this.mNtsHref =3D sldHref this.mOrigVis=3D this.mVis =3D visible this.mVisited=3D false this.mAdvDelay=3D advDelay this.mAdvOnClk=3D advClk } function SldList(arr,curSld,fEnd) { this.mCurSld =3D curSld; this.mList =3D new Array(); var idx =3D 1; for(ii=3D0;ii 0) { PushSldList(sldList,fEnd); gCurSld =3D 1; } else if( PPTSld.event ) PPTSld.event.cancelBubble=3Dtrue } function PushSldList(arr,fEnd) { var ii =3D gSldStack.length; gSldStack[ii] =3D new SldList(arr,gCurSld,fEnd); GoToSld( gSldStack[ii].mList[0].mSldHref ); } function PopSldList() { if (gSldStack[gSldStack.length-1].fEndShow) EndShow() else { gCurSld =3D gSldStack[gSldStack.length-1].mCurSld; gSldStack[gSldStack.length-1] =3D null; gSldStack.length--; var sldList =3D gSldStack[gSldStack.length-1]; GoToSld( sldList.mList[gCurSld - 1].mSldHref ); } } var custShowList=3Dnew Array(); /********************************************* Navigation button implementation There are 2 types of buttons: ImgBtn, TxtBtn implemented as function objects. They share a similiar interface so the event handlers can call SetActive, for example, on a button=20 object without needing to know exactly=20 what type of button it is. **********************************************/ //---------------------------------- function ImgBtn( oId,bId,w,action ) //---------------------------------- { var t=3Dthis t.Perform =3D _IBP t.SetActive =3D _IBSetA t.SetInactive=3D _IBSetI t.SetPressed =3D _IBSetP t.SetDisabled=3D _IBSetD t.Enabled =3D _IBSetE t.ChangeIcon =3D null t.UserAction =3D action t.ChgState =3D _IBUI t.mObjId =3D oId t.mBorderId=3D bId t.mWidth =3D w t.mIsOn =3D t.mCurState =3D 0 } function _IBSetA() { if( this.mIsOn ) { obj=3Dthis.ChgState( gHiliteClr,gShadowClr,2 ) obj.style.posTop=3D0 } } function _IBSetI() { if( this.mIsOn ) { obj=3Dthis.ChgState( gFaceClr,gFaceClr,1 ) obj.style.posTop=3D0=20 } } function _IBSetP() { if( this.mIsOn ) { obj=3Dthis.ChgState( gShadowClr,gHiliteClr,2 ) obj.style.posLeft+=3D1; obj.style.posTop+=3D1 } } function _IBSetD() { =20 obj=3Dthis.ChgState( gFaceClr,gFaceClr,0 ) obj.style.posTop=3D0=20 } function _IBSetE( state ) { var t=3Dthis GetObj( t.mBorderId ).style.visibility=3D"visible" if( state !=3D t.mIsOn ) { t.mIsOn=3Dstate if( state ) t.SetInactive() else t.SetDisabled() } } function _IBP() { var t=3Dthis if( t.mIsOn ) { if( t.UserAction !=3D null ) t.UserAction() if( t.ChangeIcon ) { obj=3DGetObj(t.mObjId) if( t.ChangeIcon() ) obj.style.posLeft=3Dobj.style.posLeft+(t.mCurState-4)*t.mWidth else obj.style.posLeft=3Dobj.style.posLeft+(t.mCurState-0)*t.mWidth } t.SetActive() } =20 } function _IBUI( clr1,clr2,nextState ) { var t=3Dthis SetBorder( GetObj( t.mBorderId ),clr1,clr2 ) obj=3DGetObj( t.mObjId ) obj.style.posLeft=3Dobj.style.posLeft+(t.mCurState-nextState)*t.mWidth-obj= .style.posTop t.mCurState=3DnextState return obj } //----------------------------------------- function TxtBtn( oId,oeId,action,chkState ) //----------------------------------------- { var t=3Dthis t.Perform =3D _TBP t.SetActive =3D _TBSetA t.SetInactive=3D _TBSetI t.SetPressed =3D _TBSetP t.SetDisabled=3D _TBSetD t.SetEnabled =3D _TBSetE t.GetState =3D chkState t.UserAction =3D action t.ChgState =3D _TBUI t.mObjId =3D oId t.m_elementsId=3D oeId t.mIsOn =3D 1 } function _TBSetA() { var t=3Dthis if( t.mIsOn && !t.GetState() ) t.ChgState( gHiliteClr,gShadowClr,0,0 ) } function _TBSetI() { var t=3Dthis if( t.mIsOn && !t.GetState() ) t.ChgState( gFaceClr,gFaceClr,0,0 ) } function _TBSetP() { if( this.mIsOn ) this.ChgState( gShadowClr,gHiliteClr,1,1 ) } function _TBSetD() { =20 this.ChgState( gFaceClr,gFaceClr,0,0 ) this.mIsOn =3D 0 } function _TBSetE() { var t=3Dthis if( !t.GetState() ) t.ChgState( gFaceClr,gFaceClr,0,0 ) else t.ChgState( gShadowClr,gHiliteClr,1,1 ) t.mIsOn =3D 1 } function _TBP() { var t=3Dthis if( t.mIsOn ) {=20 if( t.UserAction !=3D null ) t.UserAction() if( !t.GetState ) return if( t.GetState() ) t.SetPressed() else t.SetActive() } =20 } function _TBUI( clr1,clr2,lOffset,tOffset ) { SetBorder( GetObj( this.mObjId ),clr1,clr2 ) Offset( GetObj( this.m_elementsId ),lOffset,tOffset ) } function Offset( obj, top, left ){ obj.style.top=3Dtop; obj.style.left=3Dle= ft } function SetBorder( obj, upperLeft, lowerRight ) { s=3Dobj.style; s.borderStyle =3D "solid" s.borderWidth =3D 1=20 s.borderLeftColor =3D s.borderTopColor =3D upperLeft s.borderBottomColor=3D s.borderRightColor =3D lowerRight } function GetBtnObj(){ return gBtnArr[window.event.srcElement.id] } function BtnOnOver(){ b=3DGetBtnObj(); if( b !=3D null ) b.SetActive() } function BtnOnDown(){ b=3DGetBtnObj(); if( b !=3D null ) b.SetPressed() } function BtnOnOut(){ b=3DGetBtnObj(); if( b !=3D null ) b.SetInactive() } function BtnOnUp() { b=3DGetBtnObj() if( b !=3D null ) b.Perform() else Upd() } function GetNtsState(){ return parent.gNtsOpen } function GetOtlState(){ return parent.gOtlOpen } function GetOtlTxtState(){ return parent.gOtlTxtExp } function NtsBtnSetFlag( fVal ) { s=3Ddocument.all.item( this.m_flagId ).style s.display=3D"none" if( fVal ) s.display=3D"" else s.display=3D"none" } function _BSetA_Border(){ b =3D gBtnArr[this.mObjId]; if( b !=3D null ) b.S= etActive() } function _BSetI_Border(){ b =3D gBtnArr[this.mObjId]; if( b !=3D null ) b.S= etInactive() } function _BSetP_Border(){ b =3D gBtnArr[this.mObjId]; if( b !=3D null ) b.S= etPressed() } function _BSetA_BorderImg() {=20 b =3D gBtnArr[this.mBorderId]=20 if( b !=3D null && this.mIsOn && !b.GetState() ) { obj=3Dthis.ChgState( gHiliteClr,gShadowClr,2 ) obj.style.posTop=3D0 } } function _BSetI_BorderImg() {=20 b =3D gBtnArr[this.mBorderId] if( b !=3D null && this.mIsOn && !b.GetState() ) { obj=3Dthis.ChgState( gFaceClr,gFaceClr,1 ) obj.style.posTop=3D0 } } var gHiliteClr=3D"THREEDHIGHLIGHT",gShadowClr=3D"THREEDSHADOW",gFaceClr=3D"= THREEDFACE" var gBtnArr =3D new Array() gBtnArr["nb_otl"] =3D new TxtBtn( "nb_otl","nb_otlElem",parent.ToggleOtlPan= e,GetOtlState ) gBtnArr["nb_otlElem"] =3D new TxtBtn( "nb_otl","nb_otlElem",parent.ToggleOt= lPane,GetOtlState ) gBtnArr["nb_nts"] =3D new ImgBtn( "nb_nts","nb_ntsBorder",10,parent.ToggleN= tsPane ) gBtnArr["nb_nts"].SetActive =3D _BSetA_BorderImg; gBtnArr["nb_nts"].SetInactive =3D _BSetI_BorderImg; gBtnArr["nb_ntsBorder"] =3D new TxtBtn( "nb_ntsBorder","nb_ntsElem",parent.= ToggleNtsPane,GetNtsState ) gBtnArr["nb_ntsElem"] =3D new TxtBtn( "nb_ntsBorder","nb_ntsElem",parent.To= ggleNtsPane,GetNtsState ) gBtnArr["nb_prevBorder"] =3D gBtnArr["nb_prev"]=3D new ImgBtn( "nb_prev","n= b_prevBorder",30,parent.GoToPrevSld ) gBtnArr["nb_nextBorder"] =3D gBtnArr["nb_next"]=3D new ImgBtn( "nb_next","n= b_nextBorder",30,parent.GoToNextSld ) gBtnArr["nb_sldshw"]=3D new ImgBtn( "nb_sldshw","nb_sldshwBorder",18,parent= .FullScreen ) gBtnArr["nb_sldshwBorder"] =3D new TxtBtn( "nb_sldshw","nb_sldshwBorder",pa= rent.FullScreen,null ) gBtnArr["nb_sldshwBorder"].SetActive =3D _BSetA_Border; gBtnArr["nb_sldshwBorder"].SetInactive =3D _BSetI_Border; gBtnArr["nb_sldshwText"] =3D new TxtBtn( "nb_sldshw","nb_sldshwText",parent= .FullScreen,null ) gBtnArr["nb_sldshwText"].SetActive =3D _BSetA_Border; gBtnArr["nb_sldshwText"].SetInactive =3D _BSetI_Border; gBtnArr["nb_voice"] =3D gBtnArr["nb_voiceBorder"] =3D new ImgBtn( "nb_voice= ","nb_voiceBorder",18,parent.ToggleVNarration ) gBtnArr["nb_otlTxtBorder"] =3D gBtnArr["nb_otlTxt"]=3D new ImgBtn( "nb_otlT= xt","nb_otlTxtBorder",23,parent.ToggleOtlText ) gBtnArr["nb_ntsBorder"].m_flagId=3D "nb_nts" gBtnArr["nb_ntsBorder"].SetFlag =3D NtsBtnSetFlag gBtnArr["nb_otlTxt"].ChangeIcon=3D GetOtlTxtState /********************************************* Context menu implementation _CM() is the function that's hooked up to the oncontextmenu event. Once we're asked to show the menu, we first build it by creating DIVs on-the-fly. Then we position it=20 within the screen area so it doesn't get clipped. Creating the DIVs using createElement() means we don't have to write out any extra HTML into the slide HTML files. **********************************************/ var sNext=3D"Next",sPrev=3D"Previous",sEnd=3D"End Show",sFont=3D"Arial",sAr= row=3D"Arrow",sFreeform=3D"Freeform",sRect=3D"Rectangle",sOval=3D"Oval" function ShowMenu() { BuildMenu(); var doc=3DPPTSld.document.body,x=3DPPTSld.event.clientX+doc.scrollLeft,y= =3DPPTSld.event.clientY+doc.scrollTop m =3D PPTSld.document.all.item("ctxtmenu") m.style.pixelLeft=3Dx if( (x+m.scrollWidth > doc.clientWidth)&&(x-m.scrollWidth > 0) ) m.style.pixelLeft=3Dx-m.scrollWidth m.style.pixelTop=3Dy if( (y+m.scrollHeight > doc.clientHeight)&&(y-m.scrollHeight > 0) ) m.style.pixelTop=3Dy-m.scrollHeight m.style.display=3D"" } function _CM() { if( !parent.IsFullScrMode() ) return; if(!PPTSld.event.ctrlKey) { ShowMenu() return false } else HideMenu() } function BuildMenu() { if( PPTSld.document.all.item("ctxtmenu") ) return var mObj=3DCreateItem( PPTSld.document.body ) mObj.id=3D"ctxtmenu" mObj.style.visibility=3D"hidden" var s=3DmObj.style s.position=3D"absolute" s.cursor=3D"default" s.width=3D"120px" SetCMBorder(mObj,"menu","black") var iObj=3DCreateItem( mObj ) SetCMBorder( iObj, "threedhighlight","threedshadow" ) iObj.style.padding=3D2 CreateMenuItem( iObj,sNext,M_GoNextSld,M_True ) CreateMenuItem( iObj,sPrev,M_GoPrevSld,M_HasPrevSld ) =09 CreateSeparator( iObj ) CreateMenuItem( iObj,sEnd,M_End,M_True ) mObj.style.visibility=3D"visible" } function Cancel() { window.event.cancelBubble=3Dtrue; window.event.returnVa= lue=3Dfalse } function Highlight() { ChangeClr("activecaption","threedhighlight") } function Deselect() { ChangeClr("threedface","menutext") } function Perform() { e=3DPPTSld.event.srcElement if( e.type=3D=3D"menuitem" && e.IsActive() ) e.Action() else PPTSld.event.cancelBubble=3Dtrue } function ChangeClr( bg,clr ) { e=3DPPTSld.event.srcElement if( e.type=3D=3D"menuitem" && e.IsActive() ) { e.style.backgroundColor=3Dbg e.style.color=3Dclr } } function M_HasPrevSld() { return( parent.HasPrevSld() ) } function M_GoNextSld() { if( gIsEndShow ) M_End(); else GoToNextSld() } function M_GoPrevSld() { if( gIsEndShow ) { gIsEndShow=3D0; history.back();= PPTSld.event.cancelBubble=3Dtrue; } else GoToPrevSld() } function M_True() { return true } function M_End() { window.close( self ) } function CreateMenuItem( node,text,action,eval ) { var e=3DCreateItem( node ) e.type=3D"menuitem" e.Action=3Daction e.IsActive=3Deval e.innerHTML=3Dtext if( !e.IsActive() ) e.style.color=3D"threedshadow" e.onclick=3DPerform e.onmouseover=3DHighlight e.onmouseout=3DDeselect s=3De.style; s.fontFamily=3DsFont s.fontSize=3D"9pt" s.paddingLeft=3D2 } function CreateSeparator( node ) { var sObj=3DCreateItem( node ) SetCMBorder(sObj,"menu","menu") var s=3DsObj.style s.borderTopColor=3D"threedshadow" s.borderBottomColor=3D"threedhighlight" s.height=3D1 s.fontSize=3D"0px" } function CreateItem( node ) { var elem=3DPPTSld.document.createElement("DIV") node.insertBefore( elem ) return elem } function SetCMBorder( o,ltClr,rbClr ) { var s=3Do.style s.backgroundColor=3D"menu" s.borderStyle=3D"solid" s.borderWidth=3D1 s.borderColor=3DltClr+" "+rbClr+" "+rbClr+" "+ltClr } ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/fullscreen.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii" ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/buttons.gif Content-Transfer-Encoding: base64 Content-Type: image/gif R0lGODlhWAESAPf4AAAAAIAAAACAAICAAAAAgIAAgACAgICAgAQEBISEBASEBISEhAQEhMTExAQE /KTM9Pz8/ERERPz8BAT8/KSkpGRkhMTcxCRkxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAMDAwP8AAAD/AP//AAAA//8A/wD//////yH5BAEAAPgALAAAAABYARIA QAj/APEJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGCEiQKCRo8YDIEHig2DxAD4LKD1avDDhgUuV GUOGbHBR5QGYFBG4fHAB58EKECJEwCfUYAWPFGAygLCRKQIIUKM6WAohKUGgCikcFWh1INWoYKVS 7SrQ41GbIhGYLAuVQVOoC+IyXUuUAkG1HE3KFDhAwkgJc5/qDZmxsOHDiBMrXsy4sePDGyP7lChT 5MULmDPnlDw5YmW6FTNrfgi0aNGEZPEtbfo2bNTUpYeeRph69dPWrqvCNFuBIGG1A59CYPAVQtwF cw0OxWdTIOiBCQAjaAB17fOFII8voGmRc+eOkilm/z9OvTtnjN4hYk1YoT3H2rnBOphPAB9skgq3 2lcaX/5YnJVt9BloAar12UEIRGCZdQghMABI1Tn32IQUVthYexhmqGGGMBHAgIfEhSiiiATAtOGJ GnYI4ogsEldicAYOGNJGZaml3Y0L3NTZUBz1xlB0PUoUI0jlVWRSVN89xBKSGB1YU1TMoRfVBEle hR9HQs1GEHxQ3RZZbveZthxt/LEmXHyp5XWABSCpaRJwbM13gAACPHVccgJFgF+NEhqUAEkQSCfc ddhVhh5dVTaEAEsTUNlkZUWKN9BNGDE6QU8OrSdbllzpxyVTTrU21Uj3scfhp7nNpyoDaTIEJ3P9 If8J2kbLNYegg9JRBwGhFvbq66+ZUiDssMQWK2yHxiZLrInKNotss8l+B5yBrr5p2UIJvortANoC 6+234IbLla/elRtZjeamh5CC3Sb0YLvixivvYkDFGlZqBNh7r4n6goVvv6/ZlCicN+kL71ALTnpQ dCIZp7CihkLA3UQmoWRBogyxtBPGCTnZncVR1rSTo5nuydC/Eo8kUH+lOoTyyvjoCuZu+PjYIKLD rZybtrM1d10C0QXKEVz48GrQkEeWdFJKlbb0UmEeV0SzyC6RvNB646LWIVjUNeC1zAFb+RDKXksM 9r531bwmpQW9+hQDDsx5pqwDRWBXcFES2hc+gEn/wJGdEEWdE6LoWcoxQweaTNmkhydkKaYMYY2Q p1unbLl/pPKbn3v7EZRvrKvqlja2ONvrtoIw9tn2g32/tQBlhtYkU+MNikZ7QYlPDPuMldpOmuJX nVo5VF3HjI+q89mteX5IDd/fVFClma5kiE4f2XUJhlz09gj2NbTDRifkmu7zXjR++RVJ/lPznuvr QH2iD6S+UewP9Dnon6d2NLwN8n90BB6hC68cFMCHoe+ACASP9c4DowUyEF0OPFcDI0ij/VXPaAKC UfhS95AKGoQ7IBRICI1HwhGaUIQoLGEKT6jCFrLwhSuMoQtlCMMZ2rCGOKShDm+4wxzy8Ic+DGIP B4cIRCKGMCAAOy== ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/frame.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii" CS 211: Introduction to Computer Programming II ------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/outline.htm Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="us-ascii"
 No= tes
Slide Show
Outline
= =
------=_NextPart_01C3F9F1.B1D385D0 Content-Location: file:///C:/AF8A9A70/lecture20_files/filelist.xml Content-Transfer-Encoding: quoted-printable Content-Type: text/xml; charset="utf-8" ------=_NextPart_01C3F9F1.B1D385D0--