Dialog Boxes Applications of Cell-Arrays

Slides:



Advertisements
Similar presentations
Why care about debugging? How many of you have written a program that worked perfectly the first time? No one (including me!) writes a program that works.
Advertisements

Programming with Alice Computing Institute for K-12 Teachers Summer 2011 Workshop.
1. Definition 2. Creating Cell Arrays 3. Augmenting Cell Arrays 4. Referencing Cell Arrays 5. Special case 6. Spreadsheets 1.
Chapter 8 and 9 Review: Logical Functions and Control Structures Introduction to MATLAB 7 Engineering 161.
Exploring Office Grauer and Barber 1 Creating More Powerful Applications: Introduction to VBA(Wk9)
Precedence Parentheses Arithemetic ^ * / + - (exception logical not ~ ) Relational > =
EGR 106 – Week 2 – Arrays & Scripts Brief review of last week Arrays: – Concept – Construction – Addressing Scripts and the editor Audio arrays Textbook.
Macros Tutorial Week 20. Objectives By the end of this tutorial you should understand how to: Create macros Assign macros to events Associate macros with.
McGraw-Hill/Irwin The Interactive Computing Series © 2002 The McGraw-Hill Companies, Inc. All rights reserved. Microsoft Excel 2002 Exploring Formulas.
Microsoft Visual Basic 2005 CHAPTER 8 Using Procedures and Exception Handling.
EPSII 59:006 Spring Topics Using TextPad If Statements Relational Operators Nested If Statements Else and Elseif Clauses Logical Functions For Loops.
Computer Literacy BASICS
Programming a GUI Hanan sedaghat pisheh. For calling GUI, we need a function with no inputs or outputs First We create a m.file m file has the same name.
Functions 1 parameter, 2 return-values "Conversion of time format" One problem. 5 steps to solve it. 1.
CTS130 Spreadsheet Lesson 5 Working with Simple Formulas.
Functions General Example (+1return values, +1 parameters) 1. The client's wish 2. Creating the function 1. Function's name, Parameter list, Return-info,
1 Functions Advantages Name, parameters, return info Flow of the data when running functions Menus Functions Applying Functions to Real Projects.
Microsoft Visual Basic 2008 CHAPTER 8 Using Procedures and Exception Handling.
REVIEW 2 Exam History of Computers 1. CPU stands for _______________________. a. Counter productive units b. Central processing unit c. Copper.
PMS /134/182 HEX 0886B6 PMS /39/80 HEX 5E2750 PMS /168/180 HEX 00A8B4 PMS /190/40 HEX 66CC33 By Adrian Gardener Date 9 July 2012.
GUI Input and Output Greg Reese, Ph.D Research Computing Support Group Academic Technology Services Miami University.
Copyright © 2008 Pearson Prentice Hall. All rights reserved. 1 Microsoft Office Excel Copyright © 2008 Pearson Prentice Hall. All rights reserved
1 Functions 1 Parameter, 1 Return-Value 1. The problem 2. Recall the layout 3. Create the definition 4. "Flow" of data 5. Testing 6. Projects 1 and 2.
Cell Arrays 1. Data Types (Review) 2. General Concept 3. Creating Cell Arrays 4. Augmenting Cell Arrays 5. Referencing Cell Arrays 1. The entire cell/
1. Reminder of Symbols 2. Dialog Boxes 3. listdlg() 4. msgbox() 5. questdlg() 6. menu() Dialog Boxes Applications of Cell-Arrays 1.
1.Reminder of Symbols 2.Dialog Boxes 3.Output-centric dialogs 4.Input-centric dialogs Dialog Boxes Applications of Cell Arrays 1.
Working with the VB IDE. Running a Program u Clicking the”start” tool begins the program u The “break” tool pauses a program in mid-execution u The “end”
Decisions and Debugging Part06dbg --- if/else, switch, validating data, and enhanced MessageBoxes.
Creating Graphical User Interfaces (GUI’s) with MATLAB By Jeffrey A. Webb OSU Gateway Coalition Member.
Lecture 5 1.What is a variable 2.What types of information are stored in a variable 3.Getting user input from the keyboard 1.
JavaScript, Fourth Edition
GUI development with Matlab: GUI Front Panel Components GUI development with Matlab: Other GUI Components 1 Other GUI components In this section, we will.
Slide 1 Using Menu Bar & Common Dialog Boxes. Slide 2 Setting Up the Main Items v First open the form on which you want the menu located v Then start.
Cell Arrays Lecture 2/8/ Data Types (Review) 2. General Concept 3. Using Cell-Arrays 1. Syntax/Symbols 2. Dialog Boxes 1.
31/01/ Selection If selection construct.
1. Comparing Strings 2. Converting strings/numbers 3. Additional String Functions Strings Built-In Functions 1.
1 4.2 Selection Logical Operators. 2 Learning Objectives Explain how the logical operator AND Boolean statements works. Directly testing if text boxes.
Winter 2016CISC101 - Prof. McLeod1 CISC101 Reminders Quiz 3 next week. See next slide. Both versions of assignment 3 are posted. Due today.
1 Agenda  Unit 7: Introduction to Programming Using JavaScript T. Jumana Abu Shmais – AOU - Riyadh.
Arrays Chapter 7.
Winter 2006CISC121 - Prof. McLeod1 Stuff Midterm exam in JEF234 on March 9th from 7- 9pm.
Fundamentals of Windows Mouse n 4 Basic Operations: –Pointing –Clicking –Double Clicking –Dragging.
SAP ERP Basic System Navigation
ME 142 Engineering Computation I
Matlab Training Session 4: Control, Flow and Functions
Introduction to Scripting
F/XUAL EDUCATION SERVICES
Cell Arrays Definition Creating Cell Arrays Referencing Cell Arrays
Scripts & Functions Scripts and functions are contained in .m-files
Unit Six: Labels In this unit… Review Adding Text to Maps
Using Procedures and Exception Handling
More on Graphical User Interfaces
Message, Input, Confirm, and Specialized Dialogs
MATLAB: Structures and File I/O
User Defined Functions
Predefined Dialog Boxes
More Selections BIS1523 – Lecture 9.
MODULE 7 Microsoft Access 2010
CISC101 Reminders Assn 3 due tomorrow, 7pm.
T. Jumana Abu Shmais – AOU - Riyadh
Messages and Input boxes
CIS 16 Application Development Programming with Visual Basic
Error Analysis Runtime Errors.
Boolean Expressions to Make Comparisons
Chapter 3: Selection Structures: Making Decisions
Selection Statements Chapter 3.
Introduction to Excel 2007 Part 3: Bar Graphs and Histograms
CISC101 Reminders Assignment 3 due today.
Introduction to Computer Programming IT-104
Presentation transcript:

Dialog Boxes Applications of Cell-Arrays Reminder of Symbols Dialog Boxes listdlg() msgbox() questdlg() menu()

1. Reminders on Symbols Creating/hard-coding: Braces { } Referencing to content: Braces { } Augmenting: Brackets [ ] Referencing to container: Parentheses () Most likely to be used!

2. Dialog Boxes 3

2. Dialog Boxes Dialog boxes are “popup windows” that allows us another means to communicate with the user. Some dialog boxes to collect input: inputdlg(), listdlg(), menu(), questdlg() And some to produce output: msgbox(), warndlg() 99% of the time, the command deals with cell arrays, either as arguments, as return values, or both! 4

3. listdlg() listdlg() – Create and open list-selection dialog box Major Advantage: User does not have to type anything Fewer spelling errors!

>>doc listdlg() <enter> This function gives 2 return values

[Selection,ok] = listdlg('ListString',S) Selection is a vector of indices of the selected strings (in single selection mode, its length is 1). Selection is [] when ok is 0. ok is 1 if you click the OK button, or 0 if you click the Cancel button or close the dialog box. Double-clicking on an item or pressing Return when multiple items are selected has the same effect as clicking the OK button. The dialog box has a Select all button (when in multiple selection mode) that enables you to select all list items.

listdlg() return values What will the first return value be after this executes? {'Primary Booster','Secondary Boosters'} [1 3] {1, 3} None of these

listdlg() return-values What will the first return value be after this executes? ['Primary Booster','Secondary Boosters'] [1 3] {1, 3} None of the above Remember: you choose the name of variables used to collect the return values.

[Selection,ok] = listdlg('ListString',S) Selection is a vector of indices of the selected strings (in single selection mode, its length is 1). Selection is [] when ok is 0. ok is 1 if you click the OK button, or 0 if you click the Cancel button or close the dialog box. Double-clicking on an item or pressing Return when multiple items are selected has the same effect as clicking the OK button. The dialog box has a Select all button (when in multiple selection mode) that enables you to select all list items.

[Selection,ok] = listdlg('ListString',S) Selection is a vector of indices of the selected strings (in single selection mode, its length is 1). Selection is [] when ok is 0. ok is 1 if you click the OK button, or 0 if you click the Cancel button or close the dialog box. Double-clicking on an item or pressing Return when multiple items are selected has the same effect as clicking the OK button. The dialog box has a Select all button (when in multiple selection mode) that enables you to select all list items. If user hits cancel or closes the dialog box, an empty vector is returned, AND ok is set equal to 0. This means the second return value can be used to see what the user did!

What did user do? Did user hit ok? Did user hit cancel? Either way: Had s/he selected anything anyway?

What did user do? Did user hit ok? Did user hit cancel? Either way: Had s/he selected anything anyway? If user did click ok, then ok will be true, which equals 1. If user did not click ok, then ok will be false, which equals 0.

[Selection,ok] = listdlg('ListString',S) Inputs are in parameter/value pairs (i.e. they go 2 by 2): Parameter goes 1st, value of the parameter goes 2nd. The actual string:

Experiment in the command window!

Experiment in the command window! myList is a CELL ARRAY of strings: { } Why cell arrays? The length of each selection varies widely, and an regular array would not be rectangular.

Experiment in the command window! What button did the user hit? The 'ok' button The 'cancel' button The [x] that closes the window Either b or c None of the above

A second parameter Though additional arguments are not necessary, you may choose to add them AS A PAIR. For example:

2nd PAIR of inputs. The Select All button is gone.

2nd PAIR of inputs. What did the user select? It cannot be determined __________________________

3.a. Full Example Create a program that estimates the time an aircraft takes to travel a certain distance. Aircrafts possible, with their average speeds are: Cessna 150, 198 kph Boeing 787, 950 kph Concorde, 2147 kph Cessna 421, 444 kph

Algorithm %prompt user for type of airplane (error?) %prompt user for distance to travel (error?) %calculate/display Presented is the evolution from: Option1: use input() and if. (week 2,3.4) Option2: use input() and vectors. (week 10) Option3: using listdlg(), vectors and cell-arrays.

#1. input(), if and while %prompt user for type of airplane type = input('Enter the type of airplane: \n1 – cessna 150\n 2-Boeing 787\n3-Concorde\n4-Cessna 421\n Enter now: '); %prompt user for distance to travel distance = input('Enter the distance (km): '); %calculate/display if type == 1 %cessna 150 travelTime = distance/198; fprintf('With this plane, it will take %.2fhrs.\n', travelTime); elseif…. Add while loops to trap errors.

#2. input(), vectors, while %prompt user for type of airplane type = input('Enter the type of airplane: \n1 – cessna 150\n 2-Boeing 787\n3-Concorde\n4-Cessna 421\n Enter now: '); %prompt user for distance to travel distance = input('Enter the distance (km): '); %data base of speeds speeds = [198, 950, 2147, 444]; %calculate/display travelTime = distance/speeds(type); fprintf('With this plane, it will take %.2fhrs.\n', travelTime); Add while loops to trap errors. Reference the correct value in the vector, using the index.

#3. listdlg(), arrays, while %prompt user for type of airplane myPlanes = {'Cessna 150', 'Boeing 787', 'Concorde', 'Cessna 421'}; type = listdlg('ListString', myPlanes,'selectionmode', 'single'); %prompt user for distance to travel distance = inputdlg('Enter the distance (km): '); %data base of speeds speeds = [198, 950, 2147, 444]; %calculate/display travelTime = distance/speeds(type); fprintf('With this plane, it will take %.2fhrs.\n', travelTime); Add while loop to trap errors, and convert to number Reference the correct value in the vector, using the index.

#3. Output

#3. Output Note: For usability, once a program starts with dialog boxes, it should continue with dialog boxes… >> not in the command window..

4. msgbox() A little improvement: %calculate/display travelTime = distance/speeds(type); resultString = sprintf('With this plane, it will take %.2fhrs.\n', travelTime); msgbox(resultString)

4. msgbox() A little improvement: %calculate/display travelTime = distance/speeds(type); resultString = sprintf('With a %s, it will take %.2fhrs.\n', ??????, travelTime); msgbox(resultString) Task: Replace "this plane" by the actual name!

4. msgbox() %prompt user for type of airplane myPlanes = {'Cessna 150', 'Boeing 787', 'Concorde', 'Cessna 421'}; type = listdlg('ListString', myPlanes,'selectionmode', 'single'); Remember: this is the index (i.e. location) of the string selected. This is the cell array of all the names. To reference the name selected using the index selected: planeSelected = myPlanes{type}; REFERENCE the CONTENT, using curly braces.

4. msgbox() A little improvement: %calculate/display travelTime = distance/speeds(type); resultString = sprintf('With a %s, it will take %.2fhrs.\n', myPlanes{type}, travelTime); msgbox(resultString)

Make the program error proof! %prompt user for type of airplane myPlanes = {'Cessna 150', 'Boeing 787', 'Concorde', 'Cessna 421'}; [type ok] = listdlg('ListString', myPlanes,'selectionmode', 'single'); %if user hits ok, continue if ok==1 %prompt user for distance to travel distance = inputdlg('Enter the distance (km): '); %code as before else %user hit cancel of closed box.. %do other stuff end

Done with that example. Note how much our programs have improved since week 2, and yet not too many lines of code were required. Hopefully, you're pausing and coding this at home. Use the tools in the final project if you want. Make sure to error-proof accordingly.

5. questdlg() Typical call: button = questdlg('qstring','title','str1','str2', 'str3','default') qstring = Question to ask the user title = Title for dialog box str1 = String to show on Button #1 str2 = String to show on Button #2 str3 = String to show on Button #3 default = String that is the default button button = string on the button that was clicked Caution: Maximum of 3 buttons.

5. Quick experiment button = string on the button that was clicked

6. menu() – vertical menu Typical call: button = menu('qstring','bt1','bt2',……,'btn') qstring = question to ask user bt1 = String to show on Button #1 bt2 = String to show on Button #2 Can have as many options as desired. There is no default answer. Return value: Button number clicked (not the string)

6. menu(), with cell arrays

6. Output

What's next??? Yes, we are done with cell arrays and dialog boxes.. So what's next?

Wrapping Up Dialog boxes are user friendly but require a little more coding If you’re writing a “quick and dirty” program, dialogs may be overkill – consider the command window instead. We saw: inputdlg() listdlg() msgbox() questdlg() menu() It’s difficult to memorize syntax. Practice it and use MATLAB Help to remind yourself quickly!