ALGORİTMA VE PROGRAMLAMAYA GİRİŞ Prof.Dr.Mustafa ERGÜN PASCAL ile Programlamaya Giriş DÖNGÜLER (Loops)
ALGORİTMA VE PROGRAMLAMAYA GİRİŞ Prof.Dr.Mustafa ERGÜN Bilgisayarın üstünlüğü, bazı basit ama çok sıkıcı, uzun ve yorucu işlemleri usanmadan ve çok hızlı bir şekilde yapmasıdır. Bunu sağlayan döngü komutları üç tanedir: For... to... do While... do Repeat... until Döne döne... Pascal’da döngüler
ALGORİTMA VE PROGRAMLAMAYA GİRİŞ Prof.Dr.Mustafa ERGÜN Program tektekyazmaa; Uses Crt; Begin Writeln(‘Döngü kur'); {çok sıkıcı!!!} Writeln('Döngü kur'); Readln; End. For... To... Do yapısının kolaylığı Program fortodo; Uses Crt; Var sayac : Integer; {döngü sayacı tamsayı olmalı} Begin For sayac := 1 to 7 do {kolay ve hızlı!} writeln(‘Döngü kur'); Readln; End.
ALGORİTMA VE PROGRAMLAMAYA GİRİŞ Prof.Dr.Mustafa ERGÜN Program uzunyaz; Uses Crt; Begin Gotoxy(25,5);Writeln('+'); Gotoxy(25,6);Writeln('I'); GotoXy(25,7);Writeln('I'); GotoXy(25,8);Writeln('I'); GotoXy(25,9);Writeln('I'); GotoXy(25,10);Writeln('I'); GotoXy(25,11);Writeln('+'); GotoXy(26,11);Writeln('-'); GotoXy(27,11);Writeln('-'); GotoXy(28,11);Writeln('-'); GotoXy(29,11);Writeln('-'); GotoXy(30,11);Writeln('-'); GotoXy(31,11);Writeln('-'); GotoXy(32,5);Writeln('+'); Gotoxy(32,6);writeln('I'); GotoXy(32,7);Writeln('I'); GotoXy(32,8);Writeln('I'); GotoXy(32,9);Writeln('I'); GotoXy(32,10);Writeln('I'); GotoXy(32,5);Writeln('+'); GotoXy(26,5);Writeln('-'); GotoXy(27,5);Writeln('-'); GotoXy(28,5);Writeln('-'); GotoXy(29,5);Writeln('-'); GotoXy(30,5);Writeln('-'); GotoXy(31,5);Writeln('-'); {aman Allahım!!!} Readln; End. For... To... Do yapısının kolaylığı Program fordongusu; Uses Crt; Var sayac : Integer; {döngü sayacı} Begin For sayac := 1 to 5 do Begin gotoxy(25, 5 + sayac); Writeln('I'); End; For sayac := 5 Downto 1 do Begin {to yerine 'downto} gotoxy(32, 11 - sayac); Writeln('I'); End; For sayac := 1 to 6 do Begin gotoxy(25 + sayac, 11); Writeln('- '); End; For sayac := 6 Downto 1 do Begin gotoxy(32 - Counter, 5); Writeln('- '); End; Gotoxy(25,5); Writeln('+'); GotoXy(25,11); Writeln('+'); GotoXy(32,5); Writeln('+'); GotoXy(32,11); Writeln('+'); GotoXy(45,7); Writeln(‘Sadece basit döngüler!!!'); Readln; End.
ALGORİTMA VE PROGRAMLAMAYA GİRİŞ Prof.Dr.Mustafa ERGÜN Program ForToDoyapisi1; uses wincrt; var i,j,son:integer; begin write ('Kaça kadar sayılar toplansın :'); readln (son); for i:=1 to son do begin j:=j+i; writeln ('Döngü: ',i,' Toplam: ',j:10); end; writeln ('1 ila ',son:4,' arasındaki sayılar toplamı=',j:8); end. İstediğiniz sayıya kadar sayıların toplamı
ALGORİTMA VE PROGRAMLAMAYA GİRİŞ Prof.Dr.Mustafa ERGÜN Program teksayilartoplam; uses wincrt; var i,sayi,x,toplam,son:integer; begin write ('Kaça kadar sayıların teki toplansın :'); readln (x); son:=(x div 2)-1; sayi:=1; toplam:=1; for i:=1 to son do begin sayi:=sayi+2; toplam:=toplam+sayi; writeln (i:8,sayi:8,toplam:8); {kontrol} end; writeln ('1 ila ',x:4,' arasındaki teksayılar toplamı=',toplam:8); end.
ALGORİTMA VE PROGRAMLAMAYA GİRİŞ Prof.Dr.Mustafa ERGÜN Program faktoriyel; uses wincrt; var a,i :integer; f :real; {faktöriyel, bir sayıya kadar olan tüm sayıların sırayla bir önceki ile çarpılmasıdır} begin write ('Faktöriyelini almak istediğiniz sayıyı girin :'); readln (a); f:=1; for i:=1 to a do begin f:=f*i; writeln ('Döngü : ',i,' çarpım = ',f:0:0); end; writeln ('Girdiğiniz sayının faktöriyeli : ',f:0:0); end. Faktoriyel hesabı
ALGORİTMA VE PROGRAMLAMAYA GİRİŞ Prof.Dr.Mustafa ERGÜN Program carpimtablosu; uses wincrt; var i,j:integer; begin for i:= 1 to 10 do begin for j:=1 to 10 do begin write (i*j:4); end; writeln; end End. Çarpım Tablosu
ALGORİTMA VE PROGRAMLAMAYA GİRİŞ Prof.Dr.Mustafa ERGÜN Azalan döngü: (For... Downto... Do) Program fordownto; Uses wincrt; Var c : char; {döngü sayacı} Begin For c:='A' to 'Z' do write(c,' '); {A’dan Z’ye harf dizisi} writeln; For c:='Z' downto 'A' do write(c,' '); {Z’den A’ya harf dizisi} End.
ALGORİTMA VE PROGRAMLAMAYA GİRİŞ Prof.Dr.Mustafa ERGÜN While (şart) do Program tekrarkontrol; uses wincrt; var sayi,a,t:integer; begin sayi:=1; while sayi<=10 do begin write (sayi,'. sayı:'); readln (a); t:=t+a; sayi:=sayi+1 end; writeln ('Toplam:',t:3); end. Bir şart gerçekleştiği sürece yapılması gereken işlemi belirtir. While (şart sağlandığı sürece) do Şart ifadesi Begin... end Sonraki komut Hayır Evet
ALGORİTMA VE PROGRAMLAMAYA GİRİŞ Prof.Dr.Mustafa ERGÜN Program WhileDoyapisi2; uses wincrt; var toplam, topsayi,sayac:integer; begin writeln ('Kaça kadar sayılar üstüste toplansın?'); read (topsayi); while sayac<topsayi do begin sayac:=sayac+1; toplam:=toplam+sayac; writeln (sayac:5,toplam:8); end; writeln (topsayi,' e/a kadar olan sayıların toplamı:',toplam:8); End. İstediğiniz sayıya kadar sayıların toplamı (while... do)
ALGORİTMA VE PROGRAMLAMAYA GİRİŞ Prof.Dr.Mustafa ERGÜN Program WhileDoyapisi1; uses wincrt; var sayi, toplam, sayac:integer; cevap:char; begin while cevap<>'q' do begin sayac:=sayac+1; write ('Bir tamsayı gir :'); readln (sayi); toplam:=toplam+sayi; write (‘Devam ENTER, Bitirmek için q'); read (cevap); end; writeln ('Girdiğiniz', sayac:2,' sayının toplamı:',toplam:8); writeln ('Ortalaması ',toplam/sayac:8:2); End. İstediğiniz kadar tamsayının toplam ve ortalaması
ALGORİTMA VE PROGRAMLAMAYA GİRİŞ Prof.Dr.Mustafa ERGÜN Program WhileDoyapisi3; uses wincrt; var i:integer; begin i:=0; while i<13 do begin i:=i+1; gotoxy (i*3,i);write ('Emirdağ'); gotoxy (78-i*3,i);write ('Emirdağ'); end; End. While... Do ile yazı yazma
ALGORİTMA VE PROGRAMLAMAYA GİRİŞ Prof.Dr.Mustafa ERGÜN Program SayiTahmin; uses wincrt; var senin,benim,sayac:integer; begin randomize; benim:=random (100); writeln ('0-100 arasında bir sayı tuttum. Tahmin et bakalım'); while benim<>senin do begin sayac:=sayac+1; if benim<>senin then write ('tahmininiz :'); read (senin); if benim>senin then write ('Benim sayı daha büyük, '); if benim<senin then write ('Benim sayı daha küçük, '); if benim=senin then writeln (sayac:4,' tahminde buldunuz'); end; End. Sayı tahmin programı While.... Do yapısı
ALGORİTMA VE PROGRAMLAMAYA GİRİŞ Prof.Dr.Mustafa ERGÜN Repeat.... Until..... Program tekrarkontrol; uses wincrt; var sayi,a,t:integer; begin sayi:=1; while sayi<=10 do begin write (sayi,'. sayı:'); readln (a); t:=t+a; sayi:=sayi+1 end; writeln ('Toplam:',t:3); end. Bir şart gerçekleştiği sürece yapılması gereken işlemi belirtir. While (şart sağlandığı sürece) do Şart ifadesi Begin... end Sonraki komut Hayır Evet
ALGORİTMA VE PROGRAMLAMAYA GİRİŞ Prof.Dr.Mustafa ERGÜN Repeat.... Until..... Program repeatuntil1; uses wincrt; const a='Emirdağ MYO'; var i:byte; begin repeat i:=i+1; gotoxy (i*3,i);write (a); gotoxy (66-i*3,i);write (a); until i>20; End.
Yukarıdaki çarpma işlemlerinin algoritmalarını yazınız (satır algoritma) ALGORİTMA VE PROGRAMLAMAYA GİRİŞ Prof.Dr.Mustafa ERGÜN