Programming Methodology Lab 2: Conditional & Loop Structures / Program Debugging
Programming Methodology Lab 2: Conditional & Loop Structures / Program Debugging
)DFXOW\RI,QIRUPDWLRQ7HFKQRORJ\
PROGRAMMING METHODOLOGY
Lab 2: Conditional & Loop Structures / Program Debugging
,QWURGXFWLRQ
,Q WKLV ODE WXWRULDO ZH ZLOO FRQWLQXH ZLWK FRQGLWLRQDO VWUXFWXUHV DQG VWXG\ ORRS VWUXFWXUH
%HVLGHVWKDWZHLQWURGXFHDWHFKQLTXHWR ILQGSURJUDPPLQJPLVWDNHV ZKLFKFDQFDXVHORJLFDO
HUURUZKHQUXQQLQJ\RXUSURJUDPFDOOHGSURJUDPGHEXJJLQJ
&RQGLWLRQDO6WUXFWXUHV
,Q/DEZHSUHVHQWHGDEDVLFIRUPRIFRQGLWLRQDOVWUXFWXUHFDOOHGLIHOVH1RZZHVWXG\D
QHZDSSURDFKZKHQZHKDYHPDQ\FDVHVLQPDNLQJGHFLVLRQZLWKRQHFRQGLWLRQPD\FRQWDLQ
PRUHWKDQRQH%RROHDQH[SUHVVLRQ,QVWHDGRIGHILQLQJPDQ\LIHOVHVWDWHPHQWVZHFDQXVHVZLWFK
VWUXFWXUHDVIROORZV
switch(expression) {
case const-expr-1: statements
case const-expr-2: statements
case const-expr-3: statements
default: statements
}
(DFKFDVHLVODEHOHGE\RQHRUPRUHLQWHJHUYDOXHGFRQVWDQWVRUFRQVWDQWH[SUHVVLRQV,IDFDVH
PDWFKHVWKHH[SUHVVLRQYDOXHH[HFXWLRQVWDUWVDWWKDWFDVH$OOFDVHH[SUHVVLRQVPXVWEHGLIIHUHQW
7KHFDVHODEHOHGGHIDXOWLVH[HFXWHGLIQRQHRIWKHRWKHUFDVHVDUHVDWLVILHG$GHIDXOWLVRSWLRQDO
LILWLVQ
WWKHUHDQGLIQRQHRIWKHFDVHVPDWFKQRDFWLRQDWDOOWDNHVSODFH&DVHVDQGWKHGHIDXOW
FODXVHFDQRFFXULQDQ\RUGHU
7KHVDPSOHSURJUDPLQ)LJXUHLOOXVWUDWHVWKHVZLWFKVWUXFWXUH,WFRQWDLQVFDVHVDQGFDVHDQG
KDYHWKHVDPHUHVXOWWKHGHIDXOWFDVHKDQGOHVWKHFKRLFHVZKLFKDUHRXWRISUHGHILQHGFDVHV
7KHPRVWLPSRUWDQWWKLQJWKDW\RXVKRXOGQRWLFHLVHDFKFDVHLQFOGHIDXOWKDVWRKDYH EUHDN
XQOHVV\RXGHILQHEUHDNWKHSURJUDPZLOOFRQWLQXHSURFHVVRWKHUFDVHVXQWLOUHDFKLQJWKHODVWRQH
)RUH[DPSOHLIWKHSURJUDPLQ)LJXUHGRHVQ
WKDYHEUHDNVWDWHPHQWZKHQFKRLFHLVLWZLOO
SULQWRXWDOOFDVHV
/RRS6WUXFWXUHV
2IWHQLQFRPSXWHUSURJUDPPLQJLWLVQHFHVVDU\WRSHUIRUPDFHUWDLQDFWLRQDFHUWDLQQXPEHU
RIWLPHVRUXQWLODFHUWDLQFRQGLWLRQLVPHW7KHFRQVWUXFWVWKDWHQDEOHFRPSXWHUVWRSHUIRUPFHUWDLQ
UHSHWLWLYHWDVNVDUHFDOOHGORRSV
ZKLOHORRS
$ZKLOHORRSLVWKHPRVWEDVLFW\SHRIORRSVWUXFWXUH,WZLOOUXQXQWLOWKHFRQGLWLRQLVQRQ
]HUR WUXH %HIRUH H[HFXWLQJ WKH VWDWHPHQWV LQVLGH ZKLOH ERG\ LW ZLOO FKHFN ZKHWKHU WKH
1 // while.c
2 #include <stdio.h>
3
4 int main()
5 {
6 int i = 0;
7
8 while(i < 10)
9 {
10 printf("No. %d\n", i);
11
12 i = i + 1; // Update the condition
13 }
14 }
)LJXUH6DPSOHSURJUDPXVHVZKLOHORRS
7KH IORZ RI DOO ORRSV FDQ DOVR EH FRQWUROOHG E\ EUHDN DQG FRQWLQXH VWDWHPHQWV $ EUHDN
VWDWHPHQW ZLOO LPPHGLDWHO\ H[LW WKH HQFORVLQJ ORRS $ FRQWLQXH VWDWHPHQW ZLOO VNLS WKH
UHPDLQGHURIWKHEORFNDQGVWDUWDWWKHFRQWUROOLQJFRQGLWLRQDOVWDWHPHQWDJDLQ
IRUORRS
7KHVWUXFWXUHRIIRUORRSLVDVLQ)LJXUHWKHLQLWLDOL]DWLRQVWDWHPHQWLVH[HFXWHGRQO\RQH
EHIRUHWKHILUVWHYDOXDWLRQRIWHVWFRQGLWLRQ7\SLFDOO\LWLVXVHGWRDVVLJQDQLQLWLDOYDOXHWR
VRPHYDULDEOH DOWKRXJK WKLVLV QRW VWULFWO\QHFHVVDU\ 7KHWHVW H[SUHVVLRQLV HYDOXDWHGHDFK
WLPHEHIRUHWKHFRGHLQWKHIRUORRSH[HFXWHV$IWHUHDFKLWHUDWLRQRIWKHORRSWKHLQFUHPHQW
VWDWHPHQWLVH[HFXWHG7KLVRIWHQLVXVHGWRLQFUHPHQWWKHORRSLQGH[IRUWKHORRSWKHYDULDEOH
LQLWLDOL]HGLQWKHLQLWLDOL]DWLRQH[SUHVVLRQDQGWHVWHGLQWKHWHVWH[SUHVVLRQ
1 // for.c
2 #include <stdio.h>
3
4 int main()
5 {
6 int i = 0;
7
8 for(i = 0; i < 10; i++)
9 {
10 printf("No. %d\n", i);
11 }
12 }
)LJXUH6DPSOHSURJUDPXVHVIRUORRS
$GRZKLOHORRSLVDSRVWFKHFNZKLOHORRSZKLFKPHDQVWKDWLWFKHFNVWKHFRQGLWLRQDIWHU
HDFKUXQ$VDUHVXOWHYHQLIWKHFRQGLWLRQLV]HURIDOVHLWZLOOUXQDWOHDVWRQFH
1 // dowhile.c
2 #include <stdio.h>
3
4 int main()
5 {
6 int i = 1;
7
8 do {
9 printf("No. %d\n", i);
10 } while(i < 1);
11 }
1 #include <stdio.h>
2
3 int main()
4 {
5 int input, i = 0;
6
7 do {
8 printf("Input = ");
9 scanf("%d", &input);
10
11 // Control number of loops
12 i++;
13 } while(input < 0);
14
15 printf("Input is a positive integer number!");
16
17 }
([HUFLVHV
:ULWHD&SURJUDPWRSULQWVXPRIDOOHYHQQXPEHUVEHWZHHQWRQE\XVLQJWKUHHORRS
VWUXFWXUHV9DOLGDWLQJWKHLQSXWLQFDVHWKHLQSXWLVQ
WFRUUHFWSURPSWXVHUWRHQWHULWDJDLQ
:ULWHD&SURJUDPWRSULQWVXPRIDOOHYHQQXPEHUVEHWZHHQWRQE\XVLQJWKUHHORRS
VWUXFWXUHV9DOLGDWLQJWKHLQSXWLQFDVHWKHLQSXWLVQ
WFRUUHFWSURPSWXVHUWRHQWHULWDJDLQ
:ULWHD&SURJUDPWRSULQWWDEOHRIDQ\QXPEHU
:ULWHD&SURJUDPWRILQGILUVWDQGODVWGLJLWVRIDQ\QXPEHU
:ULWHD&SURJUDPWRFDOFXODWHVXPRIGLJLWVRIDQ\QXPEHU
:ULWHD&SURJUDPWRFDOFXODWHSURGXFWRIGLJLWVRIDQ\QXPEHU
:ULWHD&SURJUDPWRFRXQWQXPEHURIGLJLWVLQDQ\QXPEHU
:ULWHD&SURJUDPWRVZDSILUVWDQGODVWGLJLWVRIDQ\QXPEHU
:ULWHD&SURJUDPWRHQWHUDQ\QXPEHUDQGSULQWLWVUHYHUVH
:ULWHD&SURJUDPWRHQWHUDQ\QXPEHUDQGFKHFNZKHWKHUWKHQXPEHULVSDOLQGURPHRU
QRW
:ULWHD&SURJUDPWRFKHFNZKHWKHUDQXPEHULV3ULPHQXPEHURUQRW9DOLGDWLQJWKHLQSXW
LQFDVHWKHLQSXWLVQ
WFRUUHFWSURPSWXVHUWRHQWHULWDJDLQ
:ULWHD&SURJUDPWRFKHFNZKHWKHUDQXPEHULV$UPVWURQJQXPEHURUQRW
:ULWHD&SURJUDPWRFKHFNZKHWKHUDQXPEHULV3HUIHFWQXPEHURUQRW
:ULWHD&SURJUDPWRSULQWDOO3ULPHQXPEHUVEHWZHHQWRQE\XVLQJWKUHHORRSVWUXFWXUHV
9DOLGDWLQJWKHLQSXWLQFDVHWKHLQSXWLVQ
WFRUUHFWSURPSWXVHUWRHQWHULWDJDLQ
:ULWH D & SURJUDP WR SULQW DOO $UPVWURQJ QXPEHUV EHWZHHQ WR Q E\ XVLQJ WKUHH ORRS
VWUXFWXUHV9DOLGDWLQJWKHLQSXWLQFDVHWKHLQSXWLVQ
WFRUUHFWSURPSWXVHUWRHQWHULWDJDLQ
:ULWH D & SURJUDP WR SULQW DOO 3HUIHFW QXPEHUV EHWZHHQ WR Q E\ XVLQJ WKUHH ORRS
VWUXFWXUHV9DOLGDWLQJWKHLQSXWLQFDVHWKHLQSXWLVQ
WFRUUHFWSURPSWXVHUWRHQWHULWDJDLQ
:ULWHD&SURJUDPWRFRQYHUW'HFLPDOWR%LQDU\QXPEHUV\VWHP
:ULWHD&SURJUDPWRFRPSXWHWKH)DFWRULDORIQ9DOLGDWLQJWKHLQSXWLQFDVHWKHLQSXW
LVQ
WFRUUHFWSURPSWXVHUWRHQWHULWDJDLQ
݊Ǩ ൌ ͳ ή ʹ ή ͵ ή ǥ ή ݊Ǥሺ݊ Ͳሻ