Bir ifadenin yürütülmesinin sonucudur. Koşullu operatör? Operatör kullanım kısıtlamaları

Önceki paragrafta Pascal'da bir programın yapısını tanıdık, verilerin nasıl tanımlanacağını öğrendik ve atama operatörüne baktık. Bu bir veri dönüştürme programı yazmak için yeterlidir. Ancak bu dönüşümlerin sonucu bizim tarafımızdan görülmeyecek.

Veri çıktısını almak için rasgele erişim belleği Yazma çıkışı operatörü monitör ekranında kullanılır:

Burada parantez içinde bir çıktı listesi yerleştirilir - değerleri yazdırılan ifadelerin bir listesi. Bunlar değişkenler ve sabitler dahil olmak üzere sayısal, sembolik ve mantıksal ifadeler olabilir.

Kesme işareti içine alınmış rastgele bir karakter kümesi, dize sabiti olarak kabul edilir. Bir dize sabiti, klavyede yazılan herhangi bir karakteri içerebilir.

Örnek. Write ("s = , s) ifadesi şu şekilde yürütülür:

  1. Kesme işareti içine alınmış semboller ekranda görüntülenir: s=
  2. s isimli RAM hücresinde saklanan değişkenin değeri ekranda görüntülenir.

Eğer s değişkeninin değeri 15 ise ve tamsayı tipinde ise ekranda s=15 ifadesi görülecektir.

Eğer s değişkeninin değeri 15 ise fakat reel tipte ise ekranda şu görüntü görünecektir: s=l.5E+01.

Çıkış ifadesi yürütüldüğünde, çıkış listesinin tüm öğeleri hemen birbiri ardına yazdırılır. Böylece yazma (1, 20, 300) operatörü sonucunda ekranda üç ayrı sayısal sabit olarak değil, 120300 sayısı olarak algılayacağımız 120300 sayı dizisi görüntülenecektir. Çıktı verilerini farklı şekillerde algı için daha erişilebilir hale getirebilirsiniz:

Çıkış biçimi görüntülenen değerin ekranda kaç konumu işgal etmesi gerektiğini belirleyen, iki nokta üst üste işaretinden sonra gösterilen bir tamsayıdır. Bir numarada, ekranda kendisine ayrılan konumlardan daha az rakam varsa, boş konumlar, numaranın solundaki boşluklarla tamamlanır. Çıkış formatında iki nokta üst üste işaretinden sonra belirtilen sayı gerekenden azsa, otomatik olarak gereken minimum sayıya artırılacaktır.

Bir gerçek sayının sabit nokta formatında çıktısını almak için, çıktı listesinde her ifadeye ilişkin iki parametre belirtilir:

  1. sayıya tahsis edilen toplam pozisyon sayısı;
  2. sayının kesirli kısmındaki konumların sayısı.

Yeni bir write ifadesi çalıştırıldığında çıktı aynı satırda devam eder. Yeni bir satıra atlamak için writeln operatörünü kullanın. Write ve writeln ifadeleri arasında başka bir fark yoktur.

4.2.2. Pascal dilindeki ilk program

Yukarıda tartışılan operatörleri kullanarak yarıçapı 5,4 cm olan bir dairenin çevresini ve alanını hesaplayan bir program oluşturacağız.

Bu problemdeki ilk veriler yarıçaptır: r - 5,4 cm Programın sonucu, C - çevre ve S - dairenin alanı değerleri olmalıdır. C, S ve r gerçek tipte niceliklerdir.

İlk veriler ve sonuçlar matematik dersinden bilinen ilişkilerle ilişkilidir: C = 2πr, S = πr +. Bu formülleri kullanarak hesaplamaları uygulayan bir program şöyle görünecektir:

Bu program doğrudur ve sorunu çözer. Çalıştırdığınızda aşağıdaki sonucu elde edeceksiniz:

Yine de derlediğimiz programın önemli bir dezavantajı var: Tek bir yarıçap değeri (5,4 cm) için bir dairenin çevresini ve alanını buluyor.

Farklı bir yarıçap değeri için bir dairenin çevresini ve alanını hesaplamak için doğrudan program metninde değişiklik yapmanız, yani atama operatörünü değiştirmeniz gerekecektir. Mevcut bir programda değişiklik yapmak, en azından her zaman uygun değildir (örneğin, program büyük olduğunda ve çok sayıda atama operatörü olduğunda). Aşağıda, program çalışırken, program metnini değiştirmeden başlangıç ​​verilerini girmenizi sağlayan operatörle tanışacaksınız.

4.2.3. Klavye Girişi

Değişken değerleri RAM'e girmek için okuma giriş operatörünü kullanın:

Read ifadesi yürütüldüğünde bilgisayar veri bekleme moduna girer: kullanıcının klavyeden veri girmesi ve Enter tuşuna basması gerekir. Sayısal tür değişkenleri için birden çok değer, boşluk veya virgülle ayrılarak girilebilir. Karakter değişkenleri girilirken boşluklar ve virgüller karakter olarak kabul edilir ve bu nedenle girilemezler.

Kullanıcı tarafından girilen ilk değişken değeri, adı giriş listesinde vb. ilk sırada yer alan hafıza konumuna yerleştirilir. Bu nedenle, giriş değerlerinin türleri (giriş akışı), değişkende belirtilen değişken türlerine karşılık gelmelidir. açıklama bölümü.

Örnek. İzin vermek

var i, j: tamsayı; x: gerçek; a:karakter;

i, j, x değişkenlerine ve 1, 0, 2,5 ve "A" değerlerine atayalım. Bunu yapmak için okuma (i, j, x, a) operatörünü kullanacağız ve giriş akışını aşağıdaki yollardan biriyle düzenleyeceğiz:

Burada sadece çeşitli sınırlayıcılar (boşluk, virgül) kullanmakla kalmadık, aynı zamanda giriş akışını bir, iki ve dört satır olarak da temsil ettik.

Klavyeden veri girmek için readln operatörünü de kullanabilirsiniz; bu, okuma operatöründen yalnızca yürütüldükten sonra imlecin yeni bir satıra geçmesi bakımından farklılık gösterir.

Okuma operatörünü kullanarak veri girişini düzenleyerek n_1 programını geliştirelim. Kullanıcının programın ne için tasarlandığını bilmesi ve bilgisayarın ondan hangi eylemi beklediğini anlaması için karşılık gelen eylemi görüntüleyeceğiz. Metin mesajları writeln operatörünü kullanarak:

Geliştirilmiş programın sonucu:

Artık programımız herhangi bir r değeri için bir dairenin çevresini ve alanını hesaplayabilir. Başka bir deyişle, tek bir sorunu değil, bütün bir sorun sınıfını çözer. Ek olarak program, başlangıç ​​verilerinin girişini ve elde edilen sonuçların çıktısını açık ve rahat bir şekilde düzenler. Bu, kullanıcı dostu bir arayüz sağlar.

En önemli

Değişken değerleri RAM'e girmek için okuma ve okuma giriş operatörleri kullanılır.

RAM'den monitör ekranına veri çıkışı sağlamak için yazma ve yazma çıkış operatörleri kullanılır.

Başlangıç ​​verilerinin girişi ve sonuçların çıkışı açık ve kolay bir şekilde organize edilmelidir; bu, kullanıcı dostu bir arayüz sağlar.

Sorular ve görevler

  1. Program çalışırken summa değişkeninin değerini girmenizi sağlayan bir ifade yazın.
  2. i, y, k tamsayı değişkenlerine sırasıyla 10, 20 ve 30 değerleri atanmalıdır.Giriş akışına karşılık gelen giriş ifadesini yazın:
      a) 20 10 30
      b) 30 20 10
      c) 10 30 20
  3. Bir üçgenin alanını üç kenarına göre hesaplamak için gereken değişkenleri açıklayın ve gerekli girdi verilerini sağlayan bir ifade yazın.
  4. İfadeyi yürütmenin sonucu nedir?
      a) yaz (a)
      b) (1 a ") yaz
      c) (1 a=1, a) yaz
  5. Write (f) ifadesinin çalıştırılmasından sonra ekranda aşağıdaki sayı görüntüleniyorsa f değişkeninin türü nedir?
      a) 125
      b) 1,25E+2
  6. Gerçek bir sayıyı sabit nokta biçiminde nasıl görüntüleyebilirim?
  7. İki sayıyı girip ters sırayla çıkarmak için kullanılan operatörleri yazın.
  8. İşte programın bir parçası:

    oku); oku(b); c:=a+b; yaz(a, b); (c) yaz

    Giriş ve çıkış ifadelerinin sayısını azaltarak bunu basitleştirin.

  9. İşte programın bir parçası:

    a:=10; b:=a+l: a:=b-a; (a, b) yazın

    Bilgisayar ekranında hangi sayılar görüntülenecek?

  10. Bir dikdörtgenin alanını ve çevresini iki kenarına göre hesaplayan bir program yazınız.

Veri çıkışı
RAM'den monitör ekranına veri çıkışı:
yazmak
(<выражение 1> ,< выражение 2> , ...,< выражение N>)
çıktı listesi
İfadeler - sembolik, sayısal, mantıksal,
değişkenler ve sabitler dahil
Örnek:
yaz("s=", s).
S=15 için ekran şunu gösterecektir: s=15.
Tırnak işaretleri içindeki bilgiler ekranda görüntülenir
değişiklik yapmadan

Çıkış organizasyonu seçenekleri
Seçenek
çekilme organizasyonu
Ayırıcı yok
Çıkarım operatörü
yaz(1, 20, 300).
Sonuç
120300
Sınırlayıcılar ekle yaz (1, ’,’ , 20,
– virgül
’, ’, 300)
1, 20, 300
Sınırlayıcı ekle yaz (1, ‘ ‘, 2, ‘ ‘, 3)
– boşluklar
1 20 300

Çıkış biçimi
Çıkış formatı konum sayısını ayarlamanıza olanak tanır
görüntülenen değerin bulunduğu ekranda.
yaz(s:x:y)
x - sayıya tahsis edilen toplam pozisyon sayısı;
y - sayının kesirli kısmındaki konumların sayısı.
Çıkarım operatörü
Yürütme sonucu
Şebeke
write('s=', s:2:0);
s=15
write('s=', s:3:1);
s=15.0
write('s=', s:5:1);
s=
yaz
15.0
- yeni bir hattan çıktı!

İlk program
program n_1;
sabit pi=3,14;
var r, c, s: gerçek;
başlamak
r:=5,4;
c:=2*pi*r;
Programın sonucu:
s:=pi*r*r;
writeln("c="", c:6:4);
writeln("s=", s:6:4)
Turbo Paskal
Sürüm 7.0
son.
c =33,9120
s =91,5624

Klavye Girişi
Değişken değerlerin RAM'e girilmesi:
Okumak
(<имя переменной1>, …, <имя переменной N>)
giriş listesi
Read ifadesinin yürütülmesi:
1) bilgisayar veri bekleme moduna girer:
2) kullanıcı verileri klavyeden girer:
çoklu değişken değerleri
sayısal türler girilebilir
boşluk veya virgülle ayrılmış;
karakter değişkenlerini girerken
Boşluk ve virgül kullanılamaz;
3) kullanıcı Enter tuşuna basar.

Klavye Girişi
!
Giriş değeri türleri eşleşmelidir
açıklama bölümünde belirtilen değişken türleri
değişkenler.
var i, j: tamsayı;x: gerçek;a: karakter;
oku(i, j, x, a);
giriş akışını düzenleme seçenekleri:
1 0 2,5 Bir 1,0 1
2.5, bir 0
2.5
A
Readln ifadesi yürütüldükten sonra imleç şuraya hareket eder:
Yeni hat.

Geliştirilmiş program
program n_1;
sabit pi=3,14;
var r, c, s: gerçek;
başlamak
writeln("Çemberin çevresini ve alanını hesaplayın");
write("r'yi girin>>");
readln(r);
c:=2*pi*r;
Programın sonucu:
s:=pi*r*r;
writeln("c="", c:6:4);
Pascal Sürüm 7.0
writeln("s=", s:6:4) Turbo
Bir dairenin çevresini ve alanını hesaplamak
r >> 8,5 girin
son.
c =53.3800
s =226,8650

En önemli
Değişken değerleri RAM'e girmek için
Okuma ve okuma giriş operatörleri kullanılır.
RAM'deki verileri ekranda görüntülemek için
Monitör yazma ve yazma çıkış operatörlerini kullanır.
Başlangıç ​​verilerinin girişi ve sonuçların çıkışı
açık ve rahat bir şekilde organize edilmeli; Bu garanti eder
kullanıcı arayüzünün kullanıcı dostu olması.

Sorular ve görevler
1) Bir program parçası verildiğinde:
a:=10; b:=a+1: a:=b–a; (a, b) yazın
Bilgisayar ekranında hangi sayılar görüntülenecek?
2) Hesaplama için gerekli değişkenleri açıklayın
Üç kenarı boyunca bir üçgenin alanı ve
girdi sağlayan bir ifade yazın
gerekli başlangıç ​​verileri.
3) İfadeyi yürütmenin sonucu nedir?
a) yaz (a)
b) yaz("a")
c) write("a=", a)
4) Tamsayı değişkenler i, j, k atanmalıdır
sırasıyla değerler 10, 20 ve 30'dur.
Girişe karşılık gelen giriş ifadesini yazın
aktarım:
a) 20 10 30
b) 30 20 10
c) 10,30,20

Şebeke gerçekleştirilecek eylemin tam açıklamasını belirten bir dil öğesidir. Her operatör, bir programlama dilinin tam bir ifadesidir ve veri işlemenin tamamen tamamlanmış bazı aşamalarını tanımlar. Operatörler işlev sözcüklerini, verileri, ifadeleri ve diğer operatörleri içerebilir. İÇİNDE ingilizce dili bu kavram Aynı zamanda “teklif” anlamına da gelen “beyan” kelimesiyle gösterilir.

Herhangi bir programlama dilinde her operatörün belirli bir özelliği vardır. sözdizimi Ve anlambilim. Altında sözdizimi operatör, alfabenin unsurlarını kullanarak kaydını belirleyen bir kurallar sistemi (gramer) olarak anlaşılmaktadır. bu dilinçeşitli sembollerle birlikte örneğin işlev sözcüklerini içerir. Altında anlambilim operatör bunun anlamını anlar, yani. belirli bir operatörün kaydına karşılık gelen eylemler. Örneğin, kayıt ben:= ben + 1 sözdizimsel olarak doğru bir gösterim örneğidir atama operatörü Pascal dilinde, bu durumda semantiği şu şekildedir: i değişkenine karşılık gelen bellek hücresinin değerini çıkarın, onu bir ile ekleyin ve sonucu aynı bellek hücresine yazın.

Çoğu prosedürel programlama dilinde, operatör kümesi hemen hemen aynıdır ve bir atama operatörü, seçim operatörleri, döngü operatörleri, prosedür çağrı operatörü ve atlama operatörlerinden oluşur. Bazen boş (eylem yok) ve bileşik operatörler de ayırt edilir. Birçok operatör belirli algoritmik yapıları temsil etmenin bir yoludur (bkz. Algoritmik tasarımlar” ) bir programlama dilinde. Pascal dili söz dizimini kullanarak operatör gruplarına daha detaylı bakalım.

Atama operatörü

Atama, bir değişkenin hesaplanan ifadenin değerini alması (değişkene karşılık gelen bellek hücresine yerleştirilmesi) sonucu oluşan bir bilgisayar eylemidir. Programlama dillerinde böyle bir eylemi tanımlamak için atama operatörü.

Genel olarak atama operatörü şu şekilde yazılır:

<переменная> <знак присваивания> <выражение>

Örneğin Pascal'da sembol kombinasyonu atama işareti olarak kullanılır: =. Diğer bazı dillerde eşittir işaretidir.

Atama operatörünü çalıştırmanın sonucu, verinin durumundaki bir değişikliktir: dışındaki tüm değişkenler değişken Atama operatörünün sol tarafında yer alan , anlamlarını değiştirmez ancak belirtilen değişken değeri alır ifade, atama operatörünün sağ tarafında görünür. Çoğu durumda türün olması gerekir ifade türle eşleşti değişken. Durum böyle değilse, operatör ya sözdizimsel olarak hatalı kabul edilir ya da ifadenin türü değişkenin türüne dönüştürülür (bkz. " Veri tipleri” ).

Seçim Operatörleri

Bu operatörlere farklı adlar verilir koşullu ifadeler. Koşullu ifadeler, algoritmik dallanma yapısı içeren algoritmaları programlamak için kullanılır.

Programlama dillerinde çeşitli türde koşullu ifadeler vardır. Tam koşullu ifade, tam dallanmanın algoritmik yapısına karşılık gelir:

Bir programlama dilinde karşılık gelen koşullu operatör şu şekildedir:

eğer B Daha sonra S1 başka S2

Eğer ifade B Koşullu ifadenin yürütülmesinin başlangıcında hesaplanan "true" değerine sahipse, ifade yürütülecektir S1, aksi halde - operatör S2. Operatörler S1 Ve S2 bileşik olabilir.

Eksik dallanmanın algoritmik yapısı, şu forma sahip olan tamamlanmamış bir koşullu operatör kullanılarak uygulanır:

eğer B Daha sonra S

Burada B mantıksal bir ifadedir ve S- keyfi operatör. Şebeke S B ifadesi doğruysa yürütülür.

Koşullu bir operatör yalnızca iki seçim dalını ("evet" ve "hayır") uyguluyorsa, o zaman şunu kullanın: değişken operatörü (dava-operatör) çok dallı bir yapıyı programlayabilirsiniz. Varyant operatörü şuna benzer:

E durumu ile ilgili

Gerçekleştirildi bu operatörşöyle: ifadenin anlamı e Operatör kaydında listelenen değerler arasında arama yapıldı V1, V2,…, Vn ve eğer böyle bir değer bulunursa ilgili operatör çalıştırılır. S1, S2,…, Sn.

Farklı programlama dillerinde, listelenen operatörlerin sözdizimi ve hatta anlambilimi farklı olabilir, ancak bu tür yapıların programcıya sağladığı yetenekler yaklaşık olarak aynıdır.

Örnek 1. Makalede " Algoritmik tasarımlar”2 dallanma yapılarını kullanarak genelleştirilmiş ikinci dereceden bir denklemi çözmek için bir algoritma yazma örneği verildi. Pascal'da aynı algoritmayı uygulayan bir programın bir parçası:

eğer bir = 0 Daha sonra

eğer b = 0 Daha sonra

eğer c = 0 ise Daha sonra writeln("x - herhangi biri")

başka writeln("kök yok")

başka writeln(-c/b)

başka başla

D:= b*b - 4*a*c;

eğer D< 0 Daha sonra writeln("kök yok")

başka başla

x1:= -b + sqrt(D);

x2:= -b - sqrt(D);

writeln(x1:0:2;""", x2:0:2)

Döngü ifadeleri

Döngü operatörleri döngüsel algoritmik yapıları uygular; birçok kez tekrarlanan eylemler için kullanılırlar. Birçok programlama dilinde üç tür döngü operatörü vardır: “önkoşullu”, “sonkoşullu”, “parametreli”.

Döngüleri programlamak için gerekli ve yeterli bir algoritmik yapı, “önkoşullu” bir döngüdür, dolayısıyla ana döngü türü olarak adlandırılabilir. Ön koşulu olan döngü operatörü şuna benzer:

B ise Yapmak S

Şebeke S Tekrarlanan yürütme için bir döngünün oluşturulduğu şeye denir döngünün gövdesi. Bir döngü operatörünün yürütülmesi, mantıksal ifadenin değeri elde edilene kadar döngü gövdesinin tekrar tekrar yürütülmesine indirgenir. B doğru (yanlış olana kadar). Aslında benzer döngü ifadeleri, koşullu ifadelerin tekrar tekrar yürütülmesini sağlar eğer B Daha sonra S, koşul doğru iken B.

Örnek 2. Bir doğal sayının rakamlarının toplamını hesaplamak için böyle bir döngü operatörünün kullanımını düşünün. N:

sırasında N>0 başla

S:= S + K mod 10;

N:= N div 10

Sonkoşulu olan bir döngüde, döngünün gövdesi B koşulundan önce gelir. Önkoşulu olan bir döngüden farklı olarak, burada B, döngüyü sonlandırma koşuludur. Pascal'da sonkoşulu döngü operatörü şu şekildedir:

S'yi tekrarla değin B

Döngünün bu organizasyonuyla döngünün gövdesi S en az bir kez yürütülmelidir.

Hemen hemen tüm prosedür dillerinde var parametreli döngü operatörü. Şematik olarak şu şekilde temsil edilebilir:

için< değişken > E1 ile E2 adım E3 Yapmak S

İşte anlamı değişken(döngü parametresi), E3 adımlarında E1 ifadesinin değerinden E2'ye değişir. Bir döngü parametresinin bu tür her değeri için S operatörü yürütülür.Pascal dilinde, bu operatörün açıklamasında adım kavramı yoktur ve bir tamsayı döngü parametresi için adımın kendisi 1'e veya 1'e eşit olabilir. –1. “Parametreli döngü” operatörü, döngüleri belirli sayıda tekrarla programlamak için kullanılır. Yinelemeli döngülerin (tekrarlama sayısı önceden bilinmeyen) programlanması için uygun değildir.

Prosedür çağrısı operatörü

Makalede " Altprogramlar” prosedürler gibi bu tür alt rutinleri ayrıntılı olarak açıklamaktadır. Rutin kitaplıklardan birinde yer alan standart programlama dili rutinleri ve bu bloğun içinde açıklanan kullanıcı rutinleri, operatör kullanılarak çağrılır. prosedür çağrısı:

<имя процедуры>(E1,E2,…,Tr)

Burada E1,E2,…,En temsil eden değişkenler veya ifadelerdir. gerçek parametreler prosedüre erişim. En çok kullanılan standart prosedürler veri giriş ve çıkış prosedürleridir (Pascal'da okuma ve yazma).

Bir prosedürün çağrılması anlamsal olarak, prosedürün gövdesi olarak tanımlanan bloğun, bazı değişkenlerin başlangıç ​​değerlerini (değer parametreleri) aktardıktan veya bazı değişkenlerin adlarını (değişken parametreler) değiştirilen değişkenlerin adlarıyla değiştirdikten sonra yürütülmesine eşdeğerdir. prosedür çağrılırken belirtilen gerçek değişkenler.

Örnek 3. Abc prosedürünü açıklayalım:

prosedür abc(a,b:tamsayı; var c: tamsayı);

Bu prosedürü abc(2,3,x) olarak çağırmak bir eylem bloğuna eşdeğerdir:

Atlama Operatörleri

Bu operatör grubunun en ünlü operatörü koşulsuz atlama operatörüdür. git. Mevcut program bildirimlerinin tümüne veya bir kısmına ekleme yaparsanız Etiketler, daha sonra programda formun bir geçiş operatörünü kullanmak mümkün hale gelir:

git<метка>

Bu durumda etiket, programın yürütülmesine devam edilmesi gereken ifadenin başlangıcına karşılık gelir. Bu operatör, keyfi olarak karmaşık bir yapıya sahip bir programlama dilinde algoritmalar yazmanıza olanak tanır. Ancak çoğu zaman koşulsuz geçişin kullanılması haklı değildir, çünkü kafa karışıklığına, kötülüğe yol açar okunabilir program. Operatörün neredeyse tek anlamlı kullanımı gitörneğin iki boyutlu dizileri işlerken, iç içe geçmiş birkaç döngüden aynı anda çıkıştır.

Örnek 4.İki boyutlu bir a dizisinin 0'a eşit bir öğeye sahip olup olmadığını belirlememiz gerektiğini varsayalım:

için ben:= 1 ile N Yapmak

j için:= 1 ile N Yapmak

eğer a = 0 ise o zaman başla

1: eğer B Daha sonra yaz("o") başka yaz("hayır");

Yapısal programlama kurallarına göre geliştirilen bir program, koşulsuz atlama operatörlerini içermemelidir. Operatörü kullanmadan yukarıdaki program git aşağıdaki gibi yeniden yazılabilir:

değilken B Ve(Ben< N) başla

değilken B Ve(J< N) başla

eğer bir = 0 Daha sonra b:= doğru;

eğer B Daha sonra yaz("o") başka yaz("hayır");

Bu durumda yapılandırılmış program, içerikli programa göre daha az görseldir. git.

Diğer atlama operatörleri programlama dillerinde tanımlanabilir. Örneğin Pascal'da: kırmak(döngünün erken kesilmesi, döngünün bitiminden sonra yürütülmesi gereken bir ifadeye geçiş), devam etmek(mevcut döngü yinelemesinin erken tamamlanması ve bir sonraki döngüye geçiş), çıkış(alt programın erken kesilmesi, ondan çıkış), dur(programın erken kesilmesi, sonuna geçiş). Benzer operatörler C, C++ ve Java dillerinde mevcuttur.

Bileşik operatör

Bileşik ifade, operatör parantezleri içine alınmış bir ifadeler grubudur (Pascal'da - başlamakson; C, C++ - (…)).

Bileşik operatör, dil yapılarının tanımını kolaylaştırmak için programlama dillerine tanıtıldı. Örneğin Pascal'da her bloğun (program, prosedür, fonksiyon) çalıştırılabilir kısmı bir bileşik ifadedir. Tamamen aynı şekilde, herhangi bir döngü operatörünün gövdesi yalnızca bir operatörden, belki de bileşik bir operatörden oluşur. Bileşik operatöre bir alternatif, belirli bir operatörün sonunu belirten bir fonksiyon kelimesi olabilir; örneğin, IF SONU Temel dilde.

“Programlama Dili Operatörleri” konusu genellikle yalnızca belirli bir programlama dili bağlamında incelenir. Bunu göz önünde bulundururken, temel algoritmik yapılar ile operatörler arasındaki bağlantıyı göstermek önemlidir: algoritmik yapılar, karşılık gelen operatörler kullanılarak bir programlama dilinde yazılır. Bir anlamda istisna sıralı tasarımdır; eylemlerin doğrusal sırasını belirler. Kesinlikle doğrusal bir programdaki eylemler yalnızca atama ifadeleri ve prosedür çağrı ifadeleriyle uygulanır.

Programlamayı öğrenmenin ilk aşamasında okul çocukları birçok sorunla karşılaşır. Üstesinden gelmeleri gereken ilk psikolojik engel, atama operatörünü öğrenmektir. Öğrencilerinizle birlikte çözmeniz gereken ana görevlerden biri, iki değişkenin değerlerini değiştirmektir. Okul çocuklarından, örneğin bir masa gibi iki çekmecenin içeriğinin nasıl değiştirileceği sorununu zihinsel olarak çözmelerini isteyebilirsiniz. Genellikle tartışmanın bu aşamasında öğrenciler sorunu çözmek için üçüncü bir kutuya (değişken) ihtiyaç duyulduğunun farkına varırlar. Ancak bu algoritmayı yazarken, genellikle belirli bir değişkenin atama operatörünün hangi kısmında (sol veya sağ) görünmesi gerektiği konusunda kafa karışıklığı yaşarlar.

Aritmetik ve mantıksal ifadelerin yazımındaki hatalar, ifadede kullanılan işlemlerin önceliğinin bilinmemesinden kaynaklanmaktadır. Aynı zamanda işlemler sadece aritmetik değil, aynı zamanda karşılaştırma işlemleri ve mantıksal bağlaçlar ve C dilinde okul çocukları için çok alışılmadık olan atama işlemi anlamına da gelir. Durum, farklı programlama dillerinde aynı işlemlerin farklı göreceli önceliklere sahip olması nedeniyle karmaşıklaşmaktadır. Ayrıca değişken türleri ile atama operatörünün sol ve sağ taraflarındaki ifade arasındaki yazışmalara da dikkat etmelisiniz (bkz. “ Veri tipleri”).

Seçim operatörlerinde uzmanlaşırken, öğrencilerin hem koşullu ifadelerin bir kombinasyonunu hem de bir seçim operatörünü kullanarak çok dallı bir yapı içeren bir algoritma programlamasını sağlamak yararlı olacaktır.

Örnek. Bir tamsayı değişkenine N Kişinin yaşını yıl cinsinden girin. “İfadesini yazın K yaşındayım"kelimesini değiştirerek yıllar Açık yıl veya Yılın sayıya bağlı olarak k. İşte bu soruna iki çözüm:

eğer(k mod 100) içinde

Daha sonra writeln("Ben `,k,' yaşındayım")

dava k mod 10 ile ilgili

0,5..9:writeln("Ben `,k,' yaşındayım");

1:writeln("Ben `,k,' yaşındayım");

2..4:writeln("Ben `,k,' yaşındayım");

var k, n: tamsayı;

readln(k); n:= k mod 10;

eğer(k mod 100) içinde

Daha sonra writeln("Ben `,k,' yaşındayım") başka

eğer n=1 Daha sonra writeln("Ben `,k,' yaşındayım")

eğer(n >=) Ve(N<= 4)

Daha sonra writeln("Ben `,k,' yaşındayım")

başka writeln("Ben `,k,' yaşındayım")

Döngü operatörlerini değerlendirirken, aynı görevi üç döngü operatörü kullanarak üç farklı şekilde programlamayı önermek faydalıdır ve tam tersi, problemin koşullarına bağlı olarak, belirli bir durumda hangi döngü operatörünün en uygun olduğunu belirlemeyi öğrenin.

Prosedür çağrısı operatörü ilk bakışta basittir. Burada parametreleri prosedürlere ve işlevlere aktarma kurallarını, değişken parametreler ile değer parametreleri arasındaki farkı açıklamak önemlidir (ikinci durumda, yalnızca değişken adını değil, aynı zamanda bir sabiti veya hatta karşılık gelen bir ifadeyi de iletebiliriz). tip). Biçimsel ve gerçek parametreler tür olarak karşılık gelmelidir, ancak ad olarak değil, bu da öğrenciler için açık olmaktan uzaktır.

Koşullu ve özellikle bileşik ifadeleri incelemek, öğrencilerle program yazma stili hakkında konuşmak için iyi bir fırsattır. Pascal'da yapılandırılmış programlar yazmanın birkaç yaygın yolu vardır, ancak bunların hepsi iç içe geçmiş yapılara uyum sağlamak için girinti içerir. Programları ve yorumları kaydetmek için önemlidir.

Program kodu Şekil 2'de gösterilmektedir. 4.3-9.

Option Strict On Option Explicit On Imports System.Math Public Class Form1 "Bir TextBox'ta bir noktanın koordinatlarını girme işlevi Function vvod(ByVal T As TextBox) As Single Return CSng(Val(T.Text)) End Function "Procedure for sonucun bir TextBox'ta çıktılanması Sub vivod (ByVal Z As Single, ByVal T As TextBox) T.Text = CStr(Z) End Sub "İki noktanın koordinatlarından bir parçanın uzunluğunu hesaplama işlevi Public Function Segment Uzunluğu(ByVal) x1 As Single, _ ByVal y1 As Single, ByVal x2 As Single, _ ByVal y2 As Single) As Single Return CSng(Sqrt((x2 - x1) ^ 2 + (y2 - y1) ^ 2)) End Function "Procedure for bir üçgenin çevresi ve alanının hesaplanması Sub PS(ByVal x1 As Single, ByVal y1 As Single, _ ByVal x2 As Single, ByVal y2 As Single, _ ByVal x3 As Single, ByVal y3 As Single, _ ByRef P As Single , ByRef S As Single) Dim A, B, C, Pp As Single A = Segment Uzunluğu(x1 , y1, x2, y2)"Negatifin uzunluğunu hesaplamak için fonksiyonun çağrılması. B = Segmentin Uzunluğu (x2, y2, x3, y3) C = Doğru Parçasının Uzunluğu (x3, y3, x1, y1) P = (A + B + C) : Pp = P / 2 S = CSng(Sqrt(Pp * (Pp - A) * (Pp - B) * (Pp - C))) End Sub "Düğmedeki tıklama olayını işleme prosedürü Button1 Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim x1 As Single, x2 As Single, x3 As Single Dim y1 As Single, y2 As Single, y3 As Single Dim As Single, Plo As Single x1 = vvod(TextBox1) : x2 = vvod(TextBox2) : x3 = vvod(TextBox3) ) y1 = vvod(TextBox6) : y2 = vvod(TextBox7) : y3 = vvod(TextBox8) PS(x1, y1, x2, y2, x3, y3, Per, Plo) vivod(Plo, TextBox4) : vivod(Plo, TextBox5) End Sub Private Sub Button2_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Button2'yi İşler2.Click End End Sub End Class

Uygulamanın çalıştırılması ve sonuçların alınması

Sonuç Şekil 2'de gösterilmektedir. 4.3-10.

Sonucun doğruluğunun kanıtı

bir=
= 2,82843 B =
= 2

C = = 2 P = A + B + C = 6,828427; Рр = Р/2 = 3,414213 S= = 2


Konuyla ilgili güvenlik soruları

“VB programlarının, modüllerinin ve prosedürlerinin yapısı.

Doğrusal yapı algoritmaları için programlama araçları"

1. Matematiksel model nedir?

2. Bilgisayardaki sorunları çözmenin ana aşamaları nelerdir?

3. Bilgisayar problem çözmenin hangi aşamaları bilgisayarın katılımı olmadan gerçekleştirilir?

4. Bir nesnenin veya olgunun matematiksel modeline ne denir?

5. Program geliştirme sürecindeki ardışık adımlar nelerdir?

6. Algoritma nedir?

7. Bir algoritma hangi temel özelliklere sahip olmalıdır?

8. Algoritmaları tanımlamanın hangi yolları vardır?

9. Algoritma diyagramlarında genellikle hangi grafik sembolleri gösterilir?

10. Tercüman nasıl çalışır?

11. Derleyici nasıl çalışır?

12. Hangi algoritmaya doğrusal denir?

13. Hangi algoritmaya döngüsel denir?

14. Hangi algoritmaya dallanma denir?

15. İşlevlerin ve prosedürlerin sonuçlarını iletmek arasındaki fark nedir?

16. Makul bir sonuç elde edilmesi programın doğru olduğunu kanıtlar mı?

17. Programı kontrol etmezseniz (görüntülemez, kaydırmazsanız) hangi hatalar tespit edilmeden kalabilir?

18. Bir programı test etmenin hata ayıklamaktan farkı nedir?

19. Bir programın doğruluğunu test yoluyla kanıtlamak mümkün mü?

20. Referans test sonuçları programın hangi aşamasında hesaplanır?

21. Test sürecinin ana aşamalarını listeleyin.

22. Sözdizimi hataları ile anlamsal hatalar arasındaki fark nedir?

23. Makinenin sözdizimi hata mesajlarının eksikliği neyi gösteriyor?

24. Çevirmenin tespit edemediği hatalar nelerdir?

25. Program nedir?

26. Programdaki hataların aranması ve giderilmesi hangi aşamada gerçekleşiyor?

27. Programlama sistemi nedir?

28. Prosedür nedir?

29. Prosedürleri olan bir programın faydaları nelerdir?

30. VB'de hangi prosedürel programlama araçları mevcuttur?

31. Bireysel program prosedürleri arasında veri alışverişi nasıl yapılıyor?

32. Gerçek ve resmi parametreler nelerdir?

33. Parametre olarak nasıl geçilir: bir sabit, bir değişken, bir ifade?

34. Global değişkenler nasıl kullanılır?

35. Yerel değişkenler nasıl kullanılır?

36. Biçimsel parametreler nelerdir?

37. Gerçek parametreler nelerdir?

38. Bir prosedür çağrıldığında ne olur?

39. Parametreler bir prosedüre nasıl aktarılabilir?

40. Hangi parametreler değere göre iletilir?

41. Adrese hangi parametreler aktarılıyor?

42. Prosedürel programlama araçları nelerdir?

43. Bir işlevi yürütmenin sonucu nedir?

44. Bireysel değişkenler bir fonksiyon içinde yerel olacak şekilde nasıl bildirilmelidir?

45. Bir fonksiyondan erken çıkmak için hangi ifade kullanılır?

46. İşlevleri ve prosedürleri çağırırken ne kontrol edilir?

47. Değişken bir parametreyi değere göre iletmek için resmi parametreler nasıl bildirilmelidir?

48. Değişken bir parametrenin bir adrese iletilmesi için resmi parametreler nasıl bildirilmelidir?

49. Çağıran programdan bir işlev prosedürü nasıl çağrılır?

50. İşlemin sonucu ne olabilir?

51. Bir prosedürden erken çıkmak için hangi ifade kullanılır?

52. İşlev ve prosedürlerin açıklamaları nerede bulunabilir?

53. Public operatörü kullanılarak bildirilen bir değişken nerede kullanılabilir?

54. Özel operatör nerede bulunabilir?

55. Yorum nedir ve yazma kuralları nelerdir?

56. Programın başlangıcındaki değişkenlerin değerleri nelerdir?

57. Prosedürler ve işlevler neden açıklanıyor (tanımlanıyor)?

58. Prosedürler nasıl adlandırılır?

59. Fonksiyonlar nasıl çağrılır?


İlgili bilgi.





Tepe