tipe data pascal. Tipe data sederhana

Data apa pun - konstanta, variabel, nilai fungsi dicirikan dalam Pascal oleh tipe data.

Mari kita tentukan konsepnya tipe data. Seperti yang sudah diketahui, semua objek program (variabel, konstanta, dll) harus dideklarasikan.

Deskripsi menginformasikan penerjemah, pertama, tentang keberadaan variabel dan objek lain yang digunakan, dan kedua, menunjukkan properti dari objek tersebut. Misalnya, deskripsi variabel yang nilainya berupa angka menunjukkan sifat-sifat angka. Secara formal, angka bisa bilangan bulat dan nyata (pecahan). Dalam Pascal, seperti dalam bahasa pemrograman lainnya, angka dibagi menjadi dua jenis: utuh(bilangan bulat kata yang dicadangkan) dan nyata(kata milik nyata).

Pemilihan bilangan bulat sebagai tipe terpisah dijelaskan oleh fakta bahwa di komputer bilangan bulat dan bilangan real direpresentasikan secara berbeda: bilangan bulat dapat direpresentasikan dengan sangat tepat, sedangkan bilangan real pasti direpresentasikan dengan beberapa kesalahan hingga, yang ditentukan oleh properti penerjemah.

Misalnya, misalkan variabel x bertipe real dan nilainya sama dengan satu: x=1 . Nilai yang sesuai dalam memori komputer dapat berupa 0.999999999 , 1.000000001 , atau 1.000000000 . Tetapi jika variabel x dideklarasikan sebagai variabel bertipe integer, maka unit akan direpresentasikan di komputer dengan sangat tepat dan variabel x tidak akan dapat mengambil nilai nyata (fraksional) - bagaimanapun juga, itu dideklarasikan sebagai variabel bertipe integer.

Jadi tipe data mendefinisikan:

  • representasi internal data dalam memori komputer;
  • kumpulan nilai yang dapat diambil oleh nilai jenis ini;
  • operasi yang dapat dilakukan pada nilai jenis ini.

Pengenalan tipe data adalah salah satu konsep dasar bahasa Pascal, yang terdiri dari fakta bahwa ketika melakukan operasi pemberian nilai ekspresi ke suatu variabel, variabel dan ekspresi harus bertipe sama. Pemeriksaan ini dilakukan oleh kompiler, yang sangat menyederhanakan pencarian kesalahan dan meningkatkan keandalan program.

Himpunan tipe data Turbo Pascal dapat dibagi menjadi dua kelompok:

  • tipe standar (ditentukan sebelumnya). ;
  • tipe yang ditentukan pengguna (tipe yang ditentukan pengguna) .

Jenis standar Turbo Pascal meliputi:

  • tipe bilangan bulat - bilangan bulat;
  • tipe nyata - nyata ;
  • tipe karakter - char ;
  • tipe boolean - boolean ;
  • tipe string - string;
  • tipe penunjuk - penunjuk ;
  • jenis teksnya adalah teks.

Tipe data khusus adalah berbagai kombinasi tipe standar.

Jenis khusus meliputi:

  • jenis yang disebutkan;
  • jenis interval;
  • tipe penunjuk;
  • tipe terstruktur;
  • tipe prosedural.

Komentar. Klasifikasi lain dari tipe data juga dimungkinkan, menurut tipe mana yang dibagi menjadi sederhana dan kompleks.

Tipe sederhana meliputi: tipe integer, tipe real, tipe karakter, tipe boolean, tipe enumerasi, dan tipe interval.

Tipe kompleks adalah berbagai kombinasi tipe sederhana (array, record, set, file, dll.)

Tipe standar

Tipe data standar didefinisikan oleh bahasa Pascal itu sendiri. Saat menggunakan tipe standar dalam suatu program, cukup menunjukkan subbagian dari tipe yang diperlukan (const , var) dan kemudian mendeskripsikan konstanta dan variabel yang digunakan dalam program. Tidak perlu menggunakan subbagian Type.

Misalnya, jika program hanya menggunakan variabel:

i,j - bilangan bulat (bilangan bulat);

x,y - nyata (nyata);

t,s - char (karakter);

a,b - boolean (logis),

maka hanya diperlukan subbagian variabel - Var . Oleh karena itu, di bagian deskriptif program, deklarasi variabel ditulis sebagai berikut:

Jenis bilangan bulat

Data jenis ini hanya dapat mengambil nilai integer. Di komputer, nilai tipe integer direpresentasikan dengan tepat. Jika variabel negatif, maka harus diawali dengan tanda “-”, jika variabel positif, maka tanda “+” dapat dihilangkan. Jenis ini diperlukan jika beberapa nilai tidak dapat direpresentasikan secara kira-kira - bilangan real. Misalnya, jumlah orang, hewan, dll.

Contoh penulisan nilai integer : 17, 0, 44789, -4, -127.

Kisaran data tipe integer ditentukan oleh lima tipe integer standar dan disajikan dalam tabel:

Jenis Jangkauan Ukuran dalam byte
Shortint -128...+128 1
Bilangan bulat -32768...32767 2
Longint -2147483648...2147483647 4
byte 0...255 1
Kata 0...65535 2

Dua jenis terakhir hanya mewakili bilangan positif, dan tiga yang pertama adalah bilangan positif dan negatif.

Dalam teks program atau saat memasukkan data bertipe integer, nilai ditulis tanpa titik desimal . Nilai variabel aktual tidak boleh melebihi nilai yang diperbolehkan tipe (Shortint , Integer , Longint , Byte , Word) yang digunakan untuk mendeskripsikan variabel. Kemungkinan ekses dalam perhitungan tidak dikontrol dengan cara apa pun, yang akan menyebabkan pengoperasian program yang salah.

Contoh penggunaan variabel tipe integer

var a:bilangan bulat; b:kata; c:byte; Mulai a:=300; (a diatur ke 300) b:=300; (b diatur ke 300) c:=200; (c diatur ke 200) a:=b+c; (a diatur ke 500) c:=b; (Kesalahan! Variabel c dapat mengambil nilai tidak lebih dari 255. Di sini, variabel c diberi nilai 500, yang akan menyebabkan hasilnya meluap.) Selesai.

Jenis nyata

Nilai tipe nyata di komputer direpresentasikan kira-kira. Kisaran data tipe nyata ditentukan oleh lima tipe standar: nyata (Nyata), dengan presisi tunggal (Tunggal), presisi ganda (Double), dengan presisi yang ditingkatkan (Diperpanjang), kompleks (Komp) dan disajikan dalam tabel:

Jenis Jangkauan Jumlah digit signifikan Ukuran dalam byte
Nyata 2.9E-39...1.7E+38 11-12 6
Lajang 1.5E-45...3.4E+38 >7-8 4
Dobel 5E-324...1.7E+308 15-16 8
Diperpanjang 3.4E-4951...1.1E+4932 19-20 10
Komp -2E+63+1...+2E+63-1 19-20 8

Bilangan real dapat direpresentasikan dalam dua format: fixed dan floating point.

Format angka titik tetap sama dengan notasi matematika biasa untuk angka desimal dengan bagian pecahan. Bagian pecahan dipisahkan dari bagian bilangan bulat dengan titik, misalnya

34.5, -4.0, 77.001, 100.56

Format floating point digunakan saat menulis angka yang sangat besar atau sangat kecil. Dalam format ini, angka sebelum "E" dikalikan dengan angka 10 pangkat setelah "E".

1E-4 1*10-4
3.4574E+3 3.4574*10+3
4.51E+1 4.51*10+1

Contoh titik apung:

Nomor Menulis dalam Pascal
0,0001 1E-4
3457,4 34574E-1
45,1 451E-1
40000 4E+4
124 0,124E+3
124 1.24E+2
124 12.4E+1
124 1240E-1
124 12400E-2

Tabel dari 5 hingga 9 menunjukkan masuknya angka yang sama 124. Dengan mengubah posisi titik desimal di mantissa (titik "mengambang", oleh karena itu dinamai "mencatat angka titik mengambang") dan pada saat yang sama mengubah eksponen, Anda dapat memilih nomor entri yang paling tepat.

Contoh deklarasi variabel tipe real.

Jenis karakter

Nilai tipe karakter adalah karakter yang dapat diketik pada keyboard komputer. Ini memungkinkan Anda untuk menampilkan teks dalam program dan melakukan berbagai operasi di dalamnya: menyisipkan, menghapus huruf dan kata satu per satu, memformat, dll.

Jenis karakter dilambangkan dengan kata khusus Char dan dirancang untuk menyimpan satu karakter. Data tipe karakter dalam memori menempati satu byte.

Format deklarasi variabel simbolik:

<имя переменной>:arang;

Saat menentukan nilai variabel karakter, karakter ditulis dalam apostrof. Selain itu, Anda dapat menentukan karakter yang diperlukan dengan langsung menentukan nilai numerik dari kode ASCII. Dalam hal ini, nomor yang menunjukkan kode ASCII dari karakter yang diperlukan harus didahului dengan tanda #.

Contoh penggunaan variabel tipe karakter:

varc:char; (c adalah variabel tipe karakter) Begin c:='A'; (karakter 'A' ditugaskan ke variabel c) c:=#65; (variabel c juga diberi simbol A. Kode ASCII-nya adalah 65) c:='5'; (variabel c diberi karakter 5, End. di sini 5 bukan lagi angka)

tipe boolean

Tipe data logis disebut Boolean setelah ahli matematika Inggris George Boole, pencipta bidang matematika - logika matematika.

Format deklarasi variabel Boolean:

<имя переменной>: boolean;

Data jenis ini hanya dapat mengambil dua nilai:

  • Betul betul;
  • Salah - salah.

Data Boolean banyak digunakan dalam memeriksa validitas kondisi tertentu dan dalam membandingkan nilai. Hasilnya mungkin benar atau salah.

Untuk membandingkan data, operasi relasional berikut disediakan:

Contoh penggunaan operasi relasional:

relasi 5>3 , hasilnya benar (benar);

relasi 5=3 , hasilnya salah (false).

Contoh penggunaan variabel boolean.

var a,b:boolean; (a,b adalah variabel boolean) Begin a:=True; (variabel a disetel ke true) b:=false; (variabel b disetel ke salah) Akhir.

Konstanta

Bilangan bulat, bilangan real, simbol, string karakter, konstanta logis dapat digunakan sebagai konstanta.

Konstanta harus dideklarasikan di bagian deskriptif menggunakan kata cadangan const.

Format deklarasi konstan

Konst<имя константы>= <значение>;

Jika beberapa konstanta digunakan dalam suatu program, hanya satu yang diperbolehkan. kata kunci Const , deskripsi setiap konstanta diakhiri dengan titik koma. Blok konstan diakhiri dengan deklarasi bagian lain atau deklarasi blok pernyataan yang dapat dieksekusi.

Const (deklarasi bagian konstan) tahun=2003; (konstanta bertipe integer, karena tidak ada titik desimal dalam catatan) time=14.05; (konstanta tipe nyata) N=24; (konstanta bertipe integer, karena tidak ada titik desimal dalam catatan) P=3,14; (konstanta tipe nyata) A=true; (konstanta boolean) str1='7'; (konstanta tipe karakter) str2='A'; (konstanta tipe karakter) str3='Turbo'; (konstanta tipe string) Var (deklarasi bagian variabel) X,y:integer; (variabel tipe integer)

Jenis Kustom

Dari kumpulan jenis khusus, kami hanya akan mempertimbangkan

  • jenis yang disebutkan;
  • tipe interval.

Kami akan membutuhkan kedua jenis ini saat mempelajari array.

Jenis yang disebutkan

Tipe data enumerasi menjelaskan tipe data baru yang nilainya ditentukan oleh pemrogram. Jenis yang disebutkan ditentukan dengan menghitung nilai yang dapat diterimanya. Setiap nilai diberi nama oleh beberapa pengidentifikasi dan ditempatkan dalam daftar yang diapit tanda kurung. Tipe yang disebutkan adalah tipe data yang ditentukan pengguna, jadi deklarasi tipenya dimulai dengan kata khusus TYPE .

Format tipe yang disebutkan:

<имя типа>= (konstanta1, konstanta2,..., konstantaN);

Di mana
konstanta1 , konstanta2 ,..., konstantaN adalah sekumpulan nilai pengidentifikasi terurut yang diperlakukan sebagai konstanta.

Contoh deklarasi tipe enumerasi:

Ketik bola=(satu, dua, tiga, empat, lima); vart: bola;

Di sini bola adalah nama dari jenis yang disebutkan; satu , dua , tiga , empat , lima adalah konstanta; t adalah variabel yang dapat mengambil nilai konstanta apa pun.

Dalam tipe yang disebutkan, konstanta adalah pengidentifikasi, jadi tidak dikutip dan tidak bisa berupa angka. Jadi, dalam tipe yang disebutkan, konstanta adalah jenis konstanta khusus yang tidak dapat:

  • konstanta tipe numerik: 1, 2, 3, 4, dst.;
  • konstanta tipe karakter: "a", "s", "1", "3", dll.;
  • konstanta tipe string: "pertama", "kedua", dll.

Selain itu, operasi aritmatika dan prosedur input dan output standar Baca , Tulis tidak berlaku untuk nilai jenis ini.

Contoh penggunaan variabel dari tipe enumerasi:

Ketik hari = (Senin, Selasa, Rabu, Kamis, Jumat, Sabtu, Minggu); Var hari: hari; mulai jika hari = Minggu lalu writeln('Hari ini adalah hari Minggu!'); akhir.

Elemen-elemen dalam definisi tipe enumerasi dianggap diurutkan sesuai urutan daftarnya. Penomoran dimulai dari nol. Oleh karena itu, pada contoh di atas, hari dalam seminggu memiliki nomor seri berikut

Untuk menentukan nomor urut secara terprogram, gunakan fungsi Ord().

Dalam contoh kami, nomor serinya sama:

Ord(Senin) = 0;

Ord(Sabtu) = 5;

Ord (Minggu) = 6.

tipe interval

Jika beberapa variabel tidak mengambil semua nilai dari tipenya, tetapi hanya nilai yang terkandung dalam rentang tertentu, maka tipe data seperti itu disebut tipe interval. Seringkali, tipe interval disebut tipe terbatas dan tipe jangkauan. Jenis interval ditentukan oleh batas-batas nilainya:

<минимальное значение>..<максимальное значение>

  • dua karakter ".." diperlakukan sebagai satu karakter, jadi tidak boleh ada spasi di antaranya;
  • ujung kiri rentang tidak boleh melebihi ujung kanannya.

Tipe interval adalah tipe data yang ditentukan pengguna, sehingga deklarasi tipe ini dimulai dengan kata kunci TYPE .

Contoh deskripsi tipe interval:

ketik digit = 1..10; bulan = 1..31; lat = 'A'..'Z';

paling umum dalam matematika tipe numerik- Ini utuh angka yang mewakili jumlah tak terbatas dari nilai diskrit, dan sah angka yang mewakili kontinum nilai yang tidak terbatas.

Deskripsi tipe data numerik (integer) Pascal

Dalam bahasa yang sama, himpunan bagian yang berbeda dari himpunan bilangan bulat dapat diimplementasikan. Kisaran nilai yang mungkin dari tipe numerik integer bergantung pada representasi internalnya, yang bisa berupa satu, dua, atau empat byte. Jadi, Pascal 7.0 menggunakan tipe data numerik integer berikut:

Dengan utuh tipe data numerik Pascal dapat melakukan operasi berikut:

  • Hitung:
    tambahan(+);
    pengurangan(-);
    perkalian(*);
    sisa pembagian (mod);
    eksponensial;
    unary plus (+);
    minus uner (-).
  • Operasi hubungan:
    hubungan kesetaraan (=);
    hubungan pertidaksamaan (<>);
    rasio lebih kecil (<);
    rasio lebih besar dari (>);
    rasio tidak kurang dari (>=);
    rasio tidak lebih (<=).

Saat berakting dengan tipe data numerik integer jenis hasilnya akan sesuai dengan jenis operan, dan jika operan memiliki tipe bilangan bulat yang berbeda, dengan jenis operan yang memiliki kardinalitas maksimum (rentang nilai maksimum). Kemungkinan hasil luapan tidak dikontrol dengan cara apa pun (itu penting!) , yang dapat menyebabkan kesalahan.

Perhatian khusus harus diberikan pada operasi pembagian tipe data numerik integer. Dalam Pascal, diperbolehkan dua operasi pembagian, yang masing-masing dilambangkan "/" Dan div. Perlu Anda ketahui bahwa hasil pembagian "/" bukanlah bilangan bulat, melainkan bilangan asli(ini berlaku bahkan jika Anda membagi 8 dengan 2, yaitu 8/2=4,0). Divisi div adalah pembagian bilangan bulat, yaitu tipe hasil bilangan bulat.

Deskripsi tipe data numerik (nyata) Pascal

Tipe data numerik nyata mengacu pada subset bilangan real yang dapat direpresentasikan dalam apa yang disebut format floating point dengan jumlah digit tetap. Dengan floating point, setiap tipe data numerik direpresentasikan sebagai dua kelompok digit. Kelompok angka pertama disebut mantissa, yang kedua - urutannya. Secara umum, tipe data numerik dalam bentuk floating point dapat direpresentasikan sebagai berikut: X= (+|-)MP (+ | -) r , di mana M adalah mantissa dari angka; r adalah urutan angka (r adalah bilangan bulat); P adalah basis dari sistem bilangan. Misalnya, untuk basis desimal, representasi 2E-1 (di sini E adalah basis sistem bilangan desimal) akan terlihat seperti: 2*10 -1 =0,2, dan representasi 1,234E5 akan sesuai dengan: 1,234* 10 5 =123400.0.

Pascal menggunakan jenis-jenis bilangan real berikut ini, yang mendefinisikan bilangan arbitrer hanya dengan ketelitian yang terbatas, bergantung pada format internal bilangan real:

Saat mendeskripsikan variabel nyata dari tipe sebenarnya, variabel 4-byte akan dibuat di memori komputer. Dalam hal ini, 3 byte akan diberikan di bawah mantissa, dan satu - di bawah perintah.

Anda dapat melakukan operasi berikut pada tipe data numerik nyata:

  • Hitung:
    tambahan (+);
    pengurangan(-);
    perkalian(*);
    divisi(/);
    eksponensial;
    unary plus (+);
    minus uner (-).
  • Operasi hubungan:
    hubungan pertidaksamaan (<>);
    rasio lebih kecil (<);
    rasio lebih besar dari (>);
    rasio tidak kurang dari (>=);
    rasio tidak lebih (<=).

Seperti yang Anda lihat, Pascal dicirikan oleh beragam tipe real, tetapi akses ke tipe data numerik lajang, dobel Dan diperpanjang hanya mungkin dalam mode kompilasi khusus. Tipe data numerik ini dirancang untuk dukungan perangkat keras aritmatika floating point dan untuk penggunaannya yang efektif, PC harus menyertakan koprosesor matematika.

Posisi khusus dalam Pascal ditempati oleh tipe data numerik. komp, yang diperlakukan sebagai bilangan real tanpa bagian eksponensial dan pecahan. Sebenarnya, komp adalah bilangan bulat "besar" bertanda tangan yang menyimpan 19..20 angka desimal signifikan. Pada saat yang sama, tipe data numerik komp dalam ekspresi, itu sepenuhnya kompatibel dengan tipe nyata lainnya: semua operasi nyata didefinisikan di atasnya, itu dapat digunakan sebagai argumen fungsi matematika, dll.

Tentang mengonversi tipe data numerik di Pascal

Konversi implisit (otomatis) dari tipe data numerik hampir tidak mungkin dilakukan di Pascal. Pengecualian dibuat hanya untuk jenisnya bilangan bulat, yang diizinkan untuk digunakan dalam ekspresi seperti nyata. Misalnya, jika variabel dideklarasikan sebagai berikut:

VarX: bilangan bulat; Y: nyata

Kemudian operatornya

akan benar secara sintaksis, meskipun ekspresi bilangan bulat ada di sebelah kanan tanda tugas, dan variabel nyata ada di sebelah kiri, kompiler akan melakukan konversi tipe data numerik secara otomatis. Konversi terbalik secara otomatis mengetik nyata per jenis bilangan bulat tidak mungkin di Pascal. Mari kita ingat berapa banyak byte yang dialokasikan untuk variabel seperti bilangan bulat Dan nyata: di bawah tipe bilangan bulat data bilangan bulat 2 byte memori dialokasikan, dan di bawah real - 6 byte. Untuk konversi nyata V bilangan bulat ada dua fungsi bawaan: bulat(x) membulatkan x nyata ke bilangan bulat terdekat, terpotong(x) memotong bilangan real dengan membuang bagian pecahan.

Konsep tipe adalah salah satu konsep dasar dari setiap bahasa pemrograman. Objek (konstanta, variabel, fungsi, ekspresi) yang dioperasikan oleh program adalah jenis tertentu.

Jenis adalah kumpulan nilai yang dapat diambil oleh objek program, dan kumpulan operasi yang diizinkan pada nilai-nilai ini.

Misalnya, nilai 1 dan 2 bertipe integer, dapat ditambahkan, dikalikan, dan operasi aritmatika lainnya dapat dilakukan. Arti "monitor" dan "Pascal" bersifat linguistik, mereka memiliki serangkaian operasi yang valid. Dalam bahasa yang paling umum digunakan, hanya tipe yang terdefinisi dengan baik dan dikenal yang dapat digunakan. Pascal, bersama dengan tipe standar yang ditemukan dalam bahasa tingkat tinggi lainnya, memungkinkan pemrogram untuk membuat tipenya sendiri.

Semua jenis yang diizinkan dalam bahasa Pascal dibagi menjadi dua kelompok besar: sederhana dan kompleks (terstruktur).

Jenis Jangkauan Mantissa, tanda Memori yang diperlukan (byte)
NYATA 2.9*10E-39..1.7*10E38 11-12
LAJANG 1.5*10E-45..3.4*10E38 7-8
DOBEL 5.0*10E-324..1.7*10E308 15-16
DIPERPANJANG 1.9*10E-4951..1.1*10E4932 19-20
KOMP -2Е+63+1..2Е+63-1 10-20

Penggunaan tipe SINGLE, DOUBLE, EXTEND, COMP yang efektif hanya dimungkinkan jika direktif ($N+) disertakan. Secara default, ini dalam keadaan mati. Untuk memecahkan masalah teknik dan ekonomi, nilai tipe NYATA sudah cukup.

Contoh

Var Res, Summa, Itog: nyata;

Bulevsky tipe data dijelaskan oleh pengidentifikasi BOOLEAN. Variabel dan konstanta jenis ini hanya dapat mengambil satu dari dua nilai: BENAR (benar) atau SALAH (salah).

Contoh

Var Sel1, Sel2: boolean;

A,B,C,D: boolean;

Ekspresi tipe Boolean menempati 1 byte memori dan digunakan dalam ekspresi logis dan relasional, serta untuk mengontrol urutan eksekusi pernyataan program.

Harfiah (karakter) jenisnya dijelaskan oleh pengidentifikasi standar CHAR. Konstanta dan variabel jenis ini dapat mengambil salah satu nilai tabel kode ASCII. Nilai konstanta atau variabel jenis ini dilampirkan dalam apostrof.

Misalnya, Var Bukva, Znak, Simbol: char;

Surat:='A'; Tanda tangan:='+'; Simbol:='!'

Variabel tipe karakter menempati 1 byte dalam memori. Penggunaan data bertipe char dalam ekspresi aritmatika dilarang. Operasi perbandingan dapat diterapkan pada nilai literal, yang hasilnya bergantung pada jumlah variabel literal atau konstanta dalam tabel kode.

Selain tipe data standar, Pascal mendukung tipe skalar, ditetapkan pengguna. Ini termasuk terhitung Dan selang jenis . Tipe data ini menempati 1 byte memori, jadi tipe yang ditentukan pengguna tidak boleh berisi lebih dari 255 elemen. Penggunaannya secara signifikan meningkatkan visibilitas program, membuatnya lebih mudah untuk menemukan kesalahan dan menghemat memori.

Jenis yang disebutkan ditentukan secara langsung dengan mencantumkan semua nilai yang dapat diambil oleh variabel dari tipe tertentu. Nilai individu dipisahkan dengan koma, dan seluruh daftar diapit tanda kurung.

Format

jenis<имя типа>=(<значение1, значение2, ..., значениеN>);

Var<идентификатор, ...>: < имя типа>;

Contoh

Jenis Musim = (Musim Semi, Musim Panas, Musim Gugur, Musim Dingin);

Var S1, S2: Musim;

Musim Gugur: (September, Oktober, Sekarang);

Dalam contoh ini, tipe data pengguna Musim yang dideklarasikan secara eksplisit ditampilkan. Artinya ditentukan - sebutan musim. Variabel S1 dan S2 hanya dapat mengambil salah satu dari nilai yang terdaftar. Mencoba menetapkan nilai lain apa pun kepada mereka akan menyebabkan gangguan perangkat lunak. Jenis pencacahan ketiga adalah anonim (tidak memiliki nama) dan ditentukan dengan pencacahan nilai di bagian Var. Musim gugur adalah variabel jenis ini dan dapat mengambil nilai September, Oktober, Nowember. Jadi, jenis apa pun dapat diberikan, tetapi ini tidak selalu dapat diterima. Cara pertama tentunya lebih mudah dipahami dan lebih sesuai dengan sifat bahasa Pascal.

tipe interval memungkinkan Anda menyetel dua konstanta yang menentukan batas rentang nilai untuk variabel ini. Kompiler menghasilkan rutinitas pemeriksaan untuk setiap operasi pada variabel tipe interval yang menentukan apakah nilai variabel tetap berada dalam rentang yang ditentukan untuknya. Kedua konstanta harus termasuk dalam salah satu tipe standar, kecuali real. Nilai konstanta pertama harus lebih kecil dari nilai konstanta kedua.

Format

jenis<имя типа> = <константа1> .. <константа2>;

Var<идентификатор>: < имя типа>;

Contoh

Ketik Hari = 1..31;

Var Work_d, Free_d: Hari;

Dalam contoh ini, variabel Work_d, Free_d adalah tipe hari dan dapat mengambil nilai apa pun dari rentang 1 . . 31.

Di luar jangkauan memicu interupsi perangkat lunak.

Anda dapat menentukan jenis interval dengan menentukan batas rentang bukan dengan nilai konstanta, tetapi dengan namanya:

Konst Min = 1; maks=31;

Ketik Hari = Min.. Maks;

Var Work_d, Free_d: Hari;

Tipe terstruktur data didasarkan pada tipe skalar dan dapat berisi berbagai kombinasi darinya. Mereka mendefinisikan satu set elemen skalar dan dicirikan oleh jenis komponennya. Pascal menyediakan tipe data terstruktur berikut:

garis - urutan karakter diapit apostrof;

Himpunan - tipe data terstruktur yang terdiri dari sejumlah elemen dengan tipe yang sama, diakses oleh indeks ;

sekelompok - sekumpulan objek yang dipilih menurut beberapa atribut atau kelompok atribut, yang dapat dianggap sebagai satu kesatuan;

catatan - satu set sejumlah komponen tetap dari berbagai jenis;

mengajukan- urutan komponen dengan jenis yang sama dan panjang yang sama.

Dua tipe yang lebih terstruktur - prosedural dan tipe objek(objektif) - sulit untuk mencocokkan data dalam representasi biasa.

Gambar 1- Satu set tipe dasar bahasa Pascal

Dalam Pascal variabel dicirikan oleh mereka jenis. Tipe adalah properti variabel, yang dengannya variabel dapat mengambil sekumpulan nilai yang diizinkan oleh tipe ini, dan berpartisipasi dalam serangkaian operasi yang diizinkan pada tipe ini.

Suatu tipe menentukan kumpulan nilai valid yang dapat diambil oleh variabel dari tipe tertentu. Ini juga mendefinisikan set operasi yang diizinkan pada variabel dari tipe tertentu dan mendefinisikan representasi data memori akses acak komputer.

Misalnya:

n:bilangan bulat;

Pascal adalah bahasa statis, yang berarti bahwa tipe variabel ditentukan saat dideklarasikan dan tidak dapat diubah. Bahasa Pascal memiliki sistem tipe yang dikembangkan - semua data harus termasuk tipe data yang diketahui sebelumnya (baik tipe standar yang dibuat selama pengembangan bahasa atau tipe yang ditentukan pengguna yang didefinisikan oleh programmer). Pemrogram dapat membuat tipenya dengan struktur kompleksitas arbitrer berdasarkan tipe standar, atau sudah ditetapkan pengguna jenis. Jumlah jenis yang dibuat tidak terbatas. Jenis khusus dalam program dideklarasikan di bagian TYPE dengan format:

[nama] = [jenis]

Sistem tipe standar memiliki struktur hierarkis yang bercabang.

Utama dalam hierarki adalah tipe sederhana. Jenis seperti itu ada di sebagian besar bahasa pemrograman dan disebut sederhana, tetapi di Pascal mereka memiliki struktur yang lebih kompleks.

Tipe terstruktur dibangun menurut aturan tertentu dari tipe sederhana.

Pointer dibentuk dari tampilan sederhana dan digunakan dalam program untuk menetapkan alamat.

Jenis prosedural merupakan inovasi bahasa TurboPascal, dan memungkinkan Anda untuk mengakses subrutin seolah-olah itu adalah variabel.

Objek juga baru, dan dimaksudkan untuk digunakan sebagai bahasa berorientasi objek.

Ada 5 jenis tipe integer di Pascal. Masing-masing mencirikan rentang nilai yang diterima dan tempatnya dalam ingatan.

Saat menggunakan bilangan bulat, seseorang harus dipandu oleh tipe bersarang, yaitu tipe rentang yang lebih kecil dapat disarangkan dalam tipe rentang yang lebih besar. Tipe Byte dapat disarangkan di semua tipe yang menempati 2 dan 4 byte. Pada saat yang sama, tipe Short Int, yang menempati 1 byte, tidak dapat disarangkan dalam tipe Word, karena tidak memiliki nilai negatif.

Ada 5 tipe nyata:

Jenis integer persis diwakili di komputer. Tidak seperti tipe bilangan bulat, nilai tipe real mendefinisikan bilangan arbitrer hanya dengan presisi terbatas, bergantung pada format bilangan. Bilangan real direpresentasikan dalam komputer dengan fixed atau floating point.

2358.8395

0.23588395*10 4

0,23588395*E 4

Posisi khusus di Pascal ditempati oleh tipe Comp, pada kenyataannya, itu adalah bilangan bulat besar yang ditandatangani. Jenis ini kompatibel dengan semua jenis nyata dan dapat digunakan untuk bilangan bulat besar. Saat merepresentasikan angka floating-point nyata, titik desimal selalu tersirat di depan mantissa kiri atau tertinggi, tetapi saat beroperasi pada angka, titik desimal digeser ke kiri atau kanan.

Jenis ordinal

Tipe ordinal menggabungkan beberapa tipe sederhana. Ini termasuk:

  • semua tipe bilangan bulat;
  • tipe karakter;
  • tipe boolean;
  • rentang tipe;
  • jenis yang disebutkan.

Ciri-ciri umum untuk tipe ordinal adalah: setiap tipe memiliki sejumlah kemungkinan nilai yang terbatas; nilai dari jenis-jenis ini dapat diurutkan dengan cara tertentu dan dengan setiap nomor dapat dibandingkan nomor tertentu, yang merupakan nomor urut; nilai tipe ordinal yang berdekatan berbeda satu per satu.

Untuk nilai tipe ordinal, fungsi ODD(x) dapat diterapkan, yang mengembalikan nomor ordinal dari argumen x.

Fungsi PRED(x) - mengembalikan nilai tipe ordinal sebelumnya. PRED(A) = 5.

Fungsi SUCC(x) - Mengembalikan nilai berikutnya dari tipe ordinal. SUCC(A) = 5.

Jenis karakter

Nilai tipe karakter adalah 256 karakter dari set yang diizinkan oleh tabel kode komputer yang digunakan. Area awal set ini, yaitu rentang dari 0 hingga 127, sesuai dengan set kode ASCII tempat karakter alfabet, angka Arab, dan karakter khusus dimuat. Simbol daerah awal selalu hadir di keyboard PC. Area yang lebih tua disebut alternatif, berisi karakter huruf nasional dan berbagai karakter khusus, dan karakter pseudografik yang tidak sesuai dengan kode ASCII.

Nilai tipe karakter menempati satu byte dalam RAM. Dalam program, nilai diapit oleh apostrof. Juga, nilai dapat ditentukan dalam bentuk kode ASCII-nya. Dalam hal ini, angka dengan kode karakter harus diawali dengan tanda #.

C:= 'A'

Tipe boolean (boolean).

Ada dua nilai tipe Boolean: Benar (Benar) dan Salah (Salah). Variabel jenis ini ditentukan oleh kata layanan BOOLEAN. Nilai Boolean membutuhkan satu byte dalam RAM. Nilai Benar dan Salah sesuai dengan nilai numerik 1 dan 0.

Rentang tipe

Ada subset dari tipe dasarnya, yang bisa berupa tipe ordinal apa saja. Jenis rentang ditentukan oleh batas-batas dalam tipe dasar.

[nilai min]…[nilai maks]

Jenis rentang dapat ditentukan di bagian Jenis sebagai jenis tertentu, atau langsung di bagian Var.

Saat mendefinisikan tipe rentang, seseorang harus dipandu oleh:

  • batas kiri tidak boleh melebihi batas kanan;
  • tipe rentang mewarisi semua properti dari tipe dasar, tetapi dengan batasan yang terkait dengan kardinalitasnya yang lebih rendah.

Jenis yang disebutkan

Tipe ini mengacu pada tipe ordinal dan ditentukan dengan mencantumkan nilai-nilai yang dapat dihitungnya. Setiap nilai diberi nama oleh beberapa pengidentifikasi dan terletak di daftar yang dibingkai dalam tanda kurung. Jenis yang disebutkan ditentukan dalam Jenis:

orang = (pria, wanita);

Nilai pertama adalah 0, nilai kedua adalah 1, dan seterusnya.

Nilai daya maksimum 65535.

jenis tali

Tipe string termasuk dalam kelompok tipe terstruktur dan terdiri dari tipe dasar Char. Tipe string bukan tipe ordinal. Ini mendefinisikan satu set string karakter dengan panjang sewenang-wenang hingga 255 karakter.

Dalam program, tipe string dideklarasikan dengan kata String. Karena String adalah tipe dasar, itu dideklarasikan dalam bahasa dan deklarasi variabel tipe String dilakukan di Var. Saat mendeklarasikan variabel tipe string di belakang String, disarankan untuk menunjukkan panjang string dalam tanda kurung siku. Menentukan bilangan bulat antara 0 dan 255.

Keluarga: Tali;

Menentukan panjang string memungkinkan kompiler mengalokasikan jumlah byte yang ditentukan dalam RAM untuk variabel yang diberikan. Jika panjang string tidak ditentukan, maka kompiler akan mengalokasikan jumlah byte maksimum yang mungkin (255) untuk nilai variabel ini.

Pelajaran membahas tipe data standar utama dalam Pascal, konsep variabel dan konstanta; menjelaskan bagaimana bekerja dengan operasi aritmatika

Pascal adalah bahasa pemrograman yang diketik. Ini berarti bahwa variabel yang menyimpan data adalah tipe data tertentu. Itu. program harus secara langsung menunjukkan data apa yang dapat disimpan dalam variabel tertentu: data teks, data numerik, jika numerik, maka bilangan bulat atau pecahan, dll. Ini diperlukan pertama-tama agar komputer "tahu" operasi apa yang dapat dilakukan dengan variabel-variabel ini dan bagaimana melakukannya dengan benar.

Misalnya, penambahan data tekstual, atau seperti yang disebut dengan benar dalam pemrograman - penggabungan - adalah penggabungan string yang biasa, sedangkan penambahan data numerik terjadi sedikit demi sedikit, selain itu, bilangan pecahan dan bilangan bulat juga ditambahkan dalam berbagai cara. Hal yang sama berlaku untuk operasi lainnya.

Mari kita lihat yang paling umum tipe pascal data.

Tipe Data Integer dalam Pascal

Jenis Jangkauan Memori yang diperlukan (byte)
byte 0..255 1
shortint -128..127 1
bilangan bulat -32768.. 32767 2
kata 0..65535 2
rindu -2147483648..2147483647 4

Harus diingat bahwa saat menulis program di Pascal bilangan bulat(diterjemahkan dari bahasa Inggris sebagai bilangan bulat) adalah yang paling umum digunakan, karena rentang nilainya paling banyak diminati. Jika rentang yang lebih luas diperlukan, gunakan rindu(bilangan bulat panjang, diterjemahkan dari bahasa Inggris bilangan bulat panjang). Jenis byte di Pascal digunakan ketika tidak perlu bekerja dengan nilai negatif, hal yang sama berlaku untuk tipenya kata(hanya kisaran nilai di sini yang jauh lebih besar).

Contoh bagaimana variabel dijelaskan (dideklarasikan) di Pascal:

program a1; varx,y:bilangan bulat; (tipe bilangan bulat) myname:string; (tipe string) mulai x:=1; y:=x+16; namaku:="Peter"; writeln ("nama:", namaku, ", umur:", y) end.

Hasil:
nama: Peter, usia: 17

Komentar dalam Pascal

Perhatikan caranya Komentar Pascal digunakan. Dalam contoh, komentar, mis. teks layanan yang "tidak terlihat" oleh kompiler diapit oleh kurung kurawal. Biasanya, komentar dibuat oleh pemrogram untuk mengklarifikasi cuplikan kode.

Tugas 3. Populasi Moskow adalah a = 9.000.000 jiwa. Populasi New Vasyukov sama dengan b=1000 jiwa. Buatlah program yang menentukan perbedaan jumlah penduduk antara dua kota. Gunakan Variabel

Tipe Data Nyata di Pascal

Bilangan real dalam Pascal dan secara umum dalam pemrograman adalah nama bilangan pecahan.

Jenis Jangkauan Memori yang diperlukan (byte)
nyata 2.9*10E-39..1.7*10E38 6
lajang 1,5 * 10 E-45 .. 3,4 * 10E38 4
dobel 5*10E-324..1.7*10E308 8
diperpanjang 1.9 * 10E-4951 .. 1.1 * 10E4932 10

Tipe real dalam Pascal adalah tipe real yang paling umum digunakan.

Di atas disajikan tipe data sederhana dalam Pascal, yang meliputi:

  • Urut
  • utuh
  • asah otak
  • Simbolis
  • disebutkan
  • Selang
  • Nyata

Untuk menampilkan nilai variabel dari tipe nyata, output yang diformat biasanya digunakan:

  • formatnya menggunakan salah satu angka, yang berarti jumlah posisi yang ditetapkan ke angka ini dalam bentuk eksponensial;
  • p:=1234.6789; WriteIn(hal:6:2); (1234.68)

    Seiring dengan jenis sederhana, bahasa juga menggunakan tipe dan pointer data terstruktur, yang akan menjadi pokok bahasan pelajaran Pascal selanjutnya.

    Konstanta dalam Pascal

    Seringkali, program mengetahui sebelumnya bahwa variabel akan mengambil nilai tertentu dan tidak mengubahnya selama eksekusi seluruh program. Dalam hal ini, Anda harus menggunakan konstanta.

    Deklarasi konstanta dalam Pascal terjadi sebelum deklarasi variabel (sebelum kata layanan var) dan terlihat seperti ini:

    Contoh deskripsi konstanta dalam Pascal:

    1 2 3 4 5 6 konstitusi x= 17 ; var namaku: string ; mulai namaku: = "Peter" ; writeln ("nama: " , namaku, ", umur: " , x) end .

    konstitusi x=17; namavarmy:string; mulai namaku:="Peter"; writeln ("nama:", namaku, ", umur:", x) end.

    Keluaran bilangan bulat dan bilangan real yang "indah".

    Untuk meninggalkan indentasi setelah keluaran nilai variabel, sehingga nilai tidak "bergabung" satu sama lain, biasanya ditunjukkan melalui titik dua berapa banyak karakter yang perlu disediakan untuk keluaran dari nilai:


    Operasi aritmatika dalam Pascal

    Urutan Operasi

    1. evaluasi ekspresi dalam tanda kurung;
    2. perkalian, pembagian, div, mod dari kiri ke kanan;
    3. penjumlahan dan pengurangan dari kiri ke kanan.

    Prosedur dan Fungsi Aritmatika Standar Pascal

    Di sini ada baiknya membahas lebih detail tentang beberapa operasi aritmatika.

    • Operator inc dalam Pascal, diucapkan sebagai inkremen, adalah prosedur standar Pascal, yang berarti inkremen per satu.
    • Contoh operasi Inc:

      x:=1; inc(x); (Kenaikan x dengan 1, yaitu x=2) writeln (x)

      Penggunaan prosedur inc yang lebih kompleks:
      Inc(x,n) dimana x adalah tipe ordinal, n adalah tipe integer; prosedur termasuk kenaikan x dengan n.

    • Prosedur Dec dalam Pascal bekerja dengan cara yang sama: Dec(x) - mengurangi x dengan 1 (penurunan) atau Des(x,n) - mengurangi x dengan n.
    • Operator abs mewakili modulus angka. Bekerja seperti ini:
    • a: =- 9 ; b:=abs(a); (b=9)

      a:=-9; b:=abs(a); (b=9)

    • Operator div di Pascal adalah yang umum digunakan, karena sejumlah tugas diasosiasikan dengan aksi bilangan bulat divisi.
    • Sisa pembagian atau operator mod dalam pascal juga sangat diperlukan untuk menyelesaikan sejumlah masalah.
    • Yang perlu diperhatikan adalah fungsi standar odd Pascal, yang menentukan apakah bilangan bulat ganjil. Artinya, mengembalikan true (benar) untuk bilangan ganjil, false (salah) untuk bilangan genap.
    • Contoh penggunaan fungsi ganjil:

      varx:bilangan bulat; mulaix:=3; writeln(sqr(x)); (jawaban 9) selesai.

    • Operasi eksponensial dalam Pascal hilang seperti itu. Tetapi untuk menaikkan angka menjadi kekuatan, Anda dapat menggunakan fungsi exp.
    • Rumusnya adalah: exp(ln(a)*n) , di mana a adalah angka, n adalah kekuatan (a>0).

      Namun, di kompiler pascal abc eksponensial jauh lebih mudah:

      varx:bilangan bulat; mulaix:=9; writeln(sqrt(x)); (jawaban 3) selesai.

    Tugas 4. Diketahui dimensi kotak korek api: tinggi - 12,41 cm, lebar - 8 cm, tebal - 5 cm Hitung luas alas kotak dan volumenya
    (S=lebar * tebal, V=luas*tinggi)

    Tugas 5. Ada tiga gajah dan cukup banyak kelinci di kebun binatang, dan jumlah kelinci sering berubah. Seekor gajah seharusnya makan seratus wortel sehari, dan kelinci dua. Setiap pagi penjaga kebun binatang melaporkan jumlah kelinci ke komputer. Sebagai tanggapan, komputer harus memberi tahu petugas jumlah wortel yang hari ini perlu diberikan kepada kelinci dan gajah.

    Tugas 6. Diketahui bahwa X kg permen A rubel. Tentukan berapa banyak y kg manisan ini, serta berapa kilogram manisan yang bisa dibeli k rubel. Semua nilai dimasukkan oleh pengguna.



    Memuat...
    Atas