Pascal'da bayt nedir? Pascal'ın

Bir değişkeni tanımlarken türünü belirtmeniz gerekir. Bir değişkenin türü, alabileceği değer kümesini ve üzerinde gerçekleştirilebilecek eylemleri açıklar. Tür bildirimi, türü temsil eden bir tanımlayıcıyı belirtir.

Basit türler standart (sıralı) ve numaralandırılmış (kısıtlı) olarak ikiye ayrılır.

Standart tipler

Turbo Pascal'ın dört yerleşik standart türü vardır: tamsayı, gerçek, boole ve karakter.

Tamsayı türü (tamsayı)

Turbo Pascal'ın beş yerleşik tamsayı türü vardır: shortint, integer, longint, byte ve word. Her tür, aşağıdaki Tabloda gösterildiği gibi belirli bir tamsayı alt kümesini belirtir.

Yerleşik tam sayı türleri.

Menzil

Biçim

8 imzalı bit

16 imzalı bit

2147483648 +2147483647

32 bit imzalı

8 bit imzasız

16 bit imzasız

Tamsayı tipindeki işlenenler üzerindeki aritmetik işlemler aşağıdaki kurallara uygun olarak gerçekleştirilir:

  1. Tamsayı sabiti türü, söz konusu tamsayı sabitinin değerini içeren en küçük aralığa sahip yerleşik bir tamsayı türüdür.
  2. İkili işlem durumunda (iki işlenen kullanan bir işlem), her iki işlenen de işlem gerçekleştirilmeden önce ortak türlerine dönüştürülür. Yaygın tür, her iki türün olası tüm değerlerini içeren en küçük aralığa sahip yerleşik tamsayı türüdür. Örneğin, bir tam sayı ve bayt uzunluğunda bir tam sayı için ortak tür tam sayıdır ve bir tam sayı ve sözcük uzunluğunda bir tam sayı için ortak tür, uzun tamsayıdır. Eylem genel türün kesinliğine göre gerçekleştirilir ve sonucun türü genel tür olur.
  3. Atama operatörünün sağ tarafındaki ifade, sol taraftaki değişkenin boyutuna bakılmaksızın değerlendirilir.

Tamsayılar üzerinde yapılan işlemler:

“+” - ekleme

“-“ - çıkarma

"*" - çarpma işlemi

SQR - kare alma

DIV - bölme işleminden sonra kesirli kısmı atar

MOD - bölme işleminden sonra tam sayı kalanını elde etme

ABS - sayı modülü

RASTGELE(X) - 0'dan X'e kadar rastgele bir sayı elde etme

C:=100; b:=60; a DIV b sonucu - 1 a MOD b sonucu - 40

Tamsayı tipi değişkenler şu şekilde tanımlanır:

var değişken listesi: tür;

Örneğin: var а,р,n:integer;

Gerçek tip (gerçek)

Gerçek tür, sabit sayıda basamakla kayan nokta biçiminde temsil edilebilen gerçek sayıların bir alt kümesidir. Kayan nokta formatında bir değer yazmak tipik olarak üç değeri içerir - m, b ve e - öyle ki m*b e, burada b her zaman 10'dur ve m ve e gerçek aralıktaki tamsayı değerlerdir. Bu m ve e değerleri ayrıca gerçek tipin aralığını ve hassasiyetini belirler.

Beş tür gerçek tür vardır: gerçek, tek, çift, exnende, comp. Gerçek türler, kendileriyle ilişkili değerlerin aralığı ve kesinliği bakımından değişiklik gösterir

Gerçek türler için aralık ve ondalık basamaklar

Menzil

Sayılar

2,9x10E-39 ila 1,7x10E 38

1,5x10E-45 ila 3,4x10E 38

5,0x10E-324 ila 1,7x10E 308

3,4x10E-493 ila 1,1x10E 403

2E 63 ila 2E 63

Reel sayılar üzerinde yapılan işlemler:

  • Tüm işlemler tamsayılar için geçerlidir.
  • SQRT(x), x'in kareköküdür.
  • SIN(X), COS(X), ARCTAN(X).
  • LN(X) doğal logaritmadır.
  • EXP(X), X (e x)'in üssüdür.
  • EXP(X*LN(A)) - üs (A x).
  • Dönüştürme işlevlerini yazın:
    • TRUNC(X) - kesirli kısmı atar;
    • YUVARLAK(X) - yuvarlama.
  • Aritmetik işlemlerin bazı kuralları:
    • Bir aritmetik işlem gerçek ve tam sayı türünde sayılar içeriyorsa, sonuç gerçek türünde olacaktır.
    • İfadenin tüm bileşenleri tek satıra yazılır.
    • Yalnızca parantez kullanılır.
    • İki aritmetik işareti arka arkaya koyamazsınız.

Gerçek tipteki değişkenler şu şekilde tanımlanır:

var değişken listesi: tür;

Örneğin:

var d,g,k:gerçek ;

Karakter türü(karakter)

Char türü kesme işareti içine alınmış herhangi bir karakterdir. Kesme işaretini bir karakter değişkeni olarak temsil etmek için onu bir kesme işareti içine almanız gerekir: ''''.

Her karakterin kendine ait kodu ve numarası vardır. 0,1..9 rakamlarından oluşan seri numaraları artan sırada sıralanmıştır. Harflerin seri numaraları da artan sırada sıralanmıştır ancak birbirini takip etmesi gerekmez.

Aşağıdaki karşılaştırma işaretleri karakter verileri için geçerlidir:

> , < , >=, <=, <> .

Örneğin: 'A'< ‘W’

Karakter değişkenlerine uygulanan işlevler:

  1. ORD(X) - X sembolünün seri numarasını belirler. ord ('a') =97 ;
  2. CHR(X) - bir karakteri numarasına göre tanımlar. chr(97) ='a';
  3. PRED(X) - X karakterinden önceki karakteri döndürür. pred ('B') ='A';
  4. SUCC(X) - X karakterinden sonraki karakteri döndürür. succ ('A') ='B';

Numaralandırma türü

Numaralandırılmış bir veri türü, kesin olarak tanımlanmış bir sırada ve kesin olarak tanımlanmış bir miktarda sabitlerin bir listesi olarak belirtildiği için bu şekilde adlandırılmıştır. Numaralandırılmış bir tür, sabitlerin bir listesinden oluşur. Bu türdeki değişkenler bu sabitlerden herhangi birinin değerini alabilir. Numaralandırma türü açıklaması şuna benzer:

Tip<имя типа>=(sabitlerin listesi) ; Var<имя переменной>:<имя типа>;

Nerede<список констант>- bu, virgüllerle ayrılmış olarak belirtilen ve 0'dan başlayarak kendi seri numarasına sahip olan özel bir sabit türüdür.

Örneğin:

yön yazın=(kuzey, güney, batı, doğu) ; ay=(Haziran, Temmuz, Ağustos, Ocak) ; kapasite=(kova, fıçı, teneke kutu, tank) ; var döndürme:yön; kalkış:ay; hacim:kapasite; var turn:(kuzey, güney, batı, doğu) ; kalkış: (Haziran, Temmuz, Ağustos, Ocak) ; hacim: (kova, fıçı, teneke kutu, tank);

Aşağıdaki atama operatörlerini gerçekleştirebilirsiniz:

Dönüş:=güney; kalkış:=Ağustos; hacim:=tank;

ancak karışık ödevler yapamazsınız:

Kalkış:=güney; hacim:=Ağustos;

Aşağıdaki işlevler numaralandırılmış türdeki değişkenler için geçerlidir:

1. ORD - seri numarası

2. PRED - önceki öğe

3. SUCC - sonraki öğe.

PRED (varil) = kova; SUCC (güney) =batı; ORD (Temmuz) =1 ;

Numaralandırılmış türdeki değişkenler, sıralanmış ve numaralandırılmış oldukları için karşılaştırılabilir. Yani ifadeler: kuzey< юг, июнь < январь имеют значения TRUE, а юг>batı ve tank<бочка значение FАLSE.

Sınırlı tip

Bir değişken kendi türünün tüm değerlerini kabul etmiyorsa, ancak yalnızca belirli bir aralık dahilindeyse, sınırlı türde bir değişken olarak kabul edilebilir. Her kısıtlanmış tür, temel türlere bir kısıtlama getirilerek tanımlanır.

Şu şekilde anlatılmaktadır:

TİP<имя типа>=sabit1 ..sabit2

Bu durumda aşağıdaki kurallara uyulmalıdır:

  1. Sınırlı sabitlerin her ikisi de aynı türde olmalıdır.
  2. Gerçek dışındaki herhangi bir basit tür, temel tür olarak kullanılabilir.
  3. Sınırlı bir türü tanımlarken başlangıç ​​değeri, nihai değerden büyük olmamalıdır.
tür indeksi =0 ..63 ; harf='a'..'z'; var karakter1, karakter2:harf; a,g:indeks ;

Değişken açıklaması bölümünde bunu hemen açıklayabilirsiniz:

var a,g:0 ..63 ; karakter1,karak2:'a'..'z'. Programlamanın temelleri
Her profesyonel bir zamanlar çaydanlıktı. Elbette "böyle bir şeyi ortaya çıkarmak için düşünmeye nasıl başlayacağınızı bilmediğiniz" duruma aşinasınızdır. Muhtemelen nereden başlayacağınızı bilemediğiniz bir durumla karşılaşmışsınızdır. Bu kitap tam olarak programcı olmak isteyen ancak bu yola nasıl başlayacağına dair hiçbir fikri olmayan kişilere yöneliktir. ...

Hemen hemen tüm tamsayı veri türleri . Bu veri türleri belirli bir aralıktaki tam sayıları temsil eder. Tamsayı türlerinin ve değer aralıklarının belirli adları, belirli programlama diline, derleyiciye ve derleme moduna bağlıdır. Bu konuda daha fazla bilgiyi derleyici belgelerinde bulabilirsiniz.

Örneğin veri türü Tamsayı Delphi'de -2147483648…2147483647 aralığına sahiptir, Turbo Pascal'da ise veri türü Tamsayı-35768…32767 aralığındaki sayıları temsil eder. Free Pascal'da türün değer aralığı Tamsayı seçilen mod tarafından belirlenir.

Lazarus Free Pascal derleyicisini kullandığı için Free Pascal ile ilgili olarak veri türleri hakkında söylenen her şey Lazarus için de geçerlidir.

Dolayısıyla Free Pascal'ın tamsayı veri türleri Tablo 13.1'de listelenmiştir.

Tablo 13.1. Ücretsiz Pascal Tamsayı Veri Türleri (Lazarus).

Tip Boyut, bayt Değer aralığı
Bayt 1 0…255
Kısa özet 1 -128…127
Küçük 2 -35768…32767
Kelime 2 0…65535
Tamsayı 2 veya 4 Derleme moduna bağlıdır
Kardinal 4 0…4294967295
Longint 4 -2147483648…2147483647
Uzun Kelime 4 0...4294967295
Int64 8 -9223372036854775808...9223372036854775807
QWord 8 0...18446744073709551615

NOT
Free Pascal'daki Türler Int64 Ve QWord değiller! Bu, örneğin döngülerdeki dizin değişkenleri için bunları kullanamayacağınız anlamına gelir. Ancak ileride ayrı ayrı anlatmamak ve tüm Free Pascal tamsayı türlerini tek bir yerde toplamak amacıyla burada sundum. Bazı kelimeleri anlamıyorsanız paniğe kapılmayın. Zamanı gelince size her şeyi daha detaylı anlatacağım.

Ve şimdi tabloyla ilgili birkaç açıklama.

Bir sütunda TİP veri türü tanımlayıcıları verilir (derleyiciye belirli bir verinin hangi türe ait olduğunu gösteren anahtar kelimeler). Aşağıdaki derslerde bu tanımlayıcıların nasıl kullanılacağını öğreneceksiniz.

Bir sütunda BOYUT veri türünün bilgisayar belleğinde kapladığı boyutu belirtir. Örneğin, pozitif bir tam sayı farklı türlerle temsil edilebilir: Bayt, Kelime, Kardinal vb. Bununla birlikte, şöyle bir sayı Kardinal gibi bir sayı bellekte 4 bayt kaplayacak Bayt– yalnızca 1 bayt. Bu nedenle, üzerinde çalıştığınız sayının hiçbir zaman 255'ten büyük bir değer almayacağından eminseniz, onu bir tür olarak tanımlamak daha iyidir. Bayt, çünkü bu, bilgisayarınızın belleğinde yer tasarrufu sağlayacaktır. Burada her şey o kadar basit olmasa da (bellek ve diğer bilgisayar kaynaklarının dağıtımındaki nüanslar kapsamın dışındadır).

Bir sütunda MENZİL veri türünün üzerinde çalıştığı değer aralığını belirtir. Örneğin, şöyle bir sayı Bayt 0'dan 255'e kadar değer alabilir.

Şimdi pratik yapalım. Tüm tamsayı veri türlerinin değer aralıklarını görüntüleyen bir program yazalım. Bu programın kaynak kodu aşağıda verilmiştir:

Listeleme 13.1. Tamsayı aralıklarını görüntülemek için bir program. program td; ($mode objfpc)($H+), ($IFDEF UNIX)($IFDEF UseCThreads) cthread'leri, ($ENDIF)($ENDIF) Sınıfları kullanır ( bundan sonra birimler ekleyebilirsiniz); begin Writeln("Bayt: ", Düşük(Bayt), "..", Yüksek(Bayt)); Writeln("Kısa metin: ", Düşük(Kısa metin), "..", Yüksek(Kısa metin)); Writeln("Küçük: ", Düşük(Küçük), "..", Yüksek(Küçük)); Writeln("Kelime: ", Düşük(Kelime), "..", Yüksek(Kelime)); Writeln("Tamsayı: ", Düşük(Tamsayı), "..", Yüksek(Tamsayı)); Writeln("Kardinal: ", Düşük(Anahtar), "..", Yüksek(Anahtar)); Writeln("Longint: ", Düşük(Longint), "..", Yüksek(Longint)); Writeln("Uzun Kelime: ", Düşük(Uzun Kelime), "..", Yüksek(Uzun Kelime)); Writeln("Int64: ", Düşük(Int64), "..", Yüksek(Int64)); Writeln("QWord: ", Düşük(QWord), "..", Yüksek(QWord)); Readln; son.

Standart fonksiyon Düşük Veri tipinin minimum değerini tanımlar. Funtskia Yüksek Maksimum değeri tanımlar. Fonksiyonlarla YazLn Ve OkumaLn zaten birbirinizi biraz tanıyorsunuz. İlgili bölümde alt rutinler (prosedürler ve işlevler) hakkında daha ayrıntılı olarak konuşacağız.

Son olarak programda tamsayılı verilerin nasıl yazıldığını anlatacağım. Evet, her yerde olduğu gibi - tırnak işaretleri veya herhangi bir ek sembol olmadan sadece numarayı yazın. Örneğin, bunun gibi

10
178
35278

Doğru, bu ondalık sayı sistemindeki sayılar için geçerlidir. Elbette başka sistemlerin de olduğunu zaten biliyorsunuzdur. En yaygın kullanılan sayı sistemleri ikili, ondalık ve onaltılıktır.

Free Pascal dört tamsayı formatını destekler:

  1. Ondalık gösterim. 10 gibi bir sayı.
  2. Onaltılı gösterim. $ ile başlayan bir sayı. Örneğin, onaltılık sayı olan $10, ondalık sayı olan 16'ya eşittir.
  3. Sekizli notasyon. Ön eki & olan bir sayı. Örneğin sekizlik &10, ondalık sayı 8'e eşittir.
  4. İkili gösterim. % ile başlayan bir sayı. Örneğin ikili sayı %10, ondalık sayı 2'ye eşittir.

Ev ödevi:

Tam sayı değerlerinin aralıklarını görüntüleyen bir program oluşturun (Liste 13.1). Programı derleyin ve çalıştırın. Bu değerlerin Tablo 13.1'de gösterilen değerlere karşılık geldiğinden emin olun.

Programın kaynak kodunda derleme modunu ayarlayan satırı bulun:

($mode objfpc)($H+)

Bu satırda kelime yerine objfpc Kelime yaz tp. Yani son satır şöyle görünmeli:

($mod tp)($H+)

Programı Başlat. Tür değerleri aralığına bakın Tamsayı. Sonuca varmak.

Bir programcı gibi, yani mantıksal olarak düşünmeyi öğrenin. Benim şu an yaptığım gibi, emekli olana kadar kimse senin için her şeyi çiğneyemeyecek. Kendi adına düşünmeye alışmalısın. Aksi takdirde "maymun öğrenme ilkesine" kayarsınız ve harika bir programcı olma şansınız sıfıra yakın olur. "Sıkışma" seviyesine kaymamanıza yardımcı olmak için, bazı şeyleri kendi başınıza çözmeye çalışmanız için öğrenmenizde periyodik olarak boşluklar bırakacağım.

Kendin çözersen çok daha iyi olur yanlış karar, her zaman başkalarının doğru çözümlerini kullanıp aptalca kopyalamak yerine, hatayı kendiniz bulacak ve kendiniz düzelteceksiniz.

3.2. Turbo Pascal 7'deki basit veri türleri

Basit bir tür, sıralı bir parametre değerleri kümesini tanımlar. Turbo Pascal aşağıdaki basit tür gruplarına sahiptir:

  • tam sayı türleri;
  • boole tipi;
  • karakter türü;
  • numaralandırılmış tür;
  • tip aralığı;
  • gerçek tipler.

Gerçek türler dışındaki tüm basit türlere sıralı türler denir. Sıralı tipteki miktarlar için standart prosedürler ve işlevler tanımlanmıştır: Dec, Inc, Ord, Pred, Succ (bkz. bölüm 13.1).

3.2.1. Tam sayı türleri

Tek bir tamsayı türü olan Tamsayıyı tanımlayan Pascal'ın aksine, Turbo Pascal'ın beş standart tamsayı türü vardır: Shortint, Integer, Longint, Byte, Word. Bu türlerin özellikleri tabloda verilmiştir. 2.

Tablo 2. Tamsayı veri türleri

Tip Menzil Biçim Bayt cinsinden boyut
Kısa özet -128 .. 127 İkonik 1
Tamsayı -32768 .. 32767 İkonik 2
Longint -2147483648 .. 2147483647 İkonik 4
Bayt 0 .. 255 İmzasız 1
Kelime 0 .. 65535 İmzasız 2

3.2.2. Boole türü

Standart Boolean türü (boyut - 1 bayt), herhangi bir öğesi yalnızca iki değer alabilen bir veri türüdür: Doğru ve Yanlış. Bu durumda aşağıdaki koşullar geçerlidir:
Yanlış Sıra (Yanlış) = 0
Sıra (Doğru) = 1
Succ (Yanlış) = Doğru
Tahmin (Doğru) = Yanlış

Turbo Pascal 7.0, ByteBool (boyut - 1 bayt), WordBool (boyut - 2 bayt) ve LongBool (boyut - 4 bayt) olmak üzere üç mantıksal tür daha ekledi. Diğer programlama dilleri ve Windows ortamıyla birleştirilmek üzere tanıtıldılar. Standart Boolean türünden farkı, bu türdeki parametrenin True değerine karşılık gelen gerçek değeridir. Tüm mantıksal türler için False değeri, karşılık gelen bayt sayısıyla yazılan 0 sayısına karşılık gelir. Boolean türü için True değeri, baytında yazılan 1 sayısına karşılık gelir ve diğer türler için True değeri sıfırdan başka herhangi bir sayıya karşılık gelir (bu durumda Ord işlevi 1 değerini vermesine rağmen).

3.2.3. Karakter türü

Standart karakter türü Char, tam bir ASCII karakter kümesini tanımlar. Char türündeki bir değerden Ord işlevi, karşılık gelen karakterin kodunu verir. Karakter tipinin değerleri kodlarına göre karşılaştırılır.

3.2.4. Numaralandırma türü

Numaralandırılmış bir tür standart değildir ve parametre değerlerinin eşleşebileceği bir dizi tanımlayıcı tarafından tanımlanır. Tanımlayıcıların listesi parantez içinde gösterilir, tanımlayıcılar virgülle ayrılır:

tip
= ();)

Bir türü tanımlarken tanımlayıcıların hangi sırayla listelendiği önemlidir, çünkü ilk tanımlayıcıya seri numarası 0, ikinciye - 1 vb. atanır. Aynı tanımlayıcı yalnızca bir numaralandırılmış türün tanımında kullanılabilir. Numaralandırılmış bir türün değerinden Ord işlevi, değerinin sıra sayısını verir.

Örnek. Numaralandırılmış tür.

yazın Operat = (Artı, Eksi, Çarp, Böl);

Boole türü, numaralandırılmış bir türün özel bir durumudur:

Boolean = (Yanlış, Doğru) yazın;

3.2.5. Tip aralığı

Herhangi bir sıralı türde, minimum ve maksimum değerlerle tanımlanan, sınırların kendisi de dahil olmak üzere bu sınırlar dahilindeki orijinal türün tüm değerlerini içeren bir değerler alt kümesi seçebilirsiniz. Bu alt küme bir aralık türünü tanımlar. Aralık türü, iki noktayla ayrılmış olarak minimum ve maksimum değerlerin belirtilmesiyle belirtilir:

türü = . . ;

Bu türü tanımlarken minimum değer maksimumdan büyük olmamalıdır.

Örnek. Aralık türlerinin tanımı.

tip
Düzine = 1..12; (1'den 12'ye kadar sayılar)
AddSub = Artı..Eksi; (toplama ve çıkarma işlemleri)

3.2.6. Gerçek tipler

Yalnızca tek bir Real tipinin tanımlandığı Pascal dil standardından farklı olarak Turbo Pascal'ın beş standart real tipi vardır: Real, Single, Double, Extended, Comp. Bu türlerin özellikleri için tabloya bakınız. 3. Tablo 3. Gerçek veri türleri

Tip Menzil Önemli rakamların sayısı Bayt cinsinden boyut
Gerçek 2.9*10-39..1.7*1038 11-12 6
Bekar 1.5*10-45..3.4*1038 7-8 4
Çift 5.0*10-324.-1.7*10308 15-16 8
Uzatılmış 3.4*10-4932..1.1*104932 19-20 10
Bilgisayar -263+1..263-1 19-20 8

Comp türü aslında genişletilmiş aralıklı bir tamsayı türüdür, ancak sıralı bir tür olarak kabul edilmez.

Single, Double, Extended ve Comp türleri, programlarda yalnızca bir aritmetik yardımcı işlemci varsa veya yardımcı işlemci emülatörü etkinleştirilmişse kullanılabilir (bkz. paragraf 17.5.8 ve 17.7.1).

Ders, Pascal'daki ana standart veri türlerini, değişken ve sabit kavramlarını kapsar; aritmetik işlemlerle nasıl çalışılacağını açıklar

Pascal, yazılı bir programlama dilidir. Bu, verileri depolayan değişkenlerin belirli bir veri türünde olduğu anlamına gelir. Onlar. Program, belirli bir değişkende hangi verilerin saklanabileceğini doğrudan belirtmelidir: metin verileri, sayısal veriler (sayısal ise tamsayı veya kesirli vb.). Bu öncelikle bilgisayarın bu değişkenlerle hangi işlemlerin yapılabileceğini ve bunların nasıl doğru şekilde gerçekleştirileceğini "bilmesi" için gereklidir.

Örneğin, metin verilerinin eklenmesi veya programlamada doğru bir şekilde adlandırıldığı gibi - birleştirme - dizelerin olağan birleştirilmesidir, sayısal verilerin eklenmesi bit düzeyinde gerçekleşir, ayrıca kesirli ve tamsayı sayılar da farklı şekilde eklenir. Aynı durum diğer işlemler için de geçerlidir.

Pascal'daki en yaygın veri türlerine bakalım.

Pascal'da tamsayı veri türleri

Tip Menzil Gerekli bellek (bayt)
bayt 0..255 1
kısa bilgi -128..127 1
tamsayı -32768.. 32767 2
kelime 0..65535 2
özlem -2147483648..2147483647 4

Pascal'da program yazarken şunu aklınızda tutmanız gerekir: tamsayı(bir bütün olarak İngilizceden çevrilmiştir) en sık kullanılanıdır, çünkü değer aralığı en çok talep görmektedir. Daha geniş bir aralığa ihtiyaç duyulursa, özlem(uzun tamsayı, İngilizceden uzun tamsayı olarak çevrilmiştir). Tip bayt Pascal'da negatif değerlerle çalışmaya gerek olmadığında kullanılır, aynı şey type için de geçerlidir kelime(sadece buradaki değer aralığı çok daha büyüktür).

Pascal'da değişkenlerin nasıl tanımlandığına (bildirildiğine) örnekler:

a1 programı; var x,y:tamsayı; (tamsayı türü) ismim:string; (dize türü) begin x:=1; y:=x+16; ismim: = "Peter"; writeln("isim: ",benim adım, ", yaş: ", y) end.

Sonuç:
isim: Peter, yaş: 17

Pascal'daki yorumlar

Nasıl olduğunu fark et Yorumlar Pascal'da kullanılır. Örnek yorumlarda, yani. derleyici tarafından "görünmeyen" hizmet metni küme parantezleri içine alınır. Tipik olarak yorumlar programcılar tarafından kod parçalarını açıklamak için yapılır.

Görev 3. Moskova'nın nüfusu = 9.000.000 kişidir. Yeni Vasyuki'nin nüfusu b=1000 kişidir. İki şehir arasındaki nüfus sayısı farkını bulan bir program yazınız. Değişkenleri Kullan

Pascal'da gerçek veri türleri

Pascal'da ve genel olarak programlamada gerçek sayılar kesirli sayıların adıdır.

Tip Menzil Gerekli bellek (bayt)
gerçek 2,9 * 10E-39 .. 1,7 * 10E38 6
Bekar 1,5*10E-45 ..3,4*10E38 4
çift 5*10E-324 .. 1.7*10E308 8
uzatılmış 1.9*10E-4951 .. 1.1*10E4932 10

Pascal'daki gerçek tür en sık kullanılan gerçek türdür.

Yukarıdakiler sunuldu Pascal'daki basit veri türleri şunları içerir:

  • sıralı
  • Tüm
  • zeka oyunu
  • Karakter
  • Listelenebilir
  • Aralık
  • Gerçek

Gerçek tipteki değişkenlerin değerlerini görüntülemek için genellikle biçimlendirilmiş çıktı kullanılır:

  • format, bu sayıya tahsis edilen konumların sayısını üstel biçimde gösteren bir sayıyı kullanır;
  • p:=1234.6789; Writeln(p:6:2); (1234.68)

    Dil, basit türlerin yanı sıra şunları da kullanır: yapılandırılmış veri türleri ve işaretçiler Pascal ile ilgili sonraki derslerin konusu olacak.

    Pascal'daki sabitler

    Çoğu zaman bir programda, bir değişkenin belirli bir değeri alacağı ve tüm programın yürütülmesi boyunca bu değeri değiştirmeyeceği önceden bilinir. Bu durumda bir sabit kullanmanız gerekir.

    Pascal'da bir sabitin bildirimi, değişkenlerin bildiriminden önce (var hizmet sözcüğünden önce) gerçekleşir ve şöyle görünür:

    Pascal'da sabit bir açıklamaya örnek:

    1 2 3 4 5 6 sabit x= 17; var ismim: string ; adımla başla: = "Peter"; writeln("isim: ", ismim, ", yaş: ", x) end.

    sabit x=17; var ismim:string; start myname:="Peter"; writeln("isim: ",benim adım, ", yaş: ", x) end.

    Tam sayıların ve gerçek sayıların “güzel” çıktısı

    Değişkenlerin değerlerini görüntüledikten sonra girintilerin olmasını sağlamak ve böylece değerlerin birbiriyle "birleşmemesini" sağlamak için, iki nokta üst üste kullanarak, değişkenleri görüntülemek için kaç karakter sağlanması gerektiğini belirtmek gelenekseldir. değer:


    Pascal'da aritmetik işlemler

    Operasyonların sırası

    1. parantez içindeki ifadelerin değerlendirilmesi;
    2. çarpma, bölme, div, mod soldan sağa;
    3. soldan sağa toplama ve çıkarma.

    Pascal Standart Aritmetik İşlemler ve Fonksiyonlar

    Burada bazı aritmetik işlemler üzerinde daha ayrıntılı olarak durmakta fayda var.

    • Pascal'daki inc işlemi, telaffuz edilen artış, birer birer artırmak anlamına gelen standart bir Pascal prosedürüdür.
    • Inc işlemi örneği:

      x:=1; inc(x); (X'i 1 artırır, yani x=2) writeln(x)

      Inc prosedürünün daha karmaşık kullanımı:
      Inc(x,n) burada x bir sıralı türdür, n bir tamsayı türüdür; prosedür inc x'i n'ye kadar artırır.

    • Pascal'daki Dec prosedürü benzer şekilde çalışır: Dec(x) - x'i 1 azaltır (azalır) veya Dec(x,n) - x'i n azaltır.
    • Abs operatörü bir sayının modülünü temsil eder. Bu şekilde çalışır:
    • a: =- 9; b:=abs(a) ; (b=9)

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

    • Pascal'daki div operatörü, bir dizi görevin tüm bölümün çalışmasını içermesi nedeniyle sıklıkla kullanılır.
    • Bölmenin geri kalanı veya Pascal'daki mod operatörü de bir takım problemlerin çözümü için vazgeçilmezdir.
    • Dikkate değer olan, bir tam sayının tek olup olmadığını belirleyen Pascal'ın standart tek işlevidir. Yani tek sayılar için true, çift sayılar için false değerini döndürür.
    • Tek fonksiyonunun kullanımına bir örnek:

      var x:tamsayı; başlangıç ​​x:=3; writeln(sqr(x)); (cevap 9) son.

    • Pascal'da üstel alma işlemi haliyle eksik. Ancak bir sayının üssünü yükseltmek için exp fonksiyonunu kullanabilirsiniz.
    • Formül şu şekildedir: exp(ln(a)*n), burada a bir sayı, n ise bir derecedir (a>0).

      Ancak Pascal abc derleyicisinde üstel alma işlemi çok daha basittir:

      var x:tamsayı; başlangıç ​​x:=9; writeln(sqrt(x)); (cevap 3) son.

    Görev 4. Bir kibrit kutusunun boyutları bilinmektedir: yükseklik - 12,41 cm, genişlik - 8 cm, kalınlık - 5 cm Kutunun tabanının alanını ve hacmini hesaplayın
    (S=genişlik*kalınlık, V=alan*yükseklik)

    Görev 5. Hayvanat bahçesinde üç fil ve çok sayıda tavşan var ve tavşan sayısı sık sık değişiyor. Bir filin günde yüz havuç, bir tavşanın ise iki tane yemesi gerekiyor. Hayvanat bahçesi görevlisi her sabah bilgisayara tavşanların sayısını söylüyor. Bilgisayar buna yanıt olarak görevliye bugün tavşanlara ve fillere yedirilmesi gereken toplam havuç sayısını söylemelidir.

    Görev 6. biliniyor ki X kg tatlı maliyeti A ruble Ne kadara mal olacağını belirleyin sen Bu tatlıların kg'ı ve ayrıca kaç kilogram tatlının satın alınabileceği k ruble Tüm değerler kullanıcı tarafından girilir.

    Pascal'daki en basit sayısal veri türü, tam sayıları depolamak için tasarlanmış tam sayı türleridir. Pascal'da tamsayılar genellikle iki türe ayrılır: işaretli ve işaretsiz. İşaretli sayılar, hem pozitif hem de negatif sayıları içeren bir tamsayı türüdür; işaretsiz sayılar yalnızca pozitif sayılardır.

    Aşağıda tam sayı türlerine sahip iki tablo bulunmaktadır. İlk önce yazacağız imzalı tamsayı türleri:


    TipBaytDeğer aralığı
    kısa bilgi1 -128 ... 127
    küçük2 -32768 ... 32767
    tamsayı, boylam4 -2147483648 ... 2147483647
    int648 -9223372036854775808 ... 9223372036854775807

    Ve bu işaretsiz tamsayı türleri:


    TipBaytDeğer aralığı
    bayt1 0 ... 255
    kelime2 0 ... 65535
    uzun kelime, kardinal4 0 ... 4294967295
    uint648 0 ... 18446744073709551615

    Gördüğünüz gibi, ilk sütun türün adını, ikincisi - bu tür sayıların bellekte kapladığı bayt sayısını ve üçüncü - sırasıyla olası değerlerin aralığını içerir. İki tür işaretli sayı vardır: eşanlamlı olan tam sayı ve uzun sayı (kelimenin tam anlamıyla "tam sayı" ve "uzun tam sayı"). Yani açıklama kısmında şu veya bu ismi kullanabilirsiniz.

    Benzer şekilde, ikinci tabloda (Pascal'da negatif olmayan tamsayılar) ayrıca iki adet 4 baytlık eşanlamlı tamsayı türü vardır - uzun sözcük ve kardinal, bu nedenle birini veya diğerini kullanın.

    Ayrıca, ilk tablonun sayılarını sıfıra göre koşullu olarak sağ tarafa taşırsak (minimum sayı 0 olacak şekilde aralığı sağa hareket ettirirsek), o zaman ikinci tabloda tam sayı aralıkları elde edeceğimizi de fark edebilirsiniz. karşılık gelen satırlarda. Yani 1 byte'lık shortint tipinde sol ve sağ sınırlara 128 eklersek byte tipini (0..255) elde ederiz; 2 baytlık bir Smallint türünde sınırlara 32768 eklersek, karşılık gelen 2 baytlık işaretsiz tür sözcüğünü (0..65535) vb. elde ederiz.

    Tüm bunların gerçekleşmesinin nedeni işaretsiz tamsayı türlerinde sayıların tam olarak ikiye bölünebilmesidir: sayıların yarısı negatif kısma, yarısı da pozitif kısma bölünebilir. Öyleyse imzalı sayılarda neden sol kenarlık mutlak değer olarak sağ kenarlıktan 1 daha büyük? - sen sor. Örneğin, shortint türünde minimum -128 iken maksimum yalnızca 127'dir (modülo 1 eksik). Çünkü sağ tarafta 0 da var ve bunu bilmeniz ve hatırlamanız gerekiyor.

    Peki Pascal'da tamsayıların neden bu kadar çok türe bölünmesi gerekiyor? Örneğin, neden PascalABC.Net ve Free Pascal'daki tamsayı türlerinin en büyüğü olan int64 ile yetinmiyoruz ki, bu hem eksi hem de artı ile neredeyse 9 buçuk kentilyon (!) anlamına gelir? Evet, basit bir banal (?) nedenden dolayı - hafızadan tasarruf etmek. Bir baytlık iki küçük pozitif sayıyı (0..255) eklemeniz gerekiyorsa ve bu sayıları int64 (8 bayt) olarak tanımladıysanız, bu 8 kat daha fazla bellek gerektirdi. Program büyükse ve çok fazla değişken varsa, bellek tasarrufu çok keskin bir şekilde artar. Ayrıca problem uzunluk, kütle, mesafe, zaman vb. niceliklerle ilgiliyse işaretli tamsayı türlerini kullanmanın bir anlamı yoktur.

    Sitenin Abrahamyan Problem Kitabı bölümünde (Tamsayı alt bölümü), Pascal'da çeşitli tam sayı türlerinin kullanımını gözlemleyin.