Şekil-1: C++ da While Döngüsü Çalışma Mantığı
Soru-1: Klavyeden girilen 5 sayının toplamını hesaplayan programı yazınız
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
int sayac=0; int sayi; int toplam=0; while(sayac<5) { printf("\n Lütfen %d. sayiyi giriniz : ",sayac+1); scanf("%d",&sayi); toplam+=sayi; //Burada bir noktanın kaçırılmaması gerekiyor. Şu anda döngü sonsuza kadar devam eder. //Çünkü sayac<5 şartını bozacak hiçbir durum yok. Bunu bozabilmek için sayac değişkenini 1 arttırmalıyız sayac++; //Sayac değişkenini bir arttırıyorum ki while döngüsü sonlanabilsin } printf("\n Girmis oldugunuz sayilarin toplami : %d",toplam); |
Soru-2: 1 den 20 ye kadar olan çift sayıları ekrana yazdıran programı yazınız
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// Çözüm yolu: 1 den yirmiye kadar bir sayac yardımı ile döngü kurarız. //Döngü içerisinde ise mevcut sayının 2 ile tam bölünüp bölünmediği denetlenir //Bölünmesi halinde de yazdırılır. int sayac=1; while(sayac<=20) { if(sayac%2==0) { printf("%d \n",sayac); } sayac++; } |
Soru-3: Klavyeden girilmiş bir sayının faktoriyel ini hesaplayan programı yazınız
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
//İki adımda soruyu çözelim //1. adımda kullanıcıdan sayıyı alalım //2. adımda ise faktoriyel hesabını yapıp ekrana yazdıralım //1. Adım int sayi; printf("Lutfen bir sayi giriniz"); scanf("%d",&sayi); //2. Adım //While döngüsünün sayıdan başlayıp 1 e kadar gelmesi lazım int carpim=1; //Neden 1 yazdık? while(sayi>=1) { carpim *=sayi; //Neden başlangıçta carpimi 1 den başlattık //Çünkü sayactan başlayıp 1 e kadar olan sayiları carpim isimli değişkenle çarpmak istiyoruz //Daha sadesi başlangıç değeri bir olmasaydı sıfır veya farklı bir sayı ile çarpardı. Etkisiz elemanı bundan dolayı yazdık sayi--; } printf("\n Islemin sonucu : %d",carpim); |
Soru-4: 0 dan 100 e kadar olan sayılardan 5 ve 5 in katı olan sayıları mod operatörünü kullanmadan ekrana yazdıran programı yazınız
1 2 3 4 5 6 |
int sayac=5; while(sayac<=100) { printf("%d \n",sayac); sayac+=5; } |
Soru-5: Her satırda 15 tane * karakteri ve toplamda 15 satırdan oluşan programı iç içe for döngüleri ile gerçekleştiriniz
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
//İçerideki for satır yıldızlarını yazdırmak için, dışarıdaki for ise satırlar için kullanılsın //Kısıtlama: Printf ile sadece tek bir yıldız yazdırabilirsiniz //İki değişkene ihtiyacımız var. Biri iç for için, diğeri dış for için int DisFor=0; while(DisFor<15) { int IcFor=0; while(IcFor<=15) { IcFor++; printf("*"); } DisFor++; printf("\n"); } |
Soru-6: Her satırda 1 sayı fazla yazacak şekilde toplamda 15 satır yazı yazacak programı yazınız
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
//Örneğin ilk satırda 1 yazarken, ikinci satırda 1 - 2 yazmalı int DisFor=0; while(DisFor<15) { int IcFor=0; while(IcFor<=DisFor) { IcFor++; printf("*"); } DisFor++; printf("\n"); } |
Soru-7: 1 den 5 e kadar olan sayıların çarpım tablosunu oluşturunuz
1 2 3 4 5 6 7 8 9 10 11 12 13 |
int IcFor,DisFor; DisFor=1; while(DisFor<5) { IcFor=1; while(IcFor<5) { printf("%d x %d = %d \t",DisFor,IcFor,DisFor*IcFor); IcFor++; } printf("\n"); DisFor++; } |
Do – While Döngüsü
Şekil-2: C++ da Do-While Döngüsü Çalışma Mantığı
Osman SELVİ