පැස්කල් ක්‍රමලේඛය 5

 පැස්කල් ක්‍රමලේඛය 5 කොටස

ක්‍රමලේඛය තුළ වරණ භාවිතය

ක්‍රමලේඛයේ යම් පියවරක දී දෙන ලද අවශ්‍යතාවයක් පරීක්ෂා කර එය සත්‍ය හෝ අසත්‍ය වීම අනුව ක්‍රියාත්මක වන  මාර්ගය තෝරා ගන්නා ආකාරයේ ගැටළු මෙම වර්ගයට අයත් වේ.

මෙහිදී ක්‍රමලේඛය තුළ පහත ආකාරයේ කොටසක් ඇතුලත් කරනු ලැබේ. එනම්  දෙන ලද අගයක් සඳහා තාර්කික ප්‍රකාශයක් ගොඩනැගීම මගින් අදාල කොටස ක්‍රමලේඛය තුළ  ක්‍රියාත්මක වීම හෝ නොවීම තීරණය කරනු ලබයි.

 

මේ සඳහා

 IF  <Condition> THEN

                        ----------------------

                        ----------------------

                        ----------------------

            ELSE

                        ----------------------

                        ----------------------

                        ---------------------- 

ආකාරයේ ව්‍යුහයක් යොදාගනු ලැබේ. මෙහි <Condition> වෙනුවට දී ඇති තාර්කික ප්‍රකාශනයත් “-----------------“ කොටස් වල දී අදාල වගන්තිත් ලිවිය යුතුයි. එමෙන්ම එම වගන්ති එකකට වඩා ඇත්නම් ඒවා BEGIN . . END අතරත් ලිවිය යුුතුයි.

 

උදාහරණ

 

  1. ශිෂ්‍යයෙක් යම් විෂයක් සඳහා ලබාගත් ලකුණු ආදානය කළ විට එය 40 ට වඩා වැඩි හෝ සමාන නම් Pass ලෙසත් නැතිනම් Fail ලෙසත්  තිරයේ දිස්වීමට ක්‍රමලේඛයක් ලියන්න.

 මෙහි දී පරිශීලක විසින් ලකුණු සඳහා ඇතුලත් කරන අගය marks නම් විචල්‍යය තුළ ගබඩා වේ.  IF marks >= 40 THEN මගින්ම  අගය 40 ට වඩා වැඩිද යන්න  පරීක්ෂා කෙරේ. ඒහිදී ලකුණු ලෙස 40 ට වඩා වැඩි අගයක් ඇතුලත් කර ඇත්නම් Pass  ලෙසද ඒසේ නොමැති නම්  Fail  ලෙසද තිරයේ දිස්වේ.

PROGRAM result;

VAR

          marks : integer;

BEGIN

           WRITELN (‘ Input marks :   ’ );

           READLN( marks );

          IF marks >= 40 THEN

                WRITELN (‘ Pass  ’ )

         ELSE

                WRITELN (‘ Fail ’ );

READLN;

END.

  1. භාණ්ඩ මිල දී ගැනීමේ දී ගෙවිය යුතු මුදල ඇතුලත් කළ විට එය 5000 ට වඩා වැඩි නම් 5% ක වට්ටමක් ගණනය කර එහි අගය තිරයේ දිස්වීමට.

PROGRAM find_discount;

VAR

            Price               : integer;

            discount, pay : real;

BEGIN

            WRITELN (‘ Input price :   ’ );

            READLN( price );

            IF price > 5000 THEN

                 Discount := price *5 / 100 ;

                 WRITELN (‘ Discount = ’ , discount );

READLN;

END.

 

  1. සංඛ්‍යාවක් ඇතුලත් කළ විට එය ධන සංඛ්‍යාවක් නම් පමණක් එහි වර්ග මූලය( Square root) සොයා එය තිරයේ දිස්වීමට.

PROGRAM SquareROOT;

VAR

            NUMBER        : integer;

            SROOT           : real;

BEGIN

          WRITELN (‘ Input number :   ’ );

          READLN( NUMBER );
          IF NUMBER > 0 THEN            

                  SROOT  :=  SQRT(NUMBER) ;                                     

                  WRITELN (‘ SQURE ROOT  OF THE NUMBER IS  = ’ , SROOT );

READLN;

END.

 

*මෙහි  SQRT( ) යනු වර්ගමූලය සෙවීමට භාවිතා වන විශේෂ ශ්‍රිතයකි 

  1. සංඛ්‍යා 3 ක් ඇතුලත් කළ විට ඒ අතරින් විශාලතම සංඛ්‍යාව සොයා එය තිරයේ දිස්වීමට.

 

PROGRAM larger;

VAR

            num1, num2, num3 : integer;

BEGIN

           WRITELN (‘ Input three numbers :   ’ );

           READLN( num1, num2, num3 );

           IF num1>num2 THEN

                 IF num1>num3 THEN

                        WRITELN (‘ largest is  ’ , num1 )

                 ELSE

                        WRITELN (‘ largest is  ’ , num3 )

          ELSE

                 IF num2>num3 THEN

                         WRITELN (‘ largest is  ’ , num2 )

                  ELSE

                        WRITELN (‘ largest is  ’ , num3 );

READLN;

READLN;

END.

 

  1. සංඛ්‍යාවක් ආදානය කළ විට එය ඔත්තේ (odd ) සංඛ්‍යාවක් ද ඉරට්ටේ (even) සංඛ්‍යාවක් ද යන බව තිරයේ දිස්වීමට. (මෙහි දී දෙන ලද සංඛ්‍යාව 2 න් බෙදූ විට ඉතිරිය 0 නම් එය ඉරට්ටේ සංඛ්‍යාවක් ලෙස ගෙන ඇත. 10/2 හි ඉතිරිය = 0 . එමනිසා 10 ඉරට්ටේ සංඛ්‍යාවකි. )

 

PROGRAM oddnumber;

VAR

      m , k : integer;

BEGIN

         WRITELN('Number - ?');

         READLN (k) ;

         m:=k MOD 2;

         IF m=0 THEN

             WRITELN('even')

         ELSE

              WRITELN('odd');

READLN;

END.

 

 

**** MOD යනු සංඛ්‍යාවක් තවත් සංඛ්‍යාවකින් බෙදූ විට ඉතිරිය ලබා ගැනීමට භාවිතා වන ශ්‍රිතයකි. උදා- 5 දෙකෙන් බෙදූ විට ඉතිරිය 1 කි.

 

  1. පරිශීලක විසින් අංකයක් ලබා දුන්විට එය ( + -POSITIVE) සංඛ්‍යාවක්ද ( - -NEGATIVE) සංඛ්‍යාවක්ද නැතහොත් 0 (ZERO) ද යන වග ප්‍රදර්ශනය කිරීමට

PROGRAM numbers (INPUT,OUTPUT);

VAR

              a : REAL;

BEGIN

             WRITELN('enter  a number');

              READLN(a);

             IF a >0 THEN

                  WRITELN('POSITIVE NUMBER')

             ELSE

                   IF a=0 THEN

                          WRITELN('ZERO')

                   ELSE

                          WRITELN('NEGATIVE NUMBER');

READLN;

END.