Kamis, 10 Desember 2009

Summary input output

built-in predikat yang membaca dan menulis dengan baik untuk pengguna
terminal (keyboard dan layar) atau file, kedua istilah tersebut dengan istilah dan character-
karakter dalam program Anda sendiri. Nilai ASCII karakter untuk memanipulasi string. Prolog memiliki fasilitas untuk mengaktifkan input maupun output dari istilah atau karakter. Menggunakan istilah sederhana dan akan dijelaskan terlebih dahulu. Awalnya, akan diasumsikan bahwa
semua output ke layar pengguna dan semua masukan pengguna adalah keyboard. Input dan output menggunakan file eksternal.

Persyaratan 1:Outputting

predikat mengambil satu argumen, yang harus valid dalam prolog. Evaluasi penyebab istilah predikat harus ditulis menuju output, yang secara default adalah layar pengguna. (Yang dimaksud dengan arus keluaran Logika Pemrograman Prolog Dengan streaming)
Contoh
?- write(26),nl.
26
yes
?- write('a string of characters'),nl.
a string of characters
yes
?- write([a,b,c,d,[x,y,z]]),nl.
[a,b,c,d,[x,y,z]]
yes
?- write(mypred(a,b,c)),nl.
mypred(a,b,c)
yes
?- write('Example of use of nl'),nl,nl,write('end of example'),nl.
Example of use of nl
end of example
yes

Persyaratan 2:Inputting


Built-in predikat read/ 1 disediakan untuk memasukkan istilah. Dibutuhkan satu argumen, yang harus menjadi variabel.
Mengevaluasi itu menyebabkan istilah berikutnya untuk dibaca dari input, yang secara default adalah pengguna keyboard. (Yang dimaksud dengan arus input Saat ini hanya dapat diartikan keyboard pengguna.)
Dalam input stream, istilah harus diikuti oleh sebuah titik ('.') dan setidaknya karakter ruang kosong, seperti spasi atau baris baru. Titik dan spasi karakter dibaca dalam tetapi tidak dianggap bagian dari istilah. Ketika sebuah tujuan membaca dievaluasi, istilah input disatukan dengan argumen
variabel. Jika variabel tidak terikat (yang biasanya terjadi) itu adalah terikat pada masukan nilai.

Menggunakan 3:Input dan Output Karakter

Meskipun input dan output dari syarat-syarat sangat mudah, penggunaan tanda kutip dan penuh dapat berhenti rumit dan tidak selalu sesuai. Sebagai contoh, akan membosankan untuk mendefinisikan sebuah predikat (menggunakan baca) yang akan membaca serangkaian karakter dari keyboard dan menghitung jumlah huruf vokal. Pendekatan yang lebih baik untuk masalah seperti ini adalah untuk masukan sebuah karakter pada satu waktu. Untuk melakukan hal ini, pertama-tama perlu untuk mengetahui tentang nilai ASCII karakter.
Semua mencetak karakter dan banyak karakter non-cetak (seperti spasi dan tab) memiliki sesuai ASCII (American Standard Kode untuk Informasi Interchange) nilai, yang merupakan integer 0-255.
Tabel di bawah ini memberikan nilai ASCII numerik yang sesuai dengan karakter dicetak utama dan beberapa orang lain.

4. Keluaran Karakter

Karakter adalah output dengan menggunakan built-in predikat put / 1. Predikat mengambil satu argumen, yang harus menjadi nomor 0-255 atau ekspresi yang mengevaluasi ke integer dalam jangkauan.
Mengevaluasi tujuan put menyebabkan satu karakter untuk output ke output arus sungai.
Ini adalah karakter yang sesuai dengan nilai numerik (ASCIIvalue) dari argumen.

5. Memasukkan Karakter

Dua predikat built-in disediakan untuk memasukkan satu karakter: get0 / 1 dan mendapatkan / 1.
Get0 predikat yang mengambil satu argumen, yang harus menjadi variabel. Mengevaluasi sebuah tujuan get0 menyebabkan karakter untuk dibaca dari input saat ini sungai. Variabel tersebut kemudian disatukan dengan nilai ASCII karakter ini.

6. Menggunakan Karakter: Contoh-contoh

Contoh pertama menunjukkan cara membaca dalam serangkaian karakter dari keyboard finishing dengan * dan untuk output nilai-nilai ASCII yang berhubungan satu per baris (untuk semua karakter termasuk *).
Readin predikat didefinisikan secara rekursif. Ini menyebabkan satu karakter untuk menjadi input dan variabel X untuk terikat kepada para (numerik) nilai ASCII. Tindakan yang dilakukan (proses (X) tujuan) tergantung pada apakah atau tidak X memiliki nilai yang berarti a * 42 karakter. Jika memiliki, evaluasi tujuan berhenti. Jika tidak, nilai dari X adalah output,
diikuti oleh baris baru, diikuti dengan sebuah panggilan ke readin lebih lanjut. Proses ini berlangsung
tanpa batas waktu sampai a * karakter yang dibaca. (Pada contoh di bawah ini, nilai-nilai ASCII karakter P, r, o dll benar ditunjukkan untuk menjadi sebesar 80, 114, 111 dll)
Mengasumsikan argumen variabel tak terikat (yang biasanya akan terjadi), itu terikat pada nilai ASCII karakter input.

7. Input dan Output Menggunakan File

Prolog mengambil semua input dari input arus sungai dan menulis semua output ke output arus sungai. Secara default kedua sungai ini bernama pengguna, yang melambangkan pengguna terminal, yaitu untuk input keyboard dan layar untuk memperoleh keluaran.
Fasilitas yang sama tersedia untuk input dan output dari dan ke terminal baik pengguna istilah tersebut dengan istilah atau karakter demi karakter juga tersedia untuk input dan output dari dan ke file (misalnya file pada hard disk atau CD-ROM).
Pengguna dapat membuka dan menutup aliran input dan output yang berhubungan dengan sejumlah nama file, tapi hanya ada satu aliran input dan satu output arus sungai setiap saat. Perhatikan bahwa tidak ada file bisa terbuka untuk input maupun output pada waktu yang sama (kecuali pengguna) dan bahwa pengguna input dan output stream
tidak dapat ditutup.

8. File Output: Mengubah Current Output Stream


Aliran arus keluaran dapat diubah menggunakan tell / 1 predikat. Hal ini memerlukan satu argumen, yang merupakan atom atau variabel yang mewakili nama file, misalnya kirim ( 'outfile.txt').
Mengevaluasi sebuah tujuan kirim menyebabkan file bernama untuk menjadi outputStream saat ini.
Jika file belum terbuka, file dengan nama tertentu adalah pertama kali diciptakan (file yang telah ada dengan nama yang sama akan dihapus).
Perhatikan bahwa file yang terkait dengan aliran arus keluaran sebelumnya tetap terbuka ketika arus keluaran baru stream dipilih. Hanya aliran arus keluaran dapat ditutup (menggunakan predikat kata yang dijelaskan di bawah).
Arus keluaran default stream pengguna, yaitu pengguna terminal. Nilai ini dapat dikembalikan baik dengan menggunakan kata predikat atau dengan kirim (pengguna).
Built-in predikat tell/ 0 mengambil tanpa argumen. Mengevaluasi sebuah tujuan kepada arus keluaran menyebabkan file yang akan ditutup dan arus keluaran sungai untuk diatur ulang ke pengguna, yaitu pengguna terminal.
Built-in predikat tell / 1 memerlukan satu argumen, yang harus menjadi variabel dan biasanya akan terikat. Mengevaluasi sebuah tujuan memberitahu menyebabkan variabel yang akan
terikat nama keluaran arus sungai.

9. File Input: Mengubah Input Current Stream

Input stream yang aktif dapat diubah dengan menggunakan view / 1 predikat. Hal ini memerlukan satu argumen, yang merupakan atom atau variabel yang mewakili nama file, misalnya lihat ( 'myfile.txt').
Mengevaluasi sebuah tujuan melihat menyebabkan file bernama input yang menjadi sungai. Jika file ini belum terbuka itu pertama kali dibuka (untuk akses baca saja). Jika tidak mungkin untuk membuka file dengan nama yang diberikan, kesalahan akan dihasilkan.
Perhatikan bahwa file yang terkait dengan arus input yang sebelumnya tetap terbuka ketika sebuah arus input yang baru dipilih. Hanya aliran input yang dapat ditutup (menggunakan predikat melihat dijelaskan di bawah).
Default input stream pengguna, yaitu pengguna terminal. Nilai ini dapat dikembalikan baik dengan menggunakan dilihat predikat atau dengan melihat (pengguna).
Built-in predikat view / 0 mengambil tanpa argumen. Mengevaluasi sebuah tujuan melihat input yang menyebabkan file yang akan ditutup dan arus input yang akan diatur ulang ke pengguna, yaitu pengguna terminal.
Built-in predikat view / 1 memerlukan satu argumen, yang harus menjadi variabel dan biasanya akan terikat. Mengevaluasi sebuah tujuan melihat menyebabkan variabel untuk terikat dengan nama input arus sungai.

10.Reading dari File: End of File


Jika akhir file ditemukan ketika mengevaluasi tujuan read (X), variabel X akan terikat pada atom end_of_file.
Jika akhir file ditemukan saat mengevaluasi tujuan mendapatkan (X) atau get0 (X), variabel X akan terikat kepada seorang 'khusus' nilai numerik. Sebagai nilai-nilai ASCII harus berada dalam kisaran 0-255 inklusif, ini biasanya akan menjadi -1, tetapi dapat bervariasi dari satu pelaksanaan Prolog yang lain.

11.Reading dari File: End of Record

Tergantung pada versi Prolog digunakan, mungkin ada ketidakcocokan untuk
karakter input antara membaca akhir sebuah catatan (yaitu karakter (s) yang
menandai akhir baris) dari terminal pengguna dan dari sebuah file.
Biasanya akhir baris dari input pada terminal pengguna akan ditunjukkan oleh
karakter dengan nilai ASCII 13. Akhir sebuah catatan dalam sebuah file umumnya akan
ditunjukkan oleh dua nilai ASCII: 13 diikuti oleh 10.
Program berikut menunjukkan bagaimana membaca dalam serangkaian karakter dari
keyboard dan mencetak mereka keluar, satu per baris.

Tidak ada komentar:

Posting Komentar