• No results found

Programming in Ansi C_E. Balagurusamy

N/A
N/A
Protected

Academic year: 2021

Share "Programming in Ansi C_E. Balagurusamy"

Copied!
116
0
0

Loading.... (view fulltext now)

Full text

(1)

Scilab Textbook Companion for

Programming In Ansi C

by E. Balagurusamy

1

Created by

Devender Thakur

computer science

Computer Engineering

Shoolini University, Solan

College Teacher

Mr. Amit Nayyar

Cross-Checked by

October 7, 2013

1Funded by a grant from the National Mission on Education through ICT, http://spoken-tutorial.org/NMEICT-Intro. This Textbook Companion and Scilab

(2)

Book Description

Title: Programming In Ansi C

Author: E. Balagurusamy

Publisher: Tata McGraw - Hill Education, New Delhi

Edition: 4

Year: 2008

(3)

Scilab numbering policy used in this document and the relation to the above book.

Exa Example (Solved example)

Eqn Equation (Particular equation of the above book)

AP Appendix to Example(Scilab Code that is an Appednix to a particular Example of the above book)

For example, Exa 3.51 means solved example 3.51 of this book. Sec 2.3 means a scilab code whose theory is explained in Section 2.3 of the book.

(4)

Contents

List of Scilab Codes 4

1 Overview of C 7

2 Constants Variables and Data Types 11

3 Operators and Expressions 16

4 Managing Input and Output Operations 22

5 Decision Making and Branching 31

6 Decision Making and Looping 40

7 Arrays 51

8 Character Arrays and Strings 65

9 User Defined Functions 76

10 Structures and Unions 87

12 File Management in C 95

(5)

List of Scilab Codes

Exa 1.3 Printing a mesage . . . 7

Exa 1.4 Adding two numbers . . . 7

Exa 1.5 Interest Calculation . . . 8

Exa 1.6 Use of subroutines . . . 9

Exa 1.7 Use of math functions . . . 9

Exa 2.1 Representation of integer constants on a 16 bit computer 11 Exa 2.1cs Case study 1 avg of numbers . . . 12

Exa 2.2 typical declarations assignments and values stored in various types of variables . . . 12

Exa 2.2cs Case study temprature in Farenheit and Celsius. . . . 13

Exa 2.3 use of scanf function . . . 14

Exa 2.4 Interest calculation using scanf . . . 14

Exa 3.1 Use of integer arithmetic . . . 16

Exa 3.1cs case study 1 salesmans salary . . . 16

Exa 3.2 Sequence of squares of numbers . . . 17

Exa 3.2cs case study 2 solution of the quadratic equation . . . . 18

Exa 3.3 Different kind of operators. . . 18

Exa 3.4 Use of variables in expressions . . . 19

Exa 3.5 Round off errors . . . 20

Exa 3.6 Cast to evaluate the equation . . . 21

Exa 4.1 Use of getchar function . . . 22

Exa 4.1cs Case study 1 Inventory report. . . 23

Exa 4.2 Whether character is alphabet or digit or special char-acter. . . 24

Exa 4.2cs Case study 2 Reliability graph . . . 25

Exa 4.3 Print character in reverse case . . . 25

(6)

Exa 4.6 Reading of strings . . . 27

Exa 4.8 Testing for correctness . . . 28

Exa 4.9 Output of integer numbers . . . 29

Exa 4.10 Printing a real number. . . 29

Exa 4.11 Printing of character and strings . . . 30

Exa 5.1 Ratio . . . 31

Exa 5.1cs Case study 1 range of numbers . . . 32

Exa 5.2 counts the number of boys. . . 33

Exa 5.2cs Case study 2 Pay Bill Calculations . . . 33

Exa 5.3 Evaluate the power series . . . 35

Exa 5.4 Largest of the three numbers . . . 36

Exa 5.5 Reads the customer number and power consumed . . . 37

Exa 5.6 Loan applications and to sanction loans . . . 37

Exa 5.7 square root for five numbers . . . 38

Exa 6.1 evaluate the equation . . . 40

Exa 6.1cs Case study 1 Table of Binomial Coefficients . . . 40

Exa 6.2 Multiplication table . . . 42

Exa 6.2cs Case study 2 Histogram . . . 42

Exa 6.3 Uses a for loop . . . 43

Exa 6.3cs Case study 3 Minimum Cost . . . 44

Exa 6.4 Read the marks and print total marks . . . 45

Exa 6.4cs Case study 4 Plotting of two Functions . . . 46

Exa 6.5 Use of the break statement . . . 48

Exa 6.6 Evaluate the series . . . 48

Exa 6.7 Use of continue statement . . . 49

Exa 1.cs Case study 1 Median of list of numbers . . . 51

Exa 2.cs Case study 2 Calculation of standard deviation . . . . 52

Exa 3.cs Case study 3 Evaluating a Test . . . 53

Exa 4.cs Case study 4 Production and sales analysis . . . 54

Exa 7.1 Sum of squares of 10 numbers . . . 58

Exa 7.2 Count the number of students . . . 59

Exa 7.3 Compute and print . . . 60

Exa 7.4 Multiplication table . . . 62

Exa 7.5 Popularity of various cars . . . 62

Exa 1.cs Case study 1 Counting words in a text . . . 65

Exa 2.cs Case study 2 Processing of a customer list . . . 66

Exa 8.1 Read a series of words . . . 68

(7)

Exa 8.3 Copy one string into another . . . 69

Exa 8.4 Display the string under various format specifications . 69 Exa 8.5 Program using for loop . . . 70

Exa 8.6 Print the alphabet set a to z and A to Z . . . 71

Exa 8.7 Concatinate the three parts into one string . . . 72

Exa 8.8 Compare whether strings are equal . . . 73

Exa 8.9 Sort a list of names in alphabetical order . . . 74

Exa 1.cs Case study 1 Calculation of Area under a Curve . . . 76

Exa 9.1 Multiple functions . . . 77

Exa 9.2 Include arguments in function calls . . . 78

Exa 9.3 Return result . . . 79

Exa 9.4 Computes x raised to the power y . . . 80

Exa 9.5 Calculate standard deviation of an array values . . . . 81

Exa 9.6 Sort an array . . . 82

Exa 9.7 Autometic variables . . . 83

Exa 9.8 Global variables . . . 84

Exa 9.16 Factorial of a number using recursion. . . 85

Exa 1.cs Case study 1 Book Shop Inventory . . . 87

Exa 10.1 Define a structure type . . . 89

Exa 10.2 Comparison of structure variables . . . 90

Exa 10.3 Calculate the subject wise and student wise totals . . 91

Exa 10.4 Array member to represent the three subjects . . . 92

Exa 10.5 structure as a parameter to a function . . . 93

Exa 12.1 Read data from keyboard and write it to a file . . . . 95

Exa 12.2 Read and write odd and even numbers . . . 96

Exa 12.3 Read and write data to and from the file INVENTORY 98 Exa 12.4 Error handling in file operations . . . 99

Exa 12.5 use of function ftell or mtell and fseek or mseek . . . . 100

Exa 12.6 Append additional items to the file INVENTORY . . 102

Exa 1.cs Case study 1 Insertion in a sorted list . . . 104

Exa 2.cs Case study 2 Building a Sorted List . . . 107

Exa 13.3 Create a linear linked list . . . 109

Exa 13.4 Insert the item before the specified key node. . . 111

(8)

Chapter 1

Overview of C

Scilab code Exa 1.3 Printing a mesage

1 // Example 1 . 3

2 // SAMPLE PROGRAM 1 : PRINTING A MESSAGE

3 4 // P r i n t i n g B e g i n s 5 p r i n t f( ” I s e e , I remember ” ) // P r i n t i n g u s i n g p r i n t f ( ) f u n c t i o n 6 // P r i n t i n g e n d s 7 8 9 //We c a n a l s o p r i n t a m e s s a g e u s i n g d i s p ( ) f u n c t i o n i n s c i l a b 10 disp( ” I s e e , I remember ” ) // P r i n t i n g u s i n g d i s p ( ) f u n c t i o n

(9)

1 // Example 1 . 4

2 // SAMPLE PROGRAM 2 : ADDING TWO NUMBERS

3 4 n u m b e r = 1 0 0 ; 5 a m o u n t = 3 0 . 7 5 + 7 5 . 3 5 ; // A d d i t i o n o f two numbers 6 disp( n u m b e r ) ; // D i s p l a y v a l u e o f number v a r i a b l e 7 // D i s p l a y v a l u e o f amount i n f l o a t i n g p o i n t w i t h f i v e p l a c e s i n a l l and two p l a c e s t o t h e r i g h t o f d e c i m a l p o i n t 8 p r i n t f( ”%5 . 2 f ” , a m o u n t ) ;

Scilab code Exa 1.5 Interest Calculation

1 // Example 1 . 5

2 // SAMPLE PROGRAM 3 : INTEREST CALCULATION

3 4 P R I N C I P A L = 5 0 0 0 . 0 0 ; 5 P E R I O D =10; 6 // A s s i g n m e n t S t a t e m e n t s 7 a m o u n t = P R I N C I P A L ; 8 i n r a t e = 0 . 1 1 ; 9 year =0; 10 // C o m p u t a t i o n u s i n g w h i l e l o o p 11 w h i l e( year <= P E R I O D ) 12 p r i n t f( ”%2d %8 . 2 f \ n ” , year , a m o u n t ) ; 13 v a l u e = a m o u n t + i n r a t e * a m o u n t ; 14 year = year +1; 15 a m o u n t = v a l u e ; 16 end // End o f w h i l e l o o p

(10)

Scilab code Exa 1.6 Use of subroutines

1 // Example 1 . 6

2 // SAMPLE PROGRAM 4 : USE OF SUBROUTINES

3 4 // Program u s i n g f u n c t i o n 5 6 f u n c t i o n []= mul ( a , b ) // mul ( ) f u n c t i o n s t a r t s ( i . e . d e f i n i t i o n s t a r t s ) 7 y = a * b ; 8 p r i n t f( ” M u l t i p l i c a t i o n o f %d and %d i s %d” ,a ,b , y ) ; 9 e n d f u n c t i o n // mul ( ) f u n c t i o n e n d s 10 a =5; b =10; 11 // C a l l i n g mul ( ) f u n c t i o n 12 mul ( a , b )

Scilab code Exa 1.7 Use of math functions

1 // Example 1 . 7

2 // SAMPLE PROGRAM 5 : USE OF MATH FUNCTIONS

3 4 // Program u s i n g c o s i n e f u n c t i o n 5 a n g l e =0; MAX = 1 8 0 ; 6 p r i n t f( ” A n g l e Cos ( a n g l e ) \ n ” ) ; 7 w h i l e( angle <= MAX ) 8 x =( %pi / MAX ) * a n g l e ; 9 y =cos( x ) ; // Use o f c o s i n e f u n c t i o n

(11)

10 p r i n t f( ” %15d %13 . 4 f \ n ” , angle , y ) ;

11 a n g l e = a n g l e +10;

(12)

Chapter 2

Constants Variables and Data

Types

Scilab code Exa 2.1 Representation of integer constants on a 16 bit com-puter 1 // Example 2 . 1 2 // R e p r e s e n t a t i o n o f i n t e g e r c o n s t a n t s on a 16− b i t c o m p u t e r . 3 4 disp( ” I n t e g e r v a l u e s ” ) ; 5 // I n t e g e r v a l u e s l a r g e r t h a n 3 2 7 6 7 a r e n o t s t o r e d p r o p e r l y on 16− b i t m a c h i n e 6 p r i n t f( ”%d %d %d \ n ” ,i n t 1 6( 3 2 7 6 7 ) ,i n t 1 6( 3 2 7 6 7 + 1 ) , i n t 1 6( 3 2 7 6 7 + 1 0 ) ) ; 7 8 disp( ” Long i n t e g e r v a l u e s ” ) ; 9 // To s t o r e l o n g i n t e g e r s p r o p e r l y , u s e i n t 3 2 i n t e g e r t y p e 10 p r i n t f( ” %ld %ld %ld \ n ” ,i n t 3 2( 3 2 7 6 7 ) ,i n t 3 2( 3 2 7 6 7 + 1 ) , i n t 3 2( 3 2 7 6 7 + 1 0 ) ) ; 11 // The same r e s u l t a s f r o m a b o v e s t a t e m e n t c a n be a c h i e v e d d i r e c t l y f r o m b e l o w commented s t a t e m e n t 12 // p r i n t f ( ” %ld %ld %ld \ n ” , 3 2 7 6 7 , 3 2 7 6 7 + 1 , 3 2 7 6 7 + 1 0 ) ;

(13)

Scilab code Exa 2.1cs Case study 1 avg of numbers 1 // C a s e S t u d y : − C h a p t e r 2 Page No. −47 2 // 1 . C a l c u l a t i o n o f A v e r a g e o f numbers 3 4 N =10; sum1 =0; c o u n t =0; // I n i t i a l i z a t i o n o f v a r i a b l e s 5 p r i n t f( ” E n t e r t e n numbers ” ) ; 6 w h i l e( count < N ) 7 n u m b e r =s c a n f( ” %f ” ) ; // R e a d i n g number ( u s i n g s c a n f ( ) f u n c t i o n ) 8 sum1 = sum1 + n u m b e r ; 9 c o u n t = c o u n t +1; 10 end 11 a v e r a g e = sum1 / N ; // A v a r a g e i s c a l c u l a t e d 12 p r i n t f( ” N = %d Sum1 = %f ” ,N , sum1 ) ; 13 p r i n t f( ” A v e r a g e = %f ” , a v e r a g e ) ;

Scilab code Exa 2.2 typical declarations assignments and values stored in various types of variables

1 // Example 2 . 2

2 // Program s h o w s t y p i c a l d e c l a r a t i o n s , a s s i g n m e n t s and v a l u e s s t o r e d i n v a r i o u s t y p e s o f v a r i a b l e s .

(14)

6 n =i n t 3 2( 1 2 3 4 5 6 7 8 9 0 ) ; 7 k =u i n t 1 6( 5 4 3 2 1 ) ; 8 // A s s i g n m e n t s 9 x = 1 . 2 3 4 5 6 7 8 9 0 0 0 0 ; // B y d e f a u l t t y p e i s d o u b l e i n s c i l a b 10 y = 9 . 8 7 6 5 4 3 2 1 ; // −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− 11 p = 1 . 0 ; q = 1 . 0 ; 12 // P r i n t i n g 13 p r i n t f( ” m=%d\ n ” , m ) 14 p r i n t f( ” n=%ld \ n ” , n ) 15 p r i n t f( ” x=%. 1 2 f \ n ” , x ) 16 p r i n t f( ” x=%f \ n ” , x ) 17 p r i n t f( ” y=%. 1 2 f \ n ” , y ) 18 p r i n t f( ” y=%f \ n ” , y ) 19 p r i n t f( ” k=%u p=%f q=%. 1 2 f \ n ” ,k , p , q )

Scilab code Exa 2.2cs Case study temprature in Farenheit and Celsius

1 // C a s e S t u d y : − C h a p t e r 2 Page no . −48 2 // 2 . S o l u t i o n o f t e m p r a t u r e i n F a r e n h e i t and C e l s i u s 3 F _ L O W =0; 4 F _ M A X = 2 5 0 ; 5 STEP =25; 6 f a h r e n h e i t = F _ L O W ; // I n i t i a l i z a t i o n 7 p r i n t f( ” F a h r e n h e i t C e l s i u s \ n \ n ” ) ; 8 w h i l e( f a h r e n h e i t < = F _ M A X ) 9 c e l s i u s =( f a h r e n h e i t - 3 2 . 0 ) / 1 . 8 ; // c o n v e r s i o n f r o m F a r e n h e i t t o C e l s i u s 10 p r i n t f( ”%6 . 2 f %7 . 2 f \ n ” , fahrenheit , c e l s i u s ) ; 11 f a h r e n h e i t = f a h r e n h e i t + STEP ;

(15)

12 end

Scilab code Exa 2.3 use of scanf function

1 // Example 2 . 3 2 // The p r o g r a m i l l u s t r a t e t h e u s e o f s c a n f ( ) f u n c t i o n 3 disp( ” E n t e r an i n t e r g e r number : ” ) ; 4 n u m b e r =s c a n f( ”%d” ) ; // Read f r o m k e y b o a r d 5 if( number < 1 0 0 ) then

6 disp( ” Your number i s s m a l l e r t h a n 1 0 0 ” ) ;

7 else

8 disp( ” Your number c o n t a i n more t h a n two d i g i t s ” ) ;

9 end

Scilab code Exa 2.4 Interest calculation using scanf

1 // Example 2 . 4

2 // Sample p r o g r a m 3 ( exm1 . 5 ) d i s c u s s e d i n c h a p t e r 1 c a n be c o n v e r e d i n t o a more f l e x i b l e i n t r a c t i v e p r o g r a m u s i n g s c a n f ( ) f u n c t i o n

3 disp( ” E n t e r i n s i n g l e l i n e s e p a r t e d by s p a c e ” ) ;

4 disp( ” I n p u t amount , i n t e r e s t r a t e , and p e r i o d ” ) ;

5 [ amount , inrate , p e r i o d ]=s c a n f( ” %f %f %d” ) ; // u s e o f s c a n f ( )

(16)

9 v a l u e = a m o u n t + i n r a t e * a m o u n t ;

10 p r i n t f( ”%2d Rs %8 . 2 f \ n ” , year , v a l u e )

11 year = year +1;

12 a m o u n t = v a l u e ;

(17)

Chapter 3

Operators and Expressions

Scilab code Exa 3.1 Use of integer arithmetic

1 // Example 3 . 1 2 // The p r o g r a m s h o w s t h e u s e o f i n t e g e r a r i t h m e t i c t o c o n v e r t a g i v e n number− 3 // o f d a y s i n t o months and d a y s 4 5 days =i n p u t( ’ E n t e r d a y s : ’ ) ;

6 m o n t h s =i n t 1 6( days /30) ; // Compute f o r months

7 days =i n t 1 6(p m o d u l o( days ,30) ) ; // compute f o r d a y s

8 disp( days , ” Days =” , months , ” Months =” ) ;

Scilab code Exa 3.1cs case study 1 salesmans salary

1 // C a s e S t u d y : − C h a p t e r 3 , Page No : 7 6

2 // 1 . S a l e s m a n ’ s S a l a r y

(18)

6 B O N U S _ R A T E = 2 0 0 . 0 0 ; // Bonus f o r e v e r y c o m p u t e r s o l d 7 C O M M I S S I O N = 0 . 0 2 ; // C o m m i s s i o n on t o t a l m o n t h l y s a l e s 8 p r i n t f( ” I n p u t number s o l d and p r i c e \ n [ E n t e r i n s i n g l e l i n e s e p a r a t e d by s p a c e ] ” ) ; 9 [ quantity , p r i c e ] = s c a n f( ”%d %f ” ) ; // I n p u t q u a n t i t y and p r i c e 10 // C o m p u t a t i o n f o r bonus , c o m m i s s i o n and g r o s s s a l a r y o f a s a l e s m a n 11 b o n u s = B O N U S _ R A T E * q u a n t i t y ; 12 c o m m i s s i o n = C O M M I S S I O N * q u a n t i t y * p r i c e ; 13 g r o s s _ s a l a r y = B A S E _ S A L A R Y + b o n u s + c o m m i s s i o n ; 14 p r i n t f( ” Bonus = %6 . 2 f \ n ” , b o n u s ) ; 15 p r i n t f( ” C o m m i s s i o n = %6 . 2 f \ n ” , c o m m i s s i o n ) ; 16 p r i n t f( ” G r o s s s a l a r y = %6 . 2 f \ n ” , g r o s s _ s a l a r y ) ;

Scilab code Exa 3.2 Sequence of squares of numbers

1 // Example 3 . 2 2 // Program t o p r i n t a s e q u e n c e o f s q u a r e s o f numbers . 3 4 N = 1 0 0 ; A =2; 5 a = A ; 6 w h i l e( a < N ) 7 disp( a ) ; // P r i n t s s q u a r e o f number 8 a = a ^2; // compute s q u a r e o f number 9 end

(19)

Scilab code Exa 3.2cs case study 2 solution of the quadratic equation 1 // C a s e S t u d y : − C h a p t e r 3 , Page No : 7 7 2 // 2 . S o l u t i o n o f t h e Q u a d r a t i c e q u a t i o n 3 4 5 p r i n t f( ” I n p u t v a l u e s o f a , b , and c \ n ” ) ; 6 a =i n p u t( ” a =” ) ; 7 b =i n p u t( ” b =” ) ; 8 c =i n p u t( ” c =” ) ; 9 d i s c r i m i n a n t = b ^2 -4* a * c ; 10 if( d i s c r i m i n a n t <0)

11 p r i n t f( ” \ n \nROOTS ARE IMAGINARY\ n ” ) ;

12 else 13 // Computes r o o t 1 and r o o t 2 14 r o o t 1 = ( - b + sqrt( d i s c r i m i n a n t ) ) / ( 2 . 0 * a ) ; 15 r o o t 2 = ( - b - sqrt( d i s c r i m i n a n t ) ) / ( 2 . 0 * a ) ; 16 p r i n t f( ” \ n \ n R o o t 1 = %5 . 2 f \ n \ n R o o t 2 = %5 . 2 f \ n ” , root1 , r o o t 2 ) ; 17 end

Scilab code Exa 3.3 Different kind of operators

1 // Example 3 . 3

2 // The p r o g r a m e m p l o y s d i f f r e n t k i n d o f o p e r a t o r s . The r e s u l t s o f t h e i r e v a l u a t i o n a r e a l s o shown

(20)

4 // I n c r e m e n t ( i . e . ++)/ D e c r e m e n t (−−) o p e r a t o r s a r e u n a v a i l a b l e i n S c i l a b 5 a =i n t 1 6(15) ; 6 b =i n t 1 6(10) ; 7 a = a +1; // R e p l a c e m e n t f o r ++a 8 c = a - b ; 9 p r i n t f( ” a = %d b = %d c = %d\ n ” ,a , b , c ) ; 10 b = b +1; // R e p l a c e m e n t f o r b++ 11 d = b + a ; 12 p r i n t f( ” a = %d b = %d d = %d\ n ” ,a , b , d ) ; 13 p r i n t f( ” a / b = %d\ n ” , a / b ) ; // D i v i s i o n o p e r a t o r 14 p r i n t f( ” pmodulo ( a , b ) = %d\ n ” ,p m o d u l o( a , b ) ) ; // Modulus o p e r a t i o r 15 p r i n t f( ” a ∗ b = %d\ n ” , a * b ) ; // M u l t i p l i c a t i o n 16 // I n s c i l a b t h e r i s no c o n d i t i o n a l o p e r a t o r ( ? : ) , h e n c e ’ i f ’ c a n be u s e d i n p l a c e o f ? : 17 if( c > d ) then 18 disp(1) ; 19 end 20 if( c < d ) then 21 disp(0) ; 22 end

Scilab code Exa 3.4 Use of variables in expressions

1 // Example 3 . 4 2 // The p r o g r a m i l l u s t r a t e s t h e u s e o f v a r i a b l e s i n e x p r e s s i o n s and t h e i r e v a l u a t i o n . 3 4 a =9; b =12; c =3; 5 // E x p r e s s i o n s and t h e i r e v a l u a t i o n s

(21)

6 x = a - b /3+ c *2 -1; 7 y = a - b /(3+ c *(2 -1) ) ; 8 z = a -( b /(3+ c ) *2) -1; 9 10 p r i n t f( ” x=%f \ n ” , x ) 11 p r i n t f( ” y=%f \ n ” , y ) 12 p r i n t f( ” z=%f \ n ” , z ) 13 // d i s p c a n be u s e d . . 14 // d i s p ( x , ” x =”) 15 // d i s p ( y , ” y =”) 16 // d i s p ( z , ” z =”)

Scilab code Exa 3.5 Round off errors

1 // Example 3 . 5 2 // Output o f p r o g r a m s h o w s round− o f f e r r o r s t h a t c a n o c c u r i n c o m p u t a t i o n o f f l o a t i n g p o i n t numbers 3 4 //Sum o f n t e r m s o f 1/ n 5 c o u n t =1; 6 sum1 =0; 7 n =i n p u t( ” E n t e r v a l u e o f n : ” ) ; 8 term = 1 . 0 / n ; 9 w h i l e( count <= n )

10 sum1 = sum1 + term ;

11 c o u n t = c o u n t +1;

12 end

(22)

Scilab code Exa 3.6 Cast to evaluate the equation 1 // Example 3 . 6 2 // Program u s i n g a c a s t t o e v a l u a t e t h e e q u a t i o n . 3 4 sum1 =0; 5 for n =int8( 1 : 1 0 ) 6 sum1 = sum1 +1/d o u b l e( n ) ; // c o n v e r s i o n f r o m ’ i n t ’ t o ’ d o u b l e ’ o r ’ f l o a t ’ 7 p r i n t f( ”%2d %6 . 4 f \ n ” ,n , sum1 ) ; 8 end

(23)

Chapter 4

Managing Input and Output

Operations

Scilab code Exa 4.1 Use of getchar function

1 // Exaymple 4 . 1 2 // The p r o g r a m s h o w s t h e u s e o f g e t c h a r f u n c t i o n i n an i n t r a c t i v e e n v i r o n m e n t . 3 // I n S c i l a b i n p l a c e o f g e t c h a r f u n c t i o n s c a n f f u n c t i o n c a n be u s e d t o g e t 4 // c h a r a c t e r a s t h e r e i s no g e t c h a r f u n c t i o n i n S c i l a b . 5

6 disp( ” Would you l i k e t o know my name ? ” ) ;

7 disp( ” Type Y f o r YES and N f o r NO : ” ) ;

8 a n s w e r =s c a n f( ”%c” ) ; // R e a d i n g c h a r a c t e r

9 if ( a n s w e r == ’Y ’ ) |( a n s w e r == ’ y ’ ) then // T e s t f o r a n s w e r

10 disp( ”My name i s BUSY BEE” ) ;

11 else

(24)

Scilab code Exa 4.1cs Case study 1 Inventory report 1 // C a s e S t u d y : − C h a p t e r 4 , Page No : 1 0 6 2 // 1 . I n v e n t o r y R e p o r t 3 4 I T E M S =4; 5 i =1; 6 p r i n t f( ” [ E n t e r i n s i n g l e l i n e s e p e r a t e d be s p a c e s ] \ n ” ) ; 7 w h i l e( i <= 4) 8 p r i n t f( ” E n t e r c o d e , q u a n t i t y , and r a t e : ” ) ; 9 [ code ( i ) , q u a n t i t y ( i ) , rate ( i ) ]=s c a n f( ”%s %d %f ” ) ; 10 i = i +1; 11 end 12 p r i n t f( ”INVENTORY REPORT\ n ” ) ; 13 p r i n t f( ” −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−\n ” ) ; 14 p r i n t f( ” Code Q u a n t i t y Ra t e V a l u e \ n ” ) ; 15 p r i n t f( ” −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−\n ” ) ; 16 t o t a l _ v a l u e =0; 17 i =1; 18 w h i l e( i <= I T E M S ) 19 v a l u e = q u a n t i t y ( i ) * rate ( i ) ; 20 p r i n t f( ” %6s %10d %10 . 2 f %e\ n ” , code ( i ) , q u a n t i t y ( i ) , rate ( i ) , v a l u e ) ; 21 t o t a l _ v a l u e = t o t a l _ v a l u e + v a l u e ; 22 i = i +1;

(25)

23 end 24 p r i n t f( ” −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−\ n ” ) ; 25 p r i n t f( ” T o t a l V a l u e = %e\ n ” , t o t a l _ v a l u e ) ; 26 p r i n t f( ” −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−\ n ” ) ;

Scilab code Exa 4.2 Whether character is alphabet or digit or special char-acter 1 // Example 4 . 2 2 // The p r o g r a m r e q u e s t s t h e u s e r t o e n t e r a c h a r a c t e r and d i s p l a y a m e s s a g e on 3 // t h e s c r e e n t e l l i n g t h e u s e r w h e t h e r t h e c h a r a c t e r i s an a l p h a b e t o r d i g i t , 4 // o r any o t h e r s p e c i a l c h a r a c t e r . 5 6 disp( ” P r e s s any k e y ” ) ; 7 c h a r a c t e r =s c a n f( ”%c” ) ; // R e a d i n g c h a r a c t e r 8 if ( i s l e t t e r ( c h a r a c t e r ) ) then // T e s t f o r l e t t e r 9 disp( ” The c h a r a c t e r i s a l e t t e r ” ) ; 10 e l s e i f ( i s d i g i t ( c h a r a c t e r ) ) then // T e s t f o r d i g i t 11 disp( ” The c h a r a c t e r i s a d i g i t ” ) ; 12 else 13 disp( ” The c h a r a c t e r i s n o t a l p h a n u m e r i c ”

(26)

Scilab code Exa 4.2cs Case study 2 Reliability graph 1 // C a s e s t u d y : c h a p t e r 4 2 // 2 . R e l i a b i l i t y Graph 3 4 L A M B D A = 0 . 0 0 1 ; 5 for i = 1 : 2 7 6 p r i n t f( ”−−” ) ; 7 end 8 p r i n t f( ” \ n ” ) ; 9 for t = 0 : 1 5 0 : 3 0 0 0 10 r =exp( - L A M B D A * t ) ; 11 R =i n t 3 2(50* r + 0 . 5 ) ; 12 p r i n t f( ” | ” ) ; 13 for i =1: R 14 p r i n t f( ” ∗ ” ) ; 15 end 16 p r i n t f( ”#\n ” ) ; 17 end 18 for i =1:2 19 p r i n t f( ” | \ n ” ) ; 20 end

Scilab code Exa 4.3 Print character in reverse case

1 // Example 4 . 3

2 // A p r o g r a m t h a t r e a d s a c h a r a c t e r f r o m t h e k e y b o a r d and t h e n p r i n t i n r e v e r s e

(27)

3 // c a s e , t h a t i s , i f i n p u t i s i n u p p e r c a s e , t h e o u t p u t w i l l be l o w e r c a s e and v i c e −v e r s a 4 disp( ” E n t e r an a l p h a b e t ” ) ; 5 a l p h a b e t =s c a n f( ”%c” ) ; // R e a d i n g c h a r a c t e r 6 if((a s c i i( a l p h a b e t ) ) >=97) then

7 disp(c o n v s t r( alphabet , ” u ” ) ) ; // R e v e r s e and d i s p l a y

8 else

9 disp(c o n v s t r( alphabet , ” l ” ) ) ; // R e v e r s e and d i s p l a y

10 end

Scilab code Exa 4.4 Input formatting options

1 // Example 4 . 4 2 // The p r o g r a m i l l u s t r a t e s t h e v a r i o u s o p t i o n s f o r r e a d i n g 3 // i n t e g e r s a r e e x p e r i m e n t e d i n t h i s p r o g r a m 4 5 6 p r i n t f( ” E n t e r t h r e e i n t e g e r numbers \ n ” ) ; 7 [ n , a , b , c ]=m s c a n f( ”%d %∗ d %d” ) ; 8 disp( c , b , a ) ; 9 p r i n t f( ” E n t e r two 4− d i g i t numbers \ n ” ) ; 10 [ n , x , y ]=m s c a n f( ”%2d %4d” ) ; 11 p r i n t f( ’%d %d\ n ’ ,x , y ) ; 12 13 p r i n t f( ” E n t e r two i n t e g e r s \ n ” ) ; 14 [ n , a , x ]=m s c a n f( ”%d %d” ) ; 15 p r i n t f( ’%d %d\ n ’ ,a , x ) ;

(28)

18 [ n , p , q , r ]=m s c a n f( ”%3d %4d %3d” ) ; 19 p r i n t f( ’%d %d %d\ n ’ ,p , q , r ) ; 20 21 p r i n t f( ” E n t e r two t h r e e d i g i t numbers \ n ” ) ; 22 [ n , x , y ]=m s c a n f( ”%d %d” ) ; 23 p r i n t f( ’%d %d \ n ’ ,x , y ) ;

Scilab code Exa 4.5 Reading of real numbers

1 // Example 4 . 5 2 // R e a d i n g o f r e a l numbers ( i n b o t h d e c i m a l p o i n t and e x p o n e n t i a l n o t a t i o n 3 4 p r i n t f( ” V a l u e s o f x and y : ” ) ; 5 [ x , y ]=s c a n f( ” %f %e” ) ; // r e a d i n g x [ d e c i m a l p o i n t ] and y [ e x p o n e n t i a l ] f r o m s t a n d a r d i n p u t 6 p r i n t f( ” \ n ” ) ; 7 p r i n t f( ” x = %f \ ny = %f \ n ” ,x , y ) ; 8 p r i n t f( ” V a l u e s o f p and q : ” ) ; 9 [ p , q ]=s c a n f( ” %lg %lg ” ) ; 10 p r i n t f( ” \ np = %. 1 2 f \ nq = %. 1 2 e \ n ” ,p , q ) ;

Scilab code Exa 4.6 Reading of strings

1 // Example 4 . 6

2 // R e a d i n g o f s t r i n g s u s i n g %wc and %ws .

3

4 // s c a n f ( ) c a n o n l y r e a d o n e c h a r a c t e r a t a t i m e and r e t u r n i t t o name1 , t h e r e f o r e

(29)

5 // m s c a n f ( ) i s u s e d t h a t c a n r e a d more t h a n o n e c h a r a c t e r

6 p r i n t f( ” E n t e r s e r i a l number and name o n e : ” ) ;

7 [ n , no , n a m e 1 ]=m s c a n f( ”%d %15c ” ) ;

8 p r i n t f( ”%d %15s \ n ” , no , n a m e 1 ) ;

9

10 // Read and d i s p l a y a s t r i n g

11 p r i n t f( ” E n t e r s e r i a l number and name two : ” ) ;

12 [ no , n a m e 2 ]=s c a n f( ”%d %s” ) ;

13 p r i n t f( ”%d %15s \ n ” , no , n a m e 2 ) ;

14

15 // Read and d i s p l a y a s t r i n g o f w i d t h 15

16 p r i n t f( ” E n t e r s e r i a l number and name t h r e e : ” ) ;

17 [ no , n a m e 3 ]=s c a n f( ”%d %15s ” ) ;

18 p r i n t f( ”%d %15s ” , no , n a m e 3 ) ;

Scilab code Exa 4.8 Testing for correctness

1 // Example 4 . 8 2 // The p r o g r a m i l l u s t r a t e s t h e t e s t i n g f o r c o r r e c t n e s s o f r e a d i n g d a t a by s c a n f f u n c t i o n 3 4 // I n S c i l a b m s c a n f f u n c t i o n i s s i m i l a r t o s c a n f f u n c t i o n o f c 5 p r i n t f( ” E n t e r v a l u e s o f a , b and c ” ) ; 6 [ n , a , b , c ]=m s c a n f( ”%d %f %c” ) ; 7 if( n ==3) then // T e s t c o n d i t i o n 8 p r i n t f( ” a = %d b = %f c = %c” ,a , b , c ) ; 9 else 10 p r i n t f( ” E r r o r i n i n p u t . ” ) ; 11 end

(30)

Scilab code Exa 4.9 Output of integer numbers 1 // Example 4 . 9 2 // The p r o g r a m i l l u s t r a t e s t h e o u t p u t o f i n t e g e r numbers u n d e r v a r i o u s f o r m a t s 3 4 m =i n t 1 6( 1 2 3 4 5 ) ; // i n t e g e r v a r i a b l e m 5 n =i n t 3 2( 9 8 7 6 5 4 ) ; // i n t e g e r v a r i a b l e n 6 p r i n t f( ’%d\ n ’ , m ) ; 7 p r i n t f( ’ %10d \ n ’ , m ) ; 8 p r i n t f( ’ %010d \ n ’ , m ) ; 9 p r i n t f( ’%−10d \ n ’ , m ) ; 10 p r i n t f( ’ %10d \ n ’ , n ) ; 11 p r i n t f( ’ %10d \ n ’ ,- n ) ;

Scilab code Exa 4.10 Printing a real number

1 // Example 4 . 1 0 2 // The p r o g r a m i l l u s t r a t e s a l l t h e o p t i o n s o f p r i n t i n g a r e a l number . 3 4 y = 9 8 . 7 6 5 4 ; // r e a l number 5 // V a r i o u s o p t i o n s o f p r i n t i n g a r e a l number 6 p r i n t f( ’ %7 . 4 f \ n ’ , y ) ; 7 p r i n t f( ’ %f \ n ’ , y ) ; 8 p r i n t f( ’ %7 . 2 f \ n ’ , y ) ; 9 p r i n t f( ’%− 7 . 2 f \ n ’ , y ) ; 10 p r i n t f( ’ %07 . 2 f \ n ’ , y ) ;

(31)

11 p r i n t f( ’ %7 . 2 f \ n ’ , y ) ; 12 p r i n t f( ’ \ n ’ ) ; 13 p r i n t f( ’ %10 . 2 e \ n ’ , y ) ; 14 p r i n t f( ’ %12 . 4 e \ n ’ ,- y ) ; 15 p r i n t f( ’%− 1 0 . 2 e \ n ’ , y ) ; 16 p r i n t f( ’ %e\ n ’ , y ) ;

Scilab code Exa 4.11 Printing of character and strings

1 // Example 4 . 1 1

2 // The p r o g r a m i l l u s t r a t e s t h e p r i n t i n g o f c h a r a c t e r and s t r i n g s .

3

4 x = ’A ’ ; // x v a r i a b l e h a s c h a r a c t e r

5 name = ’ ANIL KUMAR GUPTA ’ ; // name v a r i a b l e h a s s t r i n g

6 disp( ”OUTPUT OF CHARACTERS” ) ;

7 p r i n t f( ’ %c\ n%3c \ n%5c \ n ’ ,x , x , x ) ;

8 p r i n t f( ’ %3c \n%c\ n ’ ,x , x ) ;

9 p r i n t f( ’ \ n ’ ) ;

10 disp( ”OUTPUT OF STRINGS” ) ; // d i s p c a n a l s o be u s e d f o r d i s p l a y 11 p r i n t f( ’ %s\ n ’ , name ) ; 12 p r i n t f( ’ %20s \ n ’ , name ) ; 13 p r i n t f( ’ %20 . 1 0 s \ n ’ , name ) ; 14 p r i n t f( ’%. 5 s \ n ’ , name ) ; 15 p r i n t f( ’%− 2 0 . 1 0 s \ n ’ , name ) ; 16 p r i n t f( ’ %5s \ n ’ , name ) ;

(32)

Chapter 5

Decision Making and Branching

Scilab code Exa 5.1 Ratio

1 // Example 5 . 1 2 // The p r o g r a m r e a d s f o u r v a l u e s a , b , c and d f r o m t h e t e r m i n a l and 3 // e v a l u a t e s t h e r a t i o o f ( a+b ) t o ( c+d ) and p r i n t s t h e r e s u l t , i f c−d 4 // i s n o t e q u a l t o z e r o 5 6 disp( ” E n t e r f o u r i n t e g e r v a l u e s ” ) ; 7 a =int8(i n p u t( ” a=” ) ) ; 8 b =int8(i n p u t( ” b=” ) ) ; 9 c =int8(i n p u t( ” c=” ) ) ; 10 d =int8(i n p u t( ” d=” ) ) ; 11 12 if( c - d ~= 0) then // E x e c u t e s t a t e m e n t b l o c k 13 r a t i o =d o u b l e( a + b ) /d o u b l e( c - d ) ; 14 p r i n t f( ” R a t i o=%f \ n ” , r a t i o ) ; 15 end

(33)

Scilab code Exa 5.1cs Case study 1 range of numbers 1 // C a s e S t u d y : − C h a p t e r 5 , Page No : 1 3 9 2 // 1 . Range o f numbers 3 4 sum1 =0; 5 c o u n t =0; 6 f =0; v a l u e =1; 7 p r i n t f( ” E n t e r n u m b e r s [ p r e s s e n t e r a f t e r e a c h number ] : \ n i n p u t a NEGATIVE number t o end \ n ” ) ;

8 w h i l e( v a l u e ) 9 [ v a l u e ]=s c a n f( ” %f ” ) ; // Read d a t a 10 if( value <0) then 11 b r e a k; 12 end 13 c o u n t = c o u n t +1; 14 // C a l c u l a t i n g h e i g h t and l o w e s t v a l u e 15 if( c o u n t ==1) then 16 high = v a l u e ; 17 low = v a l u e ;

18 e l s e i f( value > high ) then

19 high = v a l u e ;

20 e l s e i f( value < low ) then

21 low = v a l u e ; 22 end 23 // C a l c u l a t e sum 24 sum1 = sum1 + v a l u e ; 25 end 26 a v e r a g e = sum1 / c o u n t ; // A v e r a g e c o s t

27 r a n g e 1 = high - low ; // Range o f v a l u e s // P r i n t t h e r e s u l t s

(34)

30 p r i n t f( ” H i g h e s t −v a l u e s : %f \ n L o w e s t −v a l u e : %f \ n ” , high , low ) ;

31 p r i n t f( ” Range : %f \ n A v a r a g e : %f \ n ” , range1 , a v e r a g e ) ;

Scilab code Exa 5.2 counts the number of boys

1 // Example 5 . 2

2 // The p r o g r a m c o u n t s t h e number o f b o y s whose w e i g h t i s l e s s t h a n 50Kg 3 // and h e i g h t i s g r e a t e r t h a n 1 7 0 cm . 4 5 c o u n t =int(0) ; 6 disp( ” E n t e r w e i g h t and h e i g h t f o r 10 b o y s ” ) ; 7 for i = 1 : 1 0 8 [ weight , h e i g h t ]=s c a n f( ” %f %f ” ) ;

9 if( weight <50& height > 1 7 0 ) then // T e s t f o r w e i g h t and h e i g h t

10 c o u n t = c o u n t +1;

11 end

12 end

13 disp( ” Number o f b o y s w i t h w e i g h t <50 kg and h e i g h t >170 cm =” ) ;

14 disp( c o u n t )

Scilab code Exa 5.2cs Case study 2 Pay Bill Calculations

(35)

2 // 2 . Pay− B i l l C a l c u l a t i o n s 3 CA1 = 1 0 0 0 ; 4 CA2 = 7 5 0 ; 5 CA3 = 5 0 0 ; 6 CA4 = 2 5 0 ; 7 EA1 = 5 0 0 ; 8 EA2 = 2 0 0 ; 9 EA3 = 1 0 0 ; 10 EA4 =0; 11 l e v e l =1; 12 w h i l e( l e v e l ) 13 p r i n t f( ” E n t e r 0 [ z e r o ] f o r l e v e l t o end ” ) ; 14 // Read d a t a 15 l e v e l =i n p u t( ” E n t e r l e v e l : ” ) ; 16 if( l e v e l ==0) 17 b r e a k; 18 end

19 p r i n t f( ” E n t e r j o b number , and b a s i c pay \ n ” ) ;

20 // Read d a t a

21 [ j o b n u m b e r , b a s i c ]=s c a n f( ”%d %f ” ) ;

22 // D e c i d e l e v e l number and c a l c u l a t e p e r k s

23 s e l e c t l e v e l

24 case 1 then p e r k s = CA1 + EA1 ;

25 case 2 then p e r k s = CA2 + EA2 ;

26 case 3 then p e r k s = CA3 + EA3 ;

27 case 4 then p e r k s = CA4 + EA4 ;

28 else 29 p r i n t f( ” E r r o r i n l e v e l c o d e ” ) ; 30 r e t u r n; 31 end 32 33 h o u s e _ r e n t = 0 . 2 5 * b a s i c ; 34 // C a l c u l a t e g r o s s s a l a r y 35 g r o s s = b a s i c + h o u s e _ r e n t + p e r k s ; 36 // C a l c u l a t e i n c o m e t a x 37 if ( gross < = 2 0 0 0 ) then

(36)

40 i n c o m e t a x = 0 . 0 3 * g r o s s ; 41 e l s e i f( gross < = 5 0 0 0 ) 42 i n c o m e t a x = 0 . 0 5 * g r o s s ; 43 else 44 i n c o m e t a x = 0 . 0 8 * g r o s s ; 45 end 46 // Compute t h e n e t s a l a r y 47 net = gross - i n c o m e t a x ; 48 // P r i n t t h e r e s u l t s 49 p r i n t f( ”%d %d %. 2 f \ n ” , level , j o b n u m b e r , net ) ; 50 end

51 p r i n t f( ”END OF THE PROGRAM” ) ;

Scilab code Exa 5.3 Evaluate the power series

1 // Example 5 . 3 2 // A p r o g r a m t o e v a l u a t e t h e pow er s e r i e s . I t u s e s i f . . . e l s e t o t e s t a c c u r a c y . 3 // e ˆ x=1+x+x ˆ 2 / 2 ! + x ˆ 3 / 3 ! + +x ˆ n / n ! , 0 < x<1 4 5 A C C U R A C Y = 0 . 0 0 0 1 ; 6 x =i n p u t( ” E n t e r v a l u e o f x : ” ) ;

7 n =1; term =1; sum1 =1; c o u n t =int8(1) ;

8 w h i l e( n < = 1 0 0 )

9 term = term * x / n ;

10 sum1 = sum1 + term ;

11 c o u n t = c o u n t +1; 12 if( term < A C C U R A C Y ) then // T e s t f o r a c c u r a c y 13 n = 9 9 9 ; 14 else 15 n = n +1; 16 end 17 end 18 // P r i n t r e s u l t s

(37)

Scilab code Exa 5.4 Largest of the three numbers 1 // Example 5 . 4 2 // The p r o g r a m s e l e c t s and p r i n t s t h e l a r g e s t o f t h e t h r e e numbers 3 // u s i n g n e s t e d i f . . . e l s e s t a t e m e n t 4 5 disp( ” E n t e r t h r e e v a l u e s ” ) ; 6 A =i n p u t( ”A=” ) ; 7 B =i n p u t( ”B=” ) ; 8 C =i n p u t( ”C=” ) ; 9 disp( ” L a r g e s t v a l u e i s : ” ) ; 10 if( A > B ) , // T e s t f o r l a r g e s t b e t w e e n A &B 11 if( A > C ) , // T e s t f o r l a r g e s t b e t w e e n A &C 12 disp( A ) ; 13 else 14 disp( C ) ; 15 end 16 else 17 if( C > B ) , // T e s t f o r l a r g e s t b e t w e e n C& B 18 disp( C ) ; 19 else 20 disp( B ) ; 21 end 22 end

(38)

Scilab code Exa 5.5 Reads the customer number and power consumed

1 // Example 5 . 5

2 // The p r o g r a m r e a d s t h e c u s t o m e r number and po wer consumed and p r i n t s

3 // t h e amount t o be p a i d by t h e c u s t o m e r

4

5 disp( ” E n t e r CUSTOMER NO . and UNITS consumed ” ) ;

6 // Read d a t a 7 c u s t n u m =i n p u t( ”CUSTOMER NO . : ” ) ; 8 u n i t s =i n p u t( ”UNITS : ” ) ; 9 // Use o f e l s e . . . i f l a d d e r 10 // C a l c u l a t e s c h a r g e s 11 if( units < = 2 0 0 ) , 12 c h a r g e s = 0 . 5 * u n i t s ; 13 e l s e i f( units < = 4 0 0 ) , 14 c h a r g e s = 1 0 0 + 0 . 6 5 * ( units - 2 0 0 ) ; 15 e l s e i f( uints < = 6 0 0 ) , 16 c h a r g e s = 2 3 0 + 0 . 8 * ( units - 4 0 0 ) ; 17 else 18 c h a r g e s = 3 9 0 + ( units - 6 0 0 ) ; 19 end 20 // P r i n t r e s u l t s 21 p r i n t f( ” C u s t o m e r No : %d C h a r g e s=%. 2 f ” , custnum , c h a r g e s ) ;

(39)

1 // Example 5 . 6 2 // A p r o g r a m t o p r o c e s s l o a n a p p l i c a t i o n s and t o s a n c t i o n l o a n s . 3 4 M A X L O A N = 5 0 0 0 0 ; 5 disp( ” E n t e r t h e v a l u e s o f p r e v i o u s two l o a n s ” ) ; 6 l o a n 1 =i n t 3 2(i n p u t( ” E n t e r f i r s t l o a n : ” ) ) ; 7 l o a n 2 =i n t 3 2(i n p u t( ” E n t e r s e c o n d l o a n : ” ) ) ; 8 l o a n 3 =i n t 3 2(i n p u t( ” E n t e r t h e v a l u e s o f new l o a n : ” ) ) ; 9 s u m 2 3 = l o a n 2 + l o a n 3 ; 10 // C a l c u l a t e t h e s a n c t i o n l o a n 11 if( loan1 >0) , 12 s a n c l o a n =0; 13 e l s e i f( sum23 > M A X L O A N ) , 14 s a n c l o a n = MAXLOAN - l o a n 2 ; 15 else 16 s a n c l o a n = l o a n 3 ; 17 end 18 // P r i n t t h e r e s u l t s 19 p r i n t f( ” P r e v i o u s l o a n s p e n d i n g : %d %d\ n ” , loan1 , loan2 ) ; 20 p r i n t f( ” Loan r e q u e s t e d =%d\ n ” , loan3 ) ; 21 p r i n t f( ” Loan s a n c t i o n e d =%d\ n ” , sa nc lo an ) ;

Scilab code Exa 5.7 square root for five numbers

1 // Example 5 . 7

2 // The p r o g r a m e v a l u a t e s t h e s q u a r e r o o t f o r f i v e numbers .

3

(40)

7 x =s c a n f( ” %f ” ) ; 8 if( x <0) then 9 p r i n t f( ” V a l u e − %d i s n e g a t i v e \ n ” , count ) ; 10 else 11 y =sqrt( x ) ; // C a l c u l a t e s q u a r e r o o t 12 p r i n t f( ” %f \ t % f \ n ” ,x , y ) ; // P r i n t r e s u l t 13 end 14 c o u n t = c o u n t +1; 15 end 16 p r i n t f( ” End o f c o m p u t a t i o n ” ) ;

(41)

Chapter 6

Decision Making and Looping

Scilab code Exa 6.1 evaluate the equation

1 // Example 6 . 1

2 //A p r o g r a m t o e v a l u a t e t h e e q u a t i o n y=x ˆ n when n i s a non−n e g a t i v e i n t e g e r . 3 4 x =i n p u t( ” E n t e r t h e v a l u e o f x : ” ) ; 5 n =i n p u t( ” E n t e r t h e v a l u e o f n : ” ) ; 6 y = 1 . 0 ; c o u n t =1; // i n t i a l i z a t i o n 7 // Loop b e g i n s 8 w h i l e( count <= n ) // T e s t i n g 9 y = y * x ; 10 c o u n t = c o u n t +1; // I n c r e a m e n t i n g 11 end 12 // End o f l o o p 13 p r i n t f( ” x = %f ; n = %d ; x t o pow er n = %f \ n ” ,x ,n , y ) ;

(42)

1 // C a s e S t u d y : − C h a p t e r 6 , Page No : 1 7 6 2 // 1 . T a b l e o f B i n o m i a l C o e f f i c i e n t s 3 4 MAX =10; 5 p r i n t f( ”mx” ) ; 6 for m = 0 : 1 0 7 p r i n t f( ”%4d” , m ) ; 8 end 9 p r i n t f( ” \n −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−\n ” ) ; 10 m =0; 11 // p r i n t t h e t a b l e o f b i n o m i a l c o e f f i c i e n t s f o r m=10 12 // C o m p u t a t i o n u s i n g w h i l e l o o p 13 w h i l e( m <= MAX ) 14 p r i n t f( ”%2d” , m ) ; 15 x =0; 16 b i n o m =1; 17 w h i l e( x <= m ) 18 if( m ==0| x ==0) 19 p r i n t f( ”%4d” , b i n o m ) ; // P r i n t t h e r e s u l t i . e . binom 20 else 21 b i n o m = b i n o m *( m - x +1) / x ; // compute t h e b i n o m i a l c o e f f i c i e n t 22 p r i n t f( ”%4d” , b i n o m ) ; // P r i n t t h e r e s u l t i . e . binom 23 end 24 x = x +1; 25 end 26 p r i n t f( ” \ n ” ) ; 27 m = m +1; 28 end 29 p r i n t f( ” −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−\n ” ) ;

(43)

Scilab code Exa 6.2 Multiplication table 1 // Example 6 . 2 2 //A p r o g r a m t o p r i n t m u l t i p l i c a t i o n t a b l e f r o m 1 ∗ 1 t o 1 2 ∗ 1 0 . 3 4

5 disp( ” MULTIPLICATION TABLE ” ) ;

6 disp( ”−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−” ) ; 7 row =1; 8 w h i l e( row < = 1 2 ) // O u t e r l o o p b e g i n s 9 c o l u m n =1; 10 w h i l e( column < = 1 0 ) // I n n e r l o o p b e g i n s 11 y = row * c o l u m n ; 12 p r i n t f( ”%4d” , y ) ; 13 c o l u m n = c o l u m n +1; 14 end 15 row = row +1; 16 p r i n t f( ” \ n ” ) ; 17 end

Scilab code Exa 6.2cs Case study 2 Histogram

1 // C a s e S t u d y : − C h a p t e r 6

2 // 2 . H i s t o g r a m

(44)

6 p r i n t f( ” E n t e r e m p l o y e e s i n Group−%d : ” ,n ) ; 7 v a l u e ( n ) =s c a n f( ”%d” ) ; // Read d a t a i n t h e a r r a y named v a l u e 8 p r i n t f( ”%d\ n ” , v a l u e ( n ) ) ; // P r i n t number w h i c h i s a t p o s i t i o n n 9 end 10 p r i n t f( ” \ n ” ) ; 11 p r i n t f( ” | \ n ” ) ; 12 // C o m p u t a t i o n u s i n g f o r l o o p and draw a h i s t o g r a m 13 for n =1: N 14 for i =1:3 15 if( i ==2) then 16 p r i n t f( ” Group−%1d | ” , n ) ; 17 else 18 p r i n t f( ” | ” ) ; 19 end 20 for j =1: v a l u e ( n ) 21 p r i n t f( ” ∗ ” ) ; 22 end 23 if( i ==2) 24 p r i n t f( ” (%d) \ n ” , v a l u e ( n ) ) ; 25 else 26 p r i n t f( ” \ n ” ) ; 27 end 28 end 29 p r i n t f( ” | \ n ” ) ; 30 end

Scilab code Exa 6.3 Uses a for loop

1 // Example 6 . 3

2 // The p r o g r a m u s e s a f o r l o o p t o p r i n t t h e ” Power o f 2” t a b l e f o r t h e

(45)

3 // po we r 0 t o 2 0 , b o t h p o s i t i v e and n e g a t i v e . 4 5 disp( ”−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−” ) ; 6 p r i n t f( ” 2 t o p o w e r n n 2 t o po we r −n \ n ” ) ; 7 disp( ”−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−” ) ; 8 for n = 0 : 2 0 // Loop b e g i n s 9 p =2^ n ; 10 q =2^ - n ; 11 p r i n t f( ”%7d %9d %10 . 1 2 f \ n ” ,p ,n , q ) ; 12 end // Loop e n d s

Scilab code Exa 6.3cs Case study 3 Minimum Cost

1 // C a s e S t u d y : − C h a p t e r 6 2 // 3 . Minimum C o s t 3 4 for p = 0 : 0 . 1 : 1 0 5 cost =48 -8* p + p ^2; 6 if( p ==0) , 7 c o s t 1 = cost ; 8 c o n t i n u e ; // Use o f c o n t i n u e s t a t e m e n t 9 end 10 11 if( cost >= c o s t 1 ) , 12 b r e a k; // Use o f b r e a k s t a t e m e n t 13 end 14 c o s t 1 = cost ; 15 p1 = p ; 16 end 17 p =( p + p1 ) / 2 . 0 ;

(46)

20 p r i n t f( ”MINIMUM COST=%. 2 f AT p=%. 1 f \ n ” , cost , p ) ;

Scilab code Exa 6.4 Read the marks and print total marks

1 // Example 6 . 4

2 //A c l a s s o f n s t u d e n t s t a k e an a n n u a l e x a m i n a t i o n i n m s u b j e c t s .

3 // A p r o g r a m t o r e a d t h e marks o b t a i n e d by e a c h s t u d e n t i n v a r i o u s s u b j e c t s

4 // and t o c o m p a r e and p r i n t t h e t o t a l marks o b t a i n e d by e a c h o f them .

5

6 F I R S T = 3 6 0 ; S E C O N D = 2 4 0 ;

7 disp( ” E n t e r number o f s t u d e n t s and s u b j e c t s ” ) ;

8 [ n , m ]=s c a n f( ”%d %d” ) ; 9 for i =1: n 10 r o l l _ n u m b e r =i n p u t( ” E n t e r r o l l n u m b e r : ” ) ; 11 t o t a l =0; 12 p r i n t f( ” E n t e r marks o f %d s u b j e c t s f o r ROLL NO %d” ,m , r o l l _ n u m b e r ) ; 13 p r i n t f( ” [ E n t e r e a c h i n n e w l i n e ] ” ) ; 14 for j =1: m 15 m a r k s =s c a n f( ”%d” ) ; 16 t o t a l = t o t a l + m a r k s ; // Compute t h e t o t a l 17 end 18 // p r i n t t h e t o t a l marks 19 p r i n t f( ”TOTAL MARKS =%d” , t o t a l ) ; 20 // T e s t f o r d i v i s i o n and d i s p l a y i t 21 if( total >= F I R S T ) , 22 disp( ” F i r s t D i v i s i o n ” ) ; 23 e l s e i f( total >= S E C O N D ) 24 disp( ” S e c o n d D i v i s i o n ” ) ; 25 else

(47)

26 disp( ” ∗ ∗ ∗F A I L ∗ ∗ ∗ ” )

27 end

28 end

Scilab code Exa 6.4cs Case study 4 Plotting of two Functions

1 // C a s e S t u d y : − C h a p t e r 6 2 // 4 . P l o t t i n g o f two F u n c t i o n s i . e . y1=e x p (− ax ) and y2=e x p (− ax ˆ 2 / 2 ) 3 4 a = 0 . 4 ; 5 p r i n t f( ” y−−−−−−−> \ n ” ) ; 6 p r i n t f( ” 0 −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−\ n ” ) ; 7 for x = 0 : 0 . 2 5 : 4 8 // E v a l u a t i o n o f f u n c t i o n s 9 y1 =i n t 3 2(50*exp( - a * x ) + 0 . 5 ) ; 10 y2 =i n t 3 2(50*exp( - a *( x ^2) /2) + 0 . 5 ) ; 11 // p l o t t i n g when y1=y2 12 if( y1 == y2 ) , 13 if( x = = 2 . 5 ) , 14 p r i n t f( ” x | ” ) ; 15 else 16 p r i n t f( ” | ” ) ; 17 end 18 for i =1:( y1 -1) 19 p r i n t f( ” ” ) ; 20 end 21 p r i n t f( ”#\n ” ) ;

(48)

24 25 // P l o t t i n g when y1>y2 26 if( y1 > y2 ) , 27 if( x = = 2 . 5 ) , 28 p r i n t f( ” x | ” ) ; 29 else 30 p r i n t f( ” | ” ) ; 31 end 32 for i =1: y2 -1 33 p r i n t f( ” ” ) ; 34 end 35 p r i n t f( ” ∗ ” ) ; 36 for i =1:( y1 - y2 -1) 37 p r i n t f( ”−” ) ; 38 end 39 p r i n t f( ” 0\ n ” ) ; 40 c o n t i n u e ; 41 end 42 43 // P l o t t i n g when y2>y1 44 if( y2 > y1 ) , 45 if( x = = 2 . 5 ) 46 p r i n t f( ” x | ” ) ; 47 else 48 p r i n t f( ” | ” ) ; 49 end 50 for i =1:( y1 -1) 51 p r i n t f( ” ” ) ; 52 end 53 p r i n t f( ” 0 ” ) ; 54 for i =1:( y2 - y1 -1) 55 p r i n t f( ”−” ) ; 56 end 57 p r i n t f( ” ∗\ n ” ) ; 58 end 59 end 60 p r i n t f( ” | \ n ” ) ;

(49)

Scilab code Exa 6.5 Use of the break statement 1 // Example 6 . 5 2 // Program i l l u s t r a t e u s e o f t h e b r e a k s t a t e m e n t 3 4 disp( ” T h i s p r o g r a m c o m p u t e s t h e a v a r a g e o f s e t o f numbers ” ) ;

5 disp( ” E n t e r v a l u e s and e n t e r a NEGATIVE v a l u e a t t h e end ” ) ;

6 sum1 =0;

7 for m = 1 : 1 0 0 0

8 x =s c a n f( ” %f ” ) ; // Read d a t a

9 if( x <0) then

10 b r e a k; //EXIT FROM LOOP

11 end

12 sum1 = sum1 + x ; // Computes sum

13 end 14 a v e r a g e = sum1 /( m -1) ; // Computes A v e r a g e 15 // P r i n t t h e r e s u l t s 16 p r i n t f( ” Number o f v a l u e s =%d\ n ” ,m -1) ; 17 p r i n t f( ” sum1=%f \ n ” , sum1 ) ; 18 p r i n t f( ” A v a r a g e =%f \ n ” , a v e r a g e ) ;

Scilab code Exa 6.6 Evaluate the series

(50)

4

5 x =i n p u t( ” I n p u t v a l u e o f x : ” ) ; // Read v a l u e o f x

6 LOOP = 1 0 0 ; A C C U R A C Y = 0 . 0 0 0 1 ; // I n i t i a l i z a t i o n

7 sum1 =0; term =1; flag =0;

8 // C o m p u t a t i o n u s i n g f o r l o o p

9 for n =1: LOOP

10 sum1 = sum1 + term ;

11 if( term <= A C C U R A C Y ) then // T e s t f o r a c c u r a c y 12 flag =1; 13 b r e a k; 14 end 15 term = term * x ; 16 17 end 18 // P r i n t t h e r e s u l t s 19 if( flag ==1) then

20 p r i n t f( ” EXIT FROM LOOP\ n ” ) ;

21 p r i n t f( ” Sum =%f ; No . o f t e r m s =%d” , sum1 , n ) ;

22 else

23 disp( ”FINAL VALUE OF N I S NOT SUFFICIENT TO ACHIEVE DESIRED ACCURCY” ) ;

24 end

Scilab code Exa 6.7 Use of continue statement

1 // Example 6 . 7 2 // The p r o g r a m i l l u s t r a t e t h e u s e o f c o n t i n u e s t a t e m e n t 3 4 disp( ” E n t e r 9 9 9 9 t o STOP” ) ; 5 c o u n t =0; 6 n e g a t i v e =0; 7 w h i l e( count < = 1 0 0 )

(51)

8 n u m b e r =i n p u t( ” E n t e r a number : ” ) ;

9 if( n u m b e r = = 9 9 9 9 ) then

10 b r e a k; //EXIT FROM THE LOOP

11 end

12 if( number <0) ,

13 disp( ” Number i s n e g a t i v e ” ) ;

14 n e g a t i v e = n e g a t i v e +1;

15 c o n t i n u e ; // SKIP REST OF LOOP

16 end

17 s q r o t =sqrt( n u m b e r ) ; //COMPUTE SQUARE ROOT

18 p r i n t f( ” Number = %f \ n ” , n u m b e r ) ; 19 p r i n t f( ” S q u a r e r o o t = %f ” , sqrot ) ; 20 c o u n t = c o u n t +1; 21 end 22 //PRINT RESULTS 23 p r i n t f( ” Number o f i t e m s d o n e = %d\ n ” , count ) ; 24 p r i n t f( ” N e g a t i v e i t e m s = %d\ n ” , ne ga ti ve ) ;

(52)

Chapter 7

Arrays

Scilab code Exa 1.cs Case study 1 Median of list of numbers

1 // C a s e S t u d y : C h a p t e r 7 , Page No : 2 1 0 2 // 1 . Median o f l i s t o f numbers 3 4 N =10; 5 disp( ” E n t e r t h e number o f i t e m s ” ) ; 6 n =s c a n f( ”%d” ) ; 7 // R e a d i n g i t e m s i n t o a r r a y a 8 p r i n t f( ” I n p u t %d v a l u e s [ One a t a t i m e ] \ n ” , n ) ; 9 for i =1: n 10 a ( i ) =s c a n f( ” %f ” ) ; 11 end 12 // S o r t i n g b e g i n s 13 for i =1: n -1 14 for j =1: n - i 15 if( a ( j ) <= a ( j +1) ) 16 t = a ( j ) ; 17 a ( j ) = a ( j +1) ; 18 a ( j +1) = t ; 19 else 20 c o n t i n u e ; 21 end

(53)

22 end 23 end // s o r t i n g e n d s 24 // C a l c u l a t i o n o f median 25 if( n / 2 = = 0 ) then 26 m e d i a n 1 =( a ( n /2) + a ( n / 2 + 1 ) ) / 2 . 0 ; 27 else 28 m e d i a n 1 = a ( n / 2 + 1 ) ; 29 end 30 // P r i n t i n g 31 for i =1: n 32 p r i n t f( ” %f ” ,a ( i ) ) ; 33 end 34 p r i n t f( ” \ nMedian i s %f \ n ” , median1 ) ;

Scilab code Exa 2.cs Case study 2 Calculation of standard deviation

1 // C a s e S t u d y : C h a p t e r −7 2 // 2 . C a l c u l a t i o n o f s t a n d a r d d e v i a t i o n 3 4 M A X S I Z E = 1 0 0 ; 5 sum1 =0; n =0; s u m s q r =0; 6 disp( ” I n p u t v a l u e s : i n p u t −1 t o end ” ) ; 7 for i =1: M A X S I Z E 8 v a l u e ( i ) =s c a n f( ” %f ” ) ; // E n t e r i n g v a l u e s i n t h e a r r a y named v a l u e 9 if( v a l u e ( i ) == -1) 10 b r e a k; 11 end 12 sum1 = sum1 + v a l u e ( i ) ; 13 n = n +1; 14 end

(54)

17 d e v i a t i o n = v a l u e ( i ) - m e a n 1 ; 18 s u m s q r = s u m s q r + d e v i a t i o n ^2; 19 end 20 v a r i a n c e 1 = s u m s q r / n ; 21 s t d d e v i a t i o n =sqrt( v a r i a n c e 1 ) ; // Computes s t a n d a r d d e v i a t i o n 22 // P r i n t i n g i t e m s , Mean and S t a n d a r d d e v i a t i o n 23 p r i n t f( ” Number o f i t e m s : %d\ n ” ,n ) ; 24 p r i n t f( ” Mean : %f \ n ” , m e a n 1 ) ; 25 p r i n t f( ” S t a n d a r d d e v i a t i o n : %f \ n ” , s t d d e v i a t i o n ) ;

Scilab code Exa 3.cs Case study 3 Evaluating a Test

1 // C a s e S t u d y : C h a p t e r −7 2 // 3 . E v a l u a t i n g a T e s t 3 4 S T U D E N T S =3; 5 I T E M S =5; 6 // R e a d i n g o f c o r r e c t a n s w e r s 7 p r i n t f( ” I n p u t k e y t o t h e i t e m s \ n ” ) ; 8 for i =1: I T E M S

9 key ( i ) =read( %io (1) ,1 ,1 , ’ ( a ) ’ ) ; // Read d a t a u s i n g r e a d f u n c t i o n 10 // k e y ( i )=s c a n f ( ” %c ” ) ; I t c a n be u s e d t o r e a d d a t a 11 end 12 // E v a l u a t i o n b e g i n s 13 14 for s t u d e n t =1: S T U D E N T S 15 // R e a d i n g s t u d e n t s r e s p o n s e s and c o u n t i n g c o r r e c t o n e s 16 c o u n t =0; 17 p r i n t f( ” \ n I n p u t r e s p o n s e s o f s t u d e n t −%d” , student

(55)

) ; 18 for i =1: I T E M S 19 r e s p o n s e ( i ) =s c a n f( ”%c” ) ; 20 end 21 c o r r e c t =z e r o s(1 , I T E M S ) 22 // Commented c o d e c a n be u s e d t o r e p l a c e a b o v e l i n e i . e . c o r r e c t =z e r o s ( 1 , ITEMS ) 23 // f o r i =1:ITEMS 24 // c o r r e c t ( i ) =0; 25 // end 26 for i =1: I T E M S 27 if( r e s p o n s e ( i ) == key ( i ) ) then 28 c o u n t = c o u n t +1; 29 c o r r e c t ( i ) =1; 30 end 31 end 32 // P r i n t i n g o f r e s u l t s 33 p r i n t f( ” S t u d e n t −%d\ n ” , s t u d e n t ) ; 34 p r i n t f( ” S c o r e i s %d o u t o f %d\ n ” , count , ITEMS ) ; 35 p r i n t f( ” R e s p o n s e t o t h e i t e m s b e l o w a r e wrong \ n ” ) ; 36 n =0; 37 for i =1: I T E M S 38 if( c o r r e c t ( i ) ==0) 39 p r i n t f( ” %d” ,i ) ; 40 n = n +1; 41 end 42 end 43 if( n ==0) then 44 p r i n t f( ” NIL \ n ” ) ; 45 end 46 end

(56)

Scilab code Exa 4.cs Case study 4 Production and sales analysis 1 // C a s e S t u d y : C h a p t e r −7 2 // 4 . P r o d u c t i o n and s a l e s a n a l y s i s 3 4 // I n p u t Data 5 disp( ” E n t e r p r o d u c t s m a n u f a c t u r e d w e e k w i s e ” ) ; 6 disp( ”M11 , M12, − − ,M21 , M22,−− e t c ” ) ; 7 for i =1:2 8 for j =1:5 9 M ( i , j ) =s c a n f( ”%d” ) ; 10 end 11 end 12 disp( ” E n t e r p r o d u c t s s o l d w e e k w i s e ” ) ; 13 disp( ” S11 , S12 , − − , S21 , S22 ,−− e t c ” ) ; 14 for i =1:2 15 for j =1:5 16 S ( i , j ) =s c a n f( ”%d” ) ; 17 end 18 end 19 disp( ” E n t e r c o s t o f e a c h p r o d u c t ” ) ; 20 for j =1:5 21 C ( j ) =s c a n f( ”%d” ) ; 22 end 23 // V a l u e s m a t r i c e s o f p r o d u c t i o n and s a l e s 24 for i =1:2 25 for j =1:5 26 M v a l u e ( i , j ) = M ( i , j ) * C ( j ) ; 27 S v a l u e ( i , j ) = S ( i , j ) * C ( j ) ; 28 end 29 end 30 // T o t a l v a l u e o f w e e k l y p r o d u c t i o n and s a l e s 31 for i =1:2 32 M w e e k ( i ) =0; 33 S w e e k ( i ) =0; 34 for j =1:5 35 M w e e k ( i ) = M w e e k ( i ) + M v a l u e ( i , j ) ; 36 S w e e k ( i ) = S w e e k ( i ) + S v a l u e ( i , j ) ;

(57)

37 end 38 end 39 // Monthly v a l u e o f p r o d u c t w i s e p r o d u c t i o n and s a l e s 40 for j =1:5 41 M p r o d u c t ( j ) =0; 42 S p r o d u c t ( j ) =0; 43 for i =1:2 44 M p r o d u c t ( j ) = M p r o d u c t ( j ) + M v a l u e ( i , j ) ; 45 S p r o d u c t ( j ) = S p r o d u c t ( j ) + S v a l u e ( i , j ) ; 46 end 47 end 48 // Grand t o t a l o f p r o d u c t i o n and s a l e s v a l u e s 49 M t o t a l =0; S t o t a l =0; 50 for i =1:2 51 M t o t a l = M t o t a l + M w e e k ( i ) ; 52 S t o t a l = S t o t a l + S w e e k ( i ) ; 53 end 54 55 // ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ 56 // S e l e c t i o n and p r i n t i n g o f i n f o r m a t i o n r e q u i r e d 57 // ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ 58 disp( ” F o l l o w i n g i s t h e l i s t o f t h i n g s you r e q u e s t f o r ” ) ;

59 disp( ” E n t e r a p p r o p r i a t e number and p r e s s r e t u r n k e y ” ) ; 60 61 disp( ” 1 . V a l u e m a t r i c e s o f p r o d u c t i o n and s a l e s ” ) ; 62 disp( ” 2 . T o t a l v a l u e o f w e e k l y p r o d u c t i o n and s a l e s ” ) ; 63 disp( ” 3 . P r o d u c t i o n w i s e m o n t h l y v a l u e o f p r o d u c t i o n and s a l e s ” ) ;

64 disp( ” 4 . Grand t o t a l v a l u e o f p r o d u c t i o n and s a l e s ” ) ;

65 disp( ” 5 . E x i t ” )

66

67 n u m b e r =0;

(58)

71 if( n u m b e r ==5) then

72 disp( ” Good Bye ” ) ;

73 b r e a k;

74 end

75 s e l e c t n u m b e r

76 // V a l u e M a t i c e s

77 case 1 then

78 disp( ”VALUE MATRIX OF PRODUCTION” ) ;

79 for i =1:2 80 p r i n t f( ”Week (%d) \ t ” , i ) ; 81 for j =1:5 82 p r i n t f( ”%7d” , M v a l u e ( i , j ) ) ; 83 end 84 p r i n t f( ” \ n ” ) ; 85 end

86 disp( ”VALUE MATRIX OF SALES” ) ;

87 for i =1:2 88 p r i n t f( ”Week (%d) \ t ” , i ) ; 89 for j =1:5 90 p r i n t f( ”%7d” , S v a l u e ( i , j ) ) ; 91 end 92 p r i n t f( ” \ n ” ) ; 93 end 94 // Weekly A n a l y s i s 95 case 2 then

96 disp( ”TOTAL WEEKLY PRODUCTION AND SALES” ) ;

97 disp( ” PRODUCTION SALES” ) ;

98 disp( ” −−−−−−−−−− −−−−−−” ) ; 99 for i =1:2 100 p r i n t f( ”Week (%d) \ t ” , i ) ; 101 p r i n t f( ”%7d\ t%9d \ n ” , M w e e k ( i ) , S w e e k ( i ) ) ; 102 end 103 // P r o d u c t w i s e A n a l y s i s 104 case 3 then

105 disp( ”PRODUCTWISE TOTAL PRODUCTION AND SALES ” ) ;

106 disp( ” PRODUCTION SALES” ) ;

(59)

108 for i =1:5 109 p r i n t f( ” P r o d u c t (%d) \ t ” , i ) ; 110 p r i n t f( ”%7d\ t%7d \ n ” , M p r o d u c t ( i ) , S p r o d u c t ( i ) ) ; 111 end 112 // Grand T o t a l s 113 case 4 then

114 disp( ”GRAND TOTAL OF PRODUCTION AND SALES” ) ;

115 p r i n t f( ” T o t a l p r o d u c t i o n = %d\ n ” , Mtotal ) ; 116 p r i n t f( ” T o t a l s a l e s = %d\ n ” , Stotal ) ; 117 // D e f a u l t 118 else 119 p r i n t f( ” Wrong c h o i c c e , s e l e c t a g a i n \ n ” ) ; 120 end // End o f s e l e c t 121 end // End o f w h i l e 122 disp( ” E x i t f r o m t h e p r o g r a m ” ) ;

Scilab code Exa 7.1 Sum of squares of 10 numbers

1 // Example : 7 . 1

2 // W r i t e a p r o g r a m u s i n g s i n g l e −s u b s c r i p t e d v a r i a b l e t o e v a l u a t e :

3 // sum o f s q u a r e s o f 10 numbers . The v a l u e s x1 , x2 , . . . a r e r e a d f r o m t h e t e r m i n a l .

4

5 // R e a d i n g v a l u e s i n t o a r r a y

6 disp( ”ENTER 1 0 REAL NUMBERS [ Each i n n e w l i n e ] ” ) ;

7 t o t a l =0;

8 for i = 1 : 1 0

9 x ( i ) =i n p u t( ” ” ) ;

(60)

13 for i = 1 : 1 0

14 p r i n t f( ” x ( %2d ) =%5 . 2 f \ n ” ,i , x ( i ) ) ;

15 end

16 p r i n t f( ” T o t a l =%. 2 f ” , t o t a l ) ;

Scilab code Exa 7.2 Count the number of students

1 // Example : 7 . 2 2 // G i v e n b e l o w i s t h e l i s t o f marks o b t a i n e d by a c l a s s o f 50 s t u d e n t s i n an 3 // a n n u a l e x a m i n a t i o n . 43 65 51 27 79 11 56 61 82 09 25 36 07 49 55 63 74 81 49 4 // 37 40 49 16 75 87 91 33 24 58 78 65 56 76 67 45 54 36 63 12 21 73 49 51 19 39 5 // 49 68 93 85 59 6 // W r i t e a p r o g r a m t o c o u n t t h e number o f s t u d e n t s b e l o n g i n g t o e a c h o f 7 // f o l l o w i n g g r o u p s o f marks : 0 − 9 , 1 0 − 1 9 , 2 0 − 2 9 , . . . 1 0 0 . 8 9 // T h i s p r o g r a m c o m p u t e s f o r 10 s t u d e n t s . We c o u l d compute f o r 50 s t u d e n t s by 10 // c h a n g i n g MAXVAL= 5 0 . 11 12 M A X V A L =10; C O U N T E R =11;

13 disp( ” I n p u t Data [ Marks o f 10 s t u d e n t s ] ” ) ;

14 g r o u p 1 =z e r o s(1 ,11) ; 15 // R e a d i n g and c o u n t i n g 16 for i =1: M A X V A L 17 // R e a d i n g o f v a l u e s 18 v a l u e ( i ) =i n p u t( ” ” ) ; 19 // C o u n t i n g f r e q u e n c y o f g r o u p s 20 a =i n t 1 6(( v a l u e ( i ) /10) ) ;

(61)

21 if( a ==0) then 22 g r o u p 1 ( a +1) = g r o u p 1 ( a +1) +1; 23 else 24 g r o u p 1 ( a +1) = g r o u p 1 ( a +1) +1; 25 end 26 27 end 28 // P r i n t i n g o f f r e q u e n c y t a b l e 29 p r i n t f( ” Group Range F r e q u e n c y \ n ” ) ; 30 for i =0: COUNTER -1 31 if( i ==0) , 32 low =0; 33 else 34 low = i *10; 35 end 36 if( i = = 1 0 ) , 37 high = 1 0 0 ; 38 else 39 high = low +9; 40 end 41 p r i n t f( ”%2d %8d t o %3d %5d\ n ” , i +1 , low , high , g r o u p 1 ( i +1) ) ; 42 end

Scilab code Exa 7.3 Compute and print

1 // Example : 7 . 3

2 // W r i t e a p r o g r a m u s i n g two d i m e n s i o n a l a r r a y t o compute p r i n t f o l l o w i n g

3 // i n f o r m a t i o n f r o m t h e t a b l e o f d a t a d i s c u s s e d :

(62)

g i r l s . 7 8 M A X G I R L S =4; M A X I T E M S =3; 9 f r e q u e n c y =z e r o s(1 ,5) ; 10 disp( ” I n p u t d a t a ” ) ; 11 // R e a d i n g v a l u e s and c o m p u t i n g g i r l t o t a l 12 disp( ” E n t e r v a l u e s , o n e a t a t i m e ” ) ; 13 14 for i =1: M A X G I R L S 15 g i r l _ t o t a l ( i ) =0; 16 for j =1: M A X I T E M S 17 v a l u e ( i , j ) =s c a n f( ”%d” ) ; 18 g i r l _ t o t a l ( i ) = g i r l _ t o t a l ( i ) + v a l u e ( i , j ) ; 19 end 20 end 21 // Computing i t e m t o t a l 22 for j =1: M A X I T E M S 23 i t e m _ t o t a l ( j ) =0; 24 for i =1: M A X G I R L S 25 i t e m _ t o t a l ( j ) = i t e m _ t o t a l ( j ) + v a l u e ( i , j ) ; 26 end 27 end 28 // Computing g r a n d t o t a l 29 g r a n d _ t o t a l =0; 30 for i =1: M A X G I R L S 31 g r a n d _ t o t a l = g r a n d _ t o t a l + g i r l _ t o t a l ( i ) ; 32 end 33 // P r i n t i n g o f r e s u l t

34 disp( ”GIRLS TOTALS” ) ;

35 for i =1: M A X G I R L S

36 p r i n t f( ” S a l e s g i r l (%d)=%d\ n ” ,i , g i r l _ t o t a l ( i ) ) ;

37 end

38

39 disp( ”ITEM TOTALS” ) ;

40 for j =1: M A X I T E M S

41 p r i n t f( ” I t e m (%d)=%d\ n ” ,j , i t e m _ t o t a l ( j ) ) ;

42 end

(63)

Scilab code Exa 7.4 Multiplication table 1 // Example : 7 . 4 2 // W r i t e a p r o g r a m t o compute and p r i n t a m u l t i p l i c a t i o n t a b l e f o r numbers 1 t o 5 3 4 ROWS =5; C O L U M N S =5;

5 disp( ”MULTIPLICATION TABLE” ) ;

6 p r i n t f( ” ∗ | ” ) 7 for j =1: C O L U M N S 8 p r i n t f( ”%4d” , j ) ; 9 end 10 disp( ” ” ) ; 11 for i =1: ROWS 12 p r i n t f( ”%1d | ” , i ) ; 13 for j =1: C O L U M N S 14 p r o d u c t ( i , j ) = i * j ; // C a l c u l a t e t h e p r o d u c t 15 p r i n t f( ”%4d” , p r o d u c t ( i , j ) ) ; // P r i n t t h e p r o d u c t 16 end 17 p r i n t f( ” \ n ” ) ; 18 end

Scilab code Exa 7.5 Popularity of various cars

(64)

3 // M a r u t i ) was c o n d u c t e d i n f o u r c i t i e s ( Bombay , C a l c u t t a , D e l h i and Madras ) . 4 // Each p e r s o n s u r v e y e d was a s k e d t o g i v e h i s c i t y and t y p e o f c a r he was u s i n g . 5 // W r i t e a p r o g r a m t o p r o u c e a t a b l e s h o w i n g t h e p o p u l a r i t y o f v a r i o u s c a r s i n 6 // f o u r c i t i e s . 7 8 f r e q u e n c y =z e r o s(5 ,5) ; 9 p r i n t f( ” F o r e a c h p e r s o n , e n t e r t h e c i t y c o d e [ B , C , D,M ] \ n ” ) ; 10 p r i n t f( ” f o l l o w e d by t h e c a r c o d e [ 1 , 2 , 3 , 4 ] . \ n ” ) ; 11 p r i n t f( ” E n t e r t h e l e t t e r X 0 ( z e r o ) t o i n d i c a t e end . \ n ” ) ; 12 13 // T a b u l a t i o n b e g i n s 14 for i = 1 : 9 9 15 [ n , city , car ]=m s c a n f( ”%c %d” ) ; 16 if( city == ’X ’ ) then 17 b r e a k; 18 end 19 s e l e c t city

20 case ’B ’ then f r e q u e n c y (1 , car ) = f r e q u e n c y (1 , car ) +1;

21 case ’C ’ then f r e q u e n c y (2 , car ) = f r e q u e n c y (2 , car ) +1;

22 case ’D ’ then f r e q u e n c y (3 , car ) = f r e q u e n c y (3 , car ) +1;

23 case ’M ’ then f r e q u e n c y (4 , car ) = f r e q u e n c y (4 , car ) +1; 24 end 25 26 end 27 28 // T a b u l a t i o n c o m p l e t e d and P r i n t i n g b e g i n s

29 disp( ” POPULATORY TABLE” ) ;

30 p r i n t f( ”

(65)

) ; 31 p r i n t f( ” C i t y A m b a s s e a d o r f a i t D o l p h i n M a r u t i \ n ” ) ; 32 p r i n t f( ” \ n ” ) ; 33 34 for i =1:4 35 s e l e c t i

36 case 1 then p r i n t f( ” Bombay ” ) ;

37 case 2 then p r i n t f( ” C a l c u t t a ” ) ;

38 case 3 then p r i n t f( ” D e l h i ” ) ;

39 case 4 then p r i n t f( ” Madras ” ) ;

40 end 41 for j =1:4 42 p r i n t f( ”%8d” , f r e q u e n c y ( i , j ) ) ; 43 end 44 p r i n t f( ” \ n ” ) ; 45 end 46 p r i n t f( ” ” ) ; 47 // P r i n t i n g e n d s

(66)

Chapter 8

Character Arrays and Strings

Scilab code Exa 1.cs Case study 1 Counting words in a text

1 // C s a e s t u d y : C h a p t e r −8 , Page No : 2 5 3

2 // 1 . C o u n t i n g w o r d s i n a t e x t

3

4 c h a r a c t e r s =0; w o r d s =0; l i n e s 1 =0;

5 p r i n t f( ” KEY IN THE TEXT. \ n ” ) ;

6 p r i n t f( ”GIVE ONE SPACE AFTER EACH WORD. \ n ” ) ;

7 p r i n t f( ”WHEN COMPLETED, ENTER end \ n ” ) ;

8 9 l = ’ ’ ; 10 w h i l e( l ~= ’ end ’ ) 11 l =read( %io (1) ,1 ,1 , ’ ( a ) ’ ) ; // R e a d i n g a l i n e o f t e x t 12 if( l == ’ end ’ ) then 13 b r e a k; 14 end 15 line =[a s c i i( l ) ]; // A r r a y o f a s c i i v a l u e s o f l i n e l

16 len =l e n g t h( line ) ; // compute l e n g t h o f l i n e

(67)

18 // a s c i i v a l u e o f ’ ’ ( i . e . s p a c e ) i s 32 19 if( line ( i ) = = 3 2 ) then 20 w o r d s = w o r d s +1; // Count t h e number o f w o r d s 21 end 22 end 23 l i n e s 1 = l i n e s 1 +1; // Count t h e number o f l i n e s

24 c h a r a c t e r s = c h a r a c t e r s + len ; // Count t h e number o f c h a r a c t e r s 25 end 26 // P r i n t i n g r e s u l t s 27 p r i n t f( ” Number o f l i n e s = %d\ n ” , lines1 ) ; 28 // Number o f l i n e s a r e a dd ed t o w o r d s b e c a u s e l a s t word o f e a c h l i n e r e m a i n s − 29 // u n c o u n t e d a s w o r d s a r e i n c r e m e n t e d a t t h e o c c u r e n c e o f s p a c e .

30 p r i n t f( ” Number o f w o r d s = %d\ n ” , words + lines1 ) ;

31 p r i n t f( ” Number o f c h a r a c t e r s = %d\ n ” , c h a r a c t e r s ) ;

Scilab code Exa 2.cs Case study 2 Processing of a customer list

1 // C s a e s t u d y : C h a p t e r −8 , Page No : 2 5 3 2 // 2 . P r o c e s s i n g o f a c u s t o m e r l i s t 3 4 5 C U S T O M E R S =10;

6 p r i n t f( ” I n p u t names and t e l e p h o n e numbers \ n ” ) ;

7 p r i n t f( ” [ Names must h a v e F i r s t , S e c o n d and L a s t n a m e ] \ n ” ) ;

(68)

10 [ f i r s t _ n a m e ( i ) , s e c o n d _ n a m e ( i ) , s u r n a m e ( i ) , t e l e p h o n e ( i ) ]=s c a n f( ”%s %s %s %s” ) ; 11 // C o n v e r t i n g f u l l name t o s u r n a m e w i t h i n i t i a l s 12 l1 =l e n g t h( s u r n a m e ( i ) ) ; // Compute l e n g t h o f s u r n a m e a t i 13 name ( i ) = s t r n c p y ( s u r n a m e ( i ) , l1 ) ; 14 name ( i ) =s t r c a t([ name ( i ) , ’ , ’ ]) ; 15 d u m m y (1) =part( f i r s t _ n a m e ( i ,1) ,1) ; 16 name ( i ) =s t r c a t([ name ( i ) , d u m m y ]) ; 17 name ( i ) =s t r c a t([ name ( i ) , ’ . ’ ]) ; 18 d u m m y (1) =part( s e c o n d _ n a m e ( i ,1) ,1) ; 19 name ( i ) =s t r c a t([ name ( i ) , d u m m y ]) ; 20 end 21 // A l p h a b e t i c a l o d e r i n g o f s u r n a m e s 22 for i =1: C U S T O M E R S // O u t e r l o o p b e g i n s 23 for j =2: C U S T O M E R S - i +1 // I n n e r l o o p b e g i n s 24 k = s t r c m p ( name ( j -1) , name ( j ) ) ; 25 if( k >0) then 26 27 // S w a p i n g names 28 l1 =l e n g t h( name ( j -1) ) ; 29 l2 =l e n g t h( name ( j ) ) ; 30 d u m m y = s t r n c p y ( name ( j -1) , l1 ) ; 31 name ( j -1) = s t r n c p y ( name ( j ) , l2 ) ; 32 l3 =l e n g t h( d u m m y ) ; 33 name ( j ) = s t r n c p y ( dummy , l3 ) ; 34 35 // S w a p p i n g t e l e p h o n e numbers 36 l3 =l e n g t h( t e l e p h o n e ( j -1) ) ; 37 l4 =l e n g t h( t e l e p h o n e ( j ) ) ; 38 d u m m y = s t r n c p y ( t e l e p h o n e ( j -1) , l3 ) ; 39 t e l e p h o n e ( j -1) = s t r n c p y ( t e l e p h o n e ( j ) , l4 ) ; 40 t e l e p h o n e ( j ) = s t r n c p y ( dummy , l3 ) ; 41 end 42 end // I n n e r l o o p e n d s 43 end // O u t e r l o o p e n d s

(69)

44 // P r i n t i n g a l p h a b e t i c a l l i s t

45 disp( ”CUSTOMER LIST IN ALPHABETICAL ORDER” ) ;

46 for i =1: C U S T O M E R S

47 p r i n t f( ”%−20 s \ t %−10 s \ n ” , name ( i ) , t e l e p h o n e ( i ) ) ;

48 end

Scilab code Exa 8.1 Read a series of words

1 // Exampple 8 . 1 2 // W r i t e a p r o g r a m t o r e a d a s e r i e s o f w o r d s f r o m t e r m i n a l u s i n g s c a n f f u n c t i o n . 3 4 // Read d a t a u s i n g s c a n f f u n c t i o n 5 disp( ” E n t e r t e x t : ” )

6 [ word1 , word2 , word3 , w o r d 4 ]=s c a n f( ”%s %s %s %s” ) ;

7 // P r i n t i n g t h e r e s u l t s

8 p r i n t f( ” word1 = %s\ nword2 = %s\ n ” , word1 , w o r d 2 ) ;

9 p r i n t f( ” word3 = %s\ nword4 = %s\ n ” , word3 , w o r d 4 ) ;

Scilab code Exa 8.2 Read a line of text

1 // Example 8 . 2

2 // W r i t e a p r o g r a m t o r e a d a l i n e o f t e x t c o n t a i n i n g a s e r i e s o f −

3 // w o r d s f r o m t h e t e r m i n a l .

4

(70)

Scilab code Exa 8.3 Copy one string into another 1 // Example 8 . 3 2 // W r i t e a p r o g r a m t o c o p y o n e s t r i n g i n t o a n o t h e r and c o u n t t h e number 3 // o f c h a r a c t e r s c o p i e d . 4 5 // Read d a t a u s i n g s c a n f f u n c t i o n 6 disp( ” E n t e r a s t r i n g : ” ) 7 [ s t r i n g 2 ]=s c a n f( ”%s” ) ; // Read s t r i n g 8 l =l e n g t h( s t r i n g 2 ) ; // Compute t h e l e n g t h 9 s t r i n g 1 = ’ ’ ; // s t r i n g 1 i s empty 10 for i =1: l 11 s t r i n g 1 = s t r i n g 1 + part( string2 , i ) ; 12 end 13 // P r i n t i n g t h e r e s u l t s 14 p r i n t f( ” %s\ n ” , s t r i n g 1 ) ; 15 p r i n t f( ” Number o f c h a r a c t e r s = %d\ n ” ,l ) ;

Scilab code Exa 8.4 Display the string under various format specifications

1 // Exampple 8 . 4 2 // W r i t e a p r o g r a m t o s t o r e t h e s t r i n g ” U n i t e d Kingdom ” i n t h e a r r a y c o u n t r y − 3 // and d i s p l a y t h e s t r i n g u n d e r v a r i o u s f o r m a t s p e c i f i c a t i o n s . 4

(71)

5 6 c o u n t r y = ’ U n i t e d Kingdom ’ ; 7 p r i n t f( ” \ n ” ) ; 8 p r i n t f( ” ∗ 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 ∗ \ n ” ) ; 9 p r i n t f( ”−−−−−−−−\n ” ) ; 10 p r i n t f( ” %15s \ n ” , c o u n t r y ) ; 11 p r i n t f( ” %5s \ n ” , c o u n t r y ) ; 12 p r i n t f( ”%15 . 6 s \ n ” , c o u n t r y ) ; 13 p r i n t f( ”%− 1 5 . 6 s \ n ” , c o u n t r y ) ; 14 p r i n t f( ”%15 . 0 s \ n ” , c o u n t r y ) ; 15 p r i n t f( ”%. 3 s \ n ” , c o u n t r y ) ; 16 p r i n t f( ”%s\ n ” , c o u n t r y ) ; 17 p r i n t f( ”−−−−−−−−\n ” ) ;

Scilab code Exa 8.5 Program using for loop

1 // Example 8 . 5 2 // W r i t e a p r o g r a m u s i n g f o r l o o p t o p r i n t t h e f o l l o w i n g o u t p u t : 3 // C 4 // CP 5 // . . . . 6 // . . . . 7 // CProgrammimg 8 // CProgrammimg 9 // . . . . 10 // . . . . 11 // CPr 12 // CP 13 // C 14 s t r i n g 1 = ’ CProgramming ’ ;

References

Related documents

In analogue mode, press PROG/CH +/– , or the number buttons, to select the video channel~. For other

Do not walk into or touch spilled substances and avoid inhalation of fumes, smoke, dusts and vapours by staying up windRemove any contaminated clothing and

In view of the present satisfactory level of computerisation in commercial bank branches, it is proposed that, ‘‘payment of interest on savings bank accounts by scheduled

- Habitat for Humanity International – Provided computer support for the direct mail, telemarketing, major donor, matching gift, and special event fundraising programs -

(a) in respect of any of the securities of the responsible issuer that the person or company subsequently disposed of on or before the 10th trading day after the public correction

No.3 IP Fixed Mobile All-IP based FMC Single Platform Box Module Site or Central Office One Cabinet One Site 9KW 3×3KW Smart modularized power management 2KW

FC (Fibre Channel Arbitrated Loop) - SPS (Stand by Power Supply) - SLC (Single-Level Cell) - DDR SDRAM (Double Data Rate Synchronous Dynamic Random Access Memory).. 9

Prerequisite: Completion of the Basic Law Enforcement Program Course Title Hours CJK 0101V Corrections: Interpersonal Skills II 50 CJK 0480V Corrections: