AMIĞA
Bu yazıda herhangi bir dosyanın uzunluğunu bulan bir program inceleyeceğiz. Program daha önceki yazılarımızda gördüğümüz birçok bilgiyi içermektedir. Programın amacı uzunluğunu merak ettiğiniz bir dosyanın bayt olarak öğrenmenizi sağlamaktır. Aynı işi AMIGA-DOS kullanarak ta yapabilirsiniz. Bunu sağlayan komut ise “İs'dir. Bu komut dosya uzunluğunu doğrudan file kütüğünden okumaktadır. Bizim programın özelliği uzunluğu doğrudan o dosyaya erişerek hesaplamasıdır. Bunun avantajı file kütüğüne girilerek dosya uzunluğunun değiştirilmesi durumunda bile programın gerçek dosya büyüklüğünü doğru olarak hesaplayabilmesidir. Program fsıze dosyal şeklinde kullanılmaktadır. Böylece dosyal isimli dosyanın büyüklüğü bayt olarak hesaplanmaktadır. İstenildiğinde birden fazla dosya ismi girilebilir. Bu durumda dosyalara ilişkin değerler alt alta sıralanacaktır. Eğer dosya ismi hatalıysa program bunu bir hata mesajıyla belirtir.
V(0D)
PROGRAMIN İNCELENMESİ
Daha önceki yazılarda anlatılan main (argc, argv) ifadesi klavyeden gerilin bilgilerin programa aktarılmasına yaramaktadır. Girilen her bir kelime ayrı ayrı işleme konur. Her kelime arasında boşluk bulunmalıdır. Kelimelerin sayısı teorik olarak sınırsızdır. Kelime sayısı arge ile belirlenmiştir. Bu bir tamsayı olduğundan bir alt satırda INT olarak tanımlanmıştır. Kelimelerin oluşturduğu karakter dizileri argv ile tanımlıdır kelimelerin sayısı belli olmadığından bu diziler programda pointer olarak char *argv| | olarak tanımıştır. FILE *fp, *fopen( ) yeni inceleyeceğimiz bir kullanım, FİLE dosya işlemi yapılacağını ifade etmektedir. *fopen( ) pointer fonksiyondur. Kullanımı fopen (*dosya ismi, “işlem türü') şeklindedir. Burada işlem türü olarak kullanılmıştır. Dosya okuma işlemini göstermektedir. Benzer olarak yazma işlemidir. Programdaki fp ise bu fonksiyonun çağrılmasından sonraki pointer değeridir. Bu pointer fopen ile elde edilen dosyaya ilişkin bilgilerin ilk değerini gösterir. Programda fopen değerinin sıfırdan farklı olması gerektiği görülür. Aksi durumad “hatalı giriş” mesajı verilir. Programdaki while çevrimi --argc sıfır olduğu sürece devam eder. Çevrim içinde yeralan filesay(fp) fonksiyonu fp ile belirli dosyanın uzunluğunu saymaya yarar. Bu fonksiyon içinde kullanılan getc(fp) fonksiyonu ise o dosyadan okunan karakterlerin asc değeridir. Bu değer program içinde kullanılmamasına karşılık sadece EOF (end of file) değerine kadar sayma işleminin yapılmasına yarar. Sayma işlemi fonksiyon içindeki for çevrimi ile gerçekleşir. Uzunluk co INT değeri ile belirlidir. Dikkat edildiğinde co değişkeni main ifadesinin üstünde tanımlanmıştır. Böylece program içindeki her yerde co değeri aynıdır. Bunu printf içinde kullanılan co değişkeninden görebiliriz. Son olarak fclose(fp) fonksiyonunu inceleyelim. Bu fonksiyon kullanımı sona ermiş bir dosyayı kapatmaya yaramaktadır. Bu sayede yeni bir dosyanın açılabilmesi sağlanmış olur.
#&k FİLE UZUNLUGĞUNİ HESAPLAYAN ÖRNEK C FROGRAMI
#include <lattice/stdio.h”
#incluüde <exec/types.h
int co;
mainlarge, arav) /k Klavyeden girilen bilgilere ait main kullanimi
int arge;
char targvl1ş
«
FİLE *fp, *fopen O ş
<file ismi >...ı")ş
printf(" COMMODORE DERGİSİ 1988 (0)
if (arge 1) /& Eger arguman girilmediyse.. */
filesay(stdin);
else
while > 0)
1f ((fp fopen
printf("Hatali giris kargv);
break;
)
else (
filesay(fp);
printf("file uzunluğu: Xd byte... Sn", co);
ftılesay(fp) /* File uzunluğunu savan altprogram */
FİLE *fpş
for (ca
lee
*/
Düşünebiliyor musunuz? “Programcılar”', günümüzden 2000 yıldan fazla bir zaman önce de vardı. Babil devletinde yaşamış olan bilim adamları, daha o zamanlar yapılandırılmış verileri olması en kısa zamanda tasnif etmenin yolunu biliyorlardı. Günümüzde algoritmanın anlamı, azami tasnif. O zamanlar yazıcıların renkli tahtalarla binbir zorluk içinde yaptıkları işi, bugün bilgisayarlar birkaç sanayide yapıyor.
*“Anu aşkına!” diye söylendi Babilli rahib-astronom kafasını kaşıyarak, “şimdi başıma iyi bir bela aldım işte”. Böyle kendi kendine söylenirken başrahibin yanındaydı. Gerçekten de kendisi için büyük bir felaket sözkonusuydu. Tapınağın arşivinde sayısız tabletlerin üzerinde, daha önceki nesillerin hesaplamış oldukları sayı değerleri vardı. Fakat bunlardan birine ihtiyaç duyulduğunda, her şeye ye- — AMR
1 Abaküsçüler, adlarını hesap tahtası da denen “abaküs''ten alıyorlar. Bunların karşıtları ise “algoritmacılar”. Daha fazla bilgi yazıda.
2 Labirentten
çıkış yolunu bulabilmek için 12 yaşında bir İngiliz tarafından geliştirilen algoritma: 0 değerinde (- Kuzey) bir sonraki engele kadar gidin, sola dönün ve duvar boyunca koşun. Sola doğru her dönüş derecesini toplayın, sağa olanları çıkarın.
3 Kil tabletlerdeki sayıları büyüklüklerine göre tasnif etmek: Babilliler algoritmayı biliyorlardı. Bilgisayarda algoritma, azami tasniftir (Maximum- Sort).
4 Sihir hilesi:
Sihirbaz, topun en altta hangi bardakta olduğunu hiç bakmadan bilir. Arada kaç kez komşu bardağa aktarılmış olursa olsun, Bilmesi gereken iki bardağın hangisi olduğudur. Herhangi bir anda iki yandaki bardaklardan hangisinin uzaklaştırılması gerektiğini söyler. En sonunda top mutlaka ortadaki bardakta olacaktır. Algoritmayı bulabildiniz mi? Cevabı, yazımızın içinde BASIC programı olarak verilmiştir.
niden başlamak gerekiyordu. Çünkü daha önce o değerin hesaplanmış olup olmadığını bulmak için tüm arşivi taramaktansa, değeri yeniden hesaplamak çok daha çabuk sonuç veriyordu. Rahip, Başrahibin bu konuda kendisinden isteyeceği işi önceden tasavvur bile edemezdi: “Şimdiye kadar hesaplanmış tüm değerleri tek bir yeni tabletin üzerinde biraraya getirmek, çok yararlı olacak. Böylece istediğimiz tüm değerleri kolayca bulabileceğiz. Bu iş için kaç yazıcı istediğinizi söyleyin yeter.” Başrahip böyle bir fikri nasıl düşünebildi? Ondan önce başrahiplik yapmış tüm selefleri, herhalde kendi dönemlerinde oluşturulan sayı değerlerini en küçüğünden en büyüğüne düzenli bir biçimde kaydettirmiştir. Fakat bütün bunlardan tek bir tablet oluşturmak? Bunun anlamı şu: Arşivdeki bütün tabletleri tarayarak, o güne kadar kullanılmış en küçük değeri bulmak, bunu bir yere yazmak. Daha sonra yine tabletleri baştan sona tarayarak bir sonraki değeri bulmak ve bu da yeni tablette ikinci sıraya yazmak. Ve bu işi sonuna kadar böyle sürdürmek. Tabii bir haftalık emek sonunda ikinci satırdaki değeri bulabilirlerse, ne mutlu onlara. Diğer bir deyişle yaklaşık 800 değeri bulup altalta yazmak için, 800 hafta yani 16 yıl harcamak gerekecek. Peki, ya bir de arama sırasında daha önce atlamış oldukları bir değerle karşılaşırlarsa? Hayır, rahibin asıl ihtiyacı, emirlerini uygulayacak bir yazıcı ordusu değil, bu görevi en azından 16 yıldan çok daha kısa bir sürede yapabilmek için yazıcılara hangi emri vermesi gerektiğini bulmasını sağlayacak bir fikirdi. Yazıcılar ne yapabileceklerdi? Çivi yazısıyla yazılmış sayıları kopya edecekler ve hangisinin daha küçük olduğunu belirleyeceklerdi. Peki, bunu yapmak için de her defasında tüm arşivi yeniden taramaları mı gerekecekti? Bir yazıcıya eski tabletlerden ikisini verse ve deseydi ki: ““Bu tabletlerden birini en üstteki sayıya kadar bir palmiye yaprağıyla kapat. Diğer tablette de aynı şeyi yap. Şimdi elinde yalnızca iki sayı olacak. Bunlardan küçük olanını bir başka yere yaz ve o tabletteki yaprağı bir sıra aşağı indir. Yeni bir sayı göreceksin. Şimdi yine küçük olan sayıyı seç ve onu da ikinci sayı olarak yeni tablete geçir. Yaprağı yine bir sıra aşağı al ve böylece devam et.” İşin sonnuda yazıcının elinde iki eski tablet yerine daha uzun ama tek bir yeni tablet olcaktı. Bu yeni tablette her iki tabletin üzerindeki sayılar büyüklük sırasına göre altalta sıralanmış olacaktı. Bir önceki zamanlama örneğinden yola çıkacak olursak, bir yazıcı günde yalnızca 80 sayıyı halledebilse, 10 günde elinde baştakinin yarısı kadar (ama daha uzun) tablet kalacaktı. Bundan sonra yeni tabletlerden ikisini yanyana getirecek ve bir 10 gün daha harcayarak tablet sayısını yeniden yarıya indirecekti. Birden fazla sayıda yazıcı paralel olarak çalıştırıldığında, 16 yıl yerine birkaç hafta içinde tüm sayıları kapsayan tek bir tablet elde edilmiş olacaktı. Bu fikir rahibin biraz başını döndürdü. Neyi “keşfetmişti?”” Yeni bir “hesap” türü değildi bu aslında. Ama başlangıçta çözülemez gibi görünen bir ödevi, hızlı -ve hemen hiç düşünüp taşınmayı gerektirmeksizinçözebilmeyi sağlayan yeni bir tem”di. Anu aşkına, yoksa bu yeni bir tür büyü müydü? Olayın gerçekten böyle gelişip gelişmediğini bilmiyoruz. Kesin olan şu ki, kazılarda bulunan bir Babil tabletinde 800'den fazla sayı ve bunların ters değerleri, büyüklüklerine göre tasnif edilmiş olarak yazılıydı (tamamen düzensiz olarak bölümlenmiş olan değerlerinden de anlaşıldığı üzere, farklı kaynaklardan biraraya getirilmiş olmaları gerekiyordu). Bu tabletinin yaratıcısı, yakaşık İÖ 200 yılında böyle bir sayı yığınım tasnif etmek için ilk ““metot'- *lardan birini bulmuştu: Tasnif için kullanılan bir “algoritma”. Bu “yeni bir büyü türü”, adını ancak 1000 yıl sonra alabilecekti -hem de komik bir yanlışlık sonucunda. Inakibit-Anu tabletlerinin oluşturulduğu tarihlerde bir başka Babilli rahip-astronom, çok daha uzun süre etkileri olacak bir başka şey “bulmuştu”. Aslında çivi yazısıyla yazmakta olduğu sayılarda yaptığı küçük bir ““güzellik hatası”” onu boşuna sinirlendirmişti. Kil tablete yanyana sekiz kama kazıdığında, bunun anlamı sekiz oluyordu (sekiz kere 1). Bunların önüne biraz aralık bırakarak tek bir kama daha kazığında, bu tek kamanın anlamı da altmış oluyordu (bir kama ve sekiz kama, 60 4 8 — 68). Peki, bu tek kama kendi başına ne anlam taşıyordu? ““1”” mi, yoksa “*“60”” mı? Bunu belirleyebilmek için o günden sora bu tür tek kamaların ardına iki küçük eğik çizgi koymaya başladı. Bu çizgilerin anlamı, “hiçbir şey”'den başka bir şey değildi. Ama kama bu “hiçbir şey”'in önünde durTuyorsa, sayının 60 olarak okunması gerekiyordu. Onun “bulduğu” şey, aslında sıfirdı. Yunanlı astronom Ptolemeus, Babil'in altmışlı sistemini takip eden ve henüz üzerinde ““hiçbir” derece, dakika ve saniye bulunmayan açı tablolarında, Yunanca “ouden” (hiçbir şey) karşılığı olarak küçük bir dairecik kullanmıştı. Fakat “*0”'ın asıl ne işe yarayabileceğini bulanlar, Yunanhlar değil Hintliler oldu. İnsanlar birdenbire, o güne kadarki anlamda “hesaplamaları” yapmaksızın, bir sayıyı onla, yüzle binle çarpma olanağına kavuştular. Bunu yapmak için sayının ardına bu küçük daireciklerden bir, iki ya da üç tane koymak yeterliydi. Sıfırın varlığı. Batı'da, o dönemdeki Avrupa'da kullanılan roma rakamlarında olduğu gim.
Akılcı sort işlemi: En üstten başla ve daima daha küçük olanı yazarak devam et! Bu yolla kısa sürede listeleri yarıya indirebilirsiniz. Yalnız listeler öncekinden uzun olacaktır.
bi her defasında yeni karakter kullanmaya (onlar için X, yüzler için C, binler için M) gerek duymaksızın, aynı on rakamı kullanarak istenen büyüklükte sayıları yazma olanağı da sağladı. Ayrıca, bu tür sayılarla tüm “hesaplama” işlemleri, eski Babillilerin tasnif işlemlerindeki gibi, belirli yeni “oyun kuralları”'na göre kısmi sonuçların “kaydırılması”'na dönüştü. Bu yeni “sanat” Hindistan'dan Batı'ya doğru yayıldığında, Babil çoktan yıkıntı halindeydi. Onun yerinde son derece gelişmiş bir başka kent vardı artık: Genç Arap İmparatorluğu'nun halifeler kenti Bağdat. Ve bu kentte yazımızın asıl kahramanı, çevirilerden yararlanarak Hint sayılarını öğreniyordu: Ebu Cafer Muhammed İbn Musa el'Harizmi. harizmi (Harzem), Aral Gölü'nün güneyinde bir İran kentiydi; günümüzde SSCB sınırları içinde kalan kent Khiva adını taşıyor. O dönemde Arap alimleri, Yunanlıların bilimsel mirasından yararlanıyorlardı. Muhammed de onlar arasında en büyük matematik alimiydi. Büyük bir coşku içinde hemen bu yeni dokuz sayıyla hesap yapmanın kuralları üzerine bir kitap yazdı. Ama kitabın İspanya üzerinden batı alimlerinin eline geçmesi ve Latince'ye çevrilmesi, 12. yüzyılın başını buldu. Bundan sonra bir sürü garip ve komik yanlış anlama birbirini izledi. Kimisi, yazarın adında upuzun bir ön ad silsilesinden sonra gelen son sözcüğün herhalde soyadı olduğunu ileri sürüp, aslında doğum yerini belirten *“tel'Harizmi”'yi, “Bay Alharizmi” olarak yorumladı. Kendi çevirisine de buna dayanarak “Liber Algoritmi” adını koydu (Liber — Kitap). Bir başkası, kitabı Latince'den bir başka dile çevirirken, “Liber”i “kitap” olarak çevirdi, ama Latince'de i harfiyle biten sözcüklerin daima ismin 2. hali olması nedeniyle, “Algoritmi”'yi “Algorithmus” olarak aldı. Dolayısıyla kitabın adı “Algorithmus (Algoritma) Kitabı” oldu. Peki, bu “Algoritma” ne anlama geliyordu? Aslında kitap, yeni bir hesaplama yöntemine ilişkin bilgileri içeriyordu. Ama daha sonra gelen bilim adamları, kitabın adının neden böyle olduğunu araştırdılar ve bir sürü getirdiler. Biri, yöntemin Algor adlı Hint kralı tarafından bulunduğunu ileri sürdü. Bir değeri, Yunanca “algiros” (ağrıh) ve “arithmos” (sayı) sözcüklerinin bileşimi olduğunu iddia etti. Her halükarda sonuç, bizim bugün de formel, kesin yönerge verilerini kullanmayı, olarak adlandırıyor olmamız. Hem de bu şatafatlı sözcüğün, sıcak küçük sosisler için kullanılan ““Frankfurter” ya da kızarmış köfte için kullanılan “Hamburger” gibi, espirili bir biçimde doğmuş olduğunu hiç düşünmeden. Peki, o zamana kadar Avrupa'da nasıl hesap yapılıyordu? Elverişsiz Roma rakamlarıyla aslında hesap yapılamıyordu (isterseniz CXXIV ile XVITT'i çarpmayı bir deneyin). Dolayısıyla Romalıların yaptığı, başka bir yöntemle bulunan sonucu yazmaktan başka bir şey değildi: Bu iş için kullanılan gereç, karşılık gelen hanelerde birli, onlu, yüzlü vb. sayıları gösteren taşların olduğu “hesap tahtası”'ydı (abaküs). Bu taşlara Romalılar “calculi” adını vermişlerdi. Günümüzde kullanılan elektronik hesap makinelerine aynı kökten yola çıkarak ““Calculator”” (kalkülatör) denmekte. Batı dünyası birdenbire 124 x 18 işlemini yapmak için, önce 4'ü 8'le çarparak kısmi sonucu bir kenara yazdıktan sonra, diğer haneleri hesaplamaya devam edebileceğini öğrendi. Bu ne müthiş bir olaydı? Bu sefer uzun süreli bir alimler tartışması başladı. Bu tartışma biraz bugünkü “BASIC mi, Pascal mı?” tartışmasına benziyordu. Ortaçağ stili bir münakaşa: Bir grup alim, Roma 63 rakamlarını pagan çok tanrılı”” yeniliklere karşı ateşli bir biçimde savunuyordu. “Hiçbir şey” için kullanılan ekstra bir rakam, bir şeytan büyüsü değil miydi? Zaten gerçekten pagan olan Eski Romalılar ise bunlara karşı çıkıyor ve sıfırda, Tanrı'- nın her şeyi yoktan var ettiğine işaret eden “büyük bir kutsallığın gizli olduğunu” ileri sürüyorlardı. Ayrıca artık insanlar tahta kullanmadan hesaplarını yapabileceklerdi! Teoloji ve propagandaya rağmen “algoritmacılar”, “abaküscüler”'e galip gelebilmek için üç yüzyıldan fazla uğraştılar. O dönemde yayımladıkları kitapların kapaklarında, günümüz reklam afişlerini anımsatan resimler kullanıyorlardı: Kan-ter içinde bir abaküsçü, taşları itip çekmekle uğraşırken, akıllı meslektaşı tüy kalemiyle hesap yapmakta. Böyle bir resmi bugün incelediğimizde, şaşkınlık içinde şunu tespit ediyoruz: “Algoritma”', problemleri tabiri caizse “otomatik” olarak çözmeye yarayan bir yöntem olmak zorundaysa, hesap tahtasının başındaki abaküsçü aslında çok daha tutarlı bir “algoritmacı”'dır! Çünkü meslektaşı 456 ile 123'ü toplamak için, “kafasında” 542-7, 441-5 hesaplarını yapmak zorundayken, abaküsçü, tahtasının hanelerine 4, 5 ve 6'yı koyup alt sıraya da 1, 2 ve 3'ü koyduğunda, herhangi bir hesaba gerek kalmaksızın sonucu anında tahtadan okuyabilmektedir. Çünkü son hanede 9, bir öncekinde 7 ve ondan bir öncekinde de 5 taş vardır. (Eğer bir hanedeki taş sayısı 10 veya daha çok olursa, “aktarma”'nın son derece “mekanik” bir biçimde yapılabilmesi olanağı da vardır: Bir taş bir önceki haneye alınır ve geri kalanlar arasında dokuz taş eksiltilir). Aslına bakılırsa “algoritmacılar”” yalnızca Harizmi”'li pirlerinin adını değil, ““abaküscçüler”'le mücadelelerinin ana konusunu da yanlış anladılar. “Veriler”'iyle ya da “algoritmalar”ıyla uğraşırken her iki grup da formel kurallara uyuyorlardı. Aralarındaki karşıtlık esas olarak bu verilerin sunuluş tarzlarındaydı: Arap rakamları, Roma rakamları ya da hesap taşları... Aslında her sorunun çözümü temelde iki yolla gerçekleşebilir: Pascal programlama dilinin yaratıcısı Niklaus Wirth'in yapıtlarının birine ad olarak verdiği gibi, ““Veri Yapıları ve Algoritmalar”. Çünkü sonuca hangi kurallara göre gidilebileceğini belirleyen en önemli faktör, verinin yapısıdır. (Örneğin, Babillilerin tasnif algoritmasının işe yaramasının nedeni, daha önce bir ön tasniften geçmiş verileri kullanmış olmalarıdır). Roma sayılarının karmaşık yapısı, formel, “algoritmik” hesaplamalar açısından uygun değildi. Buna karşıhk Hint-Arap hane yapısı çok daha iyiydi. Ama hesap tahtası hanelerindeki taşlardan oluşan ilkel yapı, aslında en iyisiydi: Taşların yerine dişli dişleri konabildiğinde, hesaplamayı “tam otomatik” olarak yapabilecek bir “makine”'ye geçebilirdi. Peki, neden hesap alanına takıldık? Tüm bilim dallarının kavramları alınarak bu tür yapılarda toplamak ve katı Kurallara göre tüm doğruları üretebileceğimiz bulmak mümkün değil mi? Bu, Katalonyalı skolastik Raimundus Lullus'un pervasız fikriydi. Leibniz de, bu tür hayalin peşindeydi. Böyle bir “Ars Magna Lulli”' (Lullus'un Büyük Sanatı) ile, bilim adamları, yakında kısır çekişmeleri bir yana bırakıp, son derece açık olan gerçeği bulmak için “Calculemus - bırakın hesap yapahım!” diyeceklerdi... Algoritmalara göre karmaşık veri yapılarını işleyen bilgisayarları üretmeye başladığımızdan beri, bir şeyi farkettik: ““Prensipte” işleyen bir sürü şey, aslında pratikte hiçbir işe yaramıyor. “Beyaz, satranç karşılaşmasının ilk hamlesinde kazanmayı zorlayabilir mi?”” sorusunun açık cevabını elde etmeyi sağlayacak bir “algoritma” aslında mevcuttur. Ama en hızlı bilgisayar bile bu iş için kainatın yaratılmasından bu yana geçen süreden daha uzun bir süreye ihtiyaç duyar.
Diğer yandan, bazı durumlarda çekilmez ölçüde yavaş “işleyen” bir algöoritmanın yerine, aynı sonucu çok daha az sayıda adımla elde edebilen bir algoritma konabilir.
Böylece algoritmalar üzerine yapılan güncel araştırmalar iki temel yön kazanmıştır. ““Karmaşıklık Teorisi” temel olarak şunu araştırır: Belirli problemlerde, çözüm süresinin uzunluğu yanlış algoritmanın seçilmiş olmasından mı, yoksa zorunlu olarak problemin yapısından mı kaynaklanır? “Bulgusal” yöntemler öğretisi ise bu soruyu tamamlamak üzere şunu sorar: Böylesi durumlarda, her zaman olmasa bile, en azından çoğu zaman, yeterince hızlı bir biçimde, kullanılabilir bir sonuç elde etmeyi sağlayacak kurallar yok mudur? (satranç örneğinde: Beyaz içinde olması azami sıklıkta galibiyet). konunun her zaman ki tabletler ya da satranç problemleri olması gerekmiyor. isterseniz yazımızdaki 2 no.lu resimde yer alan labirent algoritmasını BASIC programı olarak yazmayı bir deneyin.
ALGORİTMA NEDİR?
Algoritma, mantık ve matematikte kullanılan temel bir kavramdır. AnaBritannica Genel Kültür Ansiklopedisi, “algoritma”'nın karşılığı olarak, bir sorunun yanıtını ya da bir poblemin çözümünü sonlu sayıda aşamada veren sistematik yordam” ifadesini kullanmaktadır. İÖ 300 yıllarında yayımlanmış olan “Stoikheia” (Elemanlar) adlı kitabında Euklides (Öklid), bugün de onun adıyla anılan, iki tamsayının en büyük ortak böleninin bulunmasını sağlayan bir algoritma vermişti. Aslında aritmetikte kullanılan toplama, çıkarma, çarpma, bölme, kök alma gibi işlemler de algoritmanın en basit örnekleri olarak kabul edilirler. Algoritma, bir talimatlar sistemi olarak, formel bir karakter taşıdığından, bilgisayar için daima geçerli bir programın geliştirilmesinde algoritmalardan yararlanılır. Algoritma ile bilgisayar arasında yakın ilişkinin en önemli kanıtlarından biri, ALGOL adlı programlama dilidir. Fen ve matematik problemlerine ilişkin programların yazılmasında kullanılan ve algoritmaya dayalı bir dil olan ALGOL, uluslararası işbirliğiyle gerçekleştirilmiştir. Adını AL-GORithmic Language ya da ALGebraic Oriented Language terimlerinin kısaltmasından alan ALGOL, yeni yapay dillerin geliştirilmesinde de örnek alınmaktadır.
vü.
68 38
PRİNT “TOPU BER DAHA AKTAR!”
'RINT “TOPUN ÖLDÜĞÜ BARDAK NO"