Nama : Ahmad Syarifuddin Bin Mohammd Salleh

No. Matrik : 9805 DKL 0532E

 

Jawapan Soalan nombor 15 muka surat 147.

è Tuliskan sebuah aturcara yang menerima input tahun dan tentukan sama ada tahun tersebut adalah tahun lompat ataupun tidak. Gunakan syarakt berikut:

è Tahun merupakan tahun lmpat jika dan hanya jika tahun boleh dibahagikan dengan 4 tetapi tidak dengan 100, atau tahun boleh dibahagi dengan 400.

 

Alkhawarizmi dan Kod Pseudo

 

Input : Tahun (Dalam bentuk intiger)

 

Output : Tahun Lompat atau bukan tahun lompat (Dalam bentuk intiger)

 

Analisis:

            Int tahun;

Jika ((tahun % 4 = = 0) dan (tahun % 100 !=0) atau (tahun % 400 = = 0)); mula jika

            Cetak (tahun : tahun lompat)

            Tamat jika

            Cetak tahun: bukan tahun lompat

            Tamat.

 

Kod pseudo

 

1.       Mula

2.       Input intiger , Tahun

3.       Jika ((tahun % 4 = =0 ) && (tahun % 100 != 0) || (tahun % 400 = = 0) mula _jika

3.1   paparkan “tahun : adalah tahun lompat”.

Tamat _jika

      Jika_tidak_mula_jika_tidak

3.2   paparkan “tahun : bukan tahun lompat”.

Tamat_jika_tidak

4.       tamat.

 

Aturcara yang dihasilkan

 

#include <stdio.h>

 

main() {

int tahun;

 

scanf ("%d", &tahun);

                if ((tahun % 4 == 0) && (tahun % 100 !=0) || (tahun] % 400 == 0))

                  printf ("%d tahun lompat\n", tahun);

                else

                  printf ("%d bukan tahun lompat\n", tahun);

 

}

 

 

 

Jawapan soalan 1 muka surat 192.

 

a)      Tuliskan sebuah autrcara yang dapat membaca input masa (jam dan minit) dalam format 24 jam dan kemudian mencetak masa yang setara dengannya dalam format 12 jam.

 

Input: masa dalam format 24 jam, contoh input 2115 dan 905.

Output : cetak masa yang setara dengannya dalam format 12 jam. Contoh output: 9.15 dan 9.05.

 

Analisis :             1. ( 2115 –1200) * 0.01.

1.       905 * 0.01.

 

 

alkhawarizmi.

 

1.       mula.

2.       Input masa dalam format 24 jam.

3.       Proses ( 2115-1200) * 0.01 = 9.15 dan 905 * 0.01 = 9.05

4.       Ouput yang terhasil ialah 9.15 dan 9.05.

5.       Tamat aturcara.

 

Aturcara yang terhasil.

 

#include <time.h>

#include <stdio.h>

#include <conio.h>

main() {

int masa1, masa2;

textcolor(MAGENTA);

masa1=2115;

masa2=905;

 

/*scanf ("%d", &masa);*/

 

        cprintf ("Masa sekarang ialah : %.2f\r\n", (masa1-1200) * 0.01);

 

        cprintf ("Masa sekarang ialah: %.2f\r\n", masa2 * 0.01);

}

 

 

b)      Ubahsuai aturcara anda di (a) supaya dapat mencetak pg, ptg, t/hari dan mlm sesuai dengan masa yang diinput sebagaimana contoh yang diberi.

 

Input : masa dalam format 24 jam.

Output : masa dalam format 12 jam dan mencetak waktu pg, ptg, t/hari dan mlm sesuai dengan masa yang diimput.

Proses : masa tolak 1200 kemuadian darab dengan 0.01 dan masa didarabkan dengan 0.01.

 

Analisis :

jika ((masa <= 2359) && (masa >= 1900)) mula jika,

jika tidak mula jika tidak,

((masa <=2459 ) && ( masa >= 2400)) tamat jika,

Jika tidak mula jika tidak,

((masa <=1159) && ( masa >= 100)) tamat jika,

jika tidak mula jika tidak,

((masa <= 1259) && ( masa >=1200)) tamat jika,

jika tidak mula jika tidak,

((masa <=1859 ) && ( masa >= 1300)) tamat jika,

jika tidak mula jika tidak,

(masa> 2400) tamat jika

jika tidak mula jikatidak,

(masa < 100) tamat jika,

jika tidak mula

cetak “sila taip semual”,

 

 

Kod pseudo:

 

1.       mula,

2.       input tahun dalam format 24 jam.

3.       Proses tolak dengan 1200 jika waktu malam dan darab dengan satu.

4.       Output

5.       Tamat.

 

 

Aturcara yang terhasil.

 

/*Jawapan Bahagian b*/

#include <time.h>

#include <stdio.h>

#include <conio.h>

 

main() {

 

int masa;

 

scanf ("%d", &masa);

 

        textcolor(GREEN);

 

        if ((masa <= 2359) && (masa >= 1900))

cprintf ("Masa sekarang ialah : %.2f Malam.\n", (masa-1200) * 0.01);

else if ((masa <= 2459) && (masa >= 2400))

                cprintf ("Masa sekarang ialah: %.2f Tengah Malam.\n", (masa-1200) * 0.01);

else if ((masa <= 1159) && (masa >=100))

                cprintf ("Masa sekarang ialah: %.2f Pagi.\n", masa * 0.01);

else if ((masa <= 1259) && (masa >= 1200))

                cprintf ("Masa sekarang ialah: %.2f Tengah Hari.\n", masa * 0.01);

else if ((masa < 1859) && (masa > 1300))

                cprintf ("Masa sekarang ialah: %.2f Petang.\n", (masa-1200) * 0.01);

else if (masa > 2400)

                cprintf ("Masa anda melebihi 24 jam.\n");

else if (masa < 100)

                cprintf ("Masa anda kurang dari satu jam.\n");

else

cprintf ("Sila taip semula\n");

 

}

 

 

 

Jawapan soalan nombor 2 muka surat 192.

 

à Tuliskan sebuah aturcara yang dapat menjana jadual gandaan bagi nilai 1 hingga 20. Beberpa baris pertama output aturcara harus seperti yang dinyatakan.

 

Alkhawarizmi/kod pseudo.

 

Input : Nilai integer positif.

Output : Satu jadual nombor gandaan bagi Nilai, gandaan 2, gandaan 3, gandaan 4, dan gandaan 5. Dari nombor satu hingga 20 sahaja.

Proses : Semua gandan didarabkan dengan Nilai.

Analisis : set Nilai dengan satu.

            Do, mula{

            Cetak Nilai,

            Darab Nilai*Nilai=gandaan2, cetak Gandaan2;

            Darab Nilai*Gandaan 2= gandaan3, cetak gandaan 3;

            Darab Nilai*Gandaan 3 = gandaan 4, cetak gandaan 4;

            Darab Nilai*Gandaan 4 = gandaan 5, cetak gandaan 5;

            Teruskan Nilai++;

            Selagi (Nilai <=20)

            Tamat}

 

Kod pseudo.

 

1.       mula.

2.       Set Nilai kepada 1.

3.       Input integer Nilai.

4.       Proses.

4.1.  tentukan nombor yang boleh digandakan dengan nombor gandan 2, 3, 4 dan 5 yang boleh didarabkannya dengan Nilai.

4.1.1.       masukkan nilai yang di setkan kepada 1 ke dalam senari pengganda.

4.1.2.       Selagi Nilai <= 20, laksanakan langkah seterusnya, jika tidak keluar dari gelungan dan cetak hasil.

4.2.  Cari semua integer untuk digandakan.

4.2.1 Kira hasil tambah dari bilangan Nilai kemudian diumpukkan hasil darab dari Nilai sebagai hasil kepada gandaan2 hingga 5,

4.3.  Darabkan semua integer bermula dari nilai sehingga ke gandaan 5, selagi nilai adalah benar tambah untuk bergelung sehingga nilai adalah palsu maka keluar dari gelung, kemudian cetak hasil.

 

 

Nilai =1

Nilai<=20

G2=Nilai*Nilai

G3=Nilai*G2

G4=Nilai*G3

G5=Nilai*G4

Nilai++

1

1<=20

1=1*1

1=1*1

1=1*1

1=1*1

2

 

2<=20

4=2*2

8=2*4

16=2*8

32=2*16

3

 

3<=20

9=3*3

27=3*9

81=3*27

243=3*81

4

 

4<=20

16=4*4

64=4*16

256=4*64

1024=4*256

5

                                                    

5<=20

25=5*5

125=5*25

625=5*125

3125=5*625

6

 

6<=20                                             

36=6*6

216=6*36

1296=6*216

7776=6*1296

7

 

7<=20                                                      

49=7*7

343=7*49

2401=7*343

16807=7*2401

8

 

8<=20                                         

64=8*8

512=8*64

4096=8*512

32768=8*4096

9

 

9<=20                                          

81=9*9

729=9*81

6561=9*729

59049=9*6561

10

 

10<=20                                            

100=10*10

1000=10*100

10000=10*1000

100000=10*10000

11

 

11<=20                                                

121=11*11

1331=11*121

14641=11*1331

161051=11*14641

12

 

12<=20                                     

144=12*12

1728=12*144

20736=12*1728

248832=12*20736

13

 

13<=20                                                   

169=13*13

2197=13*169

28561=13*2197

371293=13*28561

14

 

14<=20                                       

196=14*14

2744=14*196

38416=14*2744

537824=14*38416

15

 

15<=20                                   

225=15*15

3375=15*225

50625=15*3375

759375=15*50625

16

 

16<=20                                                    

256=16*16

4096=16*256

65536=16*4096

1048576=16*65536

17

 

17<=20                                          

289=17*17

4913=17*289

83521=17*4913

1419857=17*83521

18

 

18<=20                                                  

324=18*18

5832=18*324

104976=18*5832

1889568=18*104976

19

 

19<=20                                       

361=19*19

6859=19*361

130321=19*6859

2476099=19*130321

20

 

20<=20                                                  

400=20*20

8000=20*400

160000=20*8000

3200000=20*160000

21

 

21<=20

X

 

 

 

 

 

Aturcara yang terhasil.

 

#include <stdio.h>

#include <math.h>

#include <stdlib.h>

 

 

main() {

auto double  nilai, g2, g3, g4, g5;

 

        printf ("\nNilai\t\tGanda2\t\tGanda3\t\tGanda4\t\tGanda5\n\r");

 

 

        nilai = 1;

do{

 

                printf ("%0.f\t\t", nilai);

 

                g2=nilai * nilai;

                        printf (" %.0f\t\t", g2);

                g3=nilai * g2;

                        printf (" %.0f\t\t", g3);

                g4=nilai * g3;

                        printf (" %.0f\t\t", g4);

                g5=nilai * g4;

                        printf (" %.0f\n", g5);

 

                nilai++;

               }while (nilai <= 20) ;

             }