• Tidak ada hasil yang ditemukan

bahasa pemrograman C

N/A
N/A
Protected

Academic year: 2017

Membagikan "bahasa pemrograman C"

Copied!
7
0
0

Teks penuh

(1)

#Untuk pernyataan

Ada banyak cara yang berbeda untuk menulis sebuah program untuk suatu tugas tertentu. Mari kita

coba variasi pada suhu converter.

#include <stdio.h>

/* mencetak tabel Fahrenheit­Celsius */ main()

{

int fahr;

for (fahr = 0; fahr <= 300; fahr = fahr + 20) printf("%3d %6.1f\n", fahr, (5.0/9.0)*(fahr­ 32));

}

Ini menghasilkan jawaban yang sama, tapi jelas terlihat berbeda. Salah satu perubahan utama  adalah  penghapusan  sebagian  besar  variabel,  hanya fahr tetap,  dan  kami  telah membuat  sebuah int.Bawah  dan  atas  batas  dan  ukuran  langkah  hanya  muncul  sebagai konstanta dalam untuk pernyataan, sendiri merupakan konstruksi baru, dan ekspresi yang menghitung  suhu  Celsius  sekarang  muncul  sebagai  argumen  ketiga  printf  bukannya pernyataan penugasan terpisah.

Perubahan  terakhir  ini  adalah  turunan  dari  aturan  umum  ­  dalam  konteks  di  mana  ia diperbolehkan  untuk  menggunakan  nilai  dari  beberapa  jenis,  Anda  dapat  menggunakan ekspresi  yang  lebih  rumit  dari  tipe  tersebut.  Karena  argumen  ketiga printf  harus menjadi  nilai  floating­point  untuk  mencocokkan %6.1f,setiap  ekspresi  floating­point dapat terjadi di sini.

Pernyataan for  itu  adalah  loop,  generalisasi  dari  while.  Jika  Anda  bandingkan  dengan

while  sebelumnya,  operasinya  harus  jelas.  Dalam  kurung,  ada  tiga  bagian,  yang dipisahkan oleh titik koma. Bagian pertama, inisialisasi

fahr = 0

(2)

fahr <= 300

Kondisi  ini  dievaluasi,  jika  memang  benar,  tubuh  loop  (di  sini  satu  ptintf) dijalankan. Maka langkah kenaikan

fahr = fahr + 20

dijalankan,  dan  kondisi  re­evaluasi.  Loop  berakhir  jika  kondisi  telah  menjadi  palsu. Seperti  dengan while,  tubuh  loop  bisa  menjadi  pernyataan  tunggal  atau  sekelompok pernyataan  diapit  oleh  kurung.  Inisialisasi,  kondisi  dan  peningkatan  dapat  berupa ekspresi.

Pilihan antara while dan for adalah sewenang­wenang, berdasarkan yang tampaknya lebih jelas. For  biasanya  sesuai  untuk  loop  di  mana  inisialisasi  dan  kenaikan  adalah pernyataan  tunggal  dan  logis  terkait,  karena  lebih  kompak  dari while,dan  itu  membuat pernyataan kontrol loop bersama­sama di satu tempat.

Latihan:  Memodifikasi  program  konversi  suhu  untuk  mencetak  tabel  dalam  urutan terbalik, yaitu, dari 300 derajat ke 0.

#Konstanta simbolik(Symbolic Constants)

Pengamatan  terakhir  sebelum  kami  meninggalkan  konversi  suhu  selamanya.  Ini  praktik buruk untuk mengubur `` angka ajaib'' seperti 300 dan 20 dalam sebuah program, mereka menyampaikan  sedikit  informasi  kepada  seseorang  yang  mungkin  harus  membaca  program nanti,  dan  mereka  sulit  untuk  berubah  dengan  cara  yang  sistematis.  Salah  satu  cara untuk berurusan dengan angka ajaib adalah untuk memberi mereka nama­nama bermakna. A # mendefinisikan garis mendefinisikan nama simbolis atau konstan simbolis menjadi string tertentu karakter:

#define nama daftar pengganti

(3)

#include <stdio.h>

#define LOWER0 /* lower limit of table */ #define UPPER300/* upper limit */

#define STEP 20 /* step size */

/* print Fahrenheit­Celsius table */

kuantitas  LOWER

UPPER 

dan 

STEP  adalah  konstanta  simbolis,  bukan  variabel,  sehingga mereka  tidak  muncul  dalam  deklarasi.  Nama  konstanta  simbolis  secara  konvensional ditulis  dalam  huruf  besar  sehingga  mereka  dapat  BER  mudah  dibedakan  dari  huruf  kecil nama variabel. Perhatikan bahwa tidak ada titik koma di akhir baris #define.

#karakter input dan Output (Character Input and Output)

Kita  akan  mempertimbangkan  keluarga  program  terkait  untuk  memproses  data  karakter. Anda  akan  menemukan  bahwa  banyak  program  hanya  diperluas  versi  prototipe  yang  kita bahas di sini.

Model input dan output didukung oleh perpustakaan standar sangat sederhana. Input teks atau output, terlepas dari mana itu berasal atau di mana ia pergi ke, dibahas sebagai aliran karakter. Aliran teks adalah urutan karakter dibagi menjadi baris; setiap baris terdiri  dari  nol  atau  lebih  karakter  diikuti  oleh  karakter  baris  baru.  Ini  adalah tanggung  jawab  perpustakaan  untuk  membuat  setiap  input  atau  output  aliran mengkonfirmasi  model  ini,  programmer  C  menggunakan  perpustakaan  tidak  perlu  khawatir tentang bagaimana garis diwakili luar program.

Perpustakaan  standar  menyediakan  beberapa  fungsi  untuk  membaca  atau  menulis  satu karakter pada satu waktu, yang getchar dan putchar yang paling sederhana. Setiap kali disebut, getchar membaca karakter input berikutnya dari aliran teks dan kembali bahwa sebagai nilainya. Artinya, setelah

(4)

variabel  c  berisi  karakter  berikutnya  dari  input.  Karakter  biasanya  datang  dari keyboard, masukan dari file dibahas nanti.Fungsi putchar mencetak karakter setiap kali itu disebut:

putchar(c);

mencetak isi dari variabel integer c sebagai karakter, biasanya di layar. Panggilan ke

putchar dan printf dapat disisipkan, output akan muncul dalam urutan di mana panggilan akan dibuat.

#file Menyalin(File Copying)

Mengingat getchar  dan putchar,  Anda  dapat  menulis  jumlah  yang  mengejutkan  kode  yang berguna  tanpa  mengetahui  apa­apa  lagi  tentang  input  dan  output.  Contoh  paling sederhana  adalah  program  yang  salinan  input  ke  output  yang  salah  satu  karakter  pada satu waktu:

membaca karakter

while (charater tidak end­of­file indicator)

Output karakter hanya membaca

membaca karakter

Konversi ini ke C memberikan:

#include <stdio.h>

/* copy input to output; 1st version */

main()

{

int c;

c = getchar();

while (c != EOF) {

(5)

c = getchar();

}

}

Operator relasional ! = Berarti `` tidak sama dengan''.

Apa yang tampaknya menjadi karakter pada keyboard atau layar tentu saja, seperti yang lainnya,  tersimpan  secara  internal  hanya  sebagai  pola  bit.  Tipe char  secara  khusus dimaksudkan  untuk  menyimpan  data  karakter  tersebut,  tetapi  setiap  tipe  integer  dapat digunakan. Kami menggunakan int untuk alasan halus namun penting.

Masalahnya  adalah  membedakan  akhir  masukan  dari  data  yang  valid.  Solusinya  adalah bahwa getchar  mengembalikan  nilai  tersendiri  saat  tidak  ada  lagi  masukan,  nilai  yang tidak dapat bingung dengan karakter yang nyata. Nilai ini disebut EOF, untuk `` akhir file''. Kita harus menyatakan c  menjadi  tipe  yang  cukup  besar  untuk  menampung  setiap nilai  yang getchar  kembali.  Kita  tidak  bisa  menggunakan  arang  karena  c  harus  cukup besar  untuk  menampung EOF  di  samping  setiap  arang  mungkin.  Oleh  karena  itu  kami menggunakan int.

EOF adalah bilangan bulat didefinisikan dalam <stdio.h>, tetapi nilai numerik tertentu tidak  masalah  asalkan  tidak  sama  seperti  nilai  arang.  Dengan  menggunakan  konstanta simbolis,  kita  yakin  bahwa  tidak  ada  dalam  program  ini  tergantung  pada  nilai  numerik tertentu.

Program  untuk  menyalin  akan  ditulis  lebih  singkat  oleh  C  programmer  berpengalaman. Dalam C, tugas apapun, seperti

c = getchar();

adalah  ekspresi  dan  memiliki  nilai,  yang  merupakan  nilai  dari  sisi  kiri  setelah penugasan. Ini berarti bahwa tugas yang dapat muncul sebagai bagian dari ekspresi yang lebih  besar.  Jika  penugasan  karakter  ke  c  diletakkan  di  dalam  tes  bagian  dari while

loop, program salinan dapat ditulis dengan cara ini:

#include <stdio.h>

/* copy input to output; 2nd version */ 

(6)

{

int c;

while ((c = getchar()) != EOF) 

putchar(c);

}

Sementara  karakter while, memberikannya  ke  c,  dan  kemudian  menguji  apakah  karakter adalah  akhir­of­file  sinyal.  Kalau  tidak,  tubuh while  dijalankan,  mencetak  karakter.

While  kemudian  mengulangi.  Ketika  akhir  input  akhirnya  tercapai, while  berakhir  dan begitu juga main.

Versi  ini  memusatkan  input  ­  sekarang  ada  hanya  satu  referensi  untuk getchar  ­  dan menyusut  program.  Program  yang  dihasilkan  lebih  kompak,  dan,  sekali  idiom  dikuasai, lebih mudah dibaca. Anda akan melihat gaya ini sering. (Ini mungkin untuk mendapatkan dibawa pergi dan membuat kode tak tertembus, namun, kecenderungan yang akan kita coba untuk mengekang.)

Tanda kurung di sekitar penugasan, dalam kondisi yang diperlukan. Didahulukan dari ! = Adalah  lebih  tinggi  dari  =,  yang  berarti  bahwa  dengan  tidak  adanya  tanda  kurung  tes relasional ! = Akan dilakukan sebelum tugas =. Jadi pernyataan

c = getchar() != EOF

setara dengan

c = (getchar() != EOF)

Ini memiliki efek yang tidak diinginkan dari pengaturan c dengan 0 atau 1, tergantung pada apakah atau tidak panggilan getchar kembali akhir file.

Latihan: Pastikan ekspresi getchar ()! = EOF adalah 0 atau 1.

(7)

Referensi

Dokumen terkait

Dalam konteks kajian ini, elemen disposisi merujuk kepada enam elemen disposisi iaitu profesionalisme, semangat positif, semangat komunikasi, nilai sejagat, kesediaan belajar

Data yang diperoleh dari lokasi penelitian dianalisa secara deskriptif yang ditampilkan dalam tabel dan gambar-gambar. Untuk mengetahui indeks keanekaragaman dari

Penerapan analisis sebaran Hotelling’s telah dilaksanakan pada percobaan yang bertujuan untuk identifikasi biji generasi silang tunggal F1 dari dua tetua induk betina (MR4Q dan

menyediakan out-slip atau formulir peminjaman arsip, sehingga tidak diketahui arsip yang telah atau belum dikembalikan. Terlepas dari masalah di atas adapula permasalahan lain

Tahap pertama adalah kegiatan penerimaan BBM dilakukan dari mobil tangki pengangkut BBM ke dalam Tangki Timbun, pada proses pengisian ini yang perlu

Suatu tempat jang sangat berlainan dengan Jerusalem sekarang ini jang di kaget oleh bom tetapi djuga tempat dimana Jesus akan mati.. Perdjalanan jang di tundjuk oleh Roh itulah

Bila ookista tertelan oleh mamalia lain atau burung (hospes perantara) maka pada berbagai jaringan hospes perantara ini dibentuk kelompok trofozoit yang membelah

Docteur Co-tutelle with IFFSTAR, Universite dArtois, Ecole Centrale Group, Universite Lille 1, Universite Blaise Pascal, Universite Le Havre, Universite de La Rochele,