|
|
| |
| | #1 | |
| Çevrimdışı ![]() IF Ticaret Sayısı: (0) | Cevap: C++ Dersleri Soru -> Klavyeden girilecek bir sayının asal sayı olup olmadığını ekrana basan bir program yazınız. Kod: Kodu kopyalamak için üzerine çift tıklayın!
---------- Soru -> Aşağıdaki eşkenar dörtgen çıktısını üretecek bir program yazınız: Kod: Kodu kopyalamak için üzerine çift tıklayın!
| |
| | |
| | #2 |
| Çevrimdışı ![]() IF Ticaret Sayısı: (0) | Cevap: C++ Dersleri Girilen Rakamsal Değerin; 18 ile 65 arasında olup olmadığını kontrol Edelinm.. Kod: Kodu kopyalamak için üzerine çift tıklayın!
---------- Yukarda; koşullu ifadeleri görmüştük. Hatırlatmak için üzerinden geçersek, if ile bir ifadeyi kontrol ediyor ve doğruysa, buna göre işlemler yapıyorduk. Bir de if - else yapısı vardı. if - else yapısında da, koşulu gene kontrol ediyor, doğruysa if bloğunun altında kalanları yapıyorduk; yanlışsa, else bloğunda olan kodlar işleme alınıyordu. Son derece basit bir mantık üzerine kurulmuş bu yapıyla, yapılamayacak kontrol yoktur. Ancak öyle durumlar vardır ki, if - else yapısı yeterli verimliliği sunamaz. Diyelim ki, birden fazla kontrol yapmanız gereken bir durum oluştu. Hatta örnek vererek konuyu daha da somutlaştıralım. İstenilen bir programda, klavyeden size yaş bilgisi veriliyor. Siz de bu bilgiye göre, şayet yaş 18'den küçükse çocuk; 18-30 yaş arasında genç; 30-50 yaş arasında ortayaş diye bir mesaj bastırıyorsunuz. Basit bir program. Şimdi bunu sadece if yapısıyla kuruyor olsaydık, her seferinde yaşın uygun aralıklara düşüp düşmediğini kontrol eder ve ona göre sonucu ekrana bastırırdık. Ama bu son derece verimsiz bir yöntem olurdu. Çünkü zaten yaş bilgisinin genç olduğuna dair bir karar vermişsek, sonrasında tutup bunun yaşlı olup olmadığını kontrol etmenin bir esprisi olmayacaktır. Verilebilecek en kötü cevabı aşağıda bulabilirsiniz Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. Kod: Kodu kopyalamak için üzerine çift tıklayın!
IF - ELSE Kullanarak daha efektif ve yakisikli hale getirelim simdi de bu kodu :P Kod: Kodu kopyalamak için üzerine çift tıklayın!
Yukardaki program daha efektif bir yapı sunmuş olmasına rağmen, eğer kontrol ettiğimiz aralıkların sayısı çok fazla olsaydı, tam bir başbelası olacaktı! Çünkü if - else içinde, bir başka if - else bloğu ve onun içinde bir başkası... bu böyle sürüp gidecekti. Kısacası performans olarak çok bir şey değişmese de, kodu yazan ve/veya okuyacak olan için tam bir eziyete dönüşecekti. İşte bu nedenlerle daha efektif yapılara ihtiyaç duyuyoruz. |
| | |
| | #3 |
| Çevrimdışı ![]() IF Ticaret Sayısı: (0) | Cevap: C++ Dersleri Bunlar Kendi calismalarimdir Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. Kod: Kodu kopyalamak için üzerine çift tıklayın!
Bu programda ekrana, 10 tane toXic yazdirir, i'nin değeri artirarak, 10 satir toXic yazdirilir. Gördüğünüz gibi, bir önceki örneğimize oldukça benzer bir yapıda, yazıldı. Tek fark i'nin değeri 0'da olsa, 1000'de olsa, en azından bir kez Merhaba Dünya'nın yazılacak olmasıdır. Ancak while'de kontrol önce yapıldığı için, hiçbir şey ekrana yazılmaz. Birde Bunu For ile yapalim.. Kod: Kodu kopyalamak için üzerine çift tıklayın!
Cok acık ve sade bir kod oldu. for döngüleriyle ilgili bazı özel durumlarda vardır. for döngüsü içersine yazdığınız ilk değer atama, kontrol ve arttırma işlemlerini tanımlama esnasında yapmanız gerekmez. Aşağıda verilen kod, yukardakiyle tamamen aynı işi yapar. Farkı, i'nin daha önce tanımlanmış olması ve arttırma/azaltma işinin döngü içinde yapılmasıdır. Kod: Kodu kopyalamak için üzerine çift tıklayın!
Her 2 döngüde aynı işlemi fakat, ayri kodlarla verdi. Cıktısı aynı, yazılımı farkli oldu. Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. Konu toXic tarafından (01 Ocak 2010 Saat 15:15 ) değiştirilmiştir. |
| | |
| | #4 |
| Çevrimdışı ![]() IF Ticaret Sayısı: (0) | Cevap: C++ Dersleri break Komutu Bazı durumlarda, döngüyü aniden sonlandırmak isteriz. Bunun için 'break' komutunu kullanırız. Döngüyü aniden sonlandırmak veya döngüyü kırmak işlemini, zaten daha önce switch case'lerde kullanmıştık. Bahsetmediğimiz şey, bunun her döngü içersinde kullanılabileceğiydi. Aşağıdaki programı inceleyelim: Kod: Kodu kopyalamak için üzerine çift tıklayın!
Program için koyulmuş açıklamalar ( comment ) zaten neyin n'olduğunu açıklıyor. Kısaca bir şeyler eklemek gerekirse, bitişinin nerede olacağını bilmediğimiz bir döngüyü ancak, break komutuyla sonlandırabiliriz. Şartlar sağlandığında, break komutu devreye girer ve döngü sonlandırılır. Bunun gibi bir çok örnek yaratmak mümkündür. continue Komutu break komutunun, döngüyü kırmak için olduğundan bahsetmiştik. Bunun dışında işlem yapmadan döngüyü devam ettirmek gibi durumlara da ihtiyacımız vardır. Bunun içinde continue ( Türkçe: devam ) komutunu kullanırız. Kod: Kodu kopyalamak için üzerine çift tıklayın!
0 ile 10 arasındaki tek sayıları gösteren program örneğini yukarda görebilirsiniz. Elbette ki bu işi daha farklı ve daha iyi yapan bir program yazabilirdik. Ama şimdilik continue komutunun nasıl kullanıldığını inceleyelim. Program bir for döngüsü çalıştırmaktadır. Her defasında i değişkenin 2'ye göre modu alınır. Eğer sonuç 0'sa, bu sayının çift olduğunu gösterir. Dolayısıyla, bunun ekrana yazdırılmaması gerekir. Bu yüzden, döngü içersindeki işlemleri sürdürmek yerine, altta kalan kodları atlarız. Burada continue komutu kullanılır ve kullanıldığı noktadan itibaren olan işlemler yapılmaz. Döngü başa döner, aynı işlemleri yapar. Bu sefer i tek sayı olacağından continue komutu çalışmaz ve sayıyı ekrana bastırırız. goto Yapısı C programlama dilinde bulunan bir başka yapı, goto deyimidir. Koyacağınız etiketler sayesinde, programın bir noktasından bir başka noktasına atlamanızı sağlar. goto, bir döngü değildir ancak döngü olarak kullanılabilir. goto, çalışabilmek için etiketlere ihtiyaç duyar. Etiketler, vereceğiniz herhangi bir isme sahip olabilir. Etiket oluşturmak için bütün yapmanız gereken; etiket adını belirleyip, sonuna iki nokta üst üste eklemek ( : ) ve programın herhangi bir yerine bunu yazmaktır. goto deyimi kullanarak bu etiketleri çağırırsanız, etiketin altında bulunan kodlardan devam edilir. goto ve etiketlere dair genel yapıyı, akış diyagramıyla birlikte aşağıda bulabilirsiniz: Kod: Kodu kopyalamak için üzerine çift tıklayın!
NOT: goto deyimi tek başına da kullanılabilir. Fakat mantıksal bir sınama olmadan, goto yapısını kullanmanız, sonsuz döngüye neden olacaktır. Şimdi goto ifadesiyle basit bir döngü örneği oluşturalım. Önceki seferlerde olduğu gibi ekrana 10 defa "Merhaba Dünya" yazdıralım: Kod: Kodu kopyalamak için üzerine çift tıklayın!
İstediğiniz sayıda etiket koyup, goto kullanarak, programın herhangi bir noktasına ulaşabilirsiniz. Programınız, etiket altında kalan kısımdan itibaren çalışır. goto yapısıyla gelen esneklik, ilk bakışta oldukça güzel görünüyor. Ancak goto için birçok kaynak, "ya hiç kullanmayın ya da olabildiğince az kullanın" demektedir. Okunup, anlaşılması zor ve üzerinde çalışılması güç bir koddan, herkesin uzak durması gerekir. İngilizce'de, karman çorman koda, "spagetti kod" adı verilmiştir. goto deyimi, kodunuzun spagetti koda dönüşmesine neden olur. Çünkü program akışının takibini zorlaştırıp, kodun okunabilirliğini azaltır. Diliyorsanız, goto deyimini kullanabilirsiniz. Ama zorunlu kalmadıkça kaçınmak en iyisi... Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. |
| | |
| | #5 |
| Çevrimdışı ![]() IF Ticaret Sayısı: (0) | Cevap: C++ Dersleri “While” Döngüsü for döngüsüyle 0′da 100′e kadar 10′un katları olan bütün sayıları santigrat derece kabul edip bunları fahrenayta çeviren bir program yazalim.. Kod: Kodu kopyalamak için üzerine çift tıklayın!
Şimdi gelelim while döngüsüne. Yine aynı örnek üzerinden while döngüsünü anlatacağım. Aşağıdaki program for döngüsüyle aynı işi yapar. Kod: Kodu kopyalamak için üzerine çift tıklayın!
Gördüğünüz gibi ilk programla ikincisi arasında çok az fark var. While komutu şu şekilde kullanılır: Kod: Kodu kopyalamak için üzerine çift tıklayın!
For döngüsünden farklı olarak burada değişkenin başlangıç değerini ve döngü başa döndüğünde yapılacak işlemi yazmadık. Bu yüzden döngü ilk fahrenayt değerini hesaplamaya çalıştığında bir s değerinin olması gerekir. Bu yüzden, Kod: Kodu kopyalamak için üzerine çift tıklayın!
yazarak döngüden önce ilk s değerini belirlemiş olduk. Yani değişkenin başlangıç değeri 0 olacaktır. Döngü başa döndüğünde yapılacak işlemi de döngü sonunda belirliyoruz. Bu da, Kod: Kodu kopyalamak için üzerine çift tıklayın!
işlemidir. Burada s değeri 10 arttırılır ve yeni değer s‘ye eşitlenir. Bütün bunları göz önüne alırsak program şu şekilde çalışır: İlk santigrat derecemiz 0′dır (s=0). Program while satırına geldiğinde koşulu dikkate alır. Eğer koşul sağlanıyorsa döngüye girer, aksi halde girmez. İlk durumda s değeri 0 olduğu için s<100 koşulu sağlanmış olur. Döngüye girilir ve döngü içindeki işlemler sırayla yapılır. Önce santigrat dereceye karşılık gelen fahrenayt değeri hesaplanır. Daha sonra bu ekrana yazdırılır ve sonunda s değeri 10 arttırılır. Daha sonra döngü tekrar başa yani while satırına döner. Bu işlemler s=100 durumuna kadar yapılır. s=110 olduğunda ve döngü başa döndüğünde s<100 koşulu sağlanmayacağı için döngüden çıkılır ve program sonlanır.. Konu toXic tarafından (03 Ocak 2010 Saat 13:52 ) değiştirilmiştir. |
| | |
| | #6 |
| Çevrimdışı ![]() IF Ticaret Sayısı: (0) | Cevap: C++ Dersleri Kod: Kodu kopyalamak için üzerine çift tıklayın!
Burada söyle bir sonuc verir, yani 0-2-4-6-8- ekrana ibrahim yazdirir; Kod: Kodu kopyalamak için üzerine çift tıklayın!
Bu Sekilde ise; 10 adet ibram yazdirir. Kod: Kodu kopyalamak için üzerine çift tıklayın!
Bu Sekilde. 2 program arasindaki tek değişiklik; 1. programda -> printf("%2d: ibrahim\n",(i++)); 2. programda -> printf("%2d: ibrahim \n",(i+1)); Bu Sekilde. Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. Derleyicisiz calismak, okumadan calismaya benzer Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. |
| | |
| | #7 | ||||
| Çevrimdışı ![]() IF Ticaret Sayısı: (0) | Cevap: C++ Dersleri
Kod: Kodu kopyalamak için üzerine çift tıklayın!
Bu Sekilde ise; 10 adet ibram yazdirir. Kod: Kodu kopyalamak için üzerine çift tıklayın!
burayı boyle yapsakta oluyormuş. inceleye inceleye ogrenıcem insallah Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. Kod: Kodu kopyalamak için üzerine çift tıklayın!
Konu Kyo tarafından (06 Mayıs 2020 Saat 03:54 ) değiştirilmiştir. | ||||
| | |
| | #8 |
| Çevrimdışı ![]() IF Ticaret Sayısı: (0) | Cevap: C++ Dersleri anlatım biraz c e kaymis mi diyeyim yoksa neredeyse tümü c olmus mu baslıgı c++ yerine c olarak degiştirmeniz daha guzel olacak galiba ve [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] adresinden aynı konuyu ayrıntılı bicimde devam edebilirsiniz |
| | |
| | #9 |
| Çevrimdışı ![]() IF Ticaret Sayısı: (0) | Cevap: C++ Dersleri C++ kolay görünür ama oldukça zorlayıcı sorulara denk geliyorsunki algoritma bile kurmada zorlanabiliyordum tabi aştık artık,üni zamanı keşfetseydim keşke sizi @[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] ,güzel anlatım olmuş bu arada Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
__________________ ..let's raise a glass or two to all the things i've lost on you.. |
| | |
![]() |
| Etiketler |
| dersleri |
| Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| |
Benzer Konular | ||||
| Konu | Konuyu Başlatan | Forum | Cevaplar | Son Mesaj |
| PHP Dersleri 1 | KraLiSHE | PHP | 1 | 08 Mayıs 2009 09:32 |
| PHP Dersleri 5 | KraLiSHE | PHP | 1 | 21 Mart 2009 22:18 |
| PHP Dersleri 3 | KraLiSHE | PHP | 0 | 21 Mart 2009 14:17 |
| PHP Dersleri 2 | KraLiSHE | PHP | 0 | 21 Mart 2009 14:15 |
| PHP Dersleri...? | Mack | PHP | 5 | 27 Ekim 2008 08:21 |