Custom Search

31 Disember 2008

printf() :Bhg 2

Pos ni adalah sambungan dari printf() :Bhg 1


Jadi dalam bahagian printf() 1 kita lihat overall berkaitan macamana nak cetakkan ayat atau pekataan pada skrin. Sekarang kita akan lihat pula cara nak mengawal perkataan atau nombor yang dicetak pada skrin dengan menggunakan command printf() dan variable (pembolehubah).

Variable dalam C dan C++ secara ringkasnya adalah satu ungkapan perwakilan bagi sesuatu nilai nombor atau perkataan/ayat. Kalau tak paham takpe kita tengok contoh, (aku sebenarnya suka terang guna contoh dari terang macam tu je sebab memang orang susah nak imagine):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//Rujuk: 4.1,bahasa-c.blogspot.com
#include<stdio.h>
#include<stdlib.h>    // untuk gunakan command system("pause")

int main()
{
    int k;         //declaration (wujudkan nilai)
    k = 3;

    printf("%d",k);   //cetakkan nilai k pada skrin
    
    system("pause");
    return 0;
}

Korang tryla copy dan paste kod kat atas dan runkan guna software C/C++ korang, sepatutnya nombor 3 akan keluar pada output:

Keterangan bagi kod kat atas:

  • statement int k; maksudnya kita akan wujudkan variable bernama k yang membawa nilai integer.
  • statement k = 3; maksudnya kita nilaikan k sama dengan 3.
  • statement printf("%d",k); maksudnya kita nakkan nilai k dicetak pada skrin.

Jenis-jenis variable ni yang selalu digunakan adalah selain int, ialah:

  • float dan double untuk variable yang bawa nilai real number (nombor perpuluhan).
  • char untuk variable yang bawa nilai satu huruf/karekter.
  • bool untuk variable yang bawa nilai sama ada TRUE(BENAR) atau FALSE(PALSU).

Kalau nak tau banyak lagi pasal variable boleh pegi kat pos pasal variable(pembolehubah).

Sekarang kita tengok contoh kedua:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//Rujuk: 4.2,bahasa-c.blogspot.com
#include<stdio.h>
#include<stdlib.h>    // untuk gunakan command system("pause")

int main()
{
    double ctrl;      //wujudkan variable yg bawa nilai nombor perpuluhan
    char huruf;       //wujudkan variable yg bawa nilai karekter
    
    huruf = 'b';      //nilaikan huruf dengan b
    ctrl = 3.225;     //nilaikan ctrl dengan 3.225

    printf("%lf",ctrl);   //cetakkan nilai ctrl pada skrin
    printf("\n");         //turunkan screen cursor ke bawah
    printf("%c",huruf);   //cetakkan nilai huruf pada skrin
    printf("\n\n");       //turunkan screen cursor ke bawah 2 kali
    ctrl = 3.24 + 5.0;    //nilaikan ctrl dengan hasil tambah dua nombor.
    printf("%c %.2lf \n", huruf, ctrl); //cetakkan ctrl dan huruf pada skrin
    
    system("pause");
    return 0;
}

Output:

Korang boleh tengok sendiri pada command printf() yang mana kita boleh kawal nilai yang keluar pada skrin dan cara nak kawal nilai yang keluar. Jadi kalau korang perhatikan pada command printf(), jika nak cetakkan variable bersifat:

  • double, %lf digunakan.
  • float, %f digunakan.
  • int, %d digunakan.
  • char, %c digunakan.

Macamana pula dengan nama? ataupun ayat? Ok sekarang kita tengok contoh tiga:

1
2
3
4
5
6
7
8
9
10
11
12
13
//Rujuk: 4.3,bahasa-c.blogspot.com
#include<stdio.h>
#include<stdlib.h>    // untuk gunakan command system("pause")

int main()
{
    char nama[]="sepol", nama_penuh[]="Saiful Haziq";

    printf("Nama saya %s. Orang panggil saya %s\n",nama_penuh, nama); 

    system("pause");
    return 0;
}

Output:

Jadi sekarang korang dah tau la macamana nak kawal perkataan atau ayat untuk dicetak pada skrin menggunakan variable.

Sekarang kita tengok pula cara nak kawal nombor yang keluar pada skrin ikut format yang kita nak. Nombor perpuluhan atau integer yang keluar kita boleh kawal dia punya:

  1. jumlah titik perpuluhan.
  2. ruang untuk nombor dicetakkan.
  3. kewujudan tanda bagi nilai nombor positif.
  4. nombor dirapatkan ke sebelah kiri atau kanan pada ruang yang telah disetkan.
  5. cetakkan nombor dalam format nombor piawai. Contoh: 12.335 x 10^2

Cuba executekan kod kat bawah:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//Rujuk: 4.4,bahasa-c.blogspot.com
#include<stdio.h>
#include<stdlib.h>    // untuk gunakan command system("pause")

int main()
{
    double  dou1 = 10.23   , dou2 = -0.43;
    float   float1 = 2.332 , float2 = 0;
    int     int1 = 24      , int2 = 0     , int3 = -32287;

// kawalan mencetak variable int

    printf("kawalan mencetak variable int\n"
           "=============================\n\n");

    printf("%5d             \n",12345);
    printf("|%5d|           \n",322);
    printf("|%10d|          \n",-322);
    printf("|%10d|          \n",int1);
    printf("|%10d|, |%10d|  \n",int2 ,int3);
    printf("|%-10d|         \n",int1);
    printf("|%+10d|         \n",int1);
    printf("|%-+10d|        \n",int1);

    printf("\n\n");
//kawalan mencetak variable float dan double

    printf("kawalan mencetak variable float dan double\n"
           "==========================================\n\n");

    printf("%5f          \n" ,0.332);
    printf("%.2f         \n" ,0.332);
    printf("%.8f         \n" ,0.332);
    printf("%+10f        \n" ,0.332);
    printf("%+10.2f      \n" ,-0.32443);
    printf("%10.4f       \n" ,-12366943.3323);
    printf("%.4f         \n" ,float1);
    printf("|%10.3f|     \n" ,float1);
    printf("|%-10.3f|    \n" ,float1);
    printf("|%-+10.3f| \n\n" ,float2);

    printf("|%10.3lf|  \n" ,dou1);
    printf("|%-10.3lf| \n" ,dou2);
    printf("|%-+10.3lf|\n" ,dou2);

    printf("%e         \n" ,-230.445);
    printf("|%10.2e|   \n" ,float1);
    printf("|%+10.2e|  \n" ,float2);
    printf("|%-4e|     \n" ,dou2);

    system("pause");
    return 0;
}

Output:

Aku anggap korang boleh try compare sendiri la dengan contoh yang dah ditunjuk pada kod Rujuk 4.4 kat atas nih. Ringkasan dari contoh yaang ditunjukkan:

  1. kalau nak setkan 6 ruang kotak untuk nombor tak kira int, double atau float, caranya %6d atau %6lf atau %6f
  2. kalau nak setkan 3 bilangan digit titik perpuluhan, untuk float dan double sahaja, caranya %.3f atau %.3lf
  3. kalau nak setkan nombor dirapatkan ke sebelah kiri untuk int, float dan double, caranya %-d, %-f, dan %-lf
  4. kalau nak setkan nombor bernilai positif mesti tunjukkan tanda positif pada pangkal nombor untuk int, float, dan double, caranya %+d, %+f, dan %+lf
  5. kalau nak setkan nombor ditunjukkan dalam format nombor piawai untuk float dan double sahaja, caranya %e
  6. kalau nak setkan nombor double ada 12 ruang kotak, nombor dirapat ke sebelah kiri, mesti 5 titik perpuluhan, caranya %-12.5lf

Sebenarnya bukan nombor je boleh kawal dia punya cara keluar, tapi pekataan, ayat pun boleh juga, contoh:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//Rujuk: 4.5,bahasa-c.blogspot.com
#include<stdio.h>
#include<stdlib.h>    // untuk gunakan command system("pause")

int main()
{
    char tempat[]="Universiti", huruf = 'w', nama[]= "Don Muang";

    printf("%s        \n"  ,tempat);
    printf("%20s      \n"  ,tempat);
    printf("|%20s|    \n"  ,tempat);
    printf("|%-20s|   \n"  ,tempat);
    printf("|%-20.6s| \n\n",tempat);

    printf("%s        \n"  ,nama);
    printf("%20s      \n"  ,nama);
    printf("|%20s|    \n"  ,nama);
    printf("|%-20s|   \n"  ,nama);
    printf("|%-20.6s| \n\n",nama);

    printf("%c       \n"  ,huruf);
    printf("%10c     \n"  ,huruf);
    printf("|%10c|   \n"  ,huruf);
    printf("|%-10c|  \n"  ,huruf);
   
    system("pause");
    return 0;
}

Output:

Ringkasan untuk kawalan karekter, perkataan/ayat:

  1. kalau nak setkan 10 ruang kotak untuk karekter, pekataan/ayat, caranya %10c atau %10s
  2. kalau nak setkan hanya 5 huruf pangkaal pekataan/ayat sahaja yang keluar, caranya %.5s
  3. kalau nak rapatkan karekter, pekataan/ayat ke sebelah kiri, caraanya %-s
  4. kalau nak setkan 8 ruang kotak, pekataan dirapatkan ke sebelah kiri, caranya %-8s

Ok setakat ini dulu, bersambung ke pos printf() :Bhg 3


Pos ni adalah sambungan dari printf() :Bhg 1

Topik berkaitan:

 

2 ulasan:

  1. hmmm, info yg bagus, thx

    BalasPadam
  2. rasa lebih fhm drp bc nota yg baru ku potostat

    BalasPadam