OVERVIEW OF C
BAB TUJUAN
1.
Untuk menjadi akrab dengan bentuk umum dari C
program dan elemen dasar dalam sebuah program
2.
Untuk menghargai pentingnya menulis komentar
dalam program
4.
Untuk mengetahui bagaimana cara mendeklarasikan
variabel
5.
Untuk memahami bagaimana menulis pernyataan
tugas untuk mengubah nilai-nilai dari variabel
6.
Untuk mempelajari cara C mengevaluasi ekspresi
aritmatika dan bagaimana menulis mereka di C
7.
Untuk mempelajari cara membaca nilai data ke
dalam program dan hasil tampilan
8.
Untuk memahami bagaimana menulis string format
untuk data entry dan display
9.
Untuk mempelajari cara menggunakan redirection
untuk memungkinkan penggunaan file untuk input / output
10.
Untuk memahami perbedaan antara kesalahan
sintaks, run-time kesalahan, dan kesalahan logika, dan bagaimana untuk
menghindari mereka dan untuk memperbaikinya
Bab ini memperkenalkan C-bahasa pemrograman tingkat tinggi
yang dikembangkan pada tahun
1972 oleh Dennis Ritchie di AT & T Bell Laboratories.Karena C dirancang sebagai bahasa di mana untuk menulis sistem operasi UNIX ®, awalnya digunakan terutama untuk pemrograman sistem.Selama bertahun-tahun, namun kekuatan dan fleksibilitas C bersama dengan ketersediaan berkualitas tinggi kompiler C untuk computer dari semua ukuran telah membuatnya menjadi bahasa populer di industri untuk berbagai macam aplikasi.
1972 oleh Dennis Ritchie di AT & T Bell Laboratories.Karena C dirancang sebagai bahasa di mana untuk menulis sistem operasi UNIX ®, awalnya digunakan terutama untuk pemrograman sistem.Selama bertahun-tahun, namun kekuatan dan fleksibilitas C bersama dengan ketersediaan berkualitas tinggi kompiler C untuk computer dari semua ukuran telah membuatnya menjadi bahasa populer di industri untuk berbagai macam aplikasi.
Bab ini menjelaskan unsur-unsur dari program C dan jenis
data yang dapat diproses oleh C. Ini juga menggambarkan pernyataan C untuk
melakukan perhitungan, untuk memasukkan data, dan untuk hasil
menampilkan.Bahasa Inggris. Meskipun Anda belum tahu bagaimana menulis program
Anda sendiri, Anda mungkin dapat membaca dan memahami program pada Gambar 2.1
mengulangi Angka dengan fitur dasar dari C disorot. Kami mengidentifikasi secara singkat di bawah ini, dan
menjelaskan secara rinci dalam Bagian 2,2-2,4. Nomor baris yang ditunjukkan
dalam kode semua angka bukan bagian dari pemrograman C.
Preprocessor
Directive
The program C pada Gambar. 2.1 memiliki dua bagian: arahan
preprocessor dan utama fungsi. Arahan preprocessor adalah perintah yang
memberikan instruksi kepada C preprocessor, yang tugasnya adalah untuk mengubah
teks dari program C sebelumdikompilasi.Sebuah direktif preprocessor dimulai
dengan simbol angka (#) sebagai pertama nonblank karakter. Dua arahan yang
paling umum muncul dalam Gambar. 2.1: # include dan #
define. Bahasa C eksplisit mendefinisikan hanya sejumlah kecil dari operasi:
Banyak tindakan yang diperlukan dalam program komputer tidak ditentukan
langsung oleh C. Sebaliknya, setiap pelaksanaan C berisi koleksi fungsi yang
berguna dan simbol yang disebut perpustakaan. ANSI (American National Standards
Institute) standar untuk C mensyaratkan bahwa perpustakaan standar tertentu
akan disediakan di setiap ANSI C implementasi. AC sistem dapat memperluas
jumlah operasi yang tersedia dengan memasok library tambahan. Perpustakaan
masing-masing memiliki file header standar yang namanya berakhir dengansimbol
.h.

# Include direktif memberikan akses program untuk
perpustakaan. direktif inimenyebabkanpreprocessor untuk memasukkan definisi
dari file header standar ke dalam programsebelum kompilasi. direktif
# include <stdio.h> /
* printf, definisi scanf * /
memberitahukan preprocessor bahwa beberapa nama yang
digunakan dalam program (seperti scanf dan printf) ditemukan dalam
<stdio.h> file header standar.
Direktif lainnya preprocessor pada Gambar. 2.1
Direktif lainnya preprocessor pada Gambar. 2.1
# define KMS_PER_MILE 1.609 / * konversi
Syntax Displays for Preprocessor Directives
For
each new C construct introduced in this book, we provide a syntax display that
describes
and explains the construct’s syntax and shows examples of its use.
CONTOH: # include
# include <math.h>
INTERPRETASI: # include direktif memberitahu preprocessor
mana untuk menemukan makna dari
standar pengidentifikasi yang digunakan dalam program. Ini makna dikumpulkan dalam file yang disebut standarfile header. The file header stdio.h berisi informasi tentang standard input dan
output fungsi seperti scanf dan printf.
standar pengidentifikasi yang digunakan dalam program. Ini makna dikumpulkan dalam file yang disebut standarfile header. The file header stdio.h berisi informasi tentang standard input dan
output fungsi seperti scanf dan printf.

Function main
The
two-line heading
int
main(void)
marks
the beginning of the main function where program execution begins. EveryC
program has a main function. The remaining lines of the program form the bodyof the
function which is enclosed in braces {, } .A function body has two parts:
declarations and executable statements. Theeclarationstell the compiler
what memory cells are needed in the function (forexample, miles and kms in Fig.
2.1 ). To create this part of the function, the programmeruses the problem data
requirements identified during problem analysis.The executable statements (derived from the algorithm) are translated into
machine
language and later executed.The main function contains punctuation and
special symbols ( *, = ). Commasseparate items in a list, a semicolon appears at the end
of several lines, and braces
( {, } ) mark
the beginning and end of the body of function main .


Kata
Reserved
Setiap baris dari Gambar. 2,1 berisi sejumlah kata yang
berbeda diklasifikasikan sebagai cadangankata, pengidentifikasi dari
perpustakaan standar, dan nama untuk sel-sel memori. Semua
kata-kata reserved muncul dalam huruf kecil, mereka memiliki arti khusus dalam C dan tidak bias
digunakan untuk tujuan lainnya.
kata-kata reserved muncul dalam huruf kecil, mereka memiliki arti khusus dalam C dan tidak bias
digunakan untuk tujuan lainnya.
Standard
Identifier
kata-kata dalam Gambar. 2,1 adalah
pengidentifikasi yang datang dalam dua varietas: standar danuser-defined. Seperti kata-kata reserved, pengidentifikasi standar memiliki arti khusus dalamC. Dalam Gambar. 2.1, pengenal standar printf dan scanf adalah nama operasididefinisikan dalam perpustakaan input / output standar. Tidak seperti kata-kata reserved, standar pengidentifikasidapat didefinisikan ulang dan digunakan oleh programmer untuk tujuan lain.
ada beberapa
kebebasan dalam memilih pengidentifikasi. Aturan sintaks dan beberapa
berlakupengidentifikasi
Tabel 2.2 menunjukkan beberapa pengidentifikasi valid.
1. Identifier harus hanya terdiri dari huruf, angka, dan garis
bawah.
2. Identifier tidak dapat dimulai dengan digit.
3. AC cadangan kata tidak dapat digunakan sebagai identifier.
4. Sebuah identifier yang didefinisikan dalam perpustakaan standar C tidak boleh didefinisikan ulang. *
2. Identifier tidak dapat dimulai dengan digit.
3. AC cadangan kata tidak dapat digunakan sebagai identifier.
4. Sebuah identifier yang didefinisikan dalam perpustakaan standar C tidak boleh didefinisikan ulang. *

* Rule 4 is actually advice from the authors rather than ANSI C syntax.

Huruf besar
dan huruf kecil dalm surat
Programmer C harus berhati-hati dalam penggunaan huruf besar
dan huruf kecilsurat karenakompiler C menganggap penggunaan tersebut
signifikan. Tingkat nama,tingkat, dan RATE dipandang oleh kompilator sebagai
pengidentifikasi yang berbeda. Mengadopsi konsistenPola dalam cara Anda
menggunakan huruf besar dan huruf kecil sangat membantu untukpembaca program
Anda. Andaakan melihat bahwa semuakata dalam C dan namadari semua fungsi
perpustakaan standar hanya menggunakan huruf kecil. Salah satu gaya yang
telahdiadopsi secara luas dalam industri menggunakan huruf besar semua atas
nama macro konstan.Kami mengikuti konvensi dalam teks ini, karena pengenal
lainnya menggunakan huruf kecil semua.
Program Gaya
Memilih Nama Identifier
Suatu programyang "terlihat baik" lebih mudah
untuk membaca dan memahami dari satu yang ceroboh. Kebanyakan programakan
diperiksa atau dipelajari oleh orang lain selain programer aslinya.Dalam
industri, programmer menghabiskan waktu jauh lebih banyak untuk pemeliharaan
Program(Yaitu, memperbarui dan memodifikasi program) daripada yang mereka
lakukan pada desain aslinya ataucoding.
2.2
Variable Declarations and Data Types
Variabel
Deklarasi
Sel-sel memori yang digunakan untuk menyimpan data input
program dan komputasiHasil disebut variabel karena nilai-nilai yang tersimpan
dalam variabel dapat mengubahdansebagai
program pengeksekusi.
Variabel deklarasi dalam CProgram berkomunikasi dengan compiler C nama semua
variabel yang digunakan dalam program.Mereka juga memberitahu compiler apa
jenis informasi yang akan disimpan di setiapvariabel dan bagaimana informasi
yang akan diwakili dalam memori.
double
miles; /* input - distance in miles. */
double kms;
/* output - distance in kilometers */
memberikan nama dua variabel (mil, km) digunakan untuk
menyimpan bilangan real. Perhatikan bahwa Cmengabaikan komentar di sebelah
kanan dari setiap baris menggambarkan penggunaan masing-masing variabel.Sebuah
deklarasi variabel dimulai dengan identifier (misalnya, ganda) yang
memberitahucompiler C jenis data (seperti bilangan real) disimpan dalam
variabel tertentu.
Anda dapat mendeklarasikan variabel untuk semua jenis data.C
mengharuskan Anda untuk menyatakan setiapvariabel yang digunakan dalam program.

Tipe Data
Sebuah tipe data adalah seperangkat nilai-nilai dan satu set
operasi pada nilai-nilai. Pengetahuandari tipe data dari item (variabel atau
nilai) memungkinkan compiler C untuk benarmenentukan operasi pada item itu.
Sebuah tipe data standar di C adalah tipe data yangstandar, seperti sebagai
char int, ganda. Kami menggunakan jenis data standarganda dan int sebagai
abstraksi untuk bilangan real dan bilangan bulat (dalam matematika akal).
Konstanta numerik dalam C
dianggap nomor nonnegatif. meskipun Andadapatmenggunakan nomor seperti -10.500
dalam program, C memandang tanda minus sebagai negasiOperator (diterapkan pada
10500 konstanta positif) daripada sebagai bagian darikonstan.
Tipe Data int
Tipe data intdigunakan untuk mewakili bilangan bulat di C. Karena ukuran terbatas dari sel memori, tidak semuabilangan bulat dapat diwakili oleh tipe int. ANSI C menetapkan bahwa berbagai tipe data int harus menyertakan setidaknya menghargai -32.767 sampai 32767. Anda dapat menyimpan integerdalam variabel bertipe int, melakukan operasi aritmatika umum (menambah, mengurangi,mengalikan, dan membagi), dan membandingkan dua bilangan bulat. Beberapa nilai-nilai yang Anda dapat menyimpan dalamjenis variabel int yang
-10500 435 +15 -25 32767
Tipe data intdigunakan untuk mewakili bilangan bulat di C. Karena ukuran terbatas dari sel memori, tidak semuabilangan bulat dapat diwakili oleh tipe int. ANSI C menetapkan bahwa berbagai tipe data int harus menyertakan setidaknya menghargai -32.767 sampai 32767. Anda dapat menyimpan integerdalam variabel bertipe int, melakukan operasi aritmatika umum (menambah, mengurangi,mengalikan, dan membagi), dan membandingkan dua bilangan bulat. Beberapa nilai-nilai yang Anda dapat menyimpan dalamjenis variabel int yang
-10500 435 +15 -25 32767
Tipe Data ganda
Sejumlah nyata memiliki bagian integral dan bagian pecahan yangdipisahkan oleh titik desimal. Dalam C, ganda tipe data yang digunakan untuk mewakilinyata nomor (misalnya, 3,14159, 0,0005, 150.0). Anda dapat menyimpan bilangan realdalam variabel tipe double, melakukan operasi aritmatika umum (menambah,mengurangi, mengalikan, dan membagi), dan membandingkannya.
Sejumlah nyata memiliki bagian integral dan bagian pecahan yangdipisahkan oleh titik desimal. Dalam C, ganda tipe data yang digunakan untuk mewakilinyata nomor (misalnya, 3,14159, 0,0005, 150.0). Anda dapat menyimpan bilangan realdalam variabel tipe double, melakukan operasi aritmatika umum (menambah,mengurangi, mengalikan, dan membagi), dan membandingkannya.
Tipe data ganda adalah abstraksi untuk bilangan real karena
tidaktidak termasuk mereka semua. Beberapa bilangan real yang terlalu besar
atau terlalu kecil, dan beberapabilangan real tidak dapat diwakili tepat karena
ukuran terbatas darimemori sel. Namun, kita tentu dapat mewakili cukup dari
bilangan realdi C untuk melaksanakan sebagian besar dari perhitungan kami ingin
tampil dengan cukupakurasi.

Bilangan bulat positif diwakili
oleh bilangan biner standar.Jika Anda sudah familiardengan sistem bilangan
biner, Anda tahu bahwa 13 integer direpresentasikan sebagaibilangan biner
01.101.
Format nilai tipe ganda (juga
disebut floating-point format) adalah analoguntuk notasi ilmiah. Tempat
penyimpanan ditempati oleh nomor tersebut dibagi menjaditiga bagian: tanda (0
untuk bilangan positif, 1 untuk angka negatif), mantissa, Dan eksponen.
Mantissa adalah pecahan biner antara 0,5 dan 1,0. Itueksponen adalah bilangan
bulat.Mantissa dan eksponen yang dipilih sehingga berikutrumus sudah benar.
real number _ mantissa _ 2exponent
Jika 64 bit yang digunakan untuk penyimpanan sejumlah tipe ganda, tanda akan menempati 1bit, 11 bit eksponen, dan 52 bit mantissa. Karena ukuran terbatas darimemori sel, tidak semua bilangan real dalam kisaran diperbolehkan dapat diwakili tepatsebagai ketik nilai ganda. Kita akan membahas konsep ini nanti.
Jika 64 bit yang digunakan untuk penyimpanan sejumlah tipe ganda, tanda akan menempati 1bit, 11 bit eksponen, dan 52 bit mantissa. Karena ukuran terbatas darimemori sel, tidak semua bilangan real dalam kisaran diperbolehkan dapat diwakili tepatsebagai ketik nilai ganda. Kita akan membahas konsep ini nanti.
Kita telah melihat bahwa nilai-nilai tipe double mungkin
termasuk bagian pecahan, sedangkantipe nilai int tidak bisa. Keuntungan
tambahan dari format tipe ganda adalah bahwayang jauh lebih besar dari angka
dapat direpresentasikan dibandingkan dengan tipe int.Berkisar aktual bervariasi
dari satu implementasi ke yang lain, tetapi standar ANSIuntuk C menetapkan
bahwa rentang minimum nilai-nilai positif dari tipe int adalah dari 1
sampai32.767 (sekitar 3,3? 10 4). Rentang minimum yang ditetapkan untuk nilai
positif.
Tipe
data Char
Data
tipe char mewakili karakter nilai-individu surat, angka, ataukhusus simbol.
Setiap nilai tipe char tertutup dalam apostrof (tanda kutip tunggal)
sebagaiditampilkan di sini.


Pada baris di
atas Tabel 2.6, nilai karakter '"' mewakili karakter"; yangkarakter
nilai '' mewakili karakter kosong, yang diketik dengan menekantanda kutip
kunci, space bar, dan tombol tanda kutip.Meskipun nilai tipe char dalam
program membutuhkan apostrof, data tipe charnilai tidak harus memiliki mereka.
Jadi, misalnya, ketika memasuki huruf z sebagai karakterData item yang akan
dibaca oleh program, tekan tombol z bukan urutan 'z'.
Kode ASCII
Anda harus tahu bahwa karakter diwakili dalam memori sebagai
integer.Karakter digit '0 'melalui '9' memiliki nilai kode 48 sampai 57
(desimal).Hubungan agar berikut berlaku untuk karakter digit (yaitu, '0
'<'1','1 '<'2', Dan sebagainya).
'0 '<'1' <'2 '<'3' <'4 '<'5' <'6 '<'7'
<'8 '<'9'Dalam ASCII, huruf besar memiliki kode desimal nilai 65 sampai
90.ItuAgar hubungan yang berikut berlaku untuk huruf besar.
'A' <'B' <'C' <... <'X' <'Y' <'Z'Huruf
kecil memiliki kode desimal berturut-turut nilai 97 sampai 122, danHubungan
urutan berikut ini berlaku:
'a' <'b' <'c' <... <'X' <'y' <'z'Dalam
ASCII, karakter yang dapat dicetak memiliki kode dari 32 (kode untuk kosong
atauspasi) 126 (kode untuk simbol ~). Kode lainnya merupakan kontrol
nonprintablekarakter. Mengirim karakter kontrol ke perangkat output menyebabkan
perangkat untukmelakukan operasi khusus seperti kembali kursor ke kolom satu,
majukursor ke baris berikutnya, atau dering bel.
Program in Memory
Sebelum memeriksa laporan dieksekusi dalam konversi
mil-to-kilometer
Program (Gambar 2.1), mari kita lihat apa memori komputer
seperti sebelum dan setelah program yang
mengeksekusi. Gambar 2.3 memperlihatkan program dimuat ke memoridan memori
program daerah sebelum program dijalankan.Para tanda Tanyadalam sel memori mil
dan km menunjukkan bahwa nilai-nilai dari sel-sel ini tidak terdefinisisebelum
eksekusi program dimulai. Selama pelaksanaan program, datanilai 10,00 disalin
dari perangkat input ke dalam variabel mil. SetelahProgram mengeksekusi,
variabel didefinisikan seperti ditunjukkan pada Gambar. 2,3 b.
ASIGMENT STETMENT
Sebuah pernyataan penugasan menyimpan nilai atau hasil
komputasi dalam variabel,dan digunakan untuk melakukan operasi aritmatika yang
paling dalam sebuah program
pernyataan
pernyataan
kms = KMS_PER_MILE * mil;
memberikan nilai ke variabel km. Nilai yang diberikan adalah hasil dari perkalian(* Berarti kalikan) dari KMS_PER_MILE makro konstan (1.609) dengan variablemil. Sel memori untuk mil harus berisi informasi yang valid (dalam hal ini,bilangan real) sebelum pernyataan penugasan dijalankan.Gambar 2.4 menunjukkanisi memori sebelum dan sesudah pernyataan penugasan mengeksekusi; hanyanilai kms berubah.
memberikan nilai ke variabel km. Nilai yang diberikan adalah hasil dari perkalian(* Berarti kalikan) dari KMS_PER_MILE makro konstan (1.609) dengan variablemil. Sel memori untuk mil harus berisi informasi yang valid (dalam hal ini,bilangan real) sebelum pernyataan penugasan dijalankan.Gambar 2.4 menunjukkanisi memori sebelum dan sesudah pernyataan penugasan mengeksekusi; hanyanilai kms berubah.
Dalam C = simbol adalah operator penugasan. Membacanya
sebagai "menjadi," "mendapatkan,"atau "mengambil
nilai" daripada "sama" karena tidak setara dengansama tanda
matematika. Dalam matematika, simbol ini menyatakan hubunganantara dua nilai,
tapi di C itu merupakan suatu tindakan yang akan dilakukan olehkomputer.

Dalam C Anda dapat menulis pernyataan penugasan dalam bentuk
sum = sum + item;
di mana jumlah variabel muncul di kedua sisi dari operator penugasan. Ini jelasbukan persamaan aljabar, tetapi ini menggambarkan praktek pemrograman umum.Pernyataan ini menginstruksikan komputer untuk menambah nilai saat ini dari jumlah dengan nilaiitem; hasilnya kemudian disimpan kembali ke sum. Nilai sebelumnya dari jumlah hancurdalam proses, seperti yang diilustrasikan pada Gambar. 2,5. Nilai barang, bagaimanapun, adalah tidak berubah.

Anda juga dapat menulis pernyataan tugas yang menetapkan
nilai dari sebuah variabel tunggalatau konstan ke variabel. Jika x dan new_x
sedang mengetik variabel ganda, pernyataannew_x = x;salinan nilai variabel x ke
new_x variabel. Pernyataannew_x =-x;
memerintahkan komputer untuk mendapatkan nilai x, meniadakan nilai tersebut, dan menyimpan hasilnyadi new_x. Sebagai contoh, jika x adalah 3,5, new_x adalah -3.5. Tak satu pun dari pernyataan penugasanatas perubahan nilai x.
memerintahkan komputer untuk mendapatkan nilai x, meniadakan nilai tersebut, dan menyimpan hasilnyadi new_x. Sebagai contoh, jika x adalah 3,5, new_x adalah -3.5. Tak satu pun dari pernyataan penugasanatas perubahan nilai x.
Bentuk Umum
Program C
Seperti yang ditunjukkan pada Gambar.2.8, setiap program
dimulai dengan arahan preprocessor yangberfungsi untuk memberikan informasi
tentang fungsi dari perpustakaan standar dan definisikonstanta Program yang
diperlukan. Contoh perintah tersebut # include dan# define. Berbeda dengan
deklarasi dan pernyataan eksekusi dari fungsi utamatubuh, arahan preprocessor
kita lihat tidak berakhir di titik koma.Sebuah program C sederhana mendefinisikan
fungsi utama setelah arahan preprocessor.Sebuah keriting terbuka brace ({) sinyal awal tubuh fungsi utama. dalam hal
initubuh, pertama-tama kita melihat deklarasi dari semua variabel yang akan
digunakan oleh fungsi utama.Variabel ini diikuti oleh pernyataan yang
diterjemahkan ke dalam mesinBahasa dan akhirnya dieksekusi. Laporan kami telah
melihat sejauh melakukanperhitungan atau operasi input / output. Akhir dari
tubuh fungsi utamaditandai dengan penutupan keriting brace (}).C
memperlakukanistirahat yang paling baris seperti ruang sehingga pernyataan C
dapat memperpanjang selama lebihdari satu baris.Anda tidak harus membagi
pernyataan yang membentang selama lebih dari satu barisdi tengah-tengah sebuah
identifier, kata cipta, sebuah konstanta, atau format string.
2.6
Formatting Numbers in Program Output
C menampilkan semua nomor dalam notasi default kecuali Anda
menginstruksikan untuk melakukan sebaliknya.
Bagian ini menjelaskan cara menentukan format atau tampilan
output.
Format Nilai int Type
Menentukan format nilai integer ditampilkan oleh program C
cukup mudah.
Anda cukup menambahkan nomor antara% dan d dari placeholder%
d di
printf format string. Jumlah ini menentukan bidang
lebar-jumlah kolom
digunakan untuk menampilkan nilai. Pernyataan
printf ("Hasil:% 3d meter =% 4d ft% 2d masuk \ n",
meter, kaki, inci);
menunjukkan bahwa 3 kolom akan digunakan untuk menampilkan
nilai meter, 4 kolom akan
digunakan untuk kaki, dan 2 kolom akan digunakan untuk inci
(angka antara 0 dan
11). Jika meter adalah 21, kaki adalah 68, dan 11 inci
adalah, output program ini akan
Hasil: 21 meter = 68 ft 11 inci
Dalam baris ini, melihat bahwa ada ruang ekstra sebelum
nilai meter (21) dan
dua tambahan spasi sebelum nilai kaki (68). Alasannya adalah
bahwa placeholder
untuk meter (% 3d) memungkinkan ruang untuk 3 digit yang
akan dicetak. Karena nilai
meter adalah antara 10 dan 99, dua angka yang ditampilkan
benar-dibenarkan, didahului
oleh satu ruang kosong. Karena tempat untuk kaki (% 4d)
memungkinkan ruang untuk 4 digit,
mencetak dua digit nilai kanan dibenarkan meninggalkan dua
ruang kosong ekstra. Kita dapat menggunakan
yang% placeholder 2d untuk menampilkan setiap nilai integer
antara -9 dan 99. Placeholder
4d% bekerja untuk nilai-nilai dalam kisaran -999 sampai
9999. Untuk angka negatif,
Tanda minus termasuk dalam hitungan angka yang ditampilkan.
Tabel 2.14 menunjukkan bagaimana dua nilai integer
ditampilkan menggunakan format yang berbeda
String penampung.The ❚ karakter merupakan karakter kosong. Baris terakhir
menunjukkan bahwa C memperluas lebar lapangan jika terlalu
kecil untuk nilai integer ditampilkan.
Format Nilai ganda Type
Untuk menggambarkan spesifikasi format untuk nilai tipe
double, kita harus menunjukkan baik
lebar bidang total yang dibutuhkan dan jumlah tempat desimal
yang diinginkan. Jumlah
lebar lapangan harus cukup besar untuk menampung semua angka
sebelum dan sesudah
titik desimal. Akan ada setidaknya satu digit sebelum titik
desimal karena


nol dicetak sebagai bagian keseluruhan jumlah fraksi yang
kurang dari 1,0 dan
lebih besar dari -1.0. Kita juga harus mencakup kolom
tampilan untuk titik desimal
dan untuk tanda minus jika nomor bisa menjadi negatif.
Bentuk format string
placeholder adalah n%. mf dimana n adalah angka yang
mewakili lebar bidang total, dan m
adalah jumlah yang diinginkan dari tempat desimal.
Jika x adalah variabel tipe double yang nilainya akan berada
di antara -99,99 dan
999,99, kita bisa menggunakan% 6.2f placeholder untuk
menampilkan nilai dari x ke
akurasi dari dua tempat desimal. Tabel 2.15 menunjukkan
nilai yang berbeda dari x ditampilkan
menggunakan spesifikasi format. Nilai-nilai yang ditampilkan
dibulatkan ke dua desimal
tempat dan ditampilkan kanan dibenarkan dalam enam kolom.
Ketika Anda putaran ke dua
desimal tempat, jika digit ketiga bagian pecahan nilai
adalah 5 atau lebih besar,
digit kedua bertambah dengan 1 (-9,536 menjadi -9,54). Jika
tidak, angka
setelah digit kedua fraksi hanya turun (-25,554 menjadi
-25,55).
Tabel 2.16 menunjukkan beberapa nilai-nilai yang ditampilkan
menggunakan placeholder lainnya.
Baris terakhir menunjukkan itu legal untuk menghilangkan
lebar bidang total dalam format string
placeholder. Jika Anda menggunakan placeholder seperti%.m f
untuk menentukan hanya jumlah
desimal, nilai akan dicetak tanpa kosong terkemuka.

Program Gaya
Menghilangkan Kosong MemimpinSeperti yang ditunjukkan pada Tabel 2.14 sampai
2.16, nilai yang seluruh-nomor bagian membutuhkankolom tampilan lebih sedikit
dari yang ditentukan oleh lebar lapangan Format ditampilkan denganmemimpin
kosong. Untuk menghilangkan kosong terkemuka ekstra, menghilangkan lebar
lapangan dariformat string placeholder. D placeholder sederhana% akan
menyebabkan nilai integer untukditampilkan tanpa kosong terkemuka. Sebuah
placeholder% dari bentuk.m f memiliki samaefek untuk nilai tipe double, dan
placeholder ini masih memungkinkan Anda untuk memilihjumlah tempat desimal yang
Anda inginkan.
Interactive
Mode, Batch Mode, and Data Files
Ada dua mode dasar operasi komputer: modus batch dan
interaktifmodus. Program-program yang kita tulis sejauh berjalan dalam mode
interaktif.dalam interaktifmode, pengguna program berinteraksi dengan program
dan jenis data sementarasedang berjalan. Kami termasuk meminta agar pengguna
program tahu kapan harus memasukkan setiap Data item.Dalam modus batch, program
memindai data dari sebuah file data yang disiapkansebelumnya bukannya
berinteraksi dengan penggunanya.
Gambar 2.14 menunjukkan program mil-to-kilometer konversi
ditulis kembali sebagai batchProgram. Kami berasumsi sini bahwa perangkat input
standar dikaitkan dengan batchData mengajukan bukan dengan keyboard. Pada
kebanyakan sistem, hubungan ini dapatdicapai relatif mudah melalui input /
output redirection menggunakan sistem operasiperintah. Misalnya, dalam ® dan
MS-DOS UNIX ® sistem operasi, Andadapat menginstruksikan program untuk
mengambil input dari mydata.txt file bukan darikeyboard dengan menempatkan
simbol mydata.txt <pada akhir baris perintahyang menyebabkan program anda
dikompilasi dan dihubungkan untuk mengeksekusi. Anda harus menggunakan
editorprogram atau pengolah kata untuk membuat mydata.txt file teks sebelum
mencoba untukmenjalankan program. Jika Anda biasanya menggunakan baris perintah
metric
to execute this program, your
new command line would be
metric<mydata.txt
Program
Style Echo Prints
versus Prompts
In Fig. 2.14
, the statement
scanf("%lf", &miles);
mendapat nilai untuk mil dari garis (dan hanya) pertama dari
file data. KarenaProgram masukan berasal dari file data, tidak perlu mendahului
pernyataan inidengan pesan mendorong. Sebaliknya, kita mengikuti panggilan
untuk scanf dengan pernyataanprintf ("Jarak dalam mil adalah% .2 f \
n.", mil);
Ini gema Pernyataan mencetak atau menampilkan nilai hanya disimpan dalam mil dan menyediakancatatan data dimanipulasi oleh program. Tanpa itu, kita akan memilikiada cara mudah untuk mengetahui apa scanf diperoleh nilai untuk mil. Setiap kali Anda mengkonversiprogram interaktif untuk sebuah program batch, pastikan Anda mengganti setiap pertanyaandengan cetak gema yang mengikuti panggilan untuk scanf.
Ini gema Pernyataan mencetak atau menampilkan nilai hanya disimpan dalam mil dan menyediakancatatan data dimanipulasi oleh program. Tanpa itu, kita akan memilikiada cara mudah untuk mengetahui apa scanf diperoleh nilai untuk mil. Setiap kali Anda mengkonversiprogram interaktif untuk sebuah program batch, pastikan Anda mengganti setiap pertanyaandengan cetak gema yang mengikuti panggilan untuk scanf.
Output Redirection
Anda juga dapat mengarahkan output program ke file disk bukan
ke layar. KemudianAnda dapat mengirim file output ke printer (menggunakan
perintah sistem operasi) untukmendapatkan hard copy dari output program. Dalam
UNIX atau MS-DOS, gunakan simbol> myoutput.txt untuk mengarahkan output dari
layar untuk mengajukan myoutput.txt. andatidak perlu membuat myoutput.txt file
sebelum menjalankan program.

memiliki file yang sudah ada dengan nama ini, isinya akan
ditimpa saat AndaProgram berjalan. Baris perintah
metrik myoutput.txt>
metrik myoutput.txt>
mengeksekusi kode dikompilasi dan dihubungkan untuk metrik
program, mengambil masukan Programdari keyboard dan output menulis program
untuk mengajukan myoutput.txt. Namun,berinteraksi dengan program berjalan akan
sulit karena semua output program,termasuk pesan yang meminta, akan dikirim ke
file output. Akan lebih baik
menggunakan baris perintah
metrik <mydata.txt> myoutput.txt
yang akan mengambil input program dari mydata.txt file data dan mengirimkan keluaran program
file output myoutput.txt.
metrik <mydata.txt> myoutput.txt
yang akan mengambil input program dari mydata.txt file data dan mengirimkan keluaran program
file output myoutput.txt.
2.8
Common Programming Errors
Saat Anda mulai program, segera Anda akan menemukan bahwa
program jarang berjalan dengan benarpertama kalinya dijalankan. Hukum Murphy,
"Jika sesuatu bisa salah, itu akan,"tampaknya telah ditulis dengan
program komputer dalam pikiran. Bahkan, kesalahanbegitu umum bahwa mereka
memiliki khusus mereka sendiri nama-bug-dan prosesmengoreksi mereka disebut
debug program. (Menurut cerita rakyat komputer,pelopor komputer Dr Grace Murray
Hopper didiagnosis kesalahan hardware pertama disebabkan oleh serangga yang
besar ditemukan di dalam komponen komputer).
potensi masalah, kami akan memberikan bagian pada kesalahan pemrograman umum diakhir setiap bab.
Ketika compiler mendeteksi kesalahan, komputer akan menampilkan pesan kesalahan,yang menunjukkan bahwa Anda telah melakukan kesalahan dan apa penyebab kemungkinan kesalahanmungkin. Sayangnya, pesan kesalahan sering sulit untuk menafsirkan dankadang-kadang menyesatkan. Seperti yang Anda mendapatkan pengalaman, Anda akan menjadi lebih mahirmenemukan dan memperbaiki kesalahan.
Tiga jenis kesalahan-kesalahan sintaks, kesalahan run-time, dan logika-kesalahan dapatterjadi, seperti yang dibahas pada bagian berikut.
potensi masalah, kami akan memberikan bagian pada kesalahan pemrograman umum diakhir setiap bab.
Ketika compiler mendeteksi kesalahan, komputer akan menampilkan pesan kesalahan,yang menunjukkan bahwa Anda telah melakukan kesalahan dan apa penyebab kemungkinan kesalahanmungkin. Sayangnya, pesan kesalahan sering sulit untuk menafsirkan dankadang-kadang menyesatkan. Seperti yang Anda mendapatkan pengalaman, Anda akan menjadi lebih mahirmenemukan dan memperbaiki kesalahan.
Tiga jenis kesalahan-kesalahan sintaks, kesalahan run-time, dan logika-kesalahan dapatterjadi, seperti yang dibahas pada bagian berikut.
Syntax
Errors
Sebuah kesalahan sintaks terjadi ketika kode Anda melanggar
aturan tata bahasa satu atau lebih dariC dan dideteksi oleh compiler karena
upaya untuk menerjemahkan program anda. JikaPernyataan memiliki kesalahan
sintaks, tidak dapat diterjemahkan dan program Anda tidak akandieksekusi.
Gambar 2.15 menunjukkan daftar compiler dari konversi
mil-to-kilometerProgram.daftar compiler adalah daftar yang dibuat oleh
kompilator selama programterjemahan yang menunjukkan setiap baris dari program
sumber (didahului oleh nomor baris)dan setiap kesalahan sintaks terdeteksi oleh
kompilator. Untuk compiler tertentu, kesalahanditandai dengan garis-garis yang
dimulai dengan tanda bintang lima.
Berikut ini adalah tentang kesalahanyang terjadi pada sintaks:
■ Hilang titik koma pada akhir
deklarasi variabel (di baris 271)
■ variabel dideklarasikan mil (terdeteksi di baris 275 dan 278)
■ komentar terakhir tidak ditutup karena kosong * / close-komentar urutan(di baris 280)
■ variabel dideklarasikan mil (terdeteksi di baris 275 dan 278)
■ komentar terakhir tidak ditutup karena kosong * / close-komentar urutan(di baris 280)
Sebenarnya format daftar dan pesan kesalahan yang dihasilkan
oleh kompilatormungkin berbeda dengan Gambar. 2.15. Memang, banyak C compiler
tidak menghasilkandaftar sama sekali, tetapi hanya menampilkan pesan error.
Dalam daftar ini, setiap kali kesalahan terdeteksi, compiler menampilkan garis
start dengan lima tanda diikuti
olehpesan kesalahan. Perhatikan bahwa garis ditandai untuk kesalahan tidak
selalu baris yang berisiprogrammer kesalahan.(Misalnya, kesalahan terjadi di
baris 271 adalahditandai demi baris 274.)Compiler mencoba untuk memperbaiki
kesalahan di mana pun bisa.Lihatlah baris 271dalam daftar, melainkan hilang
titik koma di akhir. Compiler tidak bisa memastikanbahwa titik koma ini hilang
sampai proses simbol printf on line 274.Karena printf bukan koma atau titik
koma, compiler kemudian tahu bahwapernyataan deklarasi variabel dimulai pada baris
271 tidak sedang terusbaris lain.
Kita melihat beberapa kasus di mana salah satu daftar ini
kesalahan programmer mengarahke generasi pesan kesalahan ganda. Sebagai contoh,
deklarasi hilanguntuk mil variabel menyebabkan pesan kesalahan yang akan
dicetak setiap mil kali digunakandalam program. Pesan ini juga akan terjadi
jika kita ingat untuk mendeklarasikan milnamun mistyped itu (mungkin sebagai
Milles) dalam pernyataan deklarasi. Deklarasi hilanguntuk mil juga menyebabkan
pesan kesalahan kedua on line 275.Karenaalamat-operator harus memiliki variabel
sebagai operan nya, fakta bahwa mil tidakdinyatakan sebagai variabel membuat
sebuah operan tidak valid.
Urutan dekat-komentar karakter mistyped juga menyebabkan
beberapa pesan.Karena teks berlaku dalam komentar, compiler tidak menyadari
bahwaada masalah sampai datang ke akhir dari file sumber tanpamengalami} untuk
mengakhiri program! Setelah mengeluh tentang ini tak terdugaperistiwa (lihat
baris berikut baris 284), itu melakukan apa yang bisa untuk memperbaiki situasidengan
menutup komentar pada akhir teks file sumber dan menambahkan} untuk
mengakhiriProgram benar.
Salah ketik urutan dekat-komentar dapat menyebabkan
kesalahan yang sangat sulituntuk menemukan. Jika komentar yang tidak benar
ditutup adalah di tengah-tengah program,compiler hanya akan terus memperlakukan
baris program sebagai teks komentar sampaidatang ke * / yang menutup komentar
berikutnya. Ketika Anda mulai mendapatkan pesan erroryang membuat Anda berpikir
compiler Anda tidak melihat bagian dari program Anda, recheckAnda komentar
hati-hati. Dalam kasus terburuk, memperlakukan laporan dieksekusi sebagai
FIGURE
2.15
221
/* Converts distances from miles to kilometers. */
222
223
#include <stdio.h> /* printf, scanf definitions */
266
#define KMS_PER_MILE 1.609 /* conversion constant */
267
268
int
269
main(void)
270
{
271
double kms
272
273
/* Get the distance in miles. */
274
printf("Enter the distance in miles> ");
*****
Semicolon added at the end of the previous source line
275
scanf("%lf", &miles);
*****
Identifier "miles" is not declared within this scope
*****
Invalid operand of address-of operator
276
277
/* Convert the distance to kilometers. */
278
kms = KMS_PER_MILE * miles;
*****
Identifier "miles" is not declared within this scope
279
280
/* Display the distance in kilometers. * /
281
printf("That equals %f kilometers.\n", kms);
282
283
return (0);
284
}
*****
Unexpected end-of-file encountered in a comment
***** "}" inserted before
end-of-file
Komentar tidak mungkin menyebabkan kesalahan sintaks-maka
program hanya akan berjalan salah.
Salah ketik urutan terbuka-komentar / * akan membuat upaya compileruntuk memproses komentar sebagai pernyataan C, menyebabkan kesalahan sintaks.
Strategi Anda untuk mengoreksi kesalahan sintaks harus mempertimbangkan fakta bahwasatu kesalahan dapat menyebabkan pesan kesalahan banyak. Ini sering merupakan ide yang baik untuk berkonsentrasi padamengoreksi kesalahan di bagian deklarasi dari program pertama. Kemudian mengkompilasi ulangProgram sebelum Anda mencoba untuk memperbaiki kesalahan lain. Banyak pesan kesalahan lainnyaakan hilang setelah deklarasi sudah benar.
Kesalahan sintaks sering disebabkan oleh penggunaan yang tidak benar dari tanda kutip denganFormat string.Pastikan bahwa Anda selalu menggunakan kutipan (") untuk memulai dan mengakhiri string.
Salah ketik urutan terbuka-komentar / * akan membuat upaya compileruntuk memproses komentar sebagai pernyataan C, menyebabkan kesalahan sintaks.
Strategi Anda untuk mengoreksi kesalahan sintaks harus mempertimbangkan fakta bahwasatu kesalahan dapat menyebabkan pesan kesalahan banyak. Ini sering merupakan ide yang baik untuk berkonsentrasi padamengoreksi kesalahan di bagian deklarasi dari program pertama. Kemudian mengkompilasi ulangProgram sebelum Anda mencoba untuk memperbaiki kesalahan lain. Banyak pesan kesalahan lainnyaakan hilang setelah deklarasi sudah benar.
Kesalahan sintaks sering disebabkan oleh penggunaan yang tidak benar dari tanda kutip denganFormat string.Pastikan bahwa Anda selalu menggunakan kutipan (") untuk memulai dan mengakhiri string.
Run-Time
Errors
Run-time kesalahan yang terdeteksi dan ditampilkan oleh
komputer selama eksekusidari sebuah program. Sebuah kesalahan run-time terjadi
ketika program mengarahkan komputer untukmelakukan operasi ilegal, seperti
membagi nomor dengan nol. Ketika run-timekesalahan terjadi, komputer akan
berhenti mengeksekusi program Anda dan akan menampilkan diagnostik pesan yang
menunjukkan garis mana kesalahan terdeteksi.
Program pada Gambar.2.16 mengkompilasi berhasil, tetapi
tidak dapat dijalankan sampai selesaijika bilangan bulat pertama masuk lebih
besar dari yang kedua. Dalam kasus ini, integer divisimenyebabkan nilai yang
diberikan untuk temp di baris 271 menjadi nol. Menggunakan suhu sebagai pembagi
dalam
baris 272 menyebabkan membagi dengan nol kesalahan
ditampilkan.
Kesalahan terdeteksiBanyak kesalahan eksekusi tidak dapat
mencegah program C dari berjalan sampai selesai,tapi mereka hanya dapat
menyebabkan hasil yang salah. Oleh karena itu, adalah penting bahwa
Andamemprediksi hasil program Anda harus menghasilkan dan memverifikasi bahwa
output actual benar.
Sebuah sumber yang sangat umum dari hasil yang salah dalam
program C adalah masukan dari campurankarakter dan data numerik. Kesalahan
dapat dihindari jika programmer selaluterus dalam pengobatan pikiran scanf 's
berbeda dari placeholder c% di satu sisiRun-time kesalahan yang terdeteksi dan
ditampilkan oleh komputer selama eksekusi dari sebuah program. Sebuah kesalahan
run-time terjadi ketika program mengarahkan komputer untukmelakukan operasi
ilegal, seperti membagi nomor dengan nol. Ketika run-timekesalahan terjadi,
komputer akan berhenti mengeksekusi program Anda dan akan menampilkan
diagnostik pesan yang menunjukkan garis mana kesalahan terdeteksi.
Program pada Gambar.2.16 mengkompilasi berhasil, tetapi
tidak dapat dijalankan sampai selesaijika bilangan bulat pertama masuk lebih
besar dari yang kedua. Dalam kasus ini, integer divisimenyebabkan nilai yang
diberikan untuk temp di baris 271 menjadi nol. Menggunakan suhu sebagai pembagi
dalambaris 272 menyebabkan membagi dengan nol kesalahan ditampilkan.
Kesalahan
terdeteksi
Banyak kesalahan eksekusi tidak dapat mencegah program C
dari berjalan sampai selesai,tapi mereka hanya dapat menyebabkan hasil yang salah.
Oleh karena itu, adalah penting bahwa Andamemprediksi hasil program Anda harus
menghasilkan dan memverifikasi bahwa output actual benar.Sebuah sumber yang
sangat umum dari hasil yang salah dalam program C adalah masukan dari
campurankarakter dan data numerik. Kesalahan dapat dihindari jika programmer
selaluterus dalam pengobatan pikiran scanf 's berbeda dari placeholder c% di
satu sisi
FIGURE
2.16
111 #include <stdio.h>
262
263 int
264 main(void)
265 {
266 int first, second;
267 double temp, ans;
268
269 printf("Enter two integers> ");
270 scanf("%d%d", &first, &second);
271 temp = second / first;
272 ans = first / temp;
273 printf("The result is %.3f\n", ans);
274
275 return (0);
276 }
Enter two integers>14 3
Arithmetic
fault, divide by zero at line 272 of routine main
setiap kosong dan tombol enter pada input ketika nilai
numerik dipindai. DiSebaliknya, scanf tidak melompat ketika scan karakter
kecuali placeholder% cdiawali dengan kosng.
Gambar 2.17 menunjukkan apa yang tampaknya menjadi revisi minor ke awal fungsiutama untuk program supermarket koin prosesor dari Gambar. 2.13. Kami telah menambahkansatu tahun variabel integer, dan kami meminta nilai tahun sebelum mendapatkan penggunainisial. Jika pengguna jenis pada tahun 2011 dan kemudian huruf BMC, kami harapkan keduapanggilan untuk printf untuk menampilkan pesanBMC, silahkan masukkan informasi koin Anda untuk 2011.Sebaliknya, ini akan menampilkan sebuah baris kosong diikuti olehBM, silahkan masukkan informasi koin Anda untuk 2011.Untuk memahami mengapa, mari kita memeriksa status memori pada saat panggilanuntuk printf.
Gambar 2.17 menunjukkan apa yang tampaknya menjadi revisi minor ke awal fungsiutama untuk program supermarket koin prosesor dari Gambar. 2.13. Kami telah menambahkansatu tahun variabel integer, dan kami meminta nilai tahun sebelum mendapatkan penggunainisial. Jika pengguna jenis pada tahun 2011 dan kemudian huruf BMC, kami harapkan keduapanggilan untuk printf untuk menampilkan pesanBMC, silahkan masukkan informasi koin Anda untuk 2011.Sebaliknya, ini akan menampilkan sebuah baris kosong diikuti olehBM, silahkan masukkan informasi koin Anda untuk 2011.Untuk memahami mengapa, mari kita memeriksa status memori pada saat panggilanuntuk printf.
FIGURE
2.17
int
2. main(void)
3. {
4. char first, middle,
last; /* input - 3 initials */
5. int pennies, nickels;
/* input - count of each coin type */
6. int dimes, quarters;
/* input - count of each coin type */
7. int dollars; /* input
- count of each coin type */
8. int change; /* output
- change amount */
9. int total_dollars; /*
output - dollar amount */
10. int total_cents; /*
total cents */
11. int year; /* input –
year */
12.
13. /* Get the current
year. */
14. printf("Enter the
current year and press return> ");
15. scanf("%d",
&year);
16.
17. /* Get and display the
customer's initials. */
18. printf("Type in 3
initials and press return> ");
19. scanf("%c%c%c",
&first, &middle, &last);
20. printf("\n%c%c%c,
please enter your coin information for %d.\n",
21. first, middle, last,
year);
...
Year frist middle
last
2012 \n B M
Nilai tahun adalah benar, tetapi tiga karakter yang disimpan
tidak 'B', 'M','C', tapi '\ n', 'B', dan 'M'. N \ di pertama adalah karakter
yang dihasilkan daripengguna menekan tombol Enter setelah memasukkan nomor
2011. Scan dari 2011berhenti di karakter ini, jadi itu adalah karakter pertama
diproses oleh pernyataanscanf ("% c% c% c", & pertama, &
menengah, & terakhir);Karena huruf C itu belum dipindai, maka akan dipindai
selama berikutnyascanf menelepon. Hal ini akan menyebabkan masalah lebih
lanjut. Pernyataanscanf ("% d", & dolar);tidak menyalin nilai ke
dalam dolar karena karakter berikutnya untuk memindai adalah C, yangbukan
karakter digit. Akibatnya, dolar akan mempertahankan nilai apa pun itu
terjadiuntuk memiliki. Hal yang sama berlaku untuk kuartal variabel, dime, sen,
dan uang,dan, karena itu, hasil yang ditampilkan oleh program ini akan menjadi
tidak berarti.
Salah satu cara sederhana untuk memperbaiki program tersebut akan menyisipkan spasi sebelum% c pertama placeholder. Kemudian scanf akan melewatkan spasi (termasuk tombol enter) sebelumpemindaian karakter.
scanf ("% c% c% c", & pertama, & menengah, & terakhir);
Salah satu cara sederhana untuk memperbaiki program tersebut akan menyisipkan spasi sebelum% c pertama placeholder. Kemudian scanf akan melewatkan spasi (termasuk tombol enter) sebelumpemindaian karakter.
scanf ("% c% c% c", & pertama, & menengah, & terakhir);
Gambar 2.18 menunjukkan kesalahan lain yang tidak
menyebabkan program untuk membatalkan denganpesan error run-time. Programmer
telah ditinggalkan operator yang & (address-of)pada variabel dalam
panggilan untuk scanf.Karena scanf tidak tahu di mana untuk menemukanpertama
dan kedua, tidak mampu untuk menyimpan di dalamnya nilai-nilai yang dimasukkan
oleh pengguna.Di hal ini, program ini berjalan sampai selesai menggunakan apapun
"sampah" nilai-nilai yangawalnya di lokasi memori bernama pertama dan
kedua.
Logika eror
kesalahan
biasanya tidak menyebabkan run-time kesalahan dan tidak menampilkan pesan
error,mereka sangat sulit untuk dideteksi. Satu-satunya tanda dari kesalahan
logika mungkin salahoutput program. Anda dapat mendeteksi kesalahan logika
dengan menguji program secara menyeluruh,membandingkan output nya ke hasil
dihitung. Anda dapat mencegah kesalahan logika dengan hati-hatitabel memeriksa
algoritma dan program sebelum Anda ketik masukKarena debugging dapat memakan
waktu, merencanakan solusi program andahati-hati dan meja memeriksa mereka
untuk menghilangkan bug awal. Jika Anda tidak yakinSintaks untuk pernyataan
tertentu, mencarinya dalam teks atau dalam buku sintakstercetak di sampul
belakang bagian dalam. Mengikuti pendekatan ini akan menghemat waktu
danmenghindari masalah.
FIGURE
2.18
#include <stdio.h>
2.
3. int
4. main(void)
5. {
6. int first, second,
sum;
7.
8. printf("Enter two
integers> ");
9. scanf("%d%d",
first, second); /* ERROR!! should be
&first, &second */
10. sum = first + second;
11. printf("%d + %d =
%d\n", first, second, sum);
12.
13. return (0);
14. }
Enter two integers>14 3
5971289
+ 5971297 = 11942586
Bab Ulasan
1. Setiap
program C memiliki arahan preprocessor dan fungsi utama. Utama fungsi berisi
deklarasi variabel dan pernyataan dieksekusi.
2. Nama
variabel harus dimulai dengan huruf atau underscore (yang terakhir tidak
dianjurkan)dan terdiri dari huruf, angka, dan garis bawah simbol. Sebuah
cadangankata tidak dapat digunakan sebagai identifier.
3. Tipe
data C memungkinkan compiler untuk menentukan bagaimana untuk menyimpan
tertentunilai dalam memori dan apa operasi dapat dilakukan pada nilai
tersebut.Tiga standar tipe data int, d ouble, dan char. Tipe data dari
masing-masingvariabel harus dideklarasikan.
4. Laporan
dieksekusi berasal dari algoritma dan dijabarkanke dalam bahasa mesin.
Pernyataan penugasan digunakan untuk melakukanperhitungan dan hasil simpan
dalam memori.Pemanggilan fungsi yang digunakan untuk mendapatkan data (fungsi
scanf) dan untuk menampilkan nilai-nilai yang tersimpan
dalam memori (fungsiprintf).
Tidak ada komentar:
Posting Komentar