Konu: Girdi - Çıktı. Readln, Write (Writeln) ifadeleri. En basit doğrusal programlar. Read ve ReadLn prosedürleri

  • 24.06.2019

Oku (prosedür)

Yazılan dosyalar için dosya bileşenini bir değişkene okur.
- Metin dosyaları için bir veya daha fazla değeri okur
bir veya daha fazla değişkene

Duyuru

Yazılan dosyalar

Prosedür Okuma (F, V1 [, V2, ..., Vn]);

Metin dosyaları

Prosedür Okuma ([Var F: Metin;] V1 [, V2, ..., Vn]);

mod

Windows, Gerçek, Korumalı

Uyarılar

Dize değişkenleri için:

Read, bir sonraki satır sonu işaretçisine kadar (ancak dahil değil) tüm karakterleri okur. eof(F) True olacak. Oku, okuduktan sonra bir sonraki satıra geçmiyor. Elde edilen dize, dize değişkeninin maksimum uzunluğundan daha uzunsa, kesilir. İlk Okumadan sonra, sonraki her Okuma araması satır sonu işaretçisini görecek ve sıfır uzunlukta bir dize döndürecektir.

Birden çok dize değerini okumak için ReadLn'ye birden çok çağrı kullanın.

Seçenek etkinleştirildiğinde Genişletilmiş sözdizimi, Okuma prosedürü okuyabilir boş sonlandırılmış dizeler boş tabanlı karakter dizilerine.

gibi değişkenler için tamsayı veya Gerçek:

Okuma, sayısal bir satırdan önceki boşlukları, sekmeleri veya satır sonu işaretçilerini atlayacaktır. Sayısal dize beklenen formatla eşleşmezse bir G/Ç hatası oluşur, aksi takdirde değişkene elde edilen değer atanır. Sonraki Okuma, sayısal dizeyi sonlandıran bir boşluk, sekme veya satır sonu işaretçisi ile başlayacaktır.

Ayrıca bakınız

Örnek

Crt, Dos kullanır;

var
F: Metin;
Ch: Karakter;

başlamak
(Dosya adını komut satırından alın)
Ata (F, ParamStr (1));
Sıfırla (F);
EOF (F) yapmazken
başlamak
Oku (F, Ch);
(Ch) yazın; (Dosyanın içeriğini ekranda gösteriyoruz)
son;
son.

Okuma talimatı, klavyeden değişkenlerin (ilk veriler) değerlerini girmek için tasarlanmıştır. Genel olarak, talimat şöyle görünür:

oku (değişken !, değişken2, ... değişken

İşte bir okuma ifadesi yazma örnekleri:

Oku); oku (Cena, Kol);

read deyimi yürütüldüğünde, aşağıdakiler gerçekleşir:

1. Program çalışmasını duraklatır ve klavyede gerekli veriler yazılana ve tuşuna basılana kadar bekler. .

2. tuşuna bastıktan sonra girilen değer deyimde adı geçen değişkene atanır.

Örneğin, talimatın yürütülmesi sonucunda

Oku (Tempérât);

ve 21. satırı yazarak Tempérât'ın değeri 21'dir.

Bir okuma ifadesi, birkaç değişkenin değerlerini almanızı sağlar. Bu durumda girilen sayılar bir satıra yazılmalı ve boşluklarla ayrılmalıdır. Örneğin, a, b ve c değişkenlerinin türü gerçek ise, okumanın (a, b, c) yürütülmesinin bir sonucu olarak; ve klavye giriş dizesi:

4.5 23 0.17

değişkenler aşağıdaki değerlere sahip olacaktır: a = 4.5; b = 23, o; c = 0.17.

Satır, read deyiminde belirtilen değişkenlerden daha fazla sayı içeriyorsa, satırın geri kalanı bir sonraki read deyimi tarafından işlenecektir. Örneğin, talimatların yürütülmesinin bir sonucu olarak:

Oku (a, B); (C) oku;

ve klavye giriş dizesi

10 25 18

değişkenler aşağıdaki değerleri alacaktır: a = 10, b = 25. Talimatı okuyun (C); 18 değerine sahip değişkene atayacaktır.

readln komutu read komutundan farklıdır, çünkü klavyeden girilen satırdan bir sonraki sayıyı seçtikten ve readln komutu listesinden son değişkene atadıktan sonra satırın geri kalanı kaybolur ve bir sonraki read veya readln komutu yeni girdi gerektirecektir.

Örneğin, talimatın yürütülmesinin bir sonucu olarak:

Readln (a, B); (C) oku;

ve dizeyi yazarak

10 25 18

değişkenler aşağıdaki değerleri alacaktır: a = 10, b = 25. Bundan sonra program, c değişkenine atamak için yeni bir sayının girilmesini bekleyecektir.

Her read veya readln komutundan önce, kullanıcıya programın kendisinden hangi verileri beklediğini söyleyen bir yazma talimatı gelmelidir. Örneğin, bir satın alma maliyetini hesaplamak için programın bir parçası şöyle görünebilir:

Writeln ("Orijinal verileri girin."); yaz ("Ürün fiyatı:"); readln (Sepa); write ("Partideki miktar:"); readln (Kol); yaz ("İndirim:"); readln (Skidka);

Klavyeden girilen veri tipi, read (readln) deyiminde isimleri belirtilen değişkenlerin tipine uymuyorsa veya dönüştürülemiyorsa, program çöker (okumadan sonraki talimatlar yürütülmez) ve bir mesaj görüntülenir. hata hakkında ekranda.

Birçoğunun ilgileneceğini düşünüyorum)))

Okuma ve readln ifadeleri

Okuma talimatı, klavyeden değişkenlerin (ilk veriler) değerlerini girmek için tasarlanmıştır. Genel olarak, talimat şöyle görünür:

oku (Var1, Var2, ... VarN)

burada değişkenler, program yürütülürken değeri klavyeden girilmesi gereken bir değişkenin adıdır.

İşte bir okuma ifadesi yazma örnekleri:

oku); oku (Cena, Kol);

read deyimi yürütüldüğünde, aşağıdakiler gerçekleşir:

1. Program çalışmasını duraklatır ve klavyede gerekli veriler yazılana ve tuşuna basılana kadar bekler. .

Stavropol ITGen'de 2 Deria bilgisayar laptop tamiri. ... tuşuna bastıktan sonra girilen değer deyimde adı geçen değişkene atanır.

Örneğin, talimatın yürütülmesi sonucunda

oku (Sıcaklık);

ve 21 satırını yazarken, Temperat değişkeninin değeri 21 sayısı olacaktır.

Bir okuma ifadesi, birkaç değişkenin değerlerini almanızı sağlar. Bu durumda girilen sayılar bir satıra yazılmalı ve boşluklarla ayrılmalıdır. Örneğin, a, b ve c değişkenlerinin türü gerçekse, komutun yürütülmesinin bir sonucu olarak (a, b, c); ve klavye giriş dizesi:

4.5 23 0.17

değişkenler aşağıdaki değerlere sahip olacaktır:

a = 4,5; b = 23.0; c = 0.17.

Satır, read deyiminde belirtilen değişkenlerden daha fazla sayı içeriyorsa, satırın geri kalanı bir sonraki read deyimi tarafından işlenecektir. Örneğin, talimatların yürütülmesi sonucunda

(A, B) oku; (C) oku;

ve klavye giriş dizesi

10 25 18

değişkenler aşağıdaki değerleri alacaktır: A = 10, B = 25. Talimatı okuyun (C); 18 değerine sahip değişkene atayacaktır.

readln komutu read komutundan farklıdır, çünkü klavyeden girilen satırdan bir sonraki sayıyı seçtikten ve readin komutu listesinden son değişkene atadıktan sonra satırın geri kalanı kaybolur ve bir sonraki okuma veya readin talimatı yeni giriş gerektirecektir.

Örneğin, talimatın yürütülmesi sonucunda

okuma (A, B); (C) oku;

ve dizeyi yazarak

10 25 18

değişkenler aşağıdaki değerleri alacaktır: A = 10, B = 25. Bundan sonra program, c değişkenine atamak için yeni bir sayının girilmesini bekleyecektir.

Her okuma veya okuma talimatından önce, kullanıcıya programın kendisinden hangi verileri beklediğini söyleyen bir yazma talimatı gelmelidir. Örneğin, bir satın alma maliyetini hesaplamak için programın bir parçası şöyle görünebilir:

writeln ("İlk verileri girin.");

Yaz ("Ürün fiyatı:");

Readln (Сenа);

write ("Partideki miktar:");

Readln (Kol);

yaz ("İndirim:");

readln (Skidka);

Klavyeden girilen veri tipi, okuma (readin) komutunda isimleri belirtilen değişkenlerin tipine uymuyorsa veya dönüştürülemiyorsa, program çöker (okuma sonrası komutlar yürütülmez) ve bir mesaj görüntülenir. hata hakkında ekranda.

Okumak ve ReadLn standart giriş aygıtından bilgileri okuyun. Konsol uygulamalarında bu cihaz, örneğin bir klavye (daha doğrusu klavyeden girilen veriler), grafik uygulamalarında, diskteki bir dosya olabilir.

Yani, bu prosedürler “antipodlardır” - zıt eylemler gerçekleştirirler.

Read ve ReadLn prosedürleri benzer eylemleri gerçekleştirir. Aralarındaki temel fark şudur: ReadLn prosedürü, girişi tamamladıktan sonra bir satır besleme gerçekleştirir (ve dosyalar söz konusu olduğunda, dosyayı satır satır okur). Ve Okuma prosedürü, satır besleme olmadan verileri bir satırda okur.

NOT:

Turbo Pascal'da bunu hatırlamıyorum (belki unutmuşumdur), ancak klavyeden giriş sadece ReadLn prosedürü ile gerçekleştirilebilir ve Read prosedürü bir nedenden dolayı çalışmıyor.

Konsol çıktısı için sözdizimi:

prosedür Oku (Args: Argümanlar);

Dosyaya çıktı için sözdizimi:

prosedür Okumak ( var F: Metin; Argümanlar: Argümanlar);

argümanlar ( Argümanlar) farklı olabilir. Birden fazla değişken kullanılıyorsa, bunlar virgülle ayrılmış olarak listelenir. Örneğin:

Var x, y: tamsayı; z: gerçek; dize: dize; start WriteLn ("Bir boşlukla ayrılmış üç tamsayı girin:"); ReadLn (x, y, z); WriteLn ("Girdiniz:", x, ",", y, ",", z: 0: 2); ReadLn (str); WriteLn (str + str); ReadLn; son.

Daha önce de belirtildiği gibi, konsoldan yazıldığında bu değişkenler farklı tiplerde olabilir. Ancak Write/WriteLn prosedürlerinden farklı olarak kullanımına izin verilmez (ve bu mantıklıdır))).

ÖNEMLİ!
Veri girerken, kullanıcı tarafından girilen değerin bu değerin girildiği değişkenin türünden farklı bir türü olması durumunda çalışma zamanı hatası oluşacağı unutulmamalıdır. Örneğin, yukarıdaki örnekte, kullanıcı ilk sayı olarak gerçek bir değer (3.14 gibi) girerse, x değişkeni bir tamsayı tipine sahip olduğundan program çökecektir.

Bir dosyadan okurken hem yazılan hem de metin dosyalarıyla çalışabilirsiniz.

Eğer F(sözdizimine bakın) yazılan bir dosyaysa, parametre olarak iletilen değişkenler (Args) dosya için belirtilenle aynı türde olmalıdır F... Yazılmamış dosyalara izin verilmez. parametre ise F belirtilmemişse, standart girdiden okunduğu varsayılır.

eğer dosya F tipte Metin, değişkenler veya türünde olmalıdır.

Dosya okunurken okunacak veri yoksa, F değişkenine boş bir değer döndürülür (0 - için, boş dize - dizeler için).

ReadLn prosedürünün kullanılması durumunda, yani verileri satır satır okurken, satırın sonu belirli bir karakter dizisiyle belirtilir (tam olarak işletim sistemine bağlıdır, DOS / Windows için bunlar iki karakterler - # 10 ve # 13).

Satır sonu işaretçisi, okunan satırın parçası değildir ve yoksayılır.

Read / ReadLn prosedürünün yürütülmesi sırasında bir hata oluşursa, bir çalışma zamanı hatası oluşturulur. Bu davranış her zaman kabul edilebilir değildir (örneğin, bir dosyayı okurken). Bu nedenle, bazı durumlarda hata oluşturma devre dışı bırakılır. ile yapabilirsiniz.

NOT:

ReadLn rutini, konsol uygulamasının yürütüldükten sonra otomatik olarak kapanmasını önlemek için çeşitli hata ayıklama ve eğitim programlarında sıklıkla kullanılır. Bunu yapmak için programın sonuna yazmanız yeterlidir (yukarıdaki örnekte olduğu gibi):

Yani, parametresiz prosedürün sadece adı. Bu durumda program ENTER tuşuna basana kadar bekleyecektir. Bu nedenle ENTER tuşuna basılana kadar program sonlandırılmayacaktır ve bu da programın sonucunu görmenizi sağlayacaktır. Tabii ki, işletim sisteminde