Académique Documents
Professionnel Documents
Culture Documents
What is RAPTOR?
RAPTOR is a visual programming development environment based on flowcharts. A flowchart is a collection of connected graphic symbols, where each symbol represents a specific type of instruction to be executed. The connections between symbols determine the order in which instructions are executed. These ideas will become clearer as you use RAPTOR to solve problems.
We use RAPTOR in CS110 for several reasons. The RAPTOR development environment minimizes the amount of syntax you must learn to write correct program instructions. The RAPTOR development environment is visual. RAPTOR programs are diagrams (directed graphs) that can be executed one symbol at a time. This will help you follow the flow of instruction execution in RAPTOR programs. RAPTOR is designed for ease of use. (You might have to take our word for this, but other programming development environments are extremely complex.) RAPTOR error messages are designed to be more readily understandable by beginning programmers. Our goal is to teach you how to design and execute algorithms. These objectives do not require a heavy-weight commercial programming language such as C++ or Java.
www.esnips.com/user/vapremaims
Page 1
and Output, are explained in this reading, The bottom two types, Selection and Loops, will be explained in a future reading. The typical computer program has three basic components: INPUT get the data values that are needed to accomplish the task. PROCESSING manipulate the data values to accomplish the task. OUTPUT display (or save) the values which provide a solution to the task. These three components have a direct correlation to RAPTOR instructions as shown in the following table.
Purpose
Symbol
Description Allow the user to enter data. Each data value is stored in a variable. Change the value of a variable using some type of mathematical calculation. Execute a group of instructions defined in the named procedure. In some cases some of the procedure arguments (i.e., variables) will be changed by the procedure's instructions. Display (or save to a file) the value of a variable.
INPUT
PROCESSING
PROCESSING
OUTPUT
output statement
The common thread among these four instructions is that they all do something to variables! To understand how to develop algorithms into working computer programs, you must understand the concept of a variable. Please study the next section carefully!
RAPTOR Variables
Variables are computer memory locations that hold a data value. At any given time a variable can only hold a single value. However, the value of a variable can vary (change) as a program executes. That's why we call them "variables"! As an example, study the following table that traces the value of a variable called X.
www.esnips.com/user/vapremaims
Page 2
Description
Value of X
Program
When the program begins, no variables exist. In RAPTOR, variables are automatically created when they are first used in a statement.
Undefined
The first assignment statement, X32, assigns the data 32 value 32 to the variable X. The next assignment statement, XX+1, retrieves the 33 current value of X, 32, adds 1 to it, and puts the result, 33, in the variable X. The next assignment statement, XX*2, retrieves the current value of X, 33, multiplies it by 2, and puts the 66 result, 66, in the variable X.
During the execution of the previous example program, the variable X stored three distinct values. Please note that the order of statements in a program is very important. If you re-ordered these three assignment statements, the values stored into X would be different.
A variable can have its value set (or changed) in one of three ways: By the value entered from an input statement. By the value calculated from an equation in an assignment statement. By a return value from a procedure call (more on this later). It is variables, and their changing data values, that enable a program to act differently every time it is executed.
All variables should be given meaningful and descriptive names by the programmer. Variable names should relate to the purpose the variable serves in your program. A variable name must start with a letter and can contain only letters, numerical digits, and underscores (but no spaces or other special characters). If a variable name contains multiple "words," the name is more "readable" if each word is separated by an underscore character. The table below shows some examples of good, poor, and illegal variable names.
www.esnips.com/user/vapremaims
Page 3
Illegal variable names 4sale (does not start with a letter) sales tax (includes a space) sales$ (includes invalid character)
IMPORTANT: If you give each value in a program a meaningful, descriptive variable name, it will help you think more clearly about the problem you are solving and it will help you find errors in your program.
One way of understanding the purpose of variables is to think of them as a means to communicate information between one part of a program and another. By using the same variable name in different parts of your program you are using the value that is stored at that location in different parts of your program. Think of the variable as a place holder or storage area for values between each use in your program computations.
When a RAPTOR program begins execution, no variables exist. The first time RAPTOR encounters a new variable name, it automatically creates a new memory location and associates this variable name with the new memory. The variable will exist from that point in the program execution until the program terminates. When a new variable is created, its initial value determines whether the variable will store numerical data or textual data. This is called the variable's data type. A variable's data type cannot change during the execution of a program. In summary, variables are automatically created by RAPTOR and can hold either: Numbers Strings e.g., 12, 567, -4, 3.1415, 0.000371, or e.g., Hello, how are you?, James Bond, The value of x is
Common errors when using variables: Error 1: "Variable ____ does not have a value" There are two common reasons for this error:
www.esnips.com/user/vapremaims
Page 4
Error 2:
"Can't assign string to numeric variable _____" "Can't assign numeric to string variable _____" This error will occur if your statements attempt to change the data type of a variable.
RAPTOR Statements/Symbols
The following four sections provide details about each of the four basic statements: Input, Assignment, Call, and Output.
Input Statement/Symbol
An input statement/symbol allows the user of a program to enter a data value into a program variable during program execution. It is important that a user know exactly what type of value is expected for input. Therefore, when you define an input statement you specify a string of text that will be the prompt that describes the required input. The prompt should be as www.esnips.com/user/vapremaims Page 5
explicit as possible. If the expected value needs to be in particular units (e.g., feet, meters, or miles) you should mention the units in the prompt.
When you define an input statement, you must specify two things: a prompt and the variable that will be assigned the value enter by the user at run-time. As you can see by the Enter Input dialog box at the right there are two types of input prompts: Text and Expression prompts. An Expression prompt enables you to mix text and variables together like the following prompt: Enter a number between + low + and + high + : .
At run-time, an input statement will display an input dialog box, an example of which is shown to the right. After a user enters a value and hits the enter key (or clicks OK), the value entered by the user is assigned to the input statement's variable.
Make sure you distinguish between the "definition of a statement" and the "execution of a statement". The dialog box that is used to define a statement is totally different from the dialog box that is used at run-time when a program is executing.
www.esnips.com/user/vapremaims
Page 6
Assignment Statement/Symbol
The assignment symbol is used to perform a computation and then store the results in a variable. The definition of an assignment statement is performed using the dialog box shown on the right. The variable to be assigned a value is entering into the "Set" field, and the computation to perform is enter into the "to" field. The example on the right sets the value of the variable x to 0.707106781186547.
An assignment statement is displayed inside its RAPTOR symbol using the syntax:
Variable Expression
For example, the statement created by the dialog box to the right is displayed as:
One assignment statement can only change the value of a single variable, that is, the variable on the left hand side of the arrow. If this variable did not exist prior to the statement, a new variable is created. If this variable did exist prior to the statement, then its previous value is lost and its new value is based on the computation that is performed. No variables on the right hand side of the arrow (i.e., the expression) are ever changed by the assignment statement.
Expressions The expression (or computation) of an assignment statement can be any simple or complex equation that computes a single value. An expression is a combination of values (either constants or variables) and operators. Please carefully study the following rules for constructing valid expressions.
www.esnips.com/user/vapremaims
Page 7
A computer can only perform one operation at a time. When an expression is computed, the operations of the equation are not executed from left to right in the order that you typed them in. Rather, the operations are performed based on a predefined "order of precedence." The order that operations are performed can make a radical difference in the value that is computed. For example, consider the following two examples: x (3+9)/3 x 3+(9/3)
In the first case, the variable x is assigned a value of 4, whereas in the second case, the variable x is assigned the value of 6. As you can see from these examples, you can always explicitly control the order in which operations are performed by grouping values and operators in parenthesis. The exact "order of precedence" is 1. 2. 3. 4. 5. compute all functions, then compute anything in parentheses, then compute exponentiation (^,**) i.e., raise one number to a power, then compute multiplications and divisions, left to right, and finally compute additions and subtractions, left to right.
An operator or function directs the computer to perform some computation on data. Operators are placed between the data being operated on (e.g. X/3) whereas functions use parentheses to indicate the data they are operating on (e.g. sqrt(4.7) ). When executed, operators and functions perform their computation and return their result. The following lists summarize the built-in operators and functions of RAPTOR. basic math: trigonometry: miscellaneous: +, -, *, /, ^, **, rem, mod, sqrt, log, abs, ceiling, floor sin, cos, tan, cot, arcsin, arcos, arctan, arccot random, Length_of
The following table briefly describes these built-in operators and functions. Full details concerning these operators and functions can be found in the RAPTOR help screens.
Operation + * /
www.esnips.com/user/vapremaims
Page 8
^ ** rem mod Sqrt Log Abs Ceiling Floor Sin Cos Tan Cot Arcsin Arcos Arctan Arccot Random
remainder (what is left over) when the 10 rem 3 is 1 right operand divides the left operand 10 mod 4 is 2 square root natural logarithm (base e) absolute value rounds up to a whole number rounds down to a whole number trig sin(angle_in_radians) trig cos(angle_in_radians) trig tan(angle_in_radians) trig cotangent(angle_in_radians) trig sin-1(expression), returns radians trig cos-1(expression), returns radians trig tan-1(y,x), returns radians trig cot-1(x,y), returns radians sqrt(4) is 2 log(e) is 1 abs(-9) is 9 ceiling(3.14159) is 4 floor(9.82) is 9 sin(pi/6) is 0.5 cos(pi/3) is 0.5 tan(pi/4) is 1.0 cot(pi/4) is 1 arcsin(0.5) is pi/6 arccos(0.5) is pi/3 arctan(10,3) is 1.2793 arccot(10,3) is 0.29145
generates a random value in the range random * 100 is some value [1.0, 0.0) between 0 and 99.9999 returns the number of characters in a string variable Example "Sell now" Length_of(Example) is 8
Length_of
The result of evaluating of an expression in an assignment statement must be either a single number or a single string of text. Most of your expressions will compute numbers, but you can also perform simple text manipulation by using a plus sign (+) to join two or more strings of text into a single string. You can also join numerical values with strings to create a single string. The following example assignment statements demonstrate string manipulation. Full_name "Joe " + "Alexander " + "Smith" Answer "The average is " + (Total / Number)
www.esnips.com/user/vapremaims
Page 9
RAPTOR defines several symbols that represent commonly used constants. You should use these constant symbols when you need their corresponding values in computations. pi is defined to be 3.14159274101257. e is defined to be 2.71828174591064
RAPTOR attempts to minimize the number of procedure names you need to memorize by displaying any procedure name that partially matches what you type into the "Enter Call" window. For example, after entering the single letter "d," the lower portion of the window will list all built-in procedures that start with the letter "d". The list also reminds you of each procedure's required arguments. In the example to the right, the lower box is telling you that the "Draw_Line" procedure needs 5 data values: the x and y coordinates of the starting location of the line, (x1, y1), the x and y coordinates of the ending location of the line, (x2, y2), and the line's color. The order of the argument values must match the arguments defined by the procedure. For example, Draw_Line(Blue, 3, 5, 100, 200) would generate an error because the color of the line must be the last argument value in the argument list.
When a procedure call is displayed in your RAPTOR program you can see the procedure's name and the argument values that will be sent to the procedure when it is called. www.esnips.com/user/vapremaims Page 10
For example, when the first procedure call on the right is executed it will draw a red line from the point (1,1) to the point (100,200). The second procedure call will also draw a line, but since the arguments are variables, the exact location of the line will not be known until the program executes and all the argument variables have a value.
RAPTOR defines too many built-in procedures to describe them all here. You can find documentation on all built-in procedures in RAPTOR's help screens. In addition, your instructor will introduce relevant procedures as we tackle various problem solving tasks in the coming lessons.
Output Statement/Symbol
In RAPTOR, an output statement displays a value to the MasterConsole window when it is executed. When you define an output statement, the "Enter Output" dialog box asks you to specify three things: Are you displaying text, or the results of an expression (computation)? What is the text or expression to display? Should the output be terminated by a new line character? The example output statement on the right will display the text, "The sales tax is" on the output window and terminate the text with a new line. Since the "End current line" is checked, any future output will start on a new line below the displayed text.
When you select the "Output Text" option, the characters that you type into the edit box will be displayed exactly as you typed them, including any leading or trailing spaces. If you include quote marks (") in the text, the quote marks will be displayed exactly as you typed them.
www.esnips.com/user/vapremaims
Page 11
When you select the "Output Expression" option, the text you type into the edit box is treated as an expression to be evaluated. When the output statement is executed at run-time, the expression is evaluated and the resulting single value that was computed is displayed. An example output statement that displays the results of an expression is shown on the right.
You can display multiple values with a single output statement by using the "Output Expression" option and building a string of text using the string plus (+) operator. When you build a single string from two or more values, you must distinguish the text from the values to be calculated by enclosing any text in quote marks ("). In such cases, the quote marks are not displayed in the output window. For example, the expression,
Active Point = (200,5) Notice that the quote marks are not displayed on the output device. The quote marks are used to surround any text that is not part of an expression to be evaluated. Your instructor (or a homework assignment) will often say Display the results in a user-friendly manner. This means you should display some explanatory text explaining any numbers that are output to the MasterConsole window. An example of "non-user-friendly output" and "user-friendly output" is shown below. Non-user-friendly output User-friendly output
www.esnips.com/user/vapremaims
Page 12
Comments in RAPTOR
The RAPTOR development environment, like many other programming languages, allows comments to be added to your program. Comments are used to explain some aspect of a program to a human reader, especially in places where the program code is complex and hard to understand. Comments mean nothing to the computer and are not executed. However, if comments are done well, they can make a program much easier to understand for a human reader.
To add a comment to a statement, right-click your mouse over the statement symbol and select the "Comment" line before releasing the mouse button. Then enter the comment text into the "Enter Comment" dialog box, an example of which is shown to the right. The resulting comment can be moved in the RAPTOR window by dragging it, but you typically do not need to move the default location of a comment.
There are three general types of comments: Programmer header documents who wrote the program, when it was written, and a general description of what the program does. (Add to the "Start" symbol) Section description mark major sections of your program to make it easier for a programmer to understand the overall program structure. Logic description explain non-standard logic. Typically you should not comment every statement in a program. An example program that includes comments is shown below.
Start "Enter the cylider radius" GET radius "Enter the cylinder height" GET height volume pi * radius ^ 2 * height surface_area 2 * pi * radius ^ 2 + 2 * pi * radius * height PUT "Volume = " + Volume + " cube units" PUT "Surface area = " + Surface_area + " square units"
Written by: C4C Grant Logic Date: 8 July 2006 Description: Calculate properties of a cylinder Get inputs
Calculations
Note: the surface area includes the top and bottom ends
Output results
www.esnips.com/user/vapremaims
End
Page 13
How to get input values into a program and how to display output values.
Reading Self-Check
1. Label the following RAPTOR identifiers as (G) good, (P) poor, or (I) Illegal. If illegal then explain why. ____ 1) ____ 2) ____ 3) ____ 4) ____ 5) ____ 6) ____ 7) ____ 8) ____ 9) This_Is_A_Test U_2 Money$ Thisisanawfullylongidentifiername Mickey-Mouse 365_Days Variable Is This Identifier Legal Why_Isnt_This_One_Legal
3. True or False. In RAPTOR, a variable does not have a value (in its memory location) until a program instruction gives it a value.
www.esnips.com/user/vapremaims
Page 14
4. Calculate the result of the following expressions (or indicate if the expression contains errors)
Result __________ 1) __________ 2) __________ 3) __________ 4) __________ 5) __________ 6) __________ 7) __________ 8) __________ 9) 46 / 2 4 + 6 * 2 12 / 3 / 2 (4 + 2) / (5 3) + 2 46 / 3 46 rem 3 3(4 + 3) 6 ** sqrt(4) 77 + -11
www.esnips.com/user/vapremaims
Page 15
www.esnips.com/user/vapremaims
Page 16
Managers Initialization
Work Schedule Worker W0 W1 Test Action C=A+B Display the C value Transfer control W1 STOP
Number of workers = 2 Program (Implementation in RAPTOR or Java or any other programming language)
Mathematics vs Machine
www.esnips.com/user/vapremaims
Page 17
www.esnips.com/user/vapremaims
Page 18
Task 2
Write a program to compute the square of an integer x.
Test Cases 1 2 3 2 6 5 Input X 4 36 25 Output
WBS-Templete Module
Step 1: Identifying the problem
Input Output Specification Map Constraints Integer Type Input variable x Integer type output variable s f(s)=x*x No Constraints specified
www.esnips.com/user/vapremaims
Page 19
Work Schedule Worker W0 W1 Test Action s=x*x Display s Transfer control W1 STOP
Number of workers = 2 Program (Implementation in RAPTOR or Java or any other programming language)
The Program is correct because it takes one integer input and give the correct output
www.esnips.com/user/vapremaims
Page 20
www.esnips.com/user/vapremaims
Page 21
Task 3
Write a program to find the bigger of 2 integers A and B.
Test Cases 1 2 3 4 101 122 Input A 19 100 123 Input B 19 101 123 Output
www.esnips.com/user/vapremaims
Page 22
Work Schedule Worker W0 Test A>B Action Display The input A is Bigger Display The input B is Bigger Transfer control STOP
A<B
STOP
Number of workers = 1 Program (Implementation in RAPTOR or Java or any other programming language)
Mathematics vs Machine
www.esnips.com/user/vapremaims
Page 23
www.esnips.com/user/vapremaims
Page 24
Task 4
Write a program that takes two integers A and B and print
a. "Large", if sum of A and B is greater than 20. b. "Medium", if sum of A and B is in the range 10 and 20(inclusive). c. "Small", otherwise.
Test Cases 1 2 3 11 7 7
Input A 12 6 2
Input B
Constraints
www.esnips.com/user/vapremaims
Page 25
The manager and all the workers act on the state tuple. Managers Initialization Work Schedule Worker W0 W1 Sum>20 Sum<=20 && sum>=10 Sum<10 Test Action Sum=A+B Displaylarge DisplayMedium Transfer control W1 STOP STOP A=User input,B=User Input, sum=0
Displaysmall
STOP
Number of workers = 2 Program (Implementation in RAPTOR or Java or any other programming language)
Mathematics vs Machine
www.esnips.com/user/vapremaims
Page 27
Task 5
Write a program that takes two integers A and B and checks whether both are double digit numbers. If both are not double digit numbers then return False and end the program. If both are double digit numbers then return
a. b. Odd Sum, if sum of A and B is odd. Even Sum, otherwise.
Test Cases 1 2 3
Input A 11 12 30
Input B 100 10 21
Constraints
www.esnips.com/user/vapremaims
Page 28
Managers Initialization
STOP
W1
sum/2=0 Sum/2!=0
Stop stop
Number of workers = 2 Program (Implementation in RAPTOR or Java or any other programming language)
www.esnips.com/user/vapremaims
Page 30
WBS
Step 1: Identifying the problem
Input Output Specification Map Constraints N N natural numbers F(n)=1 2 3..n None
www.esnips.com/user/vapremaims
Page 31
Work Schedule Worker W0 W1 i>n i<n W2 Test Action i=1 Skip Display i i=i+1 Transfer control W1 STOP W2 W0
Number of workers = 2 Program (Implementation in RAPTOR or Java or any other programming language)
Mathematics vs Machine
www.esnips.com/user/vapremaims
Page 32
www.esnips.com/user/vapremaims
Page 33
Task 2
Write a program to print the first N even numbers. Test Cases 1 2 3 4 3 1 Input Output [ 2 4 6 8] [ 2 4 6] [2]
www.esnips.com/user/vapremaims
Page 34
Work Schedule Worker W0 W1 W2 t>N t <= N W3 i%2==0 i%2!=0 W4 W5 Skip Display i Skip t=t+1 i=i + 1 Test Action t=1 i =1 Transfer control W1 W2 Stop W3 W4 W5 W5 W2
Number of workers = 4 Program (Implementation in RAPTOR or Java or any other programming language)
Task 2 Output
www.esnips.com/user/vapremaims
Page 35
Task 3
Write a program to check whether a given positive integer A is a prime number or not. Test Cases 1 2 3 11 82 17 Input Output Prime Not a Prime Prime
Managers Initialization
A=user input,i=0,c=0
www.esnips.com/user/vapremaims
Page 36
Work Schedule Worker W0 W1 i>A i<=n W2 A%i==0 A%i!=0 W3 W4 C>2 C<=2 Test Action i=1 Skip Skip c=c+1 Skip i=i+1 Display not prime Display Prime Transfer control W1 W4 W2 W3 W3 W0 Stop Stop
Number of workers = 4 Program (Implementation in RAPTOR or Java or any other programming language)
www.esnips.com/user/vapremaims
Page 37
www.esnips.com/user/vapremaims
Page 38
Task 4
Write a program to print the pattern below by using 2 loops and without using any arrays.
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
www.esnips.com/user/vapremaims
Page 39
J=0 P=1
W2 W3 Stop
W4 W5 W6 W3 W4
Number of workers = 7 Program (Implementation in RAPTOR or Java or any other programming language)
Mathematics vs Machine
www.esnips.com/user/vapremaims
Page 40
www.esnips.com/user/vapremaims
Page 41
A manager M is assigned the given problem to solve. The manager M divides the given work among the workers W 0, W1.. Wn . The role of the manager is to choose the program variable initialization and design the work schedule. The manager and all the workers act on the state tuple. Managers Initialization A = user input and B = user input, C = 0, i = 1
Work Schedule Worker W1 W2 i<=5 i>5 Test Action C[i]=A[i]+B[i] I=i+1 Display C Transfer control W2 W1 stop
Number of workers = 2 Program (Implementation in RAPTOR or Java or any other programming language)
Task 2
Write a program to swap the first two elements and also the last two elements in an array A of size 6.
Test Cases 1 2 3 Input [1 2 3 4 5 6] [3 2 4 5 6 1] [11 5 7 3 4 1] Output [2 1 3 4 6 5] [2 3 4 5 1 6] [5 11 7 3 1 4]
WBS-Templete Module
Step 1: Identifying the problem
Input The input (A) is an array A. A = [A[1],A[2],A[3],A[4],A[5],A[6]] The output is an array A= [A[2],A[1],A[3],A[4],A[6],A[5]] f (A,B) = swap A[1] and A[2] also A[5] and A[6] Only 1st , 2nd and 5th, 6th elements should be swapped
www.esnips.com/user/vapremaims
Page 43
Managers Initialization
A = user input, i = 1
Work Schedule Worker W1 W2 W3 i<=5 i>5 Test i==1||i==5 Swap A[i],A[i+1] I=i+1 Display C Action Transfer control W2 W3 W1 stop
Number of workers = 3 Program (Implementation in RAPTOR or Java or any other programming language)
www.esnips.com/user/vapremaims
Page 44
Task 3
Write a program to print in the reverse order any given integer array A of any size.
Test Cases 1 2 3 Input [1 2 3 4 5 6] [3 1 2] [10 1 9 7] Output [6 5 4 3 2 1] [2 1 3] [7 9 1 10]
WBS-Templete Module
Step 1: Identifying the problem
Input Output Specification Map Constraints The input (A) is an ordered pair of two arrays A and B. A = [A[1],A[2],A[3],A[4],A[5]..A[n], n The output is an array A= [A[n],A[na],.A[5],A[4],A[3],A[2],A[1]] f(A)= [A[n],A[n-1],A[5],A[4],A[3],A[2],A[1]] No Constraints are specified
Managers Initialization
Work Schedule Worker W0 W1 Test None i<1 Action i=n Display A[i] Transfer control W1 W1
www.esnips.com/user/vapremaims
Page 45
None
Stop
www.esnips.com/user/vapremaims
Page 46
Task 4
Write a program to print a 4 4 matrix using a two dimensional array.
Input Output 1111 1111 1111 1111
Test Cases
Output
www.esnips.com/user/vapremaims
Page 47
Work Schedule Worker W0 W1 i<4&&j<4 Test Action Display A Transfer control W1 stop
Number of workers = 2 Program (Implementation in RAPTOR or Java or any other programming language)
The program terminates for all the inputs. f(1 1 1 1 f(1 1 1 1 1111 1111 1111 = 1111 1 1 1 1) 1 1 1 1)
www.esnips.com/user/vapremaims
Page 48
The program output is correct for all inputs. The variables i and j starts at 1 and increments upto 4. When it reaches to 4, the loop is terminated. Program reads elements step by step from I and j equal to 1 to 4
www.esnips.com/user/vapremaims
Page 49
Task 5
Write a program to add two 4
Test Cases Matrix A 1111 1111 1111 1111 1 Matrix B 2222 2222 2222 2222 Matrix A 0000 0000 0000 0000 2 Matrix B 2222 2222 2222 2222 Matrix A 4444 4444 4444 4444 3 Matrix B 2222 2222 2222 2222
www.esnips.com/user/vapremaims
Page 50
Work Schedule Worker W0 Test i<=4 i>4 j<=4 W1 j>4 Skip W0 Action j=1 Skip C[i][j]=A[i][j]+B[i][j] Transfer control W1 Stop W1
www.esnips.com/user/vapremaims
Page 51
Number of workers = 2 Program (Implementation in RAPTOR or Java or any other programming language)
www.esnips.com/user/vapremaims
Page 52
Task 1
Write a program that takes three string inputs S1 (your name), S2 (college name), and S3 (city) and prints the strings separated by the delimiter comma.
Test Cases 1 Input S1 Shyam Input S2 A R College Input S3 Mumbai Output Shyam,A R College,Mumbai Venkat, M V Degree College, Hyderabad Subhash, Roy Engineering College,Kolkata
Venkat
M V Degree College
Hyderabad
Subhash
Kolkata
WBS
Step 1: Identifying the problem
Input Output Specification Map Constraints S1, S2 and S3 are three Strings Printed in the format S1,S2,S3 f(S1,S2,S3)=S1,S2,S3 None
Managers Initialization
Work Schedule Test Worker W1 Display s1+,+s2+,+s3 Stop Action Transfer control
Number of workers = 1 Program (Implementation in RAPTOR or Java or any other programming language)
www.esnips.com/user/vapremaims
Page 55
Task 2
Write a program that takes two strings S1 and S2 as inputs and concatenates them.
Test Cases 1 2 3 Input S1 Venkat Hari Ramesh Input S2 Swamy Kishore Rao Output VenkatSwamy HariKishore RameshRao
www.esnips.com/user/vapremaims
Page 56
Work Schedule Worker W0 Test Action Display s1+s2 Transfer control stop
Number of workers = 2 Program (Implementation in RAPTOR or Java or any other programming language)
Mathematics vs Machine
www.esnips.com/user/vapremaims
Page 57
www.esnips.com/user/vapremaims
Page 58
Task 3
Write a program to reverse a string S1 and stores the result in S2.
Test Cases 1 2 3 Input Varsham Katak Program Output mahsrav katak margorP
www.esnips.com/user/vapremaims
Page 59
Work Schedule Worker W0 Test l!=0 l==0 W1 Action rev=rev+s[l] Display New line l=l-1 Transfer control W1 STOP W0
Number of workers = 2 Program (Implementation in RAPTOR or Java or any other programming language)
www.esnips.com/user/vapremaims
Page 60
www.esnips.com/user/vapremaims
Page 61
Task 4
Write a program that takes a string S1 of letters as input and converts the letters into upper case.
Test Cases 1 2 3 Input S1 Abcdef Output ABCDEF
Hello how are you! HELLO HOW ARE YOU! Lower LOWER
www.esnips.com/user/vapremaims
Page 62
Work Schedule Worker W1 W2 W3 i>x i<=x W4 S1[i]>=97&&S1[i]<=122 S1[i]=S1[i]-32 S1[i]<97 && S1[i]>123 W5 S1[i]=S1[i] i=i+1 Test Action X=length_of(S1) i=1 Print S1 Transfer control W2 W3 Stop W4 W5 W5 W3
Number of workers = 5 Program (Implementation in RAPTOR or Java or any other programming language)
www.esnips.com/user/vapremaims
Page 63
www.esnips.com/user/vapremaims
Page 64
Task 5
Write a program that takes two string inputs S1, S2 and checks whether S2 is a substring of S1 or not.
Test Cases 1 2 3 Input S1 ChanakyaPuri Mahabharat Radhakrishnan Puri bharata rish Input S2 Yes No Yes Output
www.esnips.com/user/vapremaims
Page 65
Work Schedule Worker W1 W2 W3 Count==y||i>x Count!=y||i<x W4 c==y c!=y W5 S1[i]==S2[j] S1[i]!=S2[j] W6 W7 W8 Display YES Display NO Test Action X=length_of(S1) Y=length_of(S2) Transfer control W2 W3 W4 W5 Stop Stop W6 W7 J=j+1,c=c+1,count=count+1 W8 J=0,c=0,count=0 I=i+1 W8 W3
Number of workers = 5 Program (Implementation in RAPTOR or Java or any other programming language)
Page 66
www.esnips.com/user/vapremaims
Page 67
WBS-Templete Module
Step 1: Identifying the problem
Input Output Specification Map Integer A Large/Medium/Small F(A)= Large if A>100 Medium if A>50 && A<100 Small if A<50 None
Constraints
www.esnips.com/user/vapremaims
Page 68
Work Schedule Worker W1 Test A>100 A>50 A<50 W2 W3 W4 Action call large() Call medium() Call small() Print Large Print Medium Print Small Transfer control W2 W3 W4 Stop Stop Stop
Number of workers = 4 Program (Implementation in RAPTOR or Java or any other programming language)
Mathematics vs Machine
www.esnips.com/user/vapremaims
Page 70
Task 2
Write a program that sends two integers A and B as parameters to different functions below
a. b. c. Sum () prints the sum of A and B. Product () prints product of A and B. Diff() prints the difference A - B.
www.esnips.com/user/vapremaims
Page 71
Work Schedule Worker W1 W2 W3 W4 W5 W6 W7 W9 W10 Test Action Call Sum(A,B) C=A+B Display C Call Product(A,B) C=A*B Display C Call Ddifference(A,B) C=A-B Display C Transfer control W2 W3 W4 W5 W6 W7 W8 W10 STOP
Number of workers = 5 Program (Implementation in RAPTOR or Java or any other programming language)
F(20,10)= Sum=30 Product=200 Difference=10 Program terminates for all the test inputs. F(20,10)= Sum=30 Product=200 Difference=10 Program gives correct output for the test input. Program does not have loops, it has function calls. The program terminates when all the sub functions and main function are completed. In the program values are read and control goes to different functions to perform different operations and prints results.
Mathematics vs Machine
www.esnips.com/user/vapremaims
Page 73
Task 3
Write a program that sends two strings S1 and S2 as parameters to the following functions
a. Concatenate () prints concatenation of two strings. b. Equality () checks the equality of the two strings and prints True if equal and False if unequal.
WBS-Templete Module
Step 1: Identifying the problem
Input Output (S1,S2) (S1,S2)=S1+S2 (S1,S2)= TRUE if S1==S2 FALSE if S1!=S2 F(S1,S2)= S1+S2, S1==S2 None
www.esnips.com/user/vapremaims
Page 74
Work Schedule Worker W1 Test Action Call Concatenate(S1,S2) S3=S1+S2 Call Equality(S1,S2) If(S1==S2) If(S1!=S2) Display TRUE Display FALSE Transfer control W2
W2 W3 W4
W3 W4 stop stop
Number of workers = 6 Program (Implementation in RAPTOR or Java or any other programming language)
The program terminates when all the sub functions and main function are completed. In the program two strings are read and control goes to different functions to display the concatenation and equality results.
Mathematics vs Machine
www.esnips.com/user/vapremaims
Page 76
WBS-Templete Module
Step 1: Identifying the problem
Input Output Specification Map Constraints N Sum F(n)=1+2+.+n None
www.esnips.com/user/vapremaims
Page 77
Managers Initialization
Work Schedule Worker W0 W1 Test Action sum=sum+i Display Sum Transfer control W1 Stop
Number of workers = 2 Program (Implementation in RAPTOR or Java or any other programming language)
www.esnips.com/user/vapremaims
The control passes from main function to sub function and repeats till the condition is false. When the condition is false program terminates. The program computes Sum from i = 1 to i = N. The Finally the result is displayed.
Mathematics vs Machine
www.esnips.com/user/vapremaims
Page 79
Task 2
Given a positive integer N as user input, write a program to print the sum of the cubes of the first N natural numbers using recursion.
Test Cases 1 2 3 3 1 5 Input N 36 1 225 Output
WBS-Templete Module
Step 1: Identifying the problem
Input Output Specification Map Constraints N Sum F(n)=13+23+.+n3 None
www.esnips.com/user/vapremaims
Page 80
Work Schedule Worker W0 W1 Number of workers = 2 Program (Implementation in RAPTOR or Java or any other programming language) Test Action sum=sum+(i*i*i) Display sum Transfer control W1 Stop
Mathematics vs Machine
www.esnips.com/user/vapremaims
Page 81
www.esnips.com/user/vapremaims
Page 82
Task 3
Write a program to find whether the given number P is a prime number or not using recursion.
Test Cases 1 2 3 3 5 8 Input N Output "Prime Number" "Prime Number" "Not A Prime Number"
www.esnips.com/user/vapremaims
Page 83
Work Schedule Worker W0 W1 W2 I>N I<= N W3 N%I==0 I%2!=0 W4 W5 W6 count==2 count!=2 count=count+1 I =I +1 Display PRIME Display NOT PRIME Skip Test Action I =1 Count=0 Transfer control W1 W2 W6 W3 W4 W5 W5 W2 Stop Stop
Number of workers = 7 Program (Implementation in RAPTOR or Java or any other programming language)
www.esnips.com/user/vapremaims
Page 84
Mathematics vs Machine
www.esnips.com/user/vapremaims
Page 85
Task 4
Write a program that takes a string "Str1" as input and prints the reverse of it using recursion.
Test Cases 1 2 3 Input Str1 Arjuna Ashoka Reverse Output anujrA akohsA esreveR
WBS
Step 1: Identifying the problem
Input Output Specification Map Constraints S1 String S2=Reverse of S1 f(S2)=Reverse of S1 None
www.esnips.com/user/vapremaims
Page 86
Work Schedule Worker W1 W2 W3 W4 x<1 x>=1 W5 W6 Test Action X=length_of(S1) i=1 S2= Print S2 S2[i]=S1[x] x=x-1 i=i+1 Transfer control W2 W3 W4 Stop W5 W6 W4
Number of workers = 6 Program (Implementation in RAPTOR or Java or any other programming language)
f(Reverse)=esreveR The program is correct for all the inputs. The Program has loop and it is terminated properly when x reaches to 1by using recursion. The Program reads a string, reverses and prints it by using recursion.
www.esnips.com/user/vapremaims
Page 88