You are on page 1of 31

LIST OF EXPERIMENTS (AS PER RTU SYLLABUS)

1 a) Write a program that calculates the area and perimeter of the circle. 1-22
And find the Coverage & Test Cases of that program using JaButi Tool.
b) Write a program which read the first name and last name from console
and matching with expected result by using JaBuTi.
c) Write a program that takes three double numbers from the java console
representing , respectively, the three coefficients a,b, and c of a
Quadratic equation.
d) Write a program that reads commercial website URL from a url from file
.you should expect that the URL starts with www and ends with .com.
Retrieve the name of the site and output it. For instance, if the user
Inputs www.yahoo.com, you should output yahoo. After that find the
test cases and coverage using JaButi.
e) Write a program for a calculator and find the test case and coverage and
Def-use-graph.
f) Write a program that reads two words representing passwords from the
java console and outputs the number of character in the smaller of the
two. For example, if the words are open and sesame, then the output
should be 4, the length of the shorter word, open. And test this program
using JaButi
2 23-27

3 Calculate the mutation score of programs given in 1(a) to 1 (f) using 28-32
jumble
Tool.
4 Calculate the coverage analysis of programs given in 1 (a) to 1 (f) using 33-35
Eclemma Free open source Tool.
5 36-42
EXPERIMENT-1

OBJECTIVE

a.) Write a program that calculates the area and perimeter of the circle. And find the
Coverage & Test Cases of that program using JaButi Tool.
PROGRAM

AreaOfCircle.java
import java.util.Scanner;
import java.lang.Math;
public class AreaOfCircle
{
public static void main(String[] args)
{
int option;
double radius, circumference, diameter, area;
//object of the Scanner class
Scanner sc=new Scanner (System.in);
//options available
System.out.println("1. If the radius is known");
System.out.println("2. If the diameter is known");
System.out.println("3. If the circumference is known");
System.out.print("Enter your choice: ");
//taking an option as input from the user
option=sc.nextInt();
switch(option)
{

//Case statements

case 1:
System.out.print("Enter the radius of the circle: ");
radius=sc.nextDouble();
area=(Math.PI*(radius*radius));
System.out.print("The area of the circle is: "+area);
break;
case 2:
System.out.print("Enter the diameter of the circle: ");
2
diameter=sc.nextDouble();
area=Math.PI*(diameter*diameter)/4;
System.out.print("The area of the circle is: "+area);
break;
case 3:
System.out.print("Enter the circumference of the circle: ");
circumference=sc.nextDouble();
area=(circumference*circumference)/(4*Math.PI);
System.out.print("The area of the circle is: "+area);
break;
//default case statement executes when an invalid choice is entered
default:System.out.println("invalid choice!");
}
}
}

Compile Java Program:>_ javac AreaOfCircle.java


It will create a new file AreaOfCircle.class // BYTE CODE

3
4
b.) Write a program which read the first name and last name from console and matching with
expected result by using JaBuTi.

PROGRAM

AreaOfCircle.java
Import java.util.Scanner;

/**
* An example program to read a Name from console input in Java
*/
Public class Example
{
Public static void main(String[] args)
{
System.out.print("Enter a Name : ");
Scanner scanner = new Scanner(System. in);
String inputString = scanner. nextLine();
System.out.println("String read from console is : \n"+input String);
}
}

Note : Repeat all step according to Experiment 1 in JABUTI

5
c.) Write a program that takes three double numbers from the java console representing ,
respectively, the three coefficients a,b, and c of a quadratic equation.

PROGRAM
qeqvation.java public class q eqvation
{
public static void main(String[] args)
{
// value a, b, and c
double a = 2.3, b = 4, c = 5.6; double root1, root2;
// calculate the determinant (b2 - 4ac) double determinant = b * b - 4 * a * c;
// check if determinant is greater than 0 if (determinant > 0)
{
// two real and distinct roots
root1 = (-b + Math.sqrt(determinant)) / (2 * a);
root2 = (-b - Math.sqrt(determinant)) / (2 * a);
System.out.format("root1 = %.2f and root2 = %.2f", root1, root2);
}
// check if determinant is equal to 0 else if (determinant == 0)
{
// two real and equal roots
// determinant is equal to 0
// so -b + 0 == -b
root1 = root2 = -b / (2 * a);
System.out.format("root1 = root2 = %.2f;", root1);
}
// if determinant is less than zero else
{
// roots are complex number and distinct double real = -b / (2 * a);
double imaginary = Math.sqrt(-determinant) / (2 * a);
System.out.format("root1 = %.2f+%.2fi", real, imaginary);
System.out.format("\nroot2 = %.2f-%.2fi", real, imaginary);
}
}
}

d.) Write a program that reads commercial website URL from a url from file. You should expect
that the URL starts with www and ends with .com. retrieve the name of the site and output
it. For instance, if the user inputs www.yahoo.com, you should output yahoo. After that find
6
the test cases and coverage using JaButi.

PROGRAM

package
mypkg;import
java.io.*;import
javax.servlet.*;
impor tjavax.servlet.http.*;
public classHelloServlet extendsHttpServlet
{
@Override
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)thr
owsIOException, ServletException
{
// Set the response message's MIME
typeresponse.setContentType("text/html;charset=UTF
-8");
//Allocate a output writer to write the response message into the network socket
PrintWriterout =response.getWriter();

// Write the response message, in an HTML


pagetry {
out.println("<!DOCTYPEhtml>");
out.println("<html><head>");
out.println("<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>");
out.println("<title>Hello, World</title></head>");
out.println("<body>");
out.println("<h1>Hello, world!</h1>"); // says Hello

// Echo client's request information

out.println("<p>Request URI: " + request.getRequestURI() + "</p>"); out.println("<p>Protocol: "


+ request.getProtocol() + "</p>"); out.println("<p>PathInfo: " + request.getPathInfo() + "</p>");
out.println("<p>Remote Address: " + request.getRemoteAddr() + "</p>");
// Generate a random number upon each request

out.println("<p>A Random Number: <strong>" + Math.random() + "</strong></p>");


out.println("</body>");
out.println("</html>");

}
finally
{
out.close(); // Always close the output writer
}
}
}

7
a.) Write a program for a calculator and find the test case and coverage and Def-use-graph.

PROGRAM
import java.util.Scanner; class Main
{
public static void main(String[] args)
{
char operator;
Double number1, number2, result;
// create an object of Scanner class Scanner input = new Scanner(System.in);
// ask users to enter operator System.out.println("Choose an operator: +, -, *, or /");
operator = input.next().charAt(0);
// ask users to enter numbers System.out.println("Enter first number");
number1 = input.nextDouble();
System.out.println("Enter second number");
number2 = input.nextDouble();
switch (operator)
{
// performs addition between numbers case '+':
result = number1 + number2;
System.out.println(number1 + " + " + number2 + " = " + result);
break;
// performs subtraction between numbers case '-':
result = number1 - number2;
System.out.println(number1 + " - " + number2 + " = " + result);
break;
// performs multiplication between numbers case '*':
result = number1 * number2;
System.out.println(number1 + " * " + number2 + " = " + result);
break;
// performs division between numbers case '/':
result = number1 / number2;
System.out.println(number1 + " / " + number2 + " = " + result);
break;
default:

System.out.println("Invalid operator!");
break;
}
input.close();
}
}

8
b.) Write a program that reads two words representing passwords from the java console and outputs
the number of character in the smaller of the two. For example, if the words are open and sesame,
then the output should be 4, the length of the shorter word, open. And test this program using
JaButi

PROGRAM

import java.util.Scanner; public class Exercise11


{
public static final int PASSWORD_LENGTH = 8;
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.print (
"1. A password must have at least eight characters.\n" + "
2. A password consists of only letters and digits.\n" + "
3. A password must contain at least two digits \n" +
"Input a password (You are agreeing to the above Terms and Conditions.): ");
String s = input.nextLine();
if (is_Valid_Password(s))
{
System.out.println("Password is valid: " + s);
}
else
{
System.out.println("Not a valid password: " + s);
}
}
public static booleanis_Valid_Password(String password)
{
if (password.length() < PASSWORD_LENGTH) return false;
int charCount = 0;
int numCount = 0;
for (int i = 0; i<password.length(); i++)
{
char ch = password.charAt(i);

9
if (is_Numeric(ch)) numCount++;
else if (is_Letter(ch)) charCount++;
else return false;
}
return (charCount>= 2 &&numCount>= 2);
}
public static booleanis_Letter(char ch)
{
ch = Character.toUpperCase(ch);
return (ch>= 'A' &&ch<= 'Z');
}
public static booleanis_Numeric(char ch)
{
return (ch>= '0' &&ch<= '9');
}
}

EXPERIMENT-2

OBJECTIVE
Analyze the performance of following website using JMeter.

THEORY
JMeter Introduction
JMeter is a software that can perform load test, performance-oriented business (functional) test,
regression test, etc., on different protocols or technologies.
JMeter is a Java desktop application with a graphical interface that uses the Swing graphical API. It
can therefore run on any environment / workstation that accepts a Java virtual machine, for example −
Windows, Linux, Mac, etc.
The protocols supported by JMeter are −
• Web − HTTP, HTTPS sites 'web 1.0' web 2.0 (ajax, flex and flex-ws-amf)
10
• Web Services − SOAP / XML-RPC
• Database via JDBC drivers
• Directory − LDAP
• Messaging Oriented service via JMS
• Service − POP3, IMAP, SMTP
• FTP Service

JMeter Features
Following are some of the features of JMeter −
• Being an open source software, it is freely available.
• It has a simple and intuitive GUI.
• JMeter can conduct load and performance test for many different server types – Web
HTTP, HTTPS, SOAP, Database via JDBC, LDAP, JMS, Mail - POP3, etc.
• It is a platform-independent tool. On Linux/Unix, JMeter can be invoked by clicking
on JMeter shell script. On Windows, it can be invoked by starting the jmeter.bat file.
• It has full Swing and lightweight component support (precompiled JAR uses packages
javax.swing.* ).
• JMeter store its test plans in XML format. This means you can generate a test plan
using a text editor.
• Its full multi-threading framework allows concurrent sampling by many threads and
simultaneous sampling of different functions by separate thread groups.
• It is highly extensible.
• It can also be used to perform automated and functional testing of the applications.

JMeter Working Techniques


JMeter simulates a group of users sending requests to a target server, and returns statistics that show
the performance/functionality of the target server/application via tables, graphs, etc.

Take a look at the following figure that depicts how JMeter works −
JMeter is a framework for Java, so the very first requirement is to have JDK installed in your machine.

System Requirement

11
JDK 1.6 or above.

Memory No minimum requirement.

DiskSpace No minimum requirement.

OperatingSystem No minimum requirement.

Step 1: Verify Java Installation


First of all, verify whether you have Java installed in your system. Open your console and execute one
of the following java commands based on the operating system you are working on.

OS Task Command

Windows OpenCommandConsole c:\>java -version

Linux OpenCommandTerminal $java-version

Mac OpenTerminal machine:~joseph$java-version


If you have Java installed in your system, you would get an appropriate output based on the OS you are
working on.

OS Output

Windows javaversion"1.7.0_25"
Java(TM)SE RuntimeEnvironment(build1.7.0_25-b15)
JavaHotSpot(TM)64-BitServerVM(build23.25-b01,mixedmode)

Linux javaversion"1.7.0_25"
Java(TM)SE RuntimeEnvironment(build1.7.0_25-b15)
JavaHotSpot(TM)64-BitServerVM(build23.25-b01,mixedmode)

Mac javaversion"1.7.0_25"
Java(TM)SE RuntimeEnvironment(build1.7.0_25-b15)
JavaHotSpot(TM)64-BitServerVM(build23.25-b01,mixedmode)

If you do not have Java installed, install the Java Software Development Kit (SDK) from
www.oracle.com/technetwork/java/javase/downloads/index.html. We are assuming Java 1.7.0_25 as the
installed version for this tutorial.

Step 2: Set Java Environment


Set the JAVA_HOME environment variable to point to the base directory location, where Java is installed
on your machine. For example −

12
OS Output

Windows Set the environment variable JAVA_HOME to


C:\ProgramFiles\Java\jdk1.7.0_25

Linux exportJAVA_HOME=/usr/local/java-current

Append Java compiler location to System Path.

OS Output

Windows Appendthestring;C:\ProgramFiles\Java\jdk1.7.0_25\bintotheendofthesystem
variable,Path.

Linux exportPATH=$PATH:$JAVA_HOME/bin/

Mac notrequired
Verify Java Installation using java -version command as explained above.

Step 3: Download JMeter


Downloadthe latest version of JMeter from https://jmeter.apache.org/download_jmeter.cgi.
For this tutorial, we downloaded apache-jmeter-2.9 and copied it into C:\>JMeter folder.
The directory structure should look like as shown below −
• apache-jmeter-2.9
• apache-jmeter-2.9\bin
• apache-jmeter-2.9\docs
• apache-jmeter-2.9\extras
• apache-jmeter-2.9\lib\
• apache-jmeter-2.9\lib\ext
• apache-jmeter-2.9\lib\junit
• apache-jmeter-2.9\printable_docs
You can rename the parent directory (i.e. apache-jmeter-2.9) if you want, but do not change any of
the sub-directory names.
Step 4: Run JMeter
After downloading JMeter, go to the bin directory. In this case, it is
/home/manisha/apache-jmeter-2.9/bin. Now click on the following −

OS Output

13
Windows jmeter.bat

Linux jmeter.sh

Mac jmeter.sh

After a short pause, the JMeter GUI should appear, which is a Swing application, as seen in the
following screenshot−

This is the main page and the default page of the tool.
ApacheJMeter-User'sManual-https://jmeter.apache.org/usermanual/index.html

EXPERIMENT-3

OBJECTIVE
Calculate the mutation score of programs given in 1(a) to 1 (f) using jumble

PROGRAM

Introduction to Jumble:
The primary entry point to Jumble is a single Java class that takes as parameters a class to be mutation
tested and one or more JUnit test classes. The output is a simple textual summary of running the tests. A
plugin for the Eclipse IDE has been provided. Currently it permits only jumbling of a single class.
When running the mutation tests a separate JVM is used to prevent runaway or system-exiting code
disturbing the testing process. It is given a number which specifies the mutation to start at and it continues
14
until all mutations have been tested or some catastrophic failure occurs. If a failure occurs in one mutation
then the child JVM can be restarted and testing continues with the next mutation. After the unit testing has
been done, Jumble is used to test classes until the fifteen minute time limit is exceeded.
Byte code Mutation

Jumble performs its mutations by directly modifying Java byte codes using the BCEL package.
This allows the mutation testing to be done with no compilations. The byte code translation
approach has been used before. Mothra used an intermediate code form to store and execute
mutants. MuJava also used byte code translation for structural mutations. Thus, while MuJava
manages to avoid multiple compilations, it still requires source code analysis to perform the
mutations. Basing the mutations entirely on byte code allows code to be tested even when the
source code is not available. As well inline constants, class pool constants, and return values are
mutated. More details can be found in the “Mutations”.
Class Loader

If no tests fail, a “FAIL” message is returned. The Jumble test suite is given the name of the test
to run as a string and loads the test class dynamically (using Class.forName). The Jumble test suite
is intended to be loaded in the Jumble class loader so that the tests are run with a mutated class.
When running several mutations inside a single JVM, a separate class loader must be used for
each mutated version of the class being tested. To ensure independence between mutation tests,
the entire set of (non-system) classes are reloaded in each class loader, and the classes being tested
are not available directly from the system class loader.
Detecting and Terminating Infinite Loops
The formula for the runtime limit is: RUNTIME LIMIT = 10 x ORIGINAL RUNTIME + 2 s
This formula is somewhat arbitrary but works reasonably well in practice. The most difficult situation
is when a test is the first to be run, then effects such as classes being loaded and static code being
executed can increase the apparent execution time. Once an infinite loop is detected, it needs to be
terminated. One option is to run the mutation testing in a separate Java thread, and terminate the
thread when an infinite loop is detected. The problem with this approach is that there is no inherently
safe way of terminating a Java thread while being guaranteed to leave the rest of the system in a
consistent state. Use of the Thread.stop() method is strongly discouraged. The method used in Jumble
is to terminate the child JVM that is running the tests and for it to note that the test has been
successful. Then the child JVM is restarted at the next mutation.

15
EXPERIMENT-4

OBJECTIVE
Calculate the coverage analysis of programs given in 1 (a) to 1 (f) using Eclemma Free open source Tool.

THEORY

Steps to perform Experiment:

Eclemma is a free Java code coverage tool for Eclipse, available under the Eclipse Public License. It brings
code coverage analysis directly into the Eclipse workbench:
• Fast develop/test cycle: Launches from within the workbench like JUnit test runs can directly be
analyzed for code coverage.
• Rich coverage analysis: Coverage results are immediately summarized and highlighted in the Java
source code editors.
• Non-invasive: EclEmma does not require modifying your projects or performing any other setup.
Features Launching
Simply launch your applications or unit tests in the Coverage mode to collect coverage information.
Currently the following launch types are supported:

● Local Java application

● Eclipse/RCP application

● Equinox OSGi framework

● JUnit test

● TestNG test

16
● JUnitplug-intest

● JUnitRAP test

● SWTBottest

● Scalaapplication

Import/Export
While Eclemma is primarily designed for test runs and analysis within the Eclipse workbench, it provides
some import/export features.
Execution data import: A wizard allows to import JaCoCo *.exec execution data files from external
launches.
Coverage report export: Coverage data can be exported in HTML, XML or CSV format or as JaCoCo
execution data files (*.exec).

17
EclEmma-User Guide-https://www.eclemma.org/userdoc/index.html

EXPERIMENT-5

OBJECTIVE

18
Generate Test sequences and validate using Selenium tool for given websites below:

THEORY

Steps toper form Experiment:

Selenium is an open –source and a port able automated software testing tool for testing web
applications. It has capabilities to operate across different browsers and operating systems.
Selenium is not just a single tool but a set of tools that helps testers to automate web-based applications
more efficiently.
Recording and Adding Commands in a Test
We will use www.ncalculators.com to demonstrate the features of Selenium.
Step 1 : Launch the Firefox browser and navigate to the website – http://www.ncalculators.com/
Step 2 : Open Selenium IDE from the Tools menu and press the record button that is on the top- right
corner

Step3: Navigate to "MathCalculator">>"PercentCalculator>>enter"10"as number 1 and 50 as


number 2 and click "calculate".
19
Step5: The recorded script is generated and the script is displayed as shown below.

Saving the Recorded Test


Step 1 : Save the Test Case by navigating to "File" >> "Save Test" and save the file in the location
of your choice. The file is saved as .HTML as default. The test can also be saved with an extension

20
html ,shtml, and xhtml

Saving the Test Suite

A test suite is a collection of tests that can be executed as a single entity.


Step1: Create a test suite by navigating to "File">>" New Test Suite" as shown below.

21
Step2: The tests can be recorded one by one by choosing the option "NewTestCase" from the
"File" Menu.
Step3 : The individual tests are saved with a name along with saving a "Test Suite"

22
Executing the Recorded Test
The recorded scripts can then be executed either by clicking "Play entire suite" or "Play current
test" button in the toolbar.
Step1: The Run status can be seen in the status pane that displays the number of tests passed and
failed.
Step2 : On step is executed, the user can see the result in the "Log" Pane.
Step3: After executing each step, the background of the test step turns "Green" if passed and
"Red" if failed as shown below.

23
24
PROGRAM
#include <stdio.h>
#include <string.h>
#include<conio.h>
int main ()
{
FILE * fp;
char string[100];
int c = 0, count[26] = { 0 }, x;
fp = fopen ("deepa.txt", "r");
clrscr();
while (fscanf (fp, "%s", string) != EOF)
{
c=0;
while (string[c] != '\0')
{
/** Considering characters from 'a' to 'z' only and ignoring others. */
if (string[c] >= 'a' && string[c] <= 'z')
{
x = string[c] - 'a'; count[x]++;
}
c++;
}
}
for (c = 0; c <26 ; c++)
printf ("%c occurs %d times in the string.\n", c + 'a', count[c]);
return 0;
}
OUTPUT
NEHA
N=1
E=1
H=1
A=1

25
Beyond the Syllabus Experiment-1

OBJECTIVE
Write a C program to find Follow of any grammar
PROGRAM
#include<stdio.h>
#include<string.h>
int n,m=0,p,i=0,j=0;
char a[10][10],f[10];
void follow(char c);
void first(char c);
int main()
{
int i,z;
char c,ch;
printf("Enter the no.of productions:");
scanf("%d",&n);
printf("Enter the productions(epsilon=$):\n");
for(i=0;i<n;i++)
scanf("%s%c",a[i],&ch);
do
{
m=0;
printf("Enter the element whose FOLLOW is to be found:");
scanf("%c",&c);
follow(c);
printf("FOLLOW(%c) = { ",c);
for(i=0;i<m;i++)
printf("%c ",f[i]);
printf(" }\n");
printf("Do you want to continue(0/1)?");
scanf("%d%c",&z,&ch);
}
while(z==1);
}
void follow(char c)
{

if(a[0][0]==c)f[m++]='$';
for(i=0;i<n;i++)
{
for(j=2;j<strlen(a[i]);j++)
{
if(a[i][j]==c)
{
if(a[i][j+1]!='\0')first(a[i][j+1]);

if(a[i][j+1]=='\0'&&c!=a[i][0])

26
follow(a[i][0]);

}
}
}
}
void first(char c)
{
int k;
if(!(isupper(c)))f[m++]=c;
for(k=0;k<n;k++)
{
if(a[k][0]==c)
{
if(a[k][2]=='$') follow(a[i][0]);
else if(islower(a[k][2]))f[m++]=a[k][2];
else first(a[k][2]);
}
}

}
OUTPUT

productions:
E=TD
D=+TD
D=$
T=FS
S=*FS
S=$
F=(E)
F=a

FOLLOW(E)=FOLLOW(D)={),$}
FOLLOW(T)=FOLLOW(S)={+,),$}
FOLLOW(F)={+,*,),$}

27
Beyond the Syllabus Experiment-2

OBJECTIVE
Write a C program for operator precedence parsing
PROGRAM

#include<stdio.h>
#include<string.h>
char *input;
int i=0;
char lasthandle[6],stack[50],handles[][5]={")E(","E*E","E+E","i","E^E"};
//(E) becomes )E( when pushed to stack
int top=0,l;
char prec[9][9]=
{

/*input*/

/*stack + - * / ^ i ( ) $ */

/* + */ '>', '>','<','<','<','<','<','>','>',

/* - */ '>', '>','<','<','<','<','<','>','>',

/* * */ '>', '>','>','>','<','<','<','>','>',

/* / */ '>', '>','>','>','<','<','<','>','>',

/* ^ */ '>', '>','>','>','<','<','<','>','>',

/* i */ '>', '>','>','>','>','e','e','>','>',

/* ( */ '<', '<','<','<','<','<','<','>','e',

/* ) */ '>', '>','>','>','>','e','e','>','>',

/* $ */ '<', '<','<','<','<','<','<','<','>',

};
int getindex(char c)
{
switch(c)
{
case '+':return 0;
case '-':return 1;
case '*':return 2;
case '/':return 3;
case '^':return 4;

28
case 'i':return 5;
case '(':return 6;
case ')':return 7;
case '$':return 8;
}
}
int shift()
{
stack[++top]=*(input+i++);
stack[top+1]='\0';
}
int reduce()
{
int i,len,found,t;
for(i=0;i<5;i++)//selecting handles
{
len=strlen(handles[i]);
if(stack[top]==handles[i][0]&&top+1>=len)
{
found=1;
for(t=0;t<len;t++)
{
if(stack[top-t]!=handles[i][t])
{
found=0;
break;
}
}
if(found==1)
{
stack[top-t+1]='E';
top=top-t+1;
strcpy(lasthandle,handles[i]);
stack[top+1]='\0';
return 1;//successful reduction
}
}
}
return 0;
}

void dispstack()
{
int j;
for(j=0;j<=top;j++)
printf("%c",stack[j]);
}
void dispinput()

29
{
int j;
for(j=i;j<l;j++)
printf("%c",*(input+j));
}
void main()
{
int j;
input=(char*)malloc(50*sizeof(char));
printf("\nEnter the string\n");
scanf("%s",input);
input=strcat(input,"$");
l=strlen(input);
strcpy(stack,"$");
printf("\nSTACK\tINPUT\tACTION");
while(i<=l)
{
shift();
printf("\n");
dispstack();
printf("\t");
dispinput();
printf("\tShift");
if(prec[getindex(stack[top])][getindex(input[i])]=='>')
{
while(reduce())
{
printf("\n");
dispstack();
printf("\t");
dispinput();
printf("\tReduced: E->%s",lasthandle);
}
}
}

if(strcmp(stack,"$E$")==0)
printf("\nAccepted;");
else
printf("\nNot Accepted;");
}

OUTPUT:

30
31

You might also like