No.
Matrik : 9805 DKL 0532E
è 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.
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.
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.
#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) ;
}