C dilinde For döngüsü ve örnekleri
|
|
- Ceren Altıntop
- 6 yıl önce
- İzleme sayısı:
Transkript
1 C dilinde For döngüsü ve örnekleri Döngü (loop) deyimleri, bir kümenin belli bir koşul altında tekrar edilmesi için kullanılır. C programlama dilinde, while, do while ve for olmak üzere üç tip döngü deyimi vardır. Diğer programlama dillerinde olduğu gibi, bu deyimlerle istenildiği kadar iç-içe döngü yapısı kullanılabilir. Ben sizlere sadece for döngüsünden bahsedeceğim, sitedeki paylaşımlar içerisinde diğer döngülere de ulaşabilirsiniz For dögüsü For döngüsün kalıbı şu şekildedir; for (int i=0;i<=10;i++) printf( %d-yazilimagiris.com\n,i); //Belirlediğimiz i değişkenini sıfırdan başlatıyoruz ve istediğimiz değere(10) ulaşana kadar parantez içerisindeki işlem tekrar ediliyor
2 Koşulu ve işlemi gördüğünüz gibi tek satırda halledebiliyoruz, bu yüzden kullanımı daha kolay ve pratiktir bu sebeple while döngüsüne göre daha fazla kullanılır. Şimdi 10 a kadar olan pozitif sayıların toplamını hesaplayan bir program yazarak for döngüsünün mantığını daha iyi anlamaya çalışalım. 1. #include <stdio.h> 2. int main() int i,toplam; 5. toplam=0; 6. for(i=1;i<=10;i++) 7. toplam+=i; // Her adımda i değeri toplam değişkenine ekleniyor printf( Toplam = %d,toplam); 10. return 0; 11.
3 Kodlamayı açıklamak gerekirse, for döngüsüne girdiğimizde i değişkenine 1 değerini atıyoruz ve her adımda i++ operatörü ile birer birer artmasını sağlayarak son değer olarak belirlediğimiz 10 a kadar gitmesini sağlıyoruz, i değeri 11 olduğu zaman i<=10 koşulunu sağlamayacağı için döngüye devam etmeyecektir. Döngünün içerisinde ki işlemlerde ise her i değerini daha önce belirlediğimiz toplam isminde ki değişkenine ekliyor (burada toplam+=i; yerine toplam=toplam+i; de yazılabilirdi.) ve 10 a kadar olan sayıların toplamını hesaplamış oluyor. İç içe for döngüsü C de döngüleri tek başına kullanabileceğiniz gibi, birbiri içinde de kullanabilirsiniz. Eğer bir döngüyü, başka bir döngünün kod bloğu içinde tanımlarsanız, iç içe döngü oluşturulmuş olur. ANSI C standartlarına göre en az 15 adet döngü birbiri içinde tanımlanabilmelidir. Şimdi basit bir örnek üzerinde bu özelliği inceleyelim: #include <stdio.h> #include <conio.h> main() int id1, id2; for (id1=0; id1<5; id1++ ) for (id2=0; id2<10; id2++) printf( %d, id2); printf( \n ); Yukarıdaki örnekte, program aşağıdaki satırları ekrana yazar:
4 Program, önce ilk for döngüsünde id1 değişkenine 0 değerini atar. Koşul bölümünde doğru bir sonuç elde ettiği için ilk for döngüsü ile ilgili kod bloğunu çalıştırır. Kod bloğu içindeki for döngüsüne ait id2 değişkenine 0 değerini atar. Koşul bölümünde doğru bir sonuç elde ettiği için ikinci for döngüsü ile ilgili işlem satırını çalıştırır ve ekrana 0 değerini yazar. İkinci döngü, daha önce gördüğümüz gibi, id2 değişken değeri 10 dan küçük olduğu sürece çalışmasına devam eder ve ekrana aşağıdaki satırı yazar: İkinci for döngüsü sona erdiğinde program kod bloğu içinde yer alan ikinci satır ile satır başı yapar. Daha sonra program ilk for döngüsünde id1 değişkeninin değerini 1 artırarak tekrar kod bloğunu çalıştırır. İlk for döngüsü de id1 değişken değeri 5 den küçük olduğu sürece çalışmasına devam eder. İlk for döngüsünün her tekrarında kod bloğunda yer alan ikinci for döngüsü 10 defa tekrar eder. Örnekler; 1-Üs alma oyunu
5 Bu örnekte, program sizden 1 den 10 a kadar olan sayıların karelerini sıra ile girmenizi ister. Sonra, doğru ve yanlış cevap sayısını kaydederek ekrana yazar #include <stdio.h> main() int id1, id2, id3=0, id4=0; for (id1=1; id1<10; id1++) printf( %d sayisinin karesi kac eder?, id1); scanf( %d, &id2); if(id2 == id1 * id1) printf( Cevabiniz dogrudur!\n ); id3++; else printf( Cevabiniz yanlistir!\n\a ); printf( Dogru cevap %d sayisidir!\n, id1 * id1); id4++; printf( \ndogru cevap sayisi : %d yanlis cevap say : %d, id3, id4); 23. Örnek 2
6 Program, bir for döngüsü içinde 1 den 10 a kadar olan sayıların kendinden küçük sayıların toplamını fonk1() fonksiyonu içindeki bir döngüyü kullanarak ekrana yazar. Burada, fonk1() fonksiyonunun direk olarak printf() fonksiyonunun bir argümanı olarak aynı satırda tanımlandığına dikkat ediniz #include <stdio.h> main() int id1; for (id1=1; id1<10; id1++) printf( %d sayısı altındaki sayılar toplamı: %d\n, id1, fonk1(id1)); fonk1(int id1) int id2, id3=0; for (id2=1; id2<id1; id2++) id3 = id3 + id2; return id3; Yukarıdaki örnekte, program aşağıdaki satırları ekrana yazar: 1 sayısı altındaki sayılar toplamı: 0 2 sayısı altındaki sayılar toplamı: 1 3 sayısı altındaki sayılar toplamı: 3 4 sayısı altındaki sayılar toplamı: 6 5 sayısı altındaki sayılar toplamı: 10 6 sayısı altındaki sayılar toplamı: 15
7 7 sayısı altındaki sayılar toplamı: 21 8 sayısı altındaki sayılar toplamı: 28 9 sayısı altındaki sayılar toplamı: 36 Hazırlayan Çağrı KONCA C Dilinde Dallanma Komutu (goto) & Etiket Kullanımı C Dilinde Dallanma Komutu (goto) & Etiket Kullanımı Kodların takibini ve okunmasını zorlaştırdığı ve yapısal programlamaya aykırı olduğu için goto komutu pek tavsiye edilen bir komut değildir. Her ne olursa olsun C dilinde goto komutu vardır ve bilinmesinde fayda vardır. goto komutu veya goto komutuna benzeyen dallanma komutları özellikle assembly de çok kullanılır; gerek 8086 işlemciyle çalışanlar veya gerekse PIC mikrokontrolör ile kod yazanlar bu ve buna benzer komutları kullanmak zorunda kalırlar. goto komutunun çalışabilmesi için öncelikle bir etiket oluşturulmalıdır. Etiket belli bir satıra verilen isimdir. Etiket oluşturulduktan sonra belli bir şart sağlandığında program etiketin olduğu satıra gönderilir. Goto komutu ve
8 etiket aşağıdaki gibi kullanılabilir. komut 1; komut 2; etiket: komut 3; komut 4; goto etiket; //etiketin olduğu satıra git. [crayon-59628d9c15f /] Sadece Pozitif Sayıların Karesini Alan Program [crayon-59628d9c15f /]
9 Time.h kütüphanesi C dilinde mevcut zamanı almak ve işlemek mümkündür. Bunun için time.h dosyasının içerisinde bulunan fonksiyonlar kullanılabilir. Ayrıca time.h dosyasında bulunan time_t oluşumu (struct) zaman tutmak için geliştirilmiştir ve zamanı oluşturan alt unsurları da içerir. Örneğin şu andaki zamanı ekrana basmak için aşağıdaki kod kullanılabilir: [crayon-59628d9c /] Örneğin bir kullanıcıdan yazı okuyan ve ne kadar zamanda okuduğunu ekrana basan kod aşağıdaki şekilde yazılabilir: [crayon-59628d9c /] Çıktısı aşağıdaki gibidir
10 Yukarıdaki time_t yapısı oldukça kullanışlı olmasına karşılık mikro saniye gibi düşük zamanları algılamakta yetersizdir. Bunun için biraz daha detaylı çalışan timeeval yapısından ve gettimeofday fonksiyonundan faydalanılabilir: [crayon-59628d9c1704c /] [crayon-59628d9c /] [crayon-59628d9c1705b /] [crayon-59628d9c /] [crayon-59628d9c1706a /] [crayon-59628d9c /] [crayon-59628d9c /] [crayon-59628d9c1707e /] Örneğin yukarıdaki kodda iç içe 3 döngü içerisinde ekrana deneme yazdırılıyor (toplam 100x256x10 tane) bu işlemin aldığı vakti ölçmek için gettimeofday fonksiyonundan faydalanılmış ve en sonunda da fark hesaplanmış. Burada eksik olan getdiff fonksiyonu aşağıdaki şekilde yazılabilir: [crayon-59628d9c /] Hazırlayan : Alpay Aygün Kaynakça :
11 ile-zaman-islemleri/ C ve C++ Arasındaki Farklar C ve C++ ARASINDAKİ BAZI FARKLILIKLAR C++, C nin gelişmiş şeklidir ve sanal larak tüm C programları aynı zamanda C++ programıdır. Fakat araların da bazı küçük farklılıklar da mevcuttur. Şimdi isterseniz bu farklar arasında duralım. 1-) C++ ın en başta gelen farklılığı ise Nesne Yönelimli olmasıdır. Buna karşın C fonksiyonel bir dildir. Peki tam olarak nedir Nesnel Yönelimli Programlama? Kısaca değinecek olursak; C dilinde (veya fonksiyonel herhangi bir dilde) program yazarken programımızı fonksiyonlara parçalar ve tasarlardık. Yani programımızın temel parçası fonskyionlar idi. C++ da ise programlarımızın temel birimi nesnelerdir. 2-) C de fonksiyonun parametresi yoksa, prototipin fonksiyon parametre listesinde void kelimesi bulunur. Örneğin C de f1( ) adlı bir fonksiyonun parametresi yoksa(ve geriye bir char gönderiyorsa) bu fonksiyonun prototipi şu şekilde olur: char f1(void); Fakat C++ da void in yazılması isteğimize bağlıdır. Sonuç olarak C++ da f1( ) in prototipi genelde şu şekildedir: char f1(); C++,paremetre listesi boş da olsa onu belirler ve bu yönüyle C den farklıdır. Eğer üstteki prototip bir C programında bulunsaydı fonksiyona parametreler hakkında hiçbir şey
12 söylenmemiş olacaktı. C++ da ise bu, fonksiyonun parametresi olmadığı anlamına gelir. 3-) Bir C++ programında tüm fonksiyonların prototipi bulunmak zorundadır. Unutmayın C de prototiplerin kullanımı önerilir fakat bunların kullanımı teknik olarak isteğimize bağlıdır. C++ da ise prototipler gereklidirler. Örneğin sınıfa ait fonksiyonun prototipi aynı zamanda genel bir prototip olarak da rol oynar ve bu prototipten başka prototipe gerek kalmaz. 4-) Eğer fonksiyon C++ da, geriye değer gönderecek şekilde deklare edilmişse, bu fonksiyon, bu değeri göndermek zorundadır. Yani eğer fonksiyon void haricinde bir şey geri döndürüyorsa bu fonksiyonun içindeki herhangi bir return deyimi, bir değer içermelidir. C de ise void içermeyen fonksiyonların aslında geriye değer döndürmesi şart değildir. Eğer fonksiyon herhangi bir değer döndürmüyorsa saçma bir değer döndürülür. 5-) C de fonksiyonun döndüreceği sonucun tipini tam olarak belirlemezseniz bu tipin tamsayı olduğu varsayılır. C++, tamsayı kabulü kuralını bozmaktadır. Bu yüzden tüm fonksiyonların return tipini tam olarak deklare etmeniz gerekir. 6-) Yerel değişkenlerin deklare edilebileceği yerle ilgilidir. C de yerel değişkenler sadece blokların başında herhangi bir iş deyiminden önce deklare edilebilir. C++ da yereş değişkenler her yerde deklare edilirler. Bu yöntemin avantajlarından biri, yerel değişkenlerin ilk kullanıldıkları yere yakın yerde tanımlanabilmesi ve böylelikle istenmeyen yan etkilerden kurtulunmasıdır. 7-) C++ ın bool veri tipini tanımasıdır. Bu veri tipi, Boolean (örn: doğru/yanlış) değerleri saklamak için kullanılır. C++ aynı zamanda true (doğru), false (yanlış) anahtar kelimelerini de tanır. bool tipi sadece bu iki değeri alabilir. C++ da karşılaştırma ve mantık işlemlerinin sonucu bool tipinde bir
13 değerdirve tüm koşullu deyimler bir bool değeri almalıdır. İlk başta bu durum çok büyük bir değişiklikmiş gibi görünebilir, fakat durum böyle değildir. Hatta bu, gerçekte gözle bile görünmeyecek kadar küçük bir farktır, çünkü C de true sıfır olmayan herhangi bir değerdir ve false 0 dır. Bu C++ da da geçerlidir, bir Boolean ifade kullanıldığında sıfır olmayan herhangi bir değer otomatik olarak true ya ve herhangi bir 0 değeri ise otomatik olarak false a dönüştürülür. Bunun tersi de doğrudur: Bir bool değeri bir tamsayı ifadede kullanılıldığında true 1 e,false da 0 a dönüştürüşür bool un eklenmesi daha fazla tip denetimi yapmamıza izin verir, Boolean ve tamsayı tiplerini bibirinden ayırmamızı sağlar. Tabi ki kullanımı isteğimize bağlıdır, fakat bool un oldukça kullanışlı olduğunu hatırlatmakta fayda var. 8 -) Bazı fonksiyonlar kendi içerisinde çeşitli işlemler yaptıktan sonra yaptığı işleminsonucunu kendisini çağıran fonksiyona bildirirler. Bu değere geri dönüş değeri adı verilir. Geri dönüş değerinin hangi türden olacağını belirten alana fonksiyon tipi denir. C de fonksiyonun geri döndürecek bir sonucu yoksa o fonksiyonun tipi void olmalıdır. 9-) C ve C++ arasında küçük, fakat potansiyel olarak önemli bir fark şudur : C de bir karakter sabit otomatik olarak bir tam sayıya yükseltilir, C++ da ise bu şekilde olamaz. 10-) C de global bir değişkenin birkaç defa deklere edilmesi, her ne kadar kötü bir programlama uygulaması olsada, hata değildir. C++ da bu bir hatadır. 11-) C de bir belirticinin en azından 32 önemli karakteri olacaktır. C++ da tüm karakterler önemli kabul edilir. Fakat, olaya pratik açıdan bakacak olursak aşırı uzun belirticiler hantaldırlar ve seyrek kullanırlar. 12-)
14 C de pek normal bir şey olmasa da main() i bir program içerisinden çağırabilirsiniz. C++da buna izin verilmez. 13-) C de register değişkeninin adresini alamazsınız. C++ da bunu yapabilirsiniz. 14-) C de wchar_t tipi typedef ile tanımlanmıştır. C++da wchar_t bir anahtar kelimedir. KAYNAK -C++ temel ögrenim kılavuzu kitabı -gokhanbeken.com/c vec++ arasındaki farklar HAZIRLAYAN Sedanur YEŞİLTAŞ C dilinde Dinamik Bellek Yönetimi C de dinamik memory yönetiminde kullanılabilir 4 tane fonksiyon vardır. Bunlar: malloc calloc realloc free fonksiyonlarıdır.şimdi teker teker bu fonksiyonları inceleyelim. malloc: malloc fonksiyonu dinamik olan alan tahsis edilmesi için kullanılır. Prototipi aşağıdaki gibidir:
15 void *malloc(size_t size) Fonksiyona parametre olarak verilen boyut kadar alan oluşturur ve alanın başlangıç adresini void * türünden bir adres olarak geri döndürür. calloc: calloc fonksiyonuda dinamik olan alan tahsis edilmesi için kullanılır. malloc ile farkı ise calloc un ayırdığı hafıza bloğunun içeriğini sıfırlaması olmaktadır. Prototipi aşağıdaki gibidir : void *calloc(size_t nitems, size_t size) realloc: realloc fonksiyonu ise daha önce malloc veya calloc fonksiyonu ile tahsis edilmiş olan alanı büyütmek için kullanılır.void *realloc(void *ptr, size_t size)birinci parametre malloc,calloc veya realloc ile tahsis edilmiş olan alanın
16 başlagıç adresi ikinci parametre ise yeni boyut olarak bildirilmektedir. Free: Free fonksiyonu parametre olarak aldığı başlangıç adresinde tahsis edilmiş olan alanın boşaltılmasını sağlar. Yazılan programların çıktısı da aşağıdaki gibidir. KAYNAK : -hafza-yonetimi.html Hazırlayan : Fatih Mehmet Sağır
17 C Dilinin Tarihi AT&T Bell laboratuvarlarında, Ken Thompson ve Dennis Ritchie tarafından UNIX İşletim Sistemi ni geliştirebilmek amacıyla B dilinden türetilmiş yapısal bir programlama dilidir. Geliştirilme tarihi 1972 olmasına rağmen yayılıp yaygınlaşması Brian Kernighan ve Dennis M. Ritchie tarafından yayımlanan C Programlama Dili kitabından sonra hızlanmıştır. Günümüzde neredeyse tüm işletim sistemlerinin (Microsoft Windows, GNU/Linux, *BSD, Minix) yapımında %95 lere varan oranda kullanılmış, halen daha sistem, sürücü yazılımı, işletim sistemi modülleri ve hız gereken her yerde kullanılan oldukça yaygın ve sınırları belirsiz oldukça keskin bir dildir. Keskinliği, programcıya sonsuz özgürlüğün yanında çok büyük hatalar yapabilme olanağı sağlamasıdır. Programlamanın gelişim süreciyle beraber programlamanın karmaşıklaşması, gereksinimlerin artması ile uygulama programlarında nesne yönelimliliğin ortaya çıkmasından sonra C programcıları büyük ölçüde nesne yönelimliliği destekleyen C++ diline geçmişlerdir. C Dilinin Erken Tarihi C nin ilk gelişme safhaları 1969 ile 1974 arasında AT&T Bell Labovatuarı nda gerçekleşti. Ritchie ye göre, en yaratıcı devre 1972 idi. Dilin pek çok özelliği B adlı bir dilden türediği için, yeni dile C adı verildi. B dili yorumlanan bir dildi ve veri tipi desteği yoktu. Yeni donanımların farklı veri tiplerini desteklemesi, ve yorumlanan dillerin çalışma zamanında görece yavaş olması sebebi ile, C dili, tip desteği eklenmiş ve derlenen B olarak geliştirildi. B adının kökeni konusunda ise söylentiler değişik: Ken Thompson B nin BCPL programlama dilinden türediğini söylemektedir, ancak Thompson eşi Bonnie nin onuruna adını
18 Bon koyduğu bir programlama dili de geliştirmiştir e kadar C yeterince güçlü bir hale gelmiş ve ilk başta PDP-11/20 assembly dili ile yazılan UNIX in çekirdeğinin büyük kısmı C ile yeniden yazılmıştı. Böylece UNIX, çekirdeği bir assembly dili ile yazılmayan ilk işletim sistemlerinden biri olmuştu. Yazan:Yağız Can Dinç BUBLESORT ALGORİTMASI Bublesort Algoritması (Kabarcık Sıralama Algoritması) C Programlama Dili Bubble Sort Algoritması ile kullanıcının girdiği sayıları küçükten büyüğe sıralayan program kodu. Sıralama algoritmaları arasında en çok bilinen Bubble Sort (Kabarcık Sıralama) algoritmasını bulabilirsiniz. 1. Kullanıcıdan gireceği sayı adedi öğrenilir. 2. Kullanıcıdan sayılar alınır. 3. Girilen sayılar ekrana yazdırılır. 4. Bubble Sort algoritması ise sayılar küçükten büyüğe sıralandırılır ve dizinin yeni hali ekrana yazdırılır.
19 Sıralama algoritmalarının anlaşılması en kolay olanı Bubble Sorttur. Bubble Sort sayı dizisindeki ilk sayıyı alır ve kendisinden sonra gelen sayıyla karşılaştırır. İkinci sayı büyükse başa alır. Küçükse değişiklik yapmaz. Örnek : 6, 4, 8, 12, 7 sayı dizisi veriliyor ve bu sayıları büyükten küçüğe doğru sıralamamız isteniyor. 1adım : 6 yı 4 ile karşılaştırırz. 4 < 6 olduğu için sıralamada değişiklik olmaz. 2.adım : 4 ile 8 karşılaştırılır. 8 > 4 olduğundan 6, 8, 4, 12, 7 yeni sayı dizimiz olur. 3.adım : 4 ile 12 karşılaştırılır. 12 > 4 olduğundan 6, 8, 12, 4, 7 yeni sayı dizimiz olur. 4.adım : 4 ile 7 karşılaştırılır. 7 > 4 olduğundan 6, 8, 12, 7, 4 yeni sayı dizimiz olur. 5.adım : Başa dönüyoruz. 8 > 6 olduğundan 8, 6,
20 12, 7, 4 yeni sayı dizimiz olur. 6.adım : 12 > 6 olduğundan 8, 12, 6, 7, 4 yeni sayı dizimiz olur. 7.adım : 7 > 6 olduğundan 8, 12, 7, 6, 4 yeni sayı dizimiz olur. 8.adım : 4 < 6 olduğundan sayı dizimiz değişmez. 9.adım : Tekrar başa dönüyoruz. 12 > 8 olduğundan 12, 8, 7, 6, 4 yeni sayı dizimiz olur. 9.adımda sıralamamız sonra erer. Kaynak Kod: Bubble Sort C Kodu #include int main() static int k,dizi[100],i,x,boyut,temp; printf( Dizinin boyutunu giriniz : ); scanf( %d,&boyut); for(i=;i<boyut;i++) printf( Dizinin %d. elemanini giriniz :,i+1); scanf( %d,&dizi[i]); for(i=;i<boyut;i++) printf( %d\t,dizi[i]);
21 #include while(x<boyut) for(i=;i<boyut 1;i++) if(dizi[i]<dizi[i+1]) temp=dizi[i]; dizi[i]=dizi[i+1]; dizi[i+1]=temp; x=; else x++; printf( \n\n ); for(k=;k<boyut;k++) printf( %d\t,dizi[k]); return ; int main() static int k,dizi[100],i,x,boy printf( Dizinin boyutunu giriniz for(i=0;i<boyut; i++) printf( Dizinin %d. elemanini giriniz
22 for(i=0;i<boyut; i++) printf( %d\t,dizi[ i]); while(x<boyut) for(i=0;i<boyut- 1;i++) if(dizi[i]<dizi[ i+1]) temp=dizi[i]; dizi[i]=dizi[i+1]; dizi[i+1]=temp; x=0; else x++;
23 printf( \n\n ); for(k=0;k<boyut; k++) printf( %d\t,dizi[ k]); return 0; Kod Analiz: İlk olarak kullanıcıdan dizinin boyutunu ve dizinin elemanlarını teker teker aldık. Daha sonra aldığımız diziyi 1 sefer ekrana yazdırdık. While döngüsünün içerisindeki for döngüsünde dizinin her bir elemanını bir sonraki elemanla karşılaştırıp duruma göre yer değiştirdik. Karşılaştırma işleminde en son olarak son eleman ve ondan bir önceki karşılaştırılacağından for döngüsü dizinin boyutunun bir eksiği kadar döner. Büyükten küçüğe sıraladığımızı varsayalım. Eğer baktığımız eleman bir sonraki elemandan büyükse o zaman değişme işlemi yapılmayacak ve else kısmında x değişkeni 1 artacak. Eğer değişme olursa x değişkeni 0 olacak. Burada dikkat edilmesi gereken yer, eğer hiç bir değişme
24 işlemi yapılmazsa x değişkeni boyut değişkenine eşit olacak ve while döngüsünden çıkılacak. Yani hiç bir yer değiştirme işleminin yapılmaması demek dizi zaten sıralı halde demektir. Bu durumda dizi sıralı olduğu durumda while döngüsünden çıkılacak. Ekran Görüntüsü: C Dilinde Bubble Sort Algoritma Kodlaması Sayarak Sıralama (Counting Sort) algoritması Verinin hafızada sıralı tutulması için geliştirilen sıralama algoritmalarından (sorting algorithms) bir tanesidir. Basitçe sıralanacak olan dizideki her sayının kaç tane olduğunu farklı
25 bir dizide sayar. Daha sonra bu sayıların bulunduğu dizinin üzerinde bir işlemle sıralanmış olan diziyi elde eder. Sıralanmak istenen verimiz: 5,7,2,9,6,1,3,7 olsun. Bu verilerin bir oluşumun(composition) belirleyici alanları olduğunu düşünebiliriz. Yani örneğin vatandaşlık numarası veya öğrenci numarası gibi. Dolayısıyla örneğin öğrencilerin numaralarına göre sıralanması durumunda kullanılabilir. Bu dizi üzerinden bir kere geçilerek aşağıdaki sayma dizisi elde edilir: Dizi indisi: Değeri (sayma): Yukarıdaki tabloda da gösterildiği üzere dizide bulunan en büyük eleman sayısı kadar eleman içeren bir sayma dizisi oluşturulmuş ve bu dizinin her elemanına, sıralanmak istenen dizideki her elemanın sayısı girilmiştir. Bu sayma işleminden sonra sıralı dizinin üretilmesi yapılabilir. Bu işlem de dizinin üzerinden tek bir geçişle her eleman için kaç tekrar olduğu yazılarak yapılabilir. buna göre örneğin sıralanmış dizide 0 hiç olmayacak 1 den 1 tane, 2 den 1 tane olacak şeklinde devam eder ve sonuç: 1,2,3,5,6,7,7,9 şeklinde elde edilir. Bu sıralama algoritmasının JAVA dilindeki kodu aşağıda verilmiştir: public static void countingsort(int[]a, int[]b, int k) int C[]=new int[k]; // sayma dizisi oluşturuluyor int i; int j;
26 for(i=0; i<k; i++) C[i]=0; for(j=0; j<a.length; j++) C[A[j]]=C[A[j]]+1 ; for(i=1; i<k; i++) C[i]=C[i]+C[i-1]; for(j=0; j<a.length; j++) B[C[A[j]]]=A[j]; C[A[j]]=C[A[j]]-1; Yukarıdaki fonksiyon bir adet sıralanacak dizi, bir adet sıralanmış hali geri döndürecek atıf ile çağırma (call by reference ile) boş dizi ve dizideki en büyük sayının değerini alır. Sonuç ikinci parametre olan boş diziye döner. Bu sıralama algoritmasının karmaşıklığı (complexity) hesaplarnısa. Dizideki her elemanın üzerinden bir kere geçilerek sayıları hesaplanır. Bu geçiş n elemanlı dizi için n zaman alır. Ayrıca dizideki en büyük elemanlı sayı kadar (bu örnekte k diyelim) büyük olan ikinci bir sayma dizisinin üzerinden de bir kere geçilir bu işlem de k zaman alır. Dolayısıyla toplam zaman n+k kadardır. Bu durumda zaman karmaşıklığı O(n) olur. Hafıza karmaşıklığına baklırsa (memory complexity) hafızada mevcut verilerin saklandığı bir dizi (yukarıdaki örnek kodda A dizisi). Sonuçların saklandığı ikinci bir dizi (yukarıdaki örnekte B dizisi) ve her elemanın kaçar tane olduğunun durduğu bir dizi (yukarıdaki örnekte C dizisi) tutulmaktadır. Bu
27 durumda A ve B dizileri n, C dizisi ise k boyutundadır ve toplam hafıza ihtiyacı 2n+k kadardır. HAZIRLAYAN: CANSU KARAKUŞ KAYNAK: QUICK SORT (HIZLI SIRALAMA) ALGORİTMASI Quick sort algoritması türkçe adıyla hızlı sıralama algoritması, günümüzde hala sıklıkla kullanılan bir algoritmadır. Sıralanması istenen dizi, dizi içerisinden belirlenen bir nokta (pivot noktası) yardımıyla iki alt diziye ayrılır. Pivot noktasından küçük olan elemanlar soldaki birinci alt diziye, büyük olan elemanlar ise sağdaki ikinci alt diziye taşınır. Daha sonra, yine aynı algoritma rekürsif olarak çağrılarak bu alt dizilerin sıralanması istenir. Bu işlem diziler parçalanamayacak duruma gelene kadar sürdürülür. Örneğin sıralanacak dizi A=9,5,12,7,3,21 olsun. Şimdi bir pivot noktası belirleyelim. Pivot noktası seçimi algoritmanın çalışma prensibini etkilemese de, dizinin ortanca değerini pivot noktası olarak belirlemekte fayda var. Dizinin ilk indisi 0 ve son indisi 5 i toplayıp int türünde bir değişkene attığımızda, 2. indis numaralı dizi elemanını yani 12 değerini pivot noktası olarak belirleriz. Bu noktayı baz alarak 12 değerinden küçük sayıları soldaki diziye, büyük sayıları ise sağdaki diziye atalım. Alt dizilerimizin son durumu A1=9,5,3,7 ve A2=12,21 şeklinde oluştu. Pivot noktasını da sağdaki yada soldaki diziye dahil edebilirsiniz. Daha sonra sıralama algoritması rekürsif olarak tekrar çağrılır ve yukarıdaki işlemler tekrarlanır. Böylece dizinin öğeleri
28 küçükten-büyüğe doğru sıralanmış olur. Aşağıda quick sort sıralama algoritmasının java ile yazılmış örnek kodlarını inceleyebilirsiniz. public class HizliSiralama public static void main(string[] args) int []dizi=9,5,12,7,3,21; hizlisirala(dizi, 0, dizi.length-1); for (inti = 0; i < dizi.length; i++) System.out.print(dizi[i]); public static int[] hizlisirala(intdizi[], intsol, intsag) intpivot, gecici, i,j; i=sol; j=sag; pivot=dizi[(sol+sag)/2]; do while(dizi[i]<pivot&& i<sag) i++; while(pivotsol) j ; if(i<=j) gecici=dizi[i]; dizi[i]=dizi[j]; dizi[j]=gecici; i++; j ; while (i<=j); if (sol<j) hizlisirala(dizi, sol, j); if (i<sag) hizlisirala(dizi, i, sag); returndizi;
29 Yukarıda java kodları verilen hızlı sıralama algoritmasına üç adet parametre gelmektedir; biri dizi, diğer ikisi de dizinin sıralamaya koyulacak parçasının sol ve sağ taraflarının indis değerleridir. Algoritma ilk çağrıldığında, n elemanlı bir dizi için sol=0, sağ=n-1 olur. Rekürsif çağırmalar sırasında sol değeri büyürken sağ değeri küçülecektir; ne zaman ki, sol değeri sağdan büyük olursa dizide bölünecek eleman kalmadığı anlaşılır ve rekürsif çağırmaların geri dönüşü başlar. Hızlı sıralama algoritmasının ortalama zaman karmaşıklı O(nlog2n), en kötü durumda ki zaman karmaşıklığı ise O(n2) olarak çıkmaktadır. HAZIRLAYAN: CANSU KARAKUŞ KAYNAK; C programlamada while döngüsü While döngüsünün yazılış biçimi aşağıdaki gibidir: while(ifade) Deyim; ya da while(ifade)
Java da Dizi Tanımlama
Java da Dizi Tanımlama DİZİLER Dizi, içerisinde aynı tip verilerin tutulduğu bir yapıdır. Diziler ile verilere daha kolay erişim sağlanır. Java daki diziler, diğer dillerden farklı olarak birer nesnedir.
DetaylıYrd. Doç. Dr. Caner ÖZCAN
Yrd. Doç. Dr. Caner ÖZCAN Diziler ile Pointer Arası İlişki Bir dizi adı sabit bir pointer gibi düşünülebilir. Diziler ile pointer lar yakından ilişkilidir. Pointer lar değişkenleri gösterdikleri gibi,
DetaylıUzaktan Eğitim Uygulama ve Araştırma Merkezi
JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Fonksiyon Tanımlamak Java da Döngüler Java da Şart İfadeleri Uygulamalar Java da Fonksiyon Tanımlamak JAVA DA FONKSİYON TANIMLAMAK 4 Fonksiyonlar;
DetaylıBilgisayar Programlama. 1.Hafta
Bilgisayar Programlama 1.Hafta Ders Planı 1. Bilgisayar Programlamaya Giriş 2. C Derleyicileri 3. GCC Kullanımı 4. Veri Tipleri ve Operatörler 5. Kontrol Yapıları 6. Döngüler 7. Döngüler 2. Hafta 8. Fonksiyonlar
DetaylıYrd. Doç. Dr. Caner ÖZCAN
Yrd. Doç. Dr. Caner ÖZCAN Fonksiyonu Referans ile Çağırma (Call by Reference) Bir fonksiyona gönderilen parametrenin normalde değeri değişmez. Fonksiyon içinde yapılan işlemlerin hiçbiri argüman değişkeni
DetaylıFonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {
Fonksiyonlar Kendi içinde bağımsız olarak çalışabilen ve belli bir işlevi yerine getiren program modülleridir. C programları bu modüllerden (fonksiyonlar) oluşurlar. Fonksiyonların yazılmasındaki temel
DetaylıBLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers)
1 BLM 112- Programlama Dilleri II Hafta 5 İşaretçiler (Pointers) Dr. Öğr. Üyesi Caner Özcan Hiç hata yapmayan insan, hiçbir şey yapmayan insandır. Ve hayatta en büyük hata, kendini hatasız sanmaktır. ~Y.
DetaylıYMT219 VERİ YAPILARI ÖDEV-1
YMT219 VERİ YAPILARI ÖDEV-1 1. İkiliBul yordamı aşağıda verilmiştir. İkiliBul yordamı A dizisi içerisinde 2 tane eşit sayı bulursa true bulamazsa false döndürmektedir. public boolean ikilibul(int[] A){
DetaylıJAVA DÖNGÜ DEYİMLERİ. For Döngüsü
JAVA DÖNGÜ DEYİMLERİ Belirli bir iş bir çok kez tekrarlanacaksa, programda bu iş bir kez yazılır ve döngü deyimleriyle istenildiği kadar tekrarlanabilir. Java da bu işi yapan üç ayrı deyim vardır: while
DetaylıHafta 13 Fonksiyonlar
BLM111 Programlama Dilleri I Hafta 13 Fonksiyonlar Yrd. Doç. Dr. Caner ÖZCAN Fonksiyonlar Fonksiyonlar C de modüller Programlar kullanıcı tanımlı fonksiyonları ve kütüphane fonksiyonlarını birlikte kullanırlar.
DetaylıDiziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU
Diziler Yrd.Doç.Dr.Bülent ÇOBANOĞLU Dizi (Array) Nedir? Bellekte sürekli yer kaplayan artarda sıralanmış aynı türden verilerin oluşturduğu kümeye dizi (array) denir. Dizi, çok fazla miktardaki tek tip
DetaylıBLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA
BLM-111 PROGRAMLAMA DİLLERİ I Ders-12 Fonksiyonlar Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Fonksiyonlar Fonksiyonlar C de modüller Programlar kullanıcı tanımlı
DetaylıKOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ. BİLGİSAYAR LABORATUVARI II FİNAL SINAVI SORU ve CEVAPLARI(I. ogr)
KOCAELİ ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BİLGİSAYAR LABORATUVARI II FİNAL SINAVI SORU ve CEVAPLARI(I. ogr) 1. Kendisine gönderilen iki karakter dizisini birleştirip geriye tek bir dizi döndüren ve
DetaylıBMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler
BMÜ-111 Algoritma ve Programlama Bölüm 5 Tek Boyutlu Diziler Yrd. Doç. Dr. İlhan AYDIN 1 Problem 100 adet sayı okumak istediğimizi düşünelim. Bu sayıların ortalaması hesaplanacak ve sayıların kaç tanesinin
DetaylıBLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2)
BLM-112 PROGRAMLAMA DİLLERİ II Ders-3 İşaretçiler (Pointer) (Kısım-2) Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Dinamik Bellek Yönetimi Bir program çalıştırıldığında
DetaylıC de Detaylı Üs Alma Programı. C# Dilinde Metot Tanımlama ve Yazdırma
C de Detaylı Üs Alma Programı Bu uygulama yazısında C de pow() fonksiyonunu kullanmadan üs hesabı yapan programı yazmaya çalıştım. Başta tanımladığım float tipinde 2 fonksiyon sayesinde + lı ve li üs değerleriyle
DetaylıALGORİTMA VE PROGRAMLAMA II
ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Bellek ve Adresleme Dinamik Bellek
DetaylıC PROGRAMLAMA D İ L İ
C PROGRAMLAMA DİLİ Diziler Dizi bir kümedir. Aynı tipteki verilere tek bir isimle erişmek için kullanılır. Bir dizi bildirildikten sonra, dizinin bütün elemanları bellekte peşpeşe saklanır. Bu yüzden dizilere
DetaylıBİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ
BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ Yrd.Doç.Dr. Emel ARSLAN earslan@istanbul.edu.tr C Program Akış Kontrol Yapıları Kontrol Komutları Normal şartlarda C dilinde bir programın çalışması, komutların
DetaylıPROGRAMLAMAYA GİRİŞ FONKSİYONLAR
PROGRAMLAMAYA GİRİŞ FONKSİYONLAR Fonksiyonlar C programlama dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya
DetaylıYrd. Doç. Dr. Caner ÖZCAN
Yrd. Doç. Dr. Caner ÖZCAN malloc Malloc fonksiyonu bir değişken için hafızadan bir blok yer ayrılması için kullanılır. Eğer hafızada yeterli alan yoksa fonksiyon NULL döndürür. int *ptr; ptr = (int *)
DetaylıTemel Bilgisayar Programlama Final Sınavı Çalışma Notları
Diziler Temel Bilgisayar Programlama Final Sınavı Çalışma Notları (Dr. Övünç ÖZTÜRK, Dr. Tahir Emre KALAYCI) (İnşaat Mühendisliği ve Gıda Mühendisliği Grupları İçin) Diziler aynı türden bilgileri saklamak
DetaylıALGORİTMA VE PROGRAMLAMA I
ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi
DetaylıMAK 1005 Bilgisayar Programlamaya Giriş. Fonksiyonlar. Prof. Dr. Necmettin Kaya
MAK 1005 Bilgisayar Programlamaya Giriş Fonksiyonlar Prof. Dr. Necmettin Kaya Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır. Daha büyük programlar yazmanın en
DetaylıÖrnek: İki fonksiyondan oluşan bir program. Fonksiyon Tanımı
Fonksiyonlar Fonksiyon Tanımı Değer Döndürmeyen Fonksiyonlar Değer Döndüren Fonksiyonlar Çok Parametreli Fonksiyonlar Değişken Kapsamları Çok Fonksiyonlu Programlar Fonksiyon Tanımı Karmaşıkveuzunprogramları,
DetaylıPointer Kavramı. Veri Yapıları
Pointer Kavramı Veri Yapıları Pointer Kavramı- Pointer Nedir? Göstericiler, işaretçiler ya da pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi tutan değişkenlerdir. Şu ana kadar
DetaylıÇOK BOYUTLU DİZİLER VE DİNAMİK BELLEK YÖNETİMİ İLE İLGİLİ ÖRNEKLER
ÇOK BOYUTLU DİZİLER VE DİNAMİK BELLEK YÖNETİMİ İLE İLGİLİ ÖRNEKLER // 5 adet ogrenci icin 8 adet sinavi // temsil etmesi icin bir ogrenci tablosu // olusturuyoruz. Bunun icin 5x8 bir matris // yaratilmasi
DetaylıBASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN
BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN Basit C Programları: Bir Metni Yazdırmak #include /* program çalışmaya main fonksiyonundan başlar*/ int main() { printf( "C diline hoşgeldiniz!\n"
DetaylıNESNEYE YÖNELİK PROGRAMLAMA
NESNEYE YÖNELİK PROGRAMLAMA Metotlar Şu ana kadar yaptığımız örneklerde hep önceden hazırlanmış ReadLine(), WriteLine() vb. gibi metotları kullandık. Artık kendi metotlarımızı yapmanın zamanı geldi. Bilmem
DetaylıDiziler (Arrays) Çok Boyutlu Diziler
Diziler (Arrays) Çok Boyutlu Diziler ÇOK BOYUTLU DİZİLER Birden fazla indis numarası ile elemanlarına ulaşılan dizilere çok boyutlu diziler denir. Bunlardan en sık kullanılanı çift boyutlu dizilerdir.
DetaylıDr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net
Bilgisayar Programlama Ders 9 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Dizileri Fonksiyonlara Dizileri Fonksiyonlara Bir dizi argümanını fonksiyon içinde bir değer olarak kullanabilmek
DetaylıNaive Bayes Sınıflandırıcısı
Naive Bayes Sınıflandırıcısı Basit haliyle bir sınıflandırma-kategorilendirme algoritmasıdır. İsmini 17.yy da yaşamış Thomas Bayes adında bir matematikçiden alır. Verilerin sınıflandırılmasından daha çok
DetaylıHSancak Nesne Tabanlı Programlama I Ders Notları
DİZİLER Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların isimleri ortaktır. Elemanlar
DetaylıBİLGİSAYAR PROGRAMLAMA. Algoritma ve Akış Şemaları
BİLGİSAYAR PROGRAMLAMA Algoritma ve Akış Şemaları Algoritma tanımı Algoritma özellikleri Algoritma tasarımı Akış şemaları Dallanma simgeleri Döngü simgeleri Akış şeması tasarımı Akış şeması örnekleri Konu
DetaylıBölüm 9. Altprogramlar ISBN
Bölüm 9 Altprogramlar ISBN 0-321-49362-1 Giriş Bu bölümde, programlarda sıkça kullanılan işlemlerin bir araya gruplanması ile oluşturulan altprogramlar incelenecektir. Altprogramlar sayesinde bir programda
DetaylıPROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.
PROGRAMLAMAYA GİRİŞ Öğr. Gör. Ayhan KOÇ Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay., 2007 Algoritma ve Programlamaya Giriş, Ebubekir YAŞAR, Murathan Yay., 2011
DetaylıALGORİTMA VE PROGRAMLAMA II
ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 İşaretçiler ve Diziler Fonksiyon
DetaylıProgramlama Dilleri. C Dili. Programlama Dilleri-ders08/ 1
Programlama Dilleri C Dili Programlama Dilleri-ders08/ 1 Yapısal Veri Tipleri C dili genişletilebilen bir dildir. Var olan veri tipleri kullanılarak yeni veri tipleri tanımlanıp kullanılabilir. Programlama
DetaylıDr. Fatih AY Tel:
Bilgisayar Programlama Ders 5 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Fonksiyonlar Fonksiyonlar Büyük programlar geliştirmenin en iyi yolu, onu orijinal programdan daha kolay
DetaylıALGORİTMA VE PROGRAMLAMA I
ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Giriş Fonksiyonlara Genel Bakış C ve Fonksiyonlar Fonksiyon Tanımı 8. BÖLÜM 3 Fonksiyonlar
DetaylıAlgoritma ve Programlama: Karar Yapıları ve Döngüler
Algoritma ve Programlama: Karar Yapıları ve Döngüler Bir algoritma, herhangi bir programlama dili (C, C++, Pascal, Visual Basic, Java gibi) ile kodlandığında program haline gelir. Algoritmada yer alan
DetaylıThe Big O Notation. The Big O Notation
The Big O Notation The Big O Notation Yazdığımız bir algoritmanın doğru çalıştığından emin olmakla birlikte bu algoritmayı, daha önce yazılmış ve aynı sonucu veren başka algoritmalarla karşılaştırmak isteyebilirsiniz.
DetaylıC dilinde if-else yapısı
C dilinde if- yapısı Merhaba arkadaşlar, bu başlık altında sizlere koşullu ifadelerden bahsedeceğim. Peki nedir bu koşullu ifadeler(if, if, )? Bunu bir koşulun gerçekleşmesine bağlı olarak gerçekleşen
Detaylıİnternet Programcılığı Öğr. Gör. Serkan AKSU PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler
PHP de Dizi-Değişkenler, Nesneler Dizilerle ilgili örneklere geçmeden önce aşağıdaki tabloyu inceleyelim. Tabloda dizi kavramının mantığı açıklanmaktadır. Tablonun tamamını bir dizi olarak düşünün ve bu
DetaylıBİLG Dr. Mustafa T. Babagil 1
BİLG214 20.10.2009 Dr. Mustafa T. Babagil 1 Yapısal bilgi türlerinin tanımlanması. (C++ daki struct yapısı. ) Daha önce öğrenmiş olduğumuz bilgi tipleri char, int ve float v.b. değişkenler ile dizi (array)
DetaylıBM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta
Ön bilgi: Özyineli fonksiyon tanımlanabilmeli. Dizilerin fonksiyon parametresi veya geri dönüş değeri olarak kullanımı bilinmeli. 1. Klavyeden girilen sayı n olmak üzere [1..n] aralığındaki sayıların toplamı
DetaylıALGORİTMA VE PROGRAMLAMA I
ALGORİTMA VE PROGRAMLAMA I Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Giriş Fonksiyonlara Genel Bakış C
DetaylıALGORİTMA VE PROGRAMLAMA I
ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Diziler Dizi Nedir? Dizilerin Bildirimi Dizilere Başlangıç Değeri Verme Dizilerde Arama
DetaylıALGORİTMA VE PROGRAMLAMA II
ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Yapılar ve Birlikler enum Deyimi
DetaylıSınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0
Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Bitirme Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 01.06.2017 Süre : 60 dak. 1. t değişkeni hakkında aşağıdakilerden
DetaylıFONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır.
C PROGRAMLAMA FONKSİYONLAR Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır. Daha büyük programlar yazmanın en kolay yolu onları küçük parçalar halinde yazıp sonra
DetaylıAkış Kontrol Mekanizmaları
Akış Kontrol Mekanizmaları 1 Akış Kontrol Mekanizmaları if else switch for döngüsü for döngüsünün çalışma prensibi for döngüsüyle ilgili örnekler for döngüsüyle ilgili kurallar while döngüsü while döngüsünün
DetaylıBölüm 8, Yrd. Doç. Dr. A. Kadir YALDIR PAÜ Bilgisayar Mühendisliği Bölümü BÖLÜM 8: DİZİLER
BÖLÜM 8: DİZİLER Dizi bir kümedir. Aynı tipte verilere tek bir isimle erişmek için kullanılır. Bir dizinin bütün elemanları bellekte peş peşe saklanır. Dizi Tipi Tek boyutlu İki boyutlu Çok boyutlu Genel
DetaylıBMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI
BİR BOYUTLU DİZİLER Amaçlar: 1. 1 BOYUTLU DİZİLERİ TANIMLAMAK 2. 1 BOYUTLU DİZİ UYGULAMALARI YAPMAK Örnek 5-1 Aşağıdaki program öğrenci notlarını bularak en iyi notu hesaplar. Harf notu şu şekilde hesaplanır:
DetaylıBİL1001 Bilgisayar Bilimlerine Giriş 1
DEÜ Bilgisayar Bilimleri Bölümü BİL1001 Bilgisayar Bilimlerine Giriş 1 Öğr. Gör. Dr. Alper VAHAPLAR 2017 Yaz Okulu Tekrarlı Yapılar Algoritmanın belirli bir kısmının, belirli kere ya da belirli durumlar
DetaylıBLM 112- Programlama Dilleri II. Hafta 2 C Programlarının Bellek Düzeni ve Rekürsif (Özyinelemeli) Fonksiyonlar
1 BLM 112- Programlama Dilleri II Hafta 2 C Programlarının Bellek Düzeni ve Rekürsif (Özyinelemeli) Fonksiyonlar Dr. Öğr. Üyesi Caner Özcan Kendi yolculuğumuzu yapmak için buradayız; bu yolculukta kendimiz
DetaylıAdı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.
Selçuk Üniversitesi Mühendislik Fakültesi Harita Mühendisliği Bölümü ra Sınavı Test Soruları dı soyadı :... Öğrenci no :... İmza :... Tarih, Süre :13.04.2017 60 dak. Dikkat!!! Soru kitapçığında ve cevap
DetaylıBMT 101 Algoritma ve Programlama I 11. Hafta. Yük. Müh. Köksal Gündoğdu 1
BMT 101 Algoritma ve Programlama I 11. Hafta Yük. Müh. Köksal Gündoğdu 1 C++ Fonksiyonlar Yük. Müh. Köksal Gündoğdu 2 C++ Hazır Fonksiyonlar Yük. Müh. Köksal Gündoğdu 3 C++ Hazır Fonksiyonlar 1. Matematiksel
DetaylıDÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN
DÖNGÜLER BMÜ-111 ALGORİTMA VE PROGRAMLAMA-I YRD. DOÇ. DR. İLHAN AYDIN GİRİŞ Ekrana «Merhaba Java» şeklinde bir mesajı 100 defa yazmak istediğinizi düşünelim. Aşağıdaki komut satırını 100 kez yazmak sıkıcı
DetaylıUzaktan Eğitim Uygulama ve Araştırma Merkezi
JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Kapsülleme (Erişim Denetleyiciler) Java da Sınıf Oluşturmak Java da Nesne Oluşturmak Java da Constructor Kavramı Java da This Kavramı Java da Constructor
Detaylıwhile(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO
while(), do-while(), for() Döngü (loop) : Bir koşul sağlandığı (true olduğu) sürece bir veya birden çok komutun tekrarlanması işlemidir. Java Döngüler (loops) While() do-while() for ( ) while ( koşul )
Detaylı2 ALGORİTMA VE AKIŞ DİYAGRAMLARI
İÇİNDEKİLER IX İÇİNDEKİLER 1 GİRİŞ 1 Kitabın Amacı 1 Algoritmanın Önemi 2 Bilgisayarın Doğuşu ve Kullanım Amaçları 3 Programlama Dili Nedir? 3 Entegre Geliştirme Ortamı (IDE) Nedir? 4 2 ALGORİTMA VE AKIŞ
DetaylıSunum İçeriği. Programlamaya Giriş 22.03.2011
Programlamaya Giriş Nesne Tabanlı Programlamaya Giriş ve FONKSİYONLAR Sunum İçeriği Nesne Tabanlı Programlama Kavramı Fonksiyon tanımlama ve kullanma Formal Parametre nedir? Gerçel Parametre nedir? Fonksiyon
DetaylıD İ Z İ L E R A R R A Y S
D İ Z İ L E R A R R A Y S 1 Örneğin 120 adet öğrencinin adını klavyeden girip, daha sonra bunları ekrandan yazdıralım. Bunun için, her öğrenci için ayrı bir değişken tanımlanmalıdır. String ad1; String
DetaylıAlıştırma 1: Yineleme
Alıştırma 1: Yineleme Alıştırma 2: Yineleme H10->H2 çevrimini yapınız 7 2 1 3 2 1 1 1 2 0 Hafta 3: Yineleme Alıştırmaları(1) E1. (44/174) S değerini yineleme kullanarak hesap ediniz S = 1 + 2 + 3 + n Hafta3:
DetaylıÖzyineleme (Recursion)
C PROGRAMLAMA Özyineleme (Recursion) Bir fonksiyonun kendisini çağırarak çözüme gitmesine özyineleme (recursion), böyle çalışan fonksiyonlara da özyinelemeli (recursive) fonksiyonlar denilir. Özyineleme,
DetaylıProgramlama Dilleri 1. Ders 4: Diziler
Programlama Dilleri 1 Ders 4: Diziler Genel Bakış Tanım Dizilerin tanımlanması Dizilere ilk değer verilmesi Yerel ve Global diziler Dizilerin birbirine atanması Diziler ile ilgili örnekler Çalışma soruları
DetaylıBLM 111 ALGORİTMA VE PROGRAMLAMA I
1 BLM 111 ALGORİTMA VE PROGRAMLAMA I ÇOK BOYUTLU DİZİLER, YAPILAR [MULTIDIMENSIONAL ARRAYS, STRUCTURES] ÇOK BOYUTLU DİZİLER Çok boyutlu diziler tanımlayabiliriz. İki boyutta, çok boyutlu diziler bellek
DetaylıHafta 7 C Programlama Diline Giriş ve C Derleyicisi
BLM111 Programlama Dilleri I Hafta 7 C Programlama Diline Giriş ve C Derleyicisi Yrd. Doç. Dr. Caner ÖZCAN C Programlama Dili Tarihçesi C programlama dili 1972 yılında Bell Laboratuarlarında Dennis Ritchie
DetaylıALGORİTMA VE PROGRAMLAMA I
ALGORİTMA VE PROGRAMLAMA I YZM 1101 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Döngüler for Döngüsü while Döngüsü do-while Döngüsü break Deyimi Kullanımı continue Deyimi
DetaylıELN1002 BİLGİSAYAR PROGRAMLAMA 2
ELN1002 BİLGİSAYAR PROGRAMLAMA 2 SIRALAMA ALGORİTMALARI Sunu Planı Büyük O Notasyonu Kabarcık Sıralama (Bubble Sort) Hızlı Sıralama (Quick Sort) Seçimli Sıralama (Selection Sort) Eklemeli Sıralama (Insertion
Detaylı2. Dereceden Denklemin Köklerini Bulan Program
2. Dereceden Denklemin Köklerini Bulan Program [crayon-5bb74e5b18b15225541464/] C++ 2.dereceden denklemin köklerini bulan program [crayon-5bb74e5b18b25989362529/] ÇIKTI; C++ 2. dereceden denklemin köklerini
DetaylıSınav Dağılım & IMKB Endeks
Sınav Dağılım & IMKB Endeks Ege Üniversitesi Bilgisayar Mühendisliği Veri Yapıları Proje-1 Hüseyin YAŞAR 05-06-7657 Didem KAYALI 05-06-7669 Umut BENZER 05-06-7670 Özlem GÜRSES 05-07-8496 Sürüm: 0.2 Bölüm
DetaylıBölüm 2 - C ile Programlamaya Giriş
1 Bölüm 2 - C ile Programlamaya Giriş Başlıklar 2.1 Giriş 2.2 Basit C Programları: Bir Metni Yazdırmak 2.3 Basit C Programları: İki Tam Sayıyı Toplamak 2.4 Hafıza Konuları 2.5 C de Aritmetik 2.6 Karar
DetaylıGenel Programlama II
Genel Programlama II 22.03.2011 1 Yapılar ( Structures ) Yapılar ( structures ); tam sayı, karakter vb. veri tiplerini gruplayıp, tek bir çatı altında toplar. Bu gruplandırma içinde aynı ya da farklı veri
DetaylıBil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi
Bil101 Bilgisayar Yazılımı I Bilgisayar Yüksek Mühendisi Editör Disk 1)Kaynak kodlar editör aracılığı ile oluşturulur. (.c) Kaynak dosya Önişleyici Disk 2)Önişleyici kodlar içerisindeki ilk işleme işini
DetaylıDr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net
Bilgisayar Programlama Ders 6 Dr. Fatih AY Tel: 0 388 225 22 55 fatihay@fatihay.net www.fatihay.net Fonksiyon Prototipleri Fonksiyon Prototipleri Derleyici, fonksiyonların ilk hallerini (prototiplerini)
DetaylıİNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ
İNÖNÜ ÜNİVERSİTESİ MÜH. FAK. BİLGİSAYAR MÜH. BÖL. ALGORİTMA VE PROGRAMLAMA 1 DERSİ LAB. ÖDEVİ AD SOYAD : TESLİM TARİHİ : OKUL NO : TESLİM SÜRESİ : 1 hafta Ödev No : 5 1. Aşağıdaki programların çıktısı
DetaylıBMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN
BMÜ-111 ALGORİTMA VE PROGRAMLAMA AKIŞ KONTROLÜ YRD. DOÇ. DR. İLHAN AYDIN TEMEL AMAÇLAR Bir dairenin yarıçapını kullanıcıdan alarak dairenin alanını hesaplamak istediğimizi düşünelim. Eğer girilen değer
DetaylıELN1001 BİLGİSAYAR PROGRAMLAMA I
ELN1001 BİLGİSAYAR PROGRAMLAMA I DİNAMİK BELLEK YÖNETİMİ TEMEL G/Ç FONKSİYONLARI Dinamik Bellek Tahsisi Tanımlanmış olan dizilere eleman sayısı ve elemanlarının tiplerine göre, sistem belleğinde bir yer
Detaylı2) /* Kullanıcıdan alınan iki sayının obebini alt fonksiyon yardımı ile hesaplayan C programı*/
GENEL TEKRAR 1) /*Kullanıcının belirlediği sayı kadar dikdörtgenin kenar bilgilerini kullanıcıdan alan, dikdörtgenlerin alan ve çevresini alt fonksiyon yardımı ile hesaplayan ve sonuçları ekrana yazan
Detaylı1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.
1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız. [10 puan] int param = 30; int result = 300; if (param > 45) result
DetaylıBLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers)
1 BLM 112- Programlama Dilleri II Hafta 4 İşaretçiler (Pointers) Dr. Öğr. Üyesi Caner Özcan İyilik insanları birbirine bağlayan altın zincirdir. ~Goethe Hafıza Yapısı 2 Bir değişken tanımlandığında arka
Detaylı/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.
Selçuk Üniversitesi Mühendislik Fakültesi Harita Mühendisliği Bölümü Final Sınavı Test Soruları dı soyadı :... Öğrenci no :... İmza :... Tarih, Süre :09.01.2013, 60 dak. Dikkat!!! Soru kitapçığında ve
DetaylıTemel Bilgisayar Bilimleri Ders Notu #4-2. kısım
Nisan 2009 9031150 - Temel Bilgisayar Bilimleri Ders Notu #4-2. kısım Referans: Bugün: 1. Ders Notları. Ders #4.1 Tekrar Dowhile ve for döngüleri Diziler Göstergeler 1. Tekrar for döngüleri Genel yazılımı
DetaylıC++ Dersi: Nesne Tabanlı Programlama
C++ Dersi: Nesne Tabanlı Programlama Bölüm 6: Diziler İçerik Diziler Dizi Elemanlarına İlk Atama Diziler ve Fonksiyonlar İki Boyutlu Diziler İki Boyutlu Dizi Tanımı İki Boyutlu Dizi Elemanlarına Erişim
Detaylı1 PROGRAMLAMAYA GİRİŞ
İÇİNDEKİLER IX İÇİNDEKİLER 1 PROGRAMLAMAYA GİRİŞ 1 Problem Çözme 1 Algoritma 1 Algoritmada Olması Gereken Özellikler 2 Programlama Dilleri 6 Programlama Dillerinin Tarihçesi 6 Fortran (Formula Translator)
DetaylıGiriş. ENF102 Jeoloji
DİZİLER Arrays Giriş Aynı isim altında, aynı türde birden fazla değer tutmak için kullanılan veri yapılarıdır (Data Structure). Dizi bir kümedir; aynı türde verilere tek bir isimle erişmek için kullanılır.
DetaylıALGORİTMA VE PROGRAMLAMA II
ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 Dosya İşlemleri (Rastgele Erişim)
DetaylıBIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ
2017-2018 BaharYarıyılı Balıkesir Üniversitesi Endüstri Mühendisliği Bölümü 7 BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ (Java Programlama Dili ve Algoritmadan Kodlamaya Geçiş) Yrd. Doç. Dr. İbrahim Küçükkoç
DetaylıNesne Yönelimli Programlama
1 Nesne Yönelimli Programlama Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Programlama Dili ve Yazılım Tasarımı, Altuğ B. Altıntaş, Papatya
DetaylıYrd. Doç. Dr. A. Burak İNNER Bilgisayar Mühendisliği
Yrd. Doç. Dr. A. Burak İER Bilgisayar Mühendisliği Algoritma Analizi İçerik: Temel Kavramlar Yinelemeli ve Yinelemesiz Algoritma Analizi Asimptotik otasyonlar Temel Kavramlar Algoritma: Bir problemin çözümüne
DetaylıYrd. Doç. Dr. Caner ÖZCAN
Yrd. Doç. Dr. Caner ÖZCAN Derse Giriş Ders Web Sitesi: www.canerozcan.net Ofis Saatleri: Salı 11:00-13:00 Perşembe 15:30-17:30 ya da email ile randevu alınız: canerozcan@karabuk.edu.tr Kaynak Kitaplar:
Detaylıif (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");
Koşul İfadeleri ve Akış Kontrolü Koşul ifadeleri ve akış kontrolleri programlama dillerinde her zaman en önemli yeri tutmaktadır. Yazdığımız uygulamanın hangi koşulda nasıl davranacağını belirterek bir
DetaylıYAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta
YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ 3. Hafta YAPILAR Farklı veri tipindeki bilgilerin bir araya gelerek oluşturdukları topluluklara yapı (structure) denir. Yani yapılar, birbiriyle ilişkili değişkenlerin
DetaylıELN1001 BİLGİSAYAR PROGRAMLAMA I
ELN1001 BİLGİSAYAR PROGRAMLAMA I DEPOLAMA SINIFLARI DEĞİŞKEN MENZİLLERİ YİNELEMELİ FONKSİYONLAR Depolama Sınıfları Tanıtıcılar için şu ana kadar görülmüş olan özellikler: Ad Tip Boyut Değer Bunlara ilave
Detaylı8. İŞARETCİLER (POINTERS)
8. İŞARETCİLER (POINTERS) Verilerin bilgisayar hafızasında tutulduğu fiziki alan adres olarak tanımlanabilir. Adres, hem donanımla hem de yazılımla ilişkilidir. Donanımsal açıdan adres bellekte yer gösteren
Detaylı/ C Bilgisayar Programlama Yıliçi Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.
Selçuk Üniversitesi Mühendislik-Mimarlık Fakültesi Harita Mühendisliği Bölümü Yıliçi Sınavı Test Soruları dı soyadı :... Öğrenci no :... İmza :... Tarih, Süre :26.11.2012, 60 dak. Dikkat!!! Soru kitapçığında
DetaylıBLM-111 PROGRAMLAMA DİLLERİ I. Ders-7 C Programlama Diline Giriş
BLM-111 PROGRAMLAMA DİLLERİ I Ders-7 C Programlama Diline Giriş Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ C Programlama Dili Tarihçesi C programlama dili 1972
Detaylı