Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Algoritma Bir problemin çözümü için bir adım adım yaklaşımdır.

Benzer bir sunumlar


... konulu sunumlar: "Algoritma Bir problemin çözümü için bir adım adım yaklaşımdır."— Sunum transkripti:

1 Algoritma Bir problemin çözümü için bir adım adım yaklaşımdır.
Doğru olarak tasarlanmış bir algoritma şu ikisini içerir: yürütülecek etkinlik, ve bu etkinliklerin hangi sırada yürütüleceği

2 Yalnızca etkinlik deyimleri kullanılır
Sözde program Programcılara algoritmalar geliştirmede yardım eden yapay ve gayrı resmi bir dil. Yalnızca etkinlik deyimleri kullanılır Örneğin, bildirimleri veya #include’ları sözde programa koymazsınız Bir sözde programı C’ ye çevirmek kolaydır.

3 Kontrol Yapıları Bir programın akışını kontrol eder
Normal olarak, C’de, deyimler ardışık sırada yürütülür Kontrol yapıları programcının bir deyimi bir sonra yürütülecek deyim olarak belirleyebilmesine izin verir. ör: programcı neyin hangi sırada yürütülebileceğini kontrol edebilir.

4 goto’ dan uzak durun goto deyimleri, programın daha önceden belirlenmiş ve o anda bulunulan deyimden önce veya sonra gelen bir satıra atlamasına izin verir Eski programlar goto’ları yaygın olarak kullanırdı, bu hatalı ve takip etmesi aşırı derecede zor olmasıyla sonuçlanır. goto’yu asla kullanmamalısınız. Gerçekten, bu goto hakkındaki yapacağımız son konuşmadır.

5 Üç Temel Kontrol Yapısı
Bütün programlar yalnızca bu üç tip yapısıyla yazılabilirler. ardışık yapı ör: birinin ardından başka biri seçim yapısı tekrarlı yapı ör: bazı etkinliklerin tekrar edilmesi

6 if yapısı (tekrar inceleme)
Eğer bazı koşullar doğruysa bunu yap Örnek: if ( x == y ) { printf(“ x is equal to y!\n“ ) ; } Her programlama dilinin farklı bir if yapısı vardır.

7 Bir başka if örneği if ( grade >= 60 ) { printf( “You passed!\n” ); }

8 Bir değişiklik ile if: if else
Temel olarak: eğer bir durum doğruysa bunu yap aksi halde başka bir şey yap Örnek: if ( grade >= 60 ) printf( “You passed!\n” ); else printf( “You failed!\n” );

9 “Akış Diyagramı” Nedir?
bir programın akışını anlayabilmenize yardım eden görsel bir araçtır Akış diyagramını su boruları olarak düşünebilirsiniz: En tepede suyu dökersiniz Su borular boyunca dökülür ve aşağı doğru çekilir.

10 Akış Diyagramı Temelleri
B aklava biçimi (karar sembolü) koşulları içerir Dikdörtgenler çalışma deyimlerini temsil eder. Örneğin: printf() akış hattı

11 Akış Diyagramı Temelleri 2
Bağlantı sembolü grade >=60 not >=60 doğru print “passed” yanlış

12 if/else Akış Diyagramı
yanlış grade >=60 doğru Print “You failed” Print “You passed”

13 ve bir sağ ( } )kırlangıç parantez ile biterler.
Bloklar Bir sol kırlangıç parantez ile ( { ) başlarlar { - - } ve bir sağ ( } )kırlangıç parantez ile biterler. Değişkenleri bir sol parantezden hemen sonra bildirebilirsiniz (yürütülebilir deyimlerden önce geldiği sürece). Değişkenler yalnızca o kod bloğunda erişilebilir olacaktır.

14 Bloklar, devam Hatırlayın, bir if yalnızca bir deyime bakar. Bunun yerine if’e bağlı olarak birden fazla deyimi almak için kod bloğu kullanmanız gerekir. Örneğin: if ( grade >= 60 ) { printf ( "You passed!!!\n“ ); printf ( "Congratulations!\n“ ); }

15 Kod bloğu içerisindeki herşey içerden başlamalıdır
İçerlek yazma Kod bloğu içerisindeki herşey içerden başlamalıdır Hızlı bir göz gezdirmede blokları görmenize yardım eder Şu şekilde kod yazmaktan kaçının: if (grade >= 60) { printf ("You passed!!!\n"); printf ("Congratulations!\n"); } Bu geçerli bir C kodudur, fakat bloğun görülmesi kolay değil: kötü stil

16 Örnek printf ( "You passed!!! \n“ ); printf ( "Congratulations!\n“ );
/* If/Else Deyimlerine Giriş */ #include <stdio.h> int main () { int grade; /* variable to hold user input */ /* kulanıcı girişini tutacak değişken */ printf ( "Enter your course grade: “ ); scanf ( "%d", &grade ); if ( grade >= 60 ) printf ( "You passed!!! \n“ ); printf ( "Congratulations!\n“ ); } else printf ("You failed!\n"); } /* end main program */ /* ana programı bitir*/ Note the indentation İçerlek yazmaya dikkat edin

17 İlişkisel İşleçler (tekrar inceleme)
farklı != eşittir == Küçük eşit <= Büyük eşit >= Küçüktür < Büyüktür > Anlamı Operator (İşleç)

18 Eşitlik Testi Eşitlik için test, = = operatörünü kullanın
if ( grade == 100 ) { printf ( “Perfect Score!” ) ; } Farklılık testi, ! = operatörünü kullanın if (grade != 100) printf (“You messed something up”);

19 Atamalar yoluyla eşitlik (yeniden inceleme)
Hatırlayın Gets (almak) eşitlik değildir. if ( grade = 100 ) printf( “Perfect Score!” ); Bu durumda, tek bir = karakteri kullanıyoruz. (Gerçekte = = ‘ i kullanmak istiyoruz) Tam olarak ne yazacak? Notun DOĞRU veya YANLIŞ olmasına bağlı

20 C’ de (yaşamdan farklı olarak) doğru çok basittir.
Doğruları Anlamak C’ de (yaşamdan farklı olarak) doğru çok basittir. 0 Yanlıştır. Bunun dışındaki her şey doğrudur. Örneğin: -1 doğrudur 299 doğrudur 0 yanlıştır.

21 Doğruluk Örneği /* Doğruyu Anlama */ #include <stdio.h> int main() { int x = -100; int y = 299; int z = 0; if ( x ) printf ("x: %d\n", x); if ( y ) printf ("y: %d\n", y); if ( z ) printf ("z: %d\n", z); } Bu tamamen geçerli bir programdır. Çıktı: x: -100 y: 299 Dikkat: z yazdırılmadı çünkü if şartı sağlanmadı.

22 Atamalar Yoluyla Eşitlik
Verilen: if (grade = 100) printf (“Perfect Score!”); Bu deyim şunu yapar. Grade’ e (not’ a) 100 değeri atandı. 100 doğru olduğundan (sıfır değil) şart her zaman doğrudur. Öğrenci notu ne olursa olsun her zaman “Perfect Score’” diyecektir.

23 içiçe if deyimleri Bir if/else yapısı içinde bir başka if-else yapısı içeriyorsa buna içiçe if-else denir. if (grade > 60) if (grade > 70) printf(“You passed”); else printf(“You passed but need a tutor”); printf(“You failed”);

24 else if if (grade > 70) printf(“You passed”);
Genellikle else deyimi içinde içiçe yapı kullanmayı deneyin. İçerlek yazmaya dikkat edin. if (grade > 70) printf(“You passed”); else if (grade > 60) printf(“You passed but need a tutor”); else printf(“You failed”);

25 && - Mantıksal VE if ((total > 50) && (status == 0))
printf(“Your shipping will be free\n”); Ve işlecini (&&) kullanırken, bileşik ifadenin doğru olması için her iki ifadenin de doğru olması gerekir. doğruluk tablosu

26 || - Mantıksal VEYA if ((total > 50) || (status == 0))
printf(“Your shipping will be free\n”); Veya işlecini (||) kullanırken, bileşik ifadenin doğru olması için en azından bir ifade doğru olmalıdır. doğruluk tablosu

27 daha fazla && ve || hakkında
İçiçe yapıyı indirgemek için kullanılabilir && daha yüksek önceliğe sahiptir. Doğruluk veya yanlışlık bir kez tespit edildikten sonra değerlendirme durur - aşağıdaki örnekte, eğer semesterAverage (sömestr Ortalaması) > 90 olursa finalExam (final sınavı) yapılmayacak if ((semesterAverage > 90)||(finalExam > 90)) printf(“Student gets an A\n”);

28 mantıksal tersleme ! if !(grade == goal)
printf(“You missed your goal\n”); ! Yüksek önceliğe sahiptir bu yüzden parantez kullanmalısınız Pek çok durumda, uygun ilişkisel işleçlerle koşulu daha farklı ifade ederek mantıksal terslemeden kaçınabiliriz. Not: bu bir birli işleçtir.

29 #define #define önişlemci direktifi sembolik sabitler oluşturur (daha sonra anlatacağımız farklı bir kullanımı da vardır) #define PI Sembolik sabit PI ile ilgili tüm altdizisel olaylar kod içinde sayısal sabit ile yer değiştirecektir.

30 Kod içinde “sihirli sayılar” kullanmaktan kaçının
#define (geri sayım) Kod içinde “sihirli sayılar” kullanmaktan kaçının Değişkenlerden farklı olarak, bir sembolik sabitin değerini değiştirmemelisiniz Değişken bildirimlerinizden önce kullanılmalıdır TÜMÜ BÜYÜK KARAKTER olmalıdır, Macar işaret ve sembollerle gösterme kullanıyorsanız istisna e.g. #define iMY_CONSTANT 3600

31 Sihirli sayılardan kaçının!
Sihirli sayılar kodlarınız boyunca kullandığınız aktif sayılardır ör: 10000’ e böleniniz Eğer bunları değiştirme ihtiyacı duyarsanız, en kötüsü bütün olayları bulmanız zaman alır, en kötüsü birkaç tanesini kaçırabilirsiniz Eğer #define kullanırsanız, yalnızca kodların en başındaki değeri bir kez değiştirmeniz gerekir E.g #define f_ACCEPTABLE_THRESHOLD


"Algoritma Bir problemin çözümü için bir adım adım yaklaşımdır." indir ppt

Benzer bir sunumlar


Google Reklamları