Teori Pendukung Introduction to Algorithm 01
Programming in C / C++
Algorithms + Data Structures = PROGRAMS Niklaus Wirth Eidgenossische Technische Hochschule Zurich, Switzerland
Algoritma dan Bahasa Pemrograman
adalah alat pengolah data, dengan konstruksi elektronik, Mempunyai Processor contoh Intel Pentium KOMPUTER adalah alat pengolah data, dengan konstruksi elektronik, yang mempunyai, internal storage bekerja dengan bantuan Operating System menurut program yang diberikan kepadanya. RAM Contoh WINDOWS
Konfigurasi Komputer
RAM kapasitas 64 MB (external storage) PROCESSOR misal : Intel Pentium MEMORY (internal Storage) KEYBOARD SCREEN Output device Input device RAM misal kapasitas 64 MB HARDDISK (external storage) Misal kapasitas 10 GB Input & Output device
RAM kapasitas 64 MB (external storage) PROCESSOR misal : Intel Pentium Data Program MEMORY (internal Storage) data data data PROGRAM -------- KEYBOARD OPERATING SYSTEM SCREEN Input device Output device RAM misal kapasitas 64 MB Operating System HARDDISK (external storage) Misal kapasitas 10 GB Input & Output device
RAM (Random Access Memory) Kapasitas 64 MB (Mega Byte) Internal Storage, RAM (Random Access Memory) misal dengan Kapasitas 64 MB (Mega Byte)
BYTE adalah satuan memory (storage) terkecil yang masih bisa diberi alamat Satuan lain : WORD ( 4 Byte) HALF WORD ( 2 Byte) DOUBLE WORD ( 8 Byte) SECTOR (512 Byte) no: 0 1 2 3 Bila memory dianggap sebagai sebidang tanah, maka 1 BYTE dapat dianggap sebagai 1 meter persegi memory No : 64 * 1024 * 1024 - 1 (Untuk memory 64 MB) 1 BYTE = 8 bit (binary digit) X X X X X X X X 1 2 3 4 5 6 7 8
MEMORY dan satuan BYTE Memory, bila dibayangkan sebagai sebidang tanah, maka satu BYTE adalah area sebesar satu meter persegi, yang dapat menyimpan satu buah huruf Bila dibayangkan sebagai sebuah ruangan, maka satu BYTE adalah sebuah ubin yang dapat menampung sebuah huruf
RANDOM ACCESS (Akses secara Acak) 0 1 2 3 4 5 . . . . . . Komputer dapat mengakses (menuju, mencapai, mendapatkan) sebuah Byte dalam memory, secara langsung, tanpa harus menelusuri satu per satu mulai Byte 0,1,2,3, dan seterusnya. Bagi komputer, untuk mengakses Byte no 1000, sama mudahnya dengan mengakses Byte nomor 1, atau nomor lainnya
1 BYTE = 8 bit (binary digit atau angka biner) Sebuah Byte terdiri dari 8 komponen yang disebut bit. Sulit menerangkan benda yang disebut bit tersebut secara fisik. Hanya dapat diilustrasikan sebagai sebuah bohlam lampu yang dapat menyala atau padam. Bila menyala disebut ON, dan padam disebut OFF Contoh sebuah huruf A bila disimpan dalam satu BYTE memory ON OFF ilustrasi sebuah BYTE yang terdiri dari 8 buah bohlam lampu.
Catatan : ON OFF disini sengaja dibuat jarak, hanya agar mudah melihat jumlah bitnya ada 8 buah.
Bit = Binary digit (angka biner) Untuk keperluan komputasi secara digital, maka : bit yang ON dinyatakan dengan angka 1, dan bit yang OFF dinyatakan dengan angka 0 Sehingga huruf A yang dinyatakan dengan ON dan OFF nya bit-bit sebagai berikut : ON OFF selanjutnya dinyatakan dengan : 0 1 0 0 0 0 0 1
Binary digit (angka biner) Bilangan Binary, Basis (Radix) = 2, karena hanya mengenal 2 notasi atau simbol yaitu: 0 dan 1 x x x x x x 32 16 8 4 2 1 Bilangan Decimal Basis (Radix) = 10, karena mengenal 10 notasi atau simbol yaitu : 0, 1, 2, 3, . . . 9 x x x x 1000 100 10 1
Binary digit (angka biner) 1 1 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 1 = 0 = 1 = 2 = 3 = 4 = 5 = 6 = 7 = 8 = 9
Nilai yang terkandung dalam sebuah BYTE Setiap bit yang ON mempunyai nilai sesuai dengan posisinya dalam sebuah BYTE yang dapat digambarkan sebagai berikut : 128 64 32 16 8 4 2 1 Contoh : Bila bit-bit dalam satu Byte dinyatakan sebagai berikut : 0 0 1 1 0 1 0 1 32 16 4 1 maka nilai numerik yang tersimpan = 53 ( = 32 + 16 + 4 + 1 )
Nilai karakter A Ilustrasi huruf A yang disimpan dalam suatu BYTE 128 64 32 16 8 4 2 1 Yang dinyatakan dengan angka biner (binary digit) menjadi : 128 64 32 16 8 4 2 1 0 1 0 0 0 0 0 1 Sehingga karakter A, atau huruf A yang disimpan dalam satu BYTE memory akan bernilai = 65 karena bit yang ON bernilai 64 dan 1.
A B C D E HURUF atau KARAKTER : = 65 = 66 = 67 = 68 = 69 128 64 32 16 8 4 2 1 A B C D E = 65 = 66 = 67 = 68 = 69
Operating System (Sistem Operasi) KOMPUTER adalah alat pengolah data, dengan konstruksi elektronik, yang mempunyai, internal storage bekerja dengan bantuan Operating System menurut program yang diberikan kepadanya. Operating System (Sistem Operasi)
Operating System adalah software yang dibuat untuk mengendalikan bekerjanya komputer. Semua pekerjaan didalam komputer dikendalikan (di-control) oleh Operating System Beberapa Contoh Operating System : DOS WINDOWS WINDOWS NT UNIX LINUX XENIX MACINTOSH SUN SOLARIS
PROGRAM KOMPUTER adalah alat pengolah data, dengan konstruksi elektronik, yang mempunyai, internal storage bekerja dengan bantuan Operating System menurut program yang diberikan kepadanya. PROGRAM
yang diberikan kepada komputer untuk menyelesaikan suatu tugas PROGRAM adalah kumpulan instruksi-instruksi yang diberikan kepada komputer untuk menyelesaikan suatu tugas Instruksi-instruksi harus tersusun secara logis = Langkah-langkah dalam Alagoritma Memerlukan LOGIKA yang benar
PROGRAM ditulis dalam suatu bahasa yang disebut Bahasa Pemrograman (Programming Language) Contoh Bahasa Pemrograman : COBOL FORTRAN Pascal BASIC C Java dan sebagainya Bahaca C ini yang kita gunakan untuk menerapkan Algoritma di komputer
Tipe Data. Tipe data dasar (primitif) yang digunakan oleh Bahasa C. 1 Sebutan Tipe Data Bentuk penulisan dalam Bahasa C Jumlah Byte yang diperlukan Jangkauan nilai numerik 1. Character char atau signed char unsigned char 1 -128 s.d. 127 0 s.d. 255 1 2. Integer int atau signed int atau signed unsigned int atau unsigned long atau long int atau signed long atau signed long int unsigned long atau 2 -32768 s.d. 32767 2 0 s.d. 65535 4 -2147483648 s.d. 2147483647 4 0 s.d. 4294967295 4 8 10 3. Floating point (single precision) float double long double 3.4E-38 s.d. 3.4E38 positip atau negatip 4. Double precision 1.7E-308 s.d. 1.7E308 positip atau negatip 3.4E-4932 s.d 1.1E4932 positip atau negatip
Beberapa Escape Character yang akan dibahas \n Cursor pindah ke kolom pertama baris berikutnya (fungsi CR/LF, Carriage return and Line Feed) yang lebih dikenal dengan istilah pindah baris \b Cursor mundur satu langkah pada baris yang sama \r Cursor pindah ke posisi pertama baris yang sama (Carriage Return) \t Cursor pindah ke posisi tabulasi berikutnya \v Cursor pindah ke baris berikutnya pada posisi kolom (X) yang sama
Beberapa Escape Character lain \a Membunyikan bell (untuk pringatan /alert) \f Ganti halaman (pada pencetakan ke printer) \0 Menyatakan karakter null, misalnya karakter khusus sebagai tanda ‘end’ sebuah kalimat atau string. \’ Untuk menampilkan karakter tanda petik tunggal single quotation mark) \” Untuk menampilkan tanda petik ganda (double uotation mark) \\ Untuk menempilkan garis miring terbalik (back slash)
Beberapa contoh karakter ASCII Kode ASCII Kombinasi bit Menyatakan Karakter Kode ASCII Kombinasi bit Menyatakan Karakter 00 01 02 . 48 49 50 65 66 97 98 127 128 0000 0000 0000 0001 0000 0002 . 0011 0000 0011 0001 0011 0010 0100 0001 0100 0010 0110 0001 0110 0010 0111 1111 1000 0000 NULL 1 2 . A B a b Ç 128 129 . 160 161 171 172 192 193 224 225 254 255 1000 0000 1000 0001 . 1010 0000 1010 0001 1010 1011 1010 1100 1100 0000 1100 0001 1110 0000 1110 0001 1111 1110 1111 1111 Ç ü . á í ½ ¼ + - _ ß
Kode ASCII Kode ASCII Char Char 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 Spasi ! “ # $ % & ‘ ( ) * + , - . / 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 1 2 3 4 5 6 7 8 9 : < = > ?
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 @ A B C D E F G H I J K L M N O 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 P Q R S T U V W X Y Z [ \ ] ^ _ 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 ` a b c d e f g h i j k l m n o 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 p q r s t u v w x y z { | } ~
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 A B C D E F G H I J K L M N O 80 81 82 83 84 85 86 87 88 89 90 P Q R S T U V W X Y Z 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 a b c d e f g h i j k l m n o 112 113 114 115 116 117 118 119 120 121 122 p q r s t u v w x y z
int atau signed int xxxx xxxx xxxx xxxx two’s complement -32768 32767 Keterangan untuk Nilai Numeric Integer: int atau signed int 2 BYTE ( 16 bit) xxxx xxxx xxxx xxxx Sign: 0 = positip 1 = negatip Nilai negatip disimpan dalam bentuk two’s complement Jangkauan nilai : -32768 s.d. 32767 -32768 32767
Tipe data : integer int atau signed int 2 BYTE ( 16 bit) 0000 0000 0000 0000 = 0 0000 0000 0000 0001 = 1 0000 0000 0000 0010 = 2 0000 0000 0000 0011 = 3 0111 1111 1111 1111 = 32767 1000 0000 0000 0000 = -32768 1000 0000 0000 0001 = -32767 1111 1111 1111 1110 = -2 1111 1111 1111 1111 = -1
-1 1 -2 2 -3 3 tipe int -32767 32766 -32768 32767 -32768 bila dikurangi 1 akan menjadi 32767 32767 bila ditambah 1 akan menjadi -32768
1 000 0000 0000 0000 = -32768 Nilai : one’s complement : ditambah 1 1 000 0000 0000 0000 = -32768 Sign negatip Nilai : one’s complement : ditambah 1 two’s complement : 1 000 0000 0000 0000 0 111 1111 1111 1111 1 + bit ini nilainya = 32768 1 111 1111 1111 1111 = -1 Nilai : one’s complement : ditambah 1 two’s complement : 1111 1111 1111 1111 0000 0000 0000 0000 1 + 0000 0000 0000 0001 bit ini nilainya = 1
1 1 2’s = 1’s + 1 Pengertian One’s complement (1’s compl.) dan Two’s complement (2’s compl.). 1’s compl. maksudnya supaya lengkap menjadi satu sehingga 0 pelengkapnya = 1, dan 1 pelengkapnya = 0 nilai : 1’s compl : 1 nilai : 1’s compl : 1 + + Sedangkan 2’s compl. = 1’s compl. ditambah satu 2’s = 1’s + 1
Soal : Berapa nilai yang tersimpan dalam 2 Byte bilangan integer berikut ini. 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 Jawab : Bit paling kiri nilainya = 0, berarti nilai yang terkandung bernilai positip. Kemudian susun nilai-nilai setiap bit sebagai berikut : 128 64 32 16 8 4 2 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 Bit-bit yang ON nilainya : = 128 + 8 + 2 + 1 =139 Sehingga nilai yang terkandung dalam 2 Byte integer diatas adalah : 139
Soal : Berapa nilai yang tersimpan dalam 2 Byte bilangan integer berikut ini. 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 1 Jawab : Bit paling kiri nilainya = 1, berarti nilai yang terkandung bernilai negatip. Nilai negatip disimpan dalam bentuk two’s complement Bit yang tersimpan : One’s complement : Two’s complement : 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 128 8 2 1 Nilai Bit yang ON = 128 + 8 + 2 + 1 = 139 Jadi nilai yang tersimpan dalam 2 Byte integer diatas = -139.
Soal : Simpan nilai 39 dalam 2 BYTE integer. Jawab : Susun nilai-nilai bilangan biner sebagai berikut : 64 32 16 8 4 2 1 x x x x x x x 39 terdiri dari 32 + 4 + 2 + 1 Sehingga nilai 39 tersimpan dalam 2 Byte integer, adalah : 32 4 2 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1
Soal : Simpan nilai -39 dalam 2 BYTE integer. Jawab : Susun nilai-nilai bilangan bine sebagai berikut : 64 32 16 8 4 2 1 x x x x x x x 39 terdiri dari 32 + 4 + 2 + 1 nilai 39 tersimpan dalam 2 Byte integer, adalah : 32 4 2 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 1 39 = 1’s = 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 2’s= - 39 =
Soal : Apa yang tercetak oleh instruksi berikut ini : 32768 16384 8192 4096 2048 1024 512 258 128 64 32 16 printf(“%i”, 50000); Jawab : Susun nilai-nilai angka biner yang totalnya cukup untuk 50000 8 4 2 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 50000 merupakan gabungan (penjumlahan) dari : 32768 + 16384 + 512 + 256 + 64 + 16 Ternyata bit yang paling kiri nilainya = 1, jadi nilainya negatip 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1’s = 0 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 0 0
1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 32768 16384 8192 4096 2048 1024 512 258 128 64 32 16 1’s = ditambah 1 2’s = 0 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 0 0 8 4 2 1 0 0 1 1 1 1 0 0 1 0 1 1 0 0 0 0 Nilai bit-bit yang ON = 8192 + 4096 + 2048 + 1024 + 128 + 32 + 16 = 15 536 sehingga : printf(“%i”, 50000); akan mencetak : -15536
Soal : Apa yang tercetak oleh instruksi berikut ini : 65536 32768 16384 8192 4096 2048 1024 512 258 128 64 32 16 printf(“%i”, 100000); Jawab : Susun nilai-nilai angka biner yang totalnya cukup untuk 100000 8 4 2 1 1 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 100000 merupakan gabungan (penjumlahan) dari : 65536 + 32768 + 1024 + 512 + 128 Karena dicetak dengan format %i, yang berarti nilai inteher 2 Byte, maka yang diambil hanya 16 bit dari kanan, yaitu : 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 Ternyata bit yang paling kiri nilainya = 1, jadi nilainya negatip
1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 32768 16384 8192 4096 2048 1024 512 258 128 64 32 16 1’s = ditambah 1 2’s = 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 1 1 0 1 1 1 1 0 0 1 0 1 1 0 0 0 0 0 8 4 2 1 0 1 1 1 1 0 0 1 0 1 1 0 0 0 0 0 Nilai bit-bit yang ON = 16384 + 8192 + 4096 + 2048 + 256 + 64 + 32 = 31 072 sehingga : printf(“%i”, 100000); akan mencetak : -31072
Latihan di Kelas 1. Berapa nilai yang tersimpan dalam 2 Byte bilangan integer berikut ini. a. 0 0 0 0 0 0 0 1 0 1 1 0 1 0 0 0 b. 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 1 2. Gambarkan representasi bit-bit bila bilangan berikut ini disimpan dalam 2 Byte integer. a. 325 b. -293 3. Apa yang tercetak oleh instruksi berikut ini : a. printf(“%i”, 40000); printf(“%i”,-40000); b.
Pekerjaan Rumah. 1. Berapa nilai yang tersimpan dalam 2 Byte bilangan integer berikut ini. a. 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 b. 1 1 1 1 1 1 1 0 1 1 0 1 0 1 0 1 2. Gambarkan representasi bit-bit bila bilangan berikut ini disimpan dalam 2 Byte integer. a. 317 b. -333 3. Apa yang tercetak oleh instruksi berikut ini : a. printf(“%i”, 35000); b. printf(“%i”,-35000);
4.4 Mencetak Konstanta Pada Program C++ 4.4.1 Mencetak Konstanta Tanpa Format Pada Program C++ #include<iostream.h> void main() { cout << “Jakarta”; } Dalam program diatas, ada satu instruksi mencetak sebuah nilai atau konstanta string yaitu : cout << “Jakarta”; Instruksi cout membutuhkan file iostream.h untuk diinclude. Instruksi diatas akan mencetak perkataan Jakarta dilayar monitor.
cout << “Jakarta”; cout << “A”; cout << ‘A’; Yang tercetak di layar Instruski cetak Keterangan cout << “Jakarta”; cout << “A”; cout << ‘A’; cout << 123; cout << 123L; cout << 32768; cout << 65536; cout << -32768; cout << 2147438647 cout << 2147438648 cout << 4294967295 cout << 4294967296 Jakarta A 123 32768 65536 -32768 2147438647 2147438648 4294967295 Batas maksimum nilai Signed Long int Melampaui batas maksimum signed long int dianggapnya unsigned long int Batas maksimum unsigned long int Satu angka diatas batas maksimum unsigned long int semua bitnya = 0 57
cout << 123.456; cout << 123.4567; Yang tercetak di layar Instruski cetak Keterangan cout << 123.456; cout << 123.4567; cout << 123.456789; cout << 1234567.890 cout << 123E2 cout << 123.45E3 123.456 123.457 1.234567e+06 12300 123450 Fraction Lebih dari 6 digit dibulatkan keatas
#include<iostream.h> void main() { cout << 4725; } 4.4.2 Mencetak Konstanta Dengan Format Pada Program C++ #include<iostream.h> void main() { cout << 4725; } 123456789012345 Tercetak: 4725 Catatan-1: Angka-angka 123456789012345 yang terlihat bukan hasil cetakan. Angka-angka itu hanya digunakan untuk membantu melihat letak hasil cetakan.
#include<iostream.h> #include<iomanip.h> void main() { cout << setw(10); cout << 4725; } 123456789012345 Tercetak: 4725 Catatan-1: Angka-angka 123456789012345 yang terlihat bukan hasil cetakan. Angka-angka itu hanya digunakan untuk membantu melihat letak hasil cetakan. Catatan-2: Untuk dapat menggunakan instruksi setw() perlu ditambahkan #include<iomanip.h>
#include<iostream.h> #include<iomanip.h> void main() { Instruksi setw( ), hanya berlaku mengatur format cetakan satu elemen cetakan yang mengikutinya. Elemen-elemen selanjutnya tidak dipengaruhi lagi oleh setw( ). Perhatikan contoh berikut ini. #include<iostream.h> #include<iomanip.h> void main() { cout << setw(10); cout << 4725 << “\n” << 5678 ; } 123456789012345 Tercetak : 4725 5678 Terlihat hanya nilai pertama yaitu 4725 yang dicetak dengan lebar10 spasi sedangkan nilai berikutnya 5678 tidak dipengaruhi lagi oleh setw()
4.4.2.3 Mencetak dengan menggunakan manipulator 1. Penggunaan manipulator endl. #include<iostream.h> void main() { cout << “ABC”; cout << “PQR”” } #include<iostream.h> void main() { cout << “ABC” << endl; cout << “PQR”; } Tercetak: ABCPQR Tercetak: ABC PQR cout << “ABC”; cout << endl << “PQR”; Turun satu baris sebelum mencetak PQR atau sebagai berikut : cout << “ABC” << endl << “PQR”;
2. Penggunaan manipulator ends, dec, hex, oct Instruksi Hasil yang tercetak cout << “ABC” << ends << “PQR”; cout << 29; cout << hex << 29; cout << hex; ABCPQR 29 1d = tanda karakter NULL
Hasil Cetakan Instruksi Keterangan cout << hex << 29 << endl; cout << 30 cout << dec << 30; cout << hex ‘A’ cout << oct << 29; 1d 1e 30 A 35 pengaruh cout << hex tetap ada sampai diganti dengan cout << dec atau cout << oct Hanya nilai integer yang dapat dicetak dalam bentuk Hexadecimal 29 = 3*8 + 5*1
2. Penggunaan manipulator setprecision( ) Instruksi Hasil yang tercetak cout << 123.456 cout << 123.4567 cout << 123.45678 cout << setprecision(0) << 123.456789; cout << setprecision(1) << 123.456789; cout << setprecision(2) << 123.456789; cout << setprecision(3) << 123.456789; cout << setprecision(4) << 123.456789; cout << setprecision(5) << 123.456789; cout << setprecision(6) << 123.456789; cout << setprecision(7) << 123.456789; cout << setprecision(8) << 123.456789; cout << setprecision(9) << 123.456789; cout << setprecision(10) << 123.456789; cout << setprecision(11) << 123.456789; cout << setprecision(12) << 123.456789; 123.456 123.457 1e+02 123.5 123.46 123.4568 123.45679 123.456789
3. Penggunaan manipulator setprecision( ) dengan menggunakan format cetakan yang diatur dengan setiosflags(ios::fixed) Contoh : a.. Mencetak tanpa diformat dengan setiosflag(ios::fixed) #include<iostream.h> #include<iomanip.h> void main() { cout << setprecision(12) << 123.456789; } Tercetak: 123.456789 b. Mencetak dengan diformat dengan setiosflag(ios::fixed) #include<iostream.h> #include<iomanip.h> void main() { cout << setiosflags(ios::fixed); cout << setprecision(12) << 123.456789; } Tercetak: 123.456789000000 Tercetak dengan 12 decimal point
Instruksi cetak yang didahului oleh setiosflags(ios::fixed) cout << setprecision(0) << 123.456789; cout << setprecision(1) << 123.456789; cout << setprecision(2) << 123.456789; cout << setprecision(3) << 123.456789; cout << setprecision(4) << 123.456789; cout << setprecision(5) << 123.456789; cout << setprecision(6) << 123.456789; cout << setprecision(7) << 123.456789; cout << setprecision(8) << 123.456789; cout << setprecision(9) << 123.456789; cout << setprecision(10) << 123.456789; cout << setprecision(11) << 123.456789; cout << setprecision(12) << 123.456789; 123 123.5 123.46 123.457 123.4568 123.45679 123.456789 123.4567890 123.45678900 123.456789000 123.4567890000 123.45678900000 123.456789000000