10 BILGISAYAR

bölüm 4


TEMEL GİRİŞ-ÇIKIŞ KOMUTLARI
    Giriş/çıkış deyimleri bilgisayarın ana belleği ile çevre aygıtlar arasında bilgi transferi yaparlar. Herhangi bir çevre aygıtından bir verinin belleğe okutulması veya ana bellek üzerindeki bir verinin çevre aygıtlara gönderilmesi giriş/çıkış deyimleri ile gerçekleştirilir. Genellikle giriş çıkış deyimi olarak aşağıda tanımlanan deyimler kullanılmaktadır.

A. Write-Writeln
     Pascal programlama dilinde ekrana programın işleyişinde yazdırılmak istenilen değişkenler, sabitler, işlemler ve sonuçlar WRITE ve WRITELN ile komutları yapılır. Bu komutların genel kullanım yapısı şu şekildedir;

Write(Sabit, değişken ya da ifade);
Writeln(Sabit, değişken ya da ifade);

     Writeln komutu kullanıldığı zaman parantez içerisinde verilen ifade ekrana basıldıktan sonra imleç bir alt satıra iner ve diğer ifadeler buradan itibaren yazılmaya devam eder. Write komutu kullanıldığında ise imleç parantez içerisinde verilen ifade yazıldıktan sonra yazılan ifadenin hemen sonunda bekler ve diğer ifadeler buradan itibaren yazılmaya devam eder.  Yani Write ile yazdırıldıktan sonra kursör aynı satırda bekleyecektir, Writeln ile yazdırılması durumunda ise kursör bir sonraki satıra geçecektir.

Write ile Writeln komutları arasındaki fark
Write komutunda görüldüğü gibi Merhaba yazısından sonra Herkese ifadesi hemen boşluk bırakılmadan yazılmıştır.	Writeln komutunda görüldüğü gibi Merhaba yazısından sonra bir satır atlanarak Herkese ifadesi yazılmıştır.

 
	
 

 
	
 

   Şayet Write ve Writeln komutları ile bir string ifade ekrana basılmak isteniyorsa tek tırnak (') işaretleri arasında parantezler içerisine yazılmalıdır. 

		Write (‘String ifade’);
		Writeln(‘String ifade’);





Şayet Write ve Writeln komutları ile bir sayısal ifade ekrana basılmak isteniyorsa parantezler arasında direk olarak sayısal ifade yazılır. Sayısal ifade integer, longint, shortint, real, byte, word tipi bir ifade olabilir.

		Write (Sayısal ifade);
	


Writeln (‘159’);                                              

Write (‘18’);



Writeln (159);
Write (‘18’);	

    
 Bir sabit veya değişken ekrana basılmak isteniyorsa; parantezler içerisine sabit veya değişkenin isminin yazılması yeterlidir.  Aşağıdaki şekilde 1 numaralı kısımlarda değişkenlerin ekrana nasıl yazdırılacağı gösterilirken, 2 numaralı kısımda sabitlerin nasıl yazdırıldığı gösterilmiştir.

   Eğer, hem bir string ifade hem de bir değişken veya sabiti beraber bir Write ya da Writeln komutu içinde kullanarak ekrana basmak istiyorsanız; değişken veya sabitten sonra veya önce virgül kullanmalısınız. Burada dikkat edilmesi gereken husus şudur: Birden fazla sabit veya değişkeni aynı anda ekrana basmak istiyorsanız aralarına virgül koyarak yazmalısınız.

Writeln (değişkenler, sabitler,’String ifade’);

String ifadeleri formatlamak
Ekrana yazdırılacak olan stringlerin yazım biçimini düzenlemek için Writeln komutu ile yazdırırken formatlayabiliriz.  Bu şekilde bir string kendisine ayrılan alan içerisinde sağa yanaşık olarak yazdırılır. Eğer ayrılan alan stringini uzunluğundan küçük ise alan kendiliğinden genişiler. Yandaki örnek şekli incelersek;

Sabit tanımlama bloğunda yazi isimli sabite merhaba değeri atanmıştır.  Merhaba ifadesi 7 karakterlik uzunluğa sahiptir. 

Writeln (yazi:20); komutunda soldan 13 tane boşluk bırakacak şekilde merhaba yazısı ekranda sağa doğru yanaşık olarak basılmıştır. Burada neden 20 tane boşluk değil de 13 tane boşluk sayısı sorusu aklınıza gelebilir. Bunun nedeni ise, burada merhaba ifadesi soldan itibaren 20 tane boşluk bırakılan alan içinde en sağ tarafına sığacak şekilde yerleştirilir. 
                               	Soldan 20 tane boşluk
	
													m	e	r	h	a	b	a
	13 tane boşluk

 Writeln (yazi:5); komutu ile soldan 5 boşluk bırakılır ama Merhaba ifadesi 7 karakterlik olduğu için soldan itibaren bırakılan 5 tane boşluğun içine merhaba ifadesi sığmaz. Bundan dolayı soldan itibaren hiç boşluk olmaz. Çünkü soldan itibaren bırakılan 5 tane boşluğun içine en sağdan itibaren 7 karakterlik merhaba ifadesi tamamen yazılır ve hatta sığmaz.

Writeln (‘selam’:10); komutu ile selam ifadesi 5 karakterliktir. Soldan itibaren 10 tane boşluk bırakılan alan içinde en sağ tarafına sığacak şekilde yerleştirilir. Böylece en baştan 5 tane boşluk kalır.

İnteger sayıların formatlanması
Write ve Writeln komutları ile integer tipi sayılar çıkış formatları tanımlanarak sayıların belirli bir alanda sağa dayalı olarak görüntüleyebiliriz. String ifadelerin yazdırılmasına benzer.




















Real sayıların formatlanması
Aşağıdaki örnekte görüldüğü gibi Sabit tanımlama bloğunda pi sayısı tanımlanmış ve değer atanmıştır. Burada pi sayısının değeri real sayı tipindedir. 

1.ifadede formatlanmadan yazılan bir real sayının ekrana yazdırılması gözükmektedir.
4.ifadede, 2 sayısı noktada dâhil olmak üzere ekranda görüntülenecek toplam basamak sayısını ifade eder ve 5 sayısı ise noktadan sonra gösterilecek basamak sayısını ifade eder. Ama burada dikkat ederseniz 2 basamak ayrılmasına rağmen ekranda 7 karakterlik alan ayrılmıştır. Çünkü biz noktadan sonra 5 basamağı görmek istediğimiz belirtmişiz. Bu durumda ilk başta belirttiğimiz basamak sayısı dikkate alınmaz.
 5.ifadede, 5 sayısı noktada dâhil olmak üzere ekranda görüntülenecek toplam basamak sayısını ifade eder ve 2 sayısı ise noktadan sonra gösterilecek basamak sayısını ifade eder. Burada noktadan sonra görüntülenecek basamak sayısı ise 2 olduğu için nokta dâhil ekranda asıl noktada dâhil 4 karakterlik alan kullanılır. Ve sayımız soldan 1 boşluk olacak şekilde yazılır. 



6.ifadede, 9 sayısı noktada dâhil olmak üzere ekranda görüntülenecek toplam basamak sayısını ifade eder ve 5 sayısı ise noktadan sonra gösterilecek basamak sayısını ifade eder. Burada pi sayısı yuvarlanarak 3.14286 değerini almıştır. Burada noktadan sonra görüntülenecek basamak sayısı ise 5 olduğu için nokta dâhil ekranda asıl noktada dâhil 7 karakterlik alan kullanılır. Ve sayımız soldan 2 boşluk olacak şekilde yazılır.

















Real sayılar için ekranda görüntülenecek hane sayısı noktada dâhil en fazla 12 basamaktır. Yandaki örnekte görüldüğü gibi X ifadesine atanan sayı noktada dâhil 12 karakter olup ekrandaki çıktısı ise aynen yazılmıştır. Yine Y ifadesi ise nokta dâhil 12 karakterden fazla olup 15 karakter (basamak) uzunluğunda. O zaman ilk 12 karakterlik kısım göz önüne alınır ve Y ifadesinin ekrandaki çıktısı yuvarlanarak 12 basamak halinde verilmiştir. Z ifadesi ise noktada dâhil 7 karakterliktir.  O zaman Z ifadesinin ekrandaki çıktısında 7. karakterden sonra 5 tane sıfır gelir. Çünkü real sayılar 12 basamaklıdır. Ama daha uzun basamaklı sayılar yazdırmak istersek sayılarımız 19-20 hanelik olan extended  tipi olarak tanımlayabiliriz. 
Ekrana yazdırılan real sonunda E+00, E+03 şeklinde ifadeler olduğunu görmüşünüzdür. Burada yandaki şekilde görüldüğü gibi 1.9658789654E+03 ifadesindeki E+03 ifadesi  1003’dür. Yani bu ifade E+85 olsaydı o zaman E+85 =1085 olur. Dolayısıyla bu ifade tümüyle ele alınırsa 1.9658789654E+03  =1.9658789654* 1003=1965.8789654 olur.






Örnek:

Yandaki şekilde çıkarma, çarpma ve toplama işlemlerinin yapıldığı bir program örneği vardır. Burada sayi, sayi1, sayi2, carp, topla ifadeleri değişken olarak tanımlanırken, a ve b ifadelerine sabit bir değer atanmıştır.  

Burada sayısal değişkenlerin ve sabitlerin çeşitli şekillerde işlemlere nasıl sokulduğu ve sonuçlarının nasıl ekrana yazdırıldığının örneği verilmiştir.

Aşağıdaki örnekte ise bir sayi değişkenin sürekli değer değiştirmesi gözükmektedir. Burada sayi değişkenin ilk değeri sayi1 ve sayi değerinin toplamı olan 35 değeri iken, daha sonra sayi1 ve sayi2 değerinin  çarpımı olan 300 değerini almıştır.  Bu örnektede görüldüğü gibi değişkenlerin değeri sürekli program içinde değişir ve kendilerine atanan en son işlemin değerini saklarlar. 
Yandaki şekilde string ifadelerin kullanımı hakkında örnekte yazımları görmektesiniz. Burada + işaretinin işelvi string ifadeleri birleştirmektir. 






B. Read-Readln
   İnteractive programlarda program içerisinde kullanılacak olan bilgiler kullanıcı tarafından klavye ile girilir. Pascal programlama dilinde Read ve Readln komutları ile klavyeden bilgi girişi yapabiliriz.
	
Read (değişken ya da değişken listesi);
Readln (değişken ya da değişken listesi);

   Değişken listesi içerisinde bulunan değişkenler char, string veya sayısal tipler olmalıdır. Diğer standart tip değişkenler özel veri tip değişkenleri bu listede yer almaz. Kullanıcı değişken listesindeki her bir değişken için bir veri girmelidir. Değişken isimleri arasında mutlaka virgül olmalıdır. Klavyeden girilecek verilerin sırası değişken listesi içindeki sıraya göre girilmelidir. Aksi durumda veriler yanlış değişken içerisine girilebilir.

Read (Değişken1, değişken2, değişken3,...,değişkenN);
Readln (Değişken1, değişken2, değişken3,...,değişkenN);

Read ve Readln komutları ile klavyeden tek bir bilgi girebileceğiniz gibi birden fazla bilgide girebilirsiniz. 

Read komutu ile Readln komutu arasındaki fark Read, okuma işlemi tamamlandıktan sonra aynı satırda kalınmasını, Readln ise yeni bir satıra gelinmesini sağlar. 

  Program Ornek;
    Var
         Kelime: string;
         Sayi:integer;

      Begin
           Writeln (‘Sayi giriniz=’);
              Read (‘sayi’);
           Writeln (‘kelime Giriniz=’);
              Readln(‘Kelime’);
           Readln;    
           Writeln (‘Girmiş olduğunuz kelime ve sayı= ’, kelime, ‘ ve ’sayi, ‘dir.’);
           Read;
       End. 
C.READ (KBD,değişken) Komutu:
Klavyeden bir tuşa bastığımızda bu tuşun ürettiği karakter komut içinde kullanılan değişkene aktarılır. Bu komut turbo Pascal programının 3. versiyonunda olan ve daha sonraki versiyonlarda olmadığı için TURBO3.TPU adlı unit’i program içinde unit tanımlama bloğunda tanımlanmalıdır. Burada tuşun atandığı değişkenimizin veri tipi ise Char olmalıdır.
Program ornek;
Uses Crt, Turbo3;
Var  
   tus:char;
Begin
    Writeln (‘Bir tuşa basınız…’);
    Read (KBD,tus);
    Writeln (‘Bastığınız tuş: ’,tus);
End.	Programın Çıktısı

 

D. PROGRAMA AÇIKLAMA SATIRLARI EKLEMEK  
Program içinde ve programın belli yerlerinde kod haricinde, kendi dilimizde cümleler halinde açıklayıcı bilgiler bulunmaktadır. Küçük programları programcılar açıklama satırları olmadan çözebilir. Ama büyük programlarda hangi satırın ne işe yaradığı unutulabilir ve karıştırabiliriz. Satırları tek tek tarayıp ne işe yaradıklarını çözmek yerine makul açıklama bilgileri ile programcıya yardım edebiliriz. 

Açıklama satırlarının kullanım amaçlarını genel olarak şöyle sıralayabiliriz:
•	Programın yazarı hakkında bilgi vermek
•	İlk oluşturma tarihi ve güncelleme tarihi bilgisini vermek
•	Programın amacının ne olduğu bilgisini vermek
•	Problemi nasıl çözdüğü bilgisini vermek
•	Programa giren, kaydolan ve çıkan bilgilerini vermek
•	Programdaki hatalar hakkında bilgi vermek
•	O anda işe yaramayacağı düşünülen satırı iptal etmek
•	Gizlenmiş böcekleri bulmak için kodların belli yerlerini iptal etmek

Açıklama satırları derlenen programın boyutlarını artırmaz. Derleyici açıklama satırlarını göz ardı eder. Yine de açıklama satırları fazla uzatılamamalıdır. 

Pascal programlama dilinde bir programa açıklama satırları {} ve (**) ifadeleri arasına yapılır. Aşağıda açıklama satırlarının genele kullanım şekli verilmiştir. 
{Açıklamaların yapıldığı alan }
(* Açıklamaların yapıldığı alan*)

Aşağıdaki örnekte program içinde açıklama satırlarının kullanımı verilmiştir. Program içinde açıklama satırlarının rengi gri renktir. 













E. CLRSCR prosedürü:
Ekranı temizler ve imleci 1. satır ve 1. sütuna getirir. Fakat bu fonksiyonu kullanmak için Unit tanımlama bloğunda Crt unitesini kullanmalıyız. 

Program ekrani_sil;
Uses Crt;
Begin
    Clrscr;
    Writeln (‘Merhaba’);
    Clrscr;
   Writeln (‘Herkese’); 
End.	
Bu program çalıştırdığımızda ilk önce Clrscr; komutu ekranı temizler. Daha sonra ekrana Merhaba yazısı yazdırılır. Fakat daha sonra yine clrscr; komutu ekranı yine temizler ve imleci 1. satır 1. sütuna getirir. Daha sonra imlecin bulunduğu konumdan itibaren ekranda sadece herkese yazısı yazılır. Clrscr; komutunu bütün programların başında kullanmamız daha iyi olur. Yine dikkat ederseniz clrscr; komutu Uses crt; ifadesi ile beraber kullanılmıştır. Eğer Uses crt; ifadesini kullanmadan clrscr; prosedürünü kullanırsanız ‘Unknown identifier’ hata mesajı ile karşılaşırsınız. 
Programın çıktısı
 	

F.DIV ve MOD ARİTMETİK İŞLEÇLERİNİN PROGRAM İÇİNDE KULLANIMI
DIV operatörü iki tam sayının bölümünün tamsayı kısmını sonuç olarak bize verir. Kullanım şekli ise 
                          A DIV B;
A burada bölünen sayı iken, B ise bölen sayıyı temsil etmektedir.

Örnek:
24 div 4;  işleminin sonucunda bölümün tam sayı kısmı 0 olduğu için sonuç 0 olur. 
25 div 2; işleminin sonucunda bölümün tam sayı kısmı 12 olduğu için sonuç 12 olur.
3 div -25; işleminin sonucunda bölümün tam sayı kısmı 0 olduğu için sonuç 0 olur. 
15 div -5; işleminin sonucunda bölümün tam sayı kısmı -5 olduğu için sonuç -5 olur.

Mod operatörü iki tam sayının bölümünü yaptıktan sonra kalan kısmı sonuç olarak bize verir. Kullanım şekli ise;
                                   A MOD B;
A burada bölünen sayı iken, B ise bölen sayıyı temsil etmektedir.

Örnek:
3 mod 7; işleminin sonucunda kalan olan 3 sayısı sonuç olarak verilir.
8 mod 2; işleminin sonucunda kalan olan 0 sayısı sonuç olarak verilir.
-15 mod 8; işleminin sonucunda kalan olarak -7 sayısı sonuç olarak verilir.
6 mod 4; işleminin sonucunda kalan olarak 2 sayısı sonuç olarak verilir.

Örnek: Aşağıdaki örnekte Div ve Mod işleçlerinin program içinde kullanımlarına örnek verilmiştir.
Program Ornek;
Uses crt;
Var
   X:integer;
Begin
    Clrscr;
    X:=7 div 2;
    Writeln (x);
    Writeln (14 mod 3);
    X:=-15 div 5;
    Writeln (x);
    Writeln (-15 mod 6);
End.	Programın Çıktısı
 



 G.PRITERDAN (YAZICIDAN) ÇIKIŞ ALMAK:
Programın sonucunun çıktılarını yazıcıdan almak için kullanılır. Bu şekilde programınızın sonucunu ekran yerine yazıcı üzerinde görebilirsiniz. Ancak bu özelliği kullanmak için Unit tanımlama bloğunda Printer unitini kullanmalıyız. Printerdan çıkış lamak için kullanılan komutun dizilimi ise;
     Write/Writeln (Lst, sabit veya değişken listesi);
                                    Write/Writeln (Lst);
Write (Lst,#15) deyimi yazıcıya yazılan harfleri küçültür, Write (Lst,#14) deyimi yazıcıya yazdırılan harfleri büyültür.

Örnek: Aşağıdaki örnekte yazıcıdan çıkış alma ile ilgili örnek bir uygulama verilmiştir.        
                           
Program kare_bul;
Uses printer;
Var 
   Sayi, sayi1:integer;
Begin
    Writeln (‘karesi alınacak sayıyı giriniz: ’);
    Readln (sayi);
    sayi1:=sayi*sayi;
    Writeln (Lst,#14, ‘Sonuç= ’, sayi1);
End.	Yandaki örnekte verilen programda Writeln (Lst,#14, ‘Sonuc= ’, sayi1);
İfadesinde sonuç yazısı büyük harflerle yazdırılır. Yine program içinde Uses printer; komutunun kullanıldığına dikkat ediniz. Çünkü Write (Lst); komutunu kullanmak için printer unitine gerek duyulur.
Yazıcıdan çıktı alırken real, integer gibi ifadeleri formatlayarak çıktısını alabiliriz. Örneğin;
Writeln (Lst,’Bölme işleminin sonucu= ‘, bol:4:7);

ÖRNEK UYGULAMALAR
UYGULAMA 1: Bir işçinin aylık maaşını hesaplayan programı yazınız.
Girdiler: İşçinin adı, soyadı, Saat ücreti, Aylık çalışma saati         Akış şeması:
Çıktılar: İşçinin adı, Soyadı ve Maaşı
İşlemler: Maaş=Aylık çalışma saati X saat ücreti
Algoritma:
A0:Başla
A1:Oku işçinin adı soyadı?
A2:Oku İşçinin saat ücreti?
A3:Oku İşçinin aylık çalışma saati?
A4:Maaş=İşçinin saat ücreti x aylık çalışma saati
A5:Ekrana Yaz İşçinin adı soyadı
A6:Ekrana Yaz İşçinin Maaşı
A7:Dur  
Programın kodu:
Program maas;
Uses crt;
Var    
  ad:string; 
  maas,saatucret,aylıksaat:integer; 
Begin
    Clrscr;
    Writeln (‘İşçinin Adı soyadını Giriniz?’);
     Readln (ad);
    Writeln (‘İşçinin Saat ücretini giriniz?’);
    Readln  (Saatucret);
    Writeln (‘İşçinin aylık çalışma saatini giriniz?’);
    Readln (aylıksaat);
    maas:=saatucret*aylıksaat;
    Writeln (‘İşçinin adı soyadı=’,ad);
  Writeln (‘İşçinin maaşı=’,maas);
End.
UYGULAMA 2: Klavyeden girilen iki tam sayıyı çarpan, bölen, Çıkaran, toplayan, Bölme işleminde kalanını ve bölümün tam sayı kısmını veren programı yazınız. (Sonuç temiz ekrana yazılsın).

Girdiler: A sayısı ve B sayısı

Çıktılar:  sayıların toplamı, çarpımı, A sayısının B ile bölümünün sonucu, bölmeden kalan ve bölümün tam sayı kısmı ve A sayısı ile B sayısını çıkarma sonucu

                                                                    Akış şeması:



Algoritma:                                                      
A0:Başla
A1:Oku A sayısını?
A2:Oku B sayısını?
A3:Toplam=A+B
A4:Çıkarma=A-B
A5:Çarpma=A x B 
A6:Bölme = A/B
A7:Kalan=A/B işleminde kalan sayı
A8:Tam=A/B işleminde bölümün tamsayı kısmı
A9:Ekrana Yaz Toplam, Çıkarma, Çarpma, Bölme, Kalan, Tam  
A10:Dur






Programın kodu:

Program matematik;
Uses Crt;
Var    
  A,B,Toplam,Cıkarma,Carpma,Kalan,Tam:integer; 
  Bolme:real;
Begin
    Clrscr;
    Writeln (‘Adı sayısını Giriniz?’);
    Readln (A);
    Writeln (‘B sayısını giriniz?’);
    Readln  (B);
    Toplam:=A+B;
    Cıkarma:=A-B;
    Carpma:=A*B;
    Bolme:=A/B;
    Kalan:=A MOD B;
    Tam:=A DIV B;
    Writeln (‘Toplama    Çıkarma      Çarpma       Bölme       Kalan     Tam’);
    Writeln (‘………………………………………………………………………………………………….’);
    Writeln (‘  ‘,Toplam,’    ’,Cıkarma,’     ’,Carpma,’     ’,Bolme,’     ’,Kalan,’     ’,Tam);    
End.



UYGULAMA 3: Klavyeden girilen Fahraneyt dereceyi santigrat dereceye çevirten programı yazınız.
                                                                                                Akış şeması:

Girdiler: Fahraneyt derece, 
Çıktılar: Santigrat 
İşlemler: Santigrat=(5/9) X (Fahraneyt-32)

Algoritma:
A0:Başla
A1:Oku Fahreneyt derece?
A2:Santigrat=(5/9)X(Fahraneyt-32)
A3:Ekrana Yaz Santigrat
A4:Dur
Programın kodu:

Program derece;
Uses crt;
Var    
  Fah, san:real; 
Begin
    Clrscr;
    Writeln (‘Fahraneyt dereceyi Giriniz?’);
    Readln (Fah);
    san:=(5/9)*(Fah-32);
    Clrscr;
    Writeln (san);
End.

UYGULAMA 4: Aşağıdaki programların kodlarındaki yazım hatalarını bulunuz.
Programın hatalı hali	Programın düzeltilmiş hali
Program 1merhaba.2
Var
   x,y,z:integer;
Const
   a:10;
Begin
   x=y*z  
   Writeln (işlemin sonucu=;x);
   Writeln (x;z;a);
   Writeln (“Bir sayı giriniz=”);
   Readln (c);
   End.	
UYGULAMA 5: Aşağıdaki programların çıktılarını bulunuz.
PROGRAM	PROGRAM
Begin
    a:=5;
    b:=a+1;
    writeln (b,a);
    a:=a+1;
    b:=3;
    writeln (b,a);
End. 	Begin
   y:=8;
   z:=7;
   x:=10;
   x:=y+z;
   y:=x-z;
   z:=y*2;
   Writeln (x,y,z);
End. 
PROGRAMIN ÇIKTISI
	PROGRAMIN ÇIKTISI


UYGULAMA 6: Aşağıdaki programın çıktısını bulunuz.

Program	Programın çıktısı
Begin
   x=210.874573  
   Writeln (x:8:2);
   Writeln (x:8:6);
End.	

UYGULAMA 7: Aşağıdaki programdaki mantık hatasını bulunuz.

Uses crt;
Var 
  a,b,c:integer;
Begin
    Writeln (‘a sayısını giriniz=’);
    Readln (a);
    Writeln (‘B sayısını giriniz=’);
    Readln (b);
    c:=a/b;
    Writeln (‘Sonuç=’,c);
End.   

UYGULAMA 8: Write ((6>4) AND (1>3)); komutu çalıştırıldığında ekranda nasıl bir çıktı görülür?
6>4 (6 büyük 4) ifadesi doğru ifadedir. Yani True. O zaman 1 değeri üretir.
1>3 (1 büyük 3) ifadesi yanlış ifadedir. Yani False. O zaman 0 değeri üretir.
Bu sonuçlara göre 1 ile 0 değeri AND (VE) işlemine girer. Yani işlemimiz 1 AND 0 olur. Sonuç ise 0 (sıfır) olur. Ekrana 0 değeri yazılır.

UYGULAMA 9: Write ((2>4) AND (7>3)); komutu çalıştırıldığında ekranda nasıl bir çıktı görülür?
7>3 (7 büyük 3) ifadesi doğru ifadedir. Yani True. O zaman 1 değeri üretir.
2>4 (2 büyük 4) ifadesi yanlış ifadedir. Yani False. O zaman 0 değeri üretir.
Bu sonuçlara göre 1 ile 0 değeri OR (VEYA) işlemine girer. Yani işlemimiz 1 OR 0 olur. Sonuç ise 1 (bir) olur. Ekrana 1 değeri yazılır.

UYGULAMA 10: Bir çemberin alanını ve çevresini hesaplayan programı yazınız. 
Girdiler: Çemberin çapı                                         Akış şeması:
İşlemler: Çemberin alanı= , Çemberin çevresi=       
Çıktılar: Çemberin alanı, Çemberin çevresi

Algoritma:                                 
A0:Başla
A1:Oku çap?
A2:Pi=3.14
A3:Alan=Pi x çap x çap
A4:Çevre=2x Pi x çap
A5:Ekrana Yaz Alan, Çevre
A6:Dur





Programın kodu:
Program cember;
Uses crt;
Var    
  Alan,Cevre,cap:real; 
Const
  Pi=3.14   
Begin
    Clrscr;
    Writeln (‘Çapı Giriniz?’);
    Readln (cap);
    Alan:=Pi*cap*cap;
    Cevre:=2*Pi*cap
    Clrscr;
    Writeln (‘Çemberin Alanı=’,Alan,’ Çemberin Çevresi=’,Cevre);
End.

UYGULAMA 11: Bir öğrencinin bir sınavdan girdiği 3 yazılı ve sözlü notlarını ele alarak ders ortalamasını hesaplayan programı yazınız.  Sözlü notu ise her 3 yazılının %20 ile davranış notunun %40’ının toplamından verilmektedir.

Girdiler: 1. yazılı, 2. yazılı, 3.yazılı ve Davranış notu
Çıktılar:  Ortalama
İşlemler: Sözlü=(1.yazılı+2.yazılı+3.yazılı) X 0.3+Davranış notu X 0.4
               Ortalama= (1. yazılı+2.yazılı+3.yazılı+Sözlü)/4
Algoritma:
A0:Başla
A1:Oku 1.yazılı, 2.yazılı,3. yazılı ve davranış notu?
A2:Sözlü =(1.yazılı+2.yazılı+3.yazılı) X 0.3+Davranış notu X 0.4
A3:Ortalama= (1. yazılı+2.yazılı+3.yazılı+Sözlü)/4
A4:Ekrana Yaz Ortalama
A5:Dur                                                                              Akış şeması:

Programın kodu:                                                                   
Program derece;
Uses crt;
Var    
  Yaz1,yaz2,yaz3,dav,soz:integer;
  ort:real; 
Begin
    Clrscr;
    Writeln (‘1. yazılıyı Giriniz?’);
    Readln (yaz1);
    Writeln (‘2. yazılıyı Giriniz?’);
    Readln (yaz2);
    Writeln (‘3. yazılıyı Giriniz?’);
    Readln (yaz3);
    Writeln (‘Davranış notunu Giriniz?’);
    Readln (dav);
    Soz:=(yaz1+yaz2+yaz3)*0.3+dav*0.4;
    ort:=(yaz1+yaz2+yaz3+soz)/4;
    Writeln (ort);
End.

























UYGULAMA 12: Bir test sınavında öğrencinin aldığı puanı hesaplayan programı yazınız. 

Girdiler: soru sayısı, doğru cevap sayısı, yanlış cevap sayısı, boş cevap sayısı
3 yanlış 1 doğruyu götürmektedir. 
İşlemler: Puan= (Ham Doğru sayısı x 100 /soru sayısı)+50
Giden doğru sayısı=yanlış sayısı/3 işleminin soncunda bölümün tam kısmı
Ham doğru sayısı=Doğru sayısı – Giden doğru sayısı
Çıktılar: Aldığı puan
Algoritma:
A0:Başla
A1:Oku soru sayısı, doğru sayısı, yanlış sayısı ve boş sayısı?
A2:Giden doğru sayısı= Yanlış sayısı/3 işleminde bölümün tam kısmı
A3:Ham doğru sayısı=Doğru sayısı – giden doğru sayısı 
A4:Puan=(Ham Doğru sayısı X 100/soru sayısı)+50
A5:Ekrana Yaz Puan
A6:Dur                                                                              

Programın kodu:                                                                    Akış şeması:

Program puan;
Uses crt;
Var    
  sor,dog,yan,bos,ham:integer;
   gidog,puan:real; 
Begin
    Clrscr;
    Writeln (‘Soru sayısını Giriniz?’);
    Readln (sor);
    Writeln (‘Doğru sayısını Giriniz?’);
    Readln (dog);
    Writeln (‘yanlış sayısını Giriniz?’);
    Readln (yan);
    Writeln (‘Boş cevap sayısın Giriniz?’);
    Readln (bos);
    gidog:= yan DIV 3;
    ham:=dog-gidog;
    Puan:=(ham*100/sor)+50;
    Writeln (puan);
End.

























UYGULAMA 13: Write (NOT((NOT(6>4) AND (1>3)) OR ((3>1) XOR (7<10))); komutu çalıştırıldığında ekranda nasıl bir çıktı görülür?











UYGULAMA 14: a = NOTl(4 <> 5) işleminde a’nın değeri nedir?

UYGULAMA 15: Hangi işlemin sonucu yanlıştır?
  İşlem                Sonuç
A) 6 –8                  -2 
B) 3 ^ 2                 6
C) 7 % 4                3
D) 3 / 2                 1.5

UYGULAMA 16:Hangi işlemin sonucu doğrudur?
    İşlem                 Sonuç
A) (2 ^ 4) – 8              0
B) 3 * -2                    -6
C) ((4 / 2)/ 2)/ 2          2
D) 4 ^ (1 / 2)              4

UYGULAMA 17: Aşağıdaki formatlama işlemlerinin ekrandaki görüntüsü ne olur?

String değer                                      Format                                    Ekran çıkışı
234                                                    :4                                           □234
234	:5                                           □□234
234	  :6                                           □□□234
234 	    :1	234
234                                                    :Len                               □□234 (eğer Len 5 ise)
-234                                                    :4                                           -234
-234                                                    :5                                            □-234  
-234 	:1	-234
-234	:Len                                □-234 (eğer Len 5 ise)
‘*’                                                         :1                                                 * 
‘*’                                                       :2                                                 □*
‘*’                                                       :3                                                 □□*
‘ACES’                                                :1                                                ACES
‘ACES’                                                :2                                             ACES
‘ACES’                                                   :4      ACES
‘ACES’                                            :5      □ACES
3.14159   :5:2    □3.14
3.14159   :4:2      3.14
3.14159    :5:3     3.142
3.14159    :5:1    □□3.1
3.14159    :8:5     □3.14159
-3.14159    :9        -3.14E+00
0.1234      :4:2        0.12
-124.5123      :4:2        -124.31
25.876                                                   :3:1                                             25.9
-0.006                                                   :8:3                                            □□-0.006
-0.006                                                      :9                                      -6.00E-03
-0.006                                                   :4:2                                           □□-0.01
-0.006                                                 :8:5                                        -0.00600


□ Ekrandaki boşlukları gösteriyor.





Örnek:
X:=15;
Y:=55.0;
Kelime:=’Merhaba veli’;
Writeln(X:5,’$’:5,Y:8:2,Kelime:20);

□□□15□□□□$□□□55.00□□□□□□□□Merhaba□veli

□boşlukları gösteriyor.
 
Bugün 7 ziyaretçi (8 klik) kişi burdaydı!
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol