Category: Courses
Feedback
Ders hakkında geri bildirimleriniz önemlidir.
Kayıtlı öğrencilerin her hafta geri bildirimleri için LMS sistemi üzerinden “Geri Bildirim Formu” açılacaktır.
Her doldurulan geribildirim için 0.5 puan sene sonu notuna eklenecektir.
Anonim olarak geri bildirimde bulunmak için aşağıdaki linki kullanabilirsiniz.
Projects
2019-2020 Yılı Verilen Projeler ve Öğrencilerin Hazırladığı Proje Teslim Dosyaları:
Yapay Sinir Ağları ile Covid-19 Sağkalım Öngörüsü
Covid-19 salgını nedeniyle enfekte olup iyileşen ve hayatını kaybeden kişilerin çeşitli özellikleri kullanılarak, hastalıklı kişilerin hastalığı atlatıp atlayamayacağının (sağkalım) öngörüsünü yapan bir sistem geliştirilecektir. Bu analizin yapılması için Yapay Sinir Ağları (Neural Networks) algoritması gerçeklenecektir. Geliştirilen sistemin başarımı ve hastalık özellikleri kombinasyonları sisteme beslenerek özelliklere göre sağkalım analizleri yapılacaktır.
Detaylı proje spesifikasyonları için;
http://levent.tc/files/courses/algorithms_and_programming_ii/projects/project1/BLM102_proje1_ysa_covid19.pdf
Görüntü İşleme Yöntemleri ile Üretim Hattı Analizi
Fabrikalarda üretim hatlarından çıkan ürünlerin analizi yüksek çözünürlüklü, yüksek FPS (Frame per Second) özellikli kameralar ile yapılmaktadır. Bir üretim hattından çıkan üç farklı tür ürünün, video kayıtı boyunca kaç’ar adet üretildiğinin tespit edileceği bir sistem geliştirilecektir. OpenCV (Open Computer Vision) kütüphanesi kullanılacaktır.
Detaylı proje spesifikasyonları için;
http://levent.tc/files/courses/algorithms_and_programming_ii/projects/project3/BLM102_proje3_gorunti_isleme_uretim_hatti.pdf
Evrim Arda Kalafat, Arda Alhan
Rapor: http://levent.tc/files/courses/algorithms_and_programming_ii/projects/2019-2020-tamamlananlar/BLM102_uretim_hatti_rapor_arda_arda.pdf
Github: https://github.com/rhgod/Goruntu_isleme_projesi
Youtube: https://www.youtube.com/watch?v=82WAORLat_w
Ömer Sait Yorulmaz, Ahmet Hazar Haspolat, Mustafa Berk Taşkın, Alp Yılmaz
Rapor: http://levent.tc/files/courses/algorithms_and_programming_ii/projects/2019-2020-tamamlananlar/BLM102_uretim_hatti_rapor_omer_ahmet_mustafa_alp.pdf
Github: https://github.com/fbuni/analysis-of-production-line
Youtube: https://www.youtube.com/watch?v=SSqTy6ABNVA
Telefon Kayit Sistemi
Bir telefon rehberinde bulunması gereken kayıt ekleme, kayıtları gösterme, kayıtları modifiye etme, kayıt arama ve silme kabiliyetlerine sahip olan bir sistem geliştirilecektir. Geliştirilen sistem, kullanıcıya komut satırı arayüzü sunarak rehberin kullanımını sağlayacaktır.
Detaylı proje spesifikasyonları için;
http://levent.tc/files/courses/algorithms_and_programming_ii/projects/project3/BLM102_proje2_telefon_kayit_sistemi.pdf
Ahmet Batuhan Yılmaz, Mert Meriç Karadeniz, Mehmet Rauf Füzun, Hayat Zehra Demir
Rapor: http://levent.tc/files/courses/algorithms_and_programming_ii/projects/2019-2020-tamamlananlar/BLM102_telefon_rehber_rapor_ahmet_mert_rauf_hayat.pdf
Github: https://github.com/lashraelrx/phone-contact
Youtube: https://www.youtube.com/watch?v=Hi2wS61ALXs
Taha Yasin Öztürk, Alp Eren Gürle
Rapor: http://levent.tc/files/courses/algorithms_and_programming_ii/projects/2019-2020-tamamlananlar/BLM102_telefon_rehber_rapor_alp_taha.pdf
Github: https://github.com/alpgurlee/Telefon-Kayit-Sistemi
Youtube: https://www.youtube.com/watch?v=S9s6NwReolg
Erdem Şentürk, Mehmet Çolak, Cüneyt Balcı, Ogün Berat Gürses
Rapor: http://levent.tc/files/courses/algorithms_and_programming_ii/projects/2019-2020-tamamlananlar/BLM102_telefon_rehber_rapor_erdem_mehmet_cuneyt_ogun.pdf
Github: https://github.com/cuneytbalci/TelefonKayitSistemi
Youtube: https://www.youtube.com/watch?v=ReouQs6Xues
Hasan Demir, İlhan Ersoy, Berk Tunç
Rapor: http://levent.tc/files/courses/algorithms_and_programming_ii/projects/2019-2020-tamamlananlar/BLM102_telefon_rehber_rapor_hasan_ilhan_berk.pdf
Github: https://github.com/hsndmr15/Telefon-Rehberi-CPP
Youtube: https://www.youtube.com/watch?v=3-zoX0flIlw
İrem Kalkanlı, Ayşen İpek Çakır, Deniz Uzun, Özlem Çalı
Rapor: http://levent.tc/files/courses/algorithms_and_programming_ii/projects/2019-2020-tamamlananlar/BLM102_telefon_rehber_rapor_irem_aysen_deniz_ozlem.pdf
Github: https://github.com/iremkalkanli/BLM-102-Projesi-Telefon-Kayit-Sistemi
Youtube: https://www.youtube.com/watch?v=5ZdfOf9IghM
Serhat Erdoğan, Hüseyin Berk Işıldak
Rapor: http://levent.tc/files/courses/algorithms_and_programming_ii/projects/2019-2020-tamamlananlar/BLM102_telefon_rehber_serhat_huseyin.pdf
Homeworks
Lecture Notes
Syllabus
Hafta | Konu | Tarih |
---|---|---|
1 | Giriş | 6.2.2020 |
2 | Sınıflar ve Objelere Giriş | 13.2.2020 |
3 | Vektörler | 20.2.2020 |
4 | Sınıflar I (Classes) | 27.2.2020 |
5 | Sınıflar II (Classes) | 5.3.2020 |
6 | Operatör Aşırı Yükleme | 12.3.2020 |
7 | Kalıtım (Inheritance) | 19.3.2020 |
8 | Vize | 26.3.2020 |
9 | Çok Biçimlilik (Polymorphism) | 2.4.2020 |
10 | Şablonlar (Templates) | 9.4.2020 |
11 | Stream IO ve İstisna İdaresi (Exception Handling) | 16.4.2020 |
12 | Resmi Tatil | 23.4.2020 |
13 | Dosya Okuma/Yazma ve String İşleme | 30.4.2020 |
14 | STL (Standard Template Library) | 7.5.2020 |
15 | Final ve Proje Sunumları | Sınav Haftası |
Ders Açıklaması
Bu dersin amacı, nesneye yönelimli programlama ilkelerini ve C ++ ‘ı kullanan teknikleri kapsar. Konular arasında işaretçiler, sınıflar, opreratör aşırı yükleme, veri soyutlama, bilgi gizleme, enkapsülasyon, kalıtım, polimorfizm, dosya işleme, şablonlar, istisnalar, tasarım kalıpları ve düşük seviye dil özellikleri bulunur.
Ders Saatleri (Teorik + Lab)
Perşembe 9.00-13.00
Öğretim Elemanları ve Ofis Saatleri
Dr. Öğr. Üyesi Vecdi Emre Levent, Ofis 311 – Perşembe 15.00-17.00
Arş. Gör. Uğur Özbalkan, Ofis 311 – Salı 16.00-17.00, Cuma 16.00-17.00
Ön Gereksinimler
Yok
Yardımcı Kaynaklar
Dersin referans kaynakları aşağıda listelenmektedir.
- Thinking in C++: Introduction to Standard C++, Bruce Eckel, Pearson
- C++ How to Program, Paul Deitel, Pearson
- C++ Primer, Stanley Lippman, Addison-Wesley Professional
- Effective Modern C++, Scott Meyers, Shroff Publishers & Distributors
Yazılımlar
C++ dili ile geliştirilecek olan uygulamalar, Visual Studio Community kullanılarak derlenecektir.
Dersler
Dersin haftalık 2 saat teorik, 2 saat laboratuvar bölümü bulunmaktadır. Öğretim üyesi tarafından verilen ders materyallerinin ders öncesi incelenip, ders sonrasında ise tekrar edilmesi beklenmektedir.
Öğrenim Çıktıları
- Okunabilir kodlar yazmak için standartları ve ilkeler
- Bir programda hata tespiti ve hata ayıklama becerileri
- Program modülü olarak hizmet veren bir sınıf tasarımı
- Nesneye yönelik tasarım kavramlarını (kalıtım, polimorfizm ve bilgi gizleme) anlamak
- C++ dili ile yazılmış uygulama ve sınıf kütüphanesi içeren projeler geliştirebilmek
Quizler
Dönem içerisinde iki adet quiz yapılacaktır. 30 dk süre verilecektir. Quiz tarihi bir hafta önceden duyurulacaktır.
Notlandırma
Derslere %80 oranında devam zorunludur.
Dönem notu; vize, lablar, ödevler, proje ve final sınavı ile belirlenecektir. Değerlendirme yüzdeleri aşağıdaki tabloda verilmiştir.
Faaliyetler | Oranlar |
---|---|
Vize | %20 |
Ödev/Quiz | %10 |
Lab | %15 |
Proje | %30 |
Final | %25 |
Bonus | 5 Puan’a kadar |
Ödev ve quizlerin teslim saati üzerinden her geçen saat için 5 puan kesilecektir.
Dönem sonu notunun karşılık geldiği ağırlık ve harf notu aşağıdaki tabloda verilmiştir.
Dönem Notu | Ağırlık | Harf Notu |
90-100 | 4.00 | AA |
85-89 | 3.50 | BA |
80-84 | 3.00 | BB |
75-79 | 2.50 | CB |
65-74 | 2.00 | CC |
50-64 | 1.50 | DC |
45-49 | 1.00 | DD |
0 -44 | 0 | FF |
Beklenen Efor
Öğrencinin dönem içinde göstermesi beklenen efor tablosu aşağıda verilmiştir.
İçerik | Saat | Kaç Defa | Ara Toplam |
Derse Hazırlık | 2 | 14 | 28 |
Ders Tekrarı | 2 | 14 | 28 |
Ödev | 4 | 6 | 24 |
Proje | 48 | 1 | 48 |
Sınıf Dersi | 4 | 14 | 56 |
Ara Sınav ve Final | 3 | 2 | 6 |
Öğrenciler dersten başarılı olmak için dönem boyunca ortalama 190 saat harcamaları beklenmektedir.
Kodlama Ödevleri
Kodlama ödevlerinin notlandırılması, kodun doğruluğu, kalite ve algoritmik gerçeklemedeki detayları incelenerek yapılacaktır.
Doğruluk
Verilecek her bir ödev için test girişi ve beklenen çıkışlar paylaşılacaktır. Ancak ödev kontrolü yapılırken sizinle paylaşılmamış başka test durumları da denenecektir. Çalışma zamanı, beklenenden çok uzun süren kodlar yanlış olarak değerlendirilebilir.
Teori
Kod, istenen algoritmanın tasarımı olmalıdır. En optimum çözüm beklenmemektedir. Ancak bellek ve çalışma zamanı beklenenden çok fazla olmamalıdır.
Yazılı Ödevler
Ödev kendi el yazınız ile yazılmalıdır. Ödev cevap kağıtının üzerinde, dersin adı, öğrenci adı ve soyadı, öğrenci numarası ve tarih bulunmalıdır.
Akademik Dürüstlük
Ödevin amacı, ders hakkında derinlemesine araştırma yapmayı öğrenmek ve pratik bilgiler kazanmayı sağlamaktır. Verilen ödevler hakkında, diğer öğrenciler ile birlikte çalışma teşvik edilmektedir. Çalışma grubu oluşturan öğrenciler, kendi başına çalışan öğrencilere göre sınavlarda daha başarılı olmaktadırlar.
Ancak bir ödevi çözmek için başkaları ile birlikte çalışsanız bile, her bir sorunun çözümünü yardım almadan kendiniz yapmalısınız. Çözümünüzü bir araştırma yolu ile elde ederseniz (örn. bir internet araması), çözümü kendi cümle ve/veya kodunuz ile ifade etmelisiniz. Çözümü sözlü olarak sorulduğunda, öğrencinin açıklayabilmesi beklenmektedir.
Verilen ödev bir kod ise, kendinizin yazması gerekmektedir. Hata ayıklamada başkalarından yardım alabilirsiniz. Kodda intihal tespiti için manuel ve otomatik mekanizmalar kullanılacaktır. İntihal, sınav içi kopya ve benzeri davranışlar disiplin yönetmeliğine göre cezalandırılır.
Algorithms and Programming II
Important Note: Some links may be broken, if you send me an e-mail I can send you the file.
Course Description: Bu dersin amacı, nesneye yönelimli programlama ilkelerini ve C ++ ‘ı kullanan teknikleri kapsar. Konular arasında işaretçiler, sınıflar, opreratör aşırı yükleme, veri soyutlama, bilgi gizleme, enkapsülasyon, kalıtım, polimorfizm, dosya işleme, şablonlar, istisnalar, tasarım kalıpları ve düşük seviye dil özellikleri bulunur.
Test ve Hata Ayıklama
- Aşağıdaki programların her biri 1’den 10’a kadar olan sayıların toplamını ekrana bastırmaya çalışıyor. Hata’ların nerede olduğunu ve nasıl düzeltileceğini açıklayınız.
- Aşağıdaki kod parçacıklarında derlenme hatasına neden olacak çeşitli hatalar bulunmaktadır. Sadece derlenme hatalarının nereden kaynaklandığı ve nasıl çözüleceğini yazınız. Tüm değişkenlerin tanımlanmış olduğunu varsayınız.
- Aşağıdaki uygulamada klavyeden alınan girişlerdeki bazı karakterleri filtreleyen bir uygulama verilmiştir. Bu filtrelemede yapılması istenen şey sadece alfabe karakterleri, rakamlar ve boşluk karakterleri geçsin, diğer karakterler filtrelenmelidir. Verilen uygulama çalışmamaktadır. Sorun(lar)’ı tespit ediniz. Örnek giriş “Saat 6:00 da bulusalim” için çıkış “Saat 600 da bululsalim”
olmalıdır.
İşaretçiler
- Aşağıdaki kod parçacığının çıktısı nedir?
#include int main(){ int i = 10; printf("%u",&i); return 0; }
- Aşağıdaki kod parçacığının çıktısı nedir?
#include int main(){ int i = 10; printf("%d",*(&i)); return 0; }
- Tanımlanmış olan bir char işaretçisine malloc komutu ile 100 byte’lık bir alan tahsis ediniz. Bu 100 byte’lık alanın içerisine 0-3 arasında rasgele sayılar doldurunuz. Kullanıcıdan yeni bir giriş alınız (0-3) arasında. Alınan girişin bu alanda kaç adet olduğunu ekrana gösteriniz. Not: Dizilerin kullanımı yasaktır.
- Bir fonksiyona 4 int işaretçisi argüman olarak verilmektedir. Main’den kullanıcıdan alınan 3 sayı ve bir tanımlanmış tamsayıların adresleri bu fonksiyona verilmektedir. Fonksiyon tamsayı işaretçilerinin değerlerine bakarak ortanca sayıyı 4. tamsayı işaretçi argümanının içerisine yazmalıdır. Main’de içerisine yazılmış olan değişkenin değeri ekrana gösterilmelidir.
Diziler
- 10 elemanlı bir tamsayı dizisi oluşturunuz. Kullanıcıdan alınan girişler ile bu diziyi doldurunuz. Sonrasında kullanıcıdan bir sayı girişi daha alınız. Bu alınan son giriş sayısı dizi’nin elemanları içinde varsa ekrana “Bulundu” yoksa “Bulunamadı” yazdırılan bir uygulama geliştiriniz.
- 20 elemanlı bir tam sayı dizisi oluşturunuz. Dizinin elemanlarını rasgele doldurunuz. Diziyi bir fonksiyona arguman olarak gönderiniz. Fonksiyonda dizinin içerisindeki kaç adet pozitif, negatif, tek, çift ve sıfır olduğunu ekrana bastırınız.
- 20 elemanlı bir tam sayı dizisi oluşturunuz. Dizinin elemanlarını rasgele doldurunuz. Diziyi bir fonksiyona arguman olarak gönderiniz. Fonksiyon argüman olarak ayrıca 5 işaretçi daha almaktadır. Bunlar pozitif, negatif, tek, cift ve sifir tamsayı işaretçileridir. Fonksiyon kaç adet pozitif, negatif, tek, çift ve sıfır olduğunu bu işaretçiler ile geri döndürerek, fonksiyonun çağrıldığı main’de ekrana bastırılmalıdır.
- Dizideki tüm elemanları toplayıp sonucunu tamsayı olarak geri döndüren bir fonksiyon yazınız. Diziyi main’de 5 elemanlı tanımlayıp, içerisindeki değerleri 10, 20, 30, 5, 3 olarak giriniz. Dönen sonucu ekrana gösteriniz.
- 20 elemanlı bir dizinin elemanlarını rasgele doldurunuz. Bu dizinin en büyük, en küçük ve ortalama değerini ekrana bastıran bir uygulama geliştiriniz.
- 10 elemanlı bir dizi tanımlayıp içeriğini rasgele doldurunuz. Bu dizide aynı elemandan tekrar eden bir eleman veya elemanlar varsa ekrana yazdıran bir uygulama geliştiriniz.Örneğin; 3,4,5,6,7,7,8,8,1,1 dizi içeriklerine göre ekrana 7, 8 ve1 yazılmalıdır.
- 25 elemanlı bir dizinin bütün elemanlarını kaydıran bir uygulama geliştiriniz. Dizinin içeriğini rasgele oluşturunuz.Örnek dizi içeriği, 1, 2, 3 …. 25
Program çalıştıktan sonraki dizi içeriği 25, 1, 2, 3 … 24 - İki boyutlu bir dizi oluşturunuz. Dizinin boyutları 3×3 olmalıdır.Örnek dizi içeriği1, 2, 3
4, 5, 6
7, 8, 9Bu dizi aslında bir matristir. Bu matrisin simetrik olup olmadığını bulan bir uygulama geliştiriniz. Ekrana simetrik veya simetrik değil uyarıları basmalıdır.
Not: Transpozu kendisine eşit olan matrislere simetrik matris denir. Simetrik matris örnekleri
- Kullanıcıdan alınan sayılar ile doldurulan 3×3 boyutlu 2 adet matrisi toplayan ve çarpıp sonuçlarını ekrana gösteren bir uygulama geliştiriniz.
- 9 elemanlı bir dizi tanımlayıp, içeriğini rasgele oluşturunuz. Dizinin ortanca elemanını ekrana yazdırınız. Bu işlem için öncelikle dizinin elemanlarını değerlerine göre sıralamalısınız. Bunun için bir sıralama algoritması kullanılmalıdır. “Selection Sort” algoritmasını kullanarak işlemi gerçekleştiriniz (Selection sort algoritmasını araştırınız).
Özyinelemeli Fonksiyonlar:
- Aşağıdaki özyinelemeli fonksiyon ile ifade edilmiş kod parçacığının, özyinelemesiz olan karşılığını yazınız.
Fibonacci serilerinin N. elemanını bulan özyinelemeli olarak yazınız. - Aşağıdaki özyinelemeli fonksiyon ile ifade edilmiş kod parçacığının, özyinelemesiz olan karşılığını yazınız.
- Aşağıdaki özyinelemeli fonksiyona göre;
arg değerinin sonsuz döngüye sokabileceği bir değer var mıdır? Varsa nedir?func(10) değeri ne döndürmektedir?
Karakterler, Girdi/Çıktı Formatlama, Dosya Okuma ve Yazma
- Aşağıda yanında satır sayısı verilmiş C kodundaki;
/* 1 */ #include /* 2 */ int main() { /* 3 */ FILE *textfile; /* 4 */ int score; /* 5 */ int s[10]; /* 6 */ int n = 0; /* 7 */ int i; /* 8 */ textfile = fopen("source.txt", "r"); /* 9 */ if (textfile == NULL) { /* 10 */ printf("Can't open scores.txt"); /* 11 */ exit(1); /* 12 */ } /* 13 */ for (;;) { /* 14 */ fscanf(textfile, "%i", &score); /* 15 */ if (score == -1) break; /* 16 */ s[n] = score; /* 17 */ n++; /* 18 */ } /* 19 */ close(textfile); /* 20 */ /* 21 */ s[n] = 99; /* 22 */ n++; /* 23 */ /* 24 */ textfile = fopen("source.txt", "w"); /* 25 */ for (i = 0; i < n; i++) { /* 26 */ fprintf(textfile, "%i ", s[i]); /* 27 */ } /* 28 */ fprintf(textfile, "-1"); /* 29 */ } 8-12. satırlar arasında ne yapılmaktadır? 13-19. satırlar arasında ne yapılmaktadır? 21-22. satırlar arasında ne yapılmaktadır? 24-28. satırlar arasında ne yapılmaktadır? source.text dosyasının içeriği
90 87 56 78 -1 ise, program çalıştıktan sonra ne olacaktır? Program değişmiş olan source.text ile tekrar çalıştırıldığında source.text dosyasının içeriği ne olacaktır?
- Bir dosyadaki içeriğin tamamını tersten diğer bir dosyaya yazdıran uygulamayı geliştiriniz.Örn giris dosyası içeriği abcdef
Beklenen çıkış dosyası fedcba - Bir kaç cümle içeren bir metin dosyası hazırlayınız. Tüm harler küçük olmalıdır. Hazırlanmış olan metin dosyasını alıp, her kelimenin ilk harfini büyük harf ile değiştirerek farklı bir dosyaya yazan bir uygulama geliştiriniz. (İpucu, kelimenin başı olup olmadığına, okunan bir önceki karakterin boşluk olup olmamasına göre karar verebilirsiniz)
C Yapıları
- insan isminde bir struct tanımlayıp, struct’ın elemanları olarak boy ve kilo floating point elemanları tanımlayın. Kullanıcıdan giriş olarak iki floating point sayı alıp bu elemanların üzerine yazınız. Sonrasında bu struct’ın elemanları ile BMI hesaplamasını ekrana gösteriniz.BMI = kg / (boy * boy), Not: Boy mt cinsinden olmalıdır.
- Öğrencilerin fizik, kimya ve biyoloji derslerinin notlarını içeren ogrenci isminde bir struct tanımlayınız. Bu struct’tan 25 boyutunda bir dizi tanımlayıp, bu dizinin içeriğini rasgele doldurunuz. 25 öğrencinin ortalama fizik, kimya ve biyoloji notlarını ekrana gösteriniz.
- Tarih isimli bir stuct tanımlayıp elemanlarını tamsayı olarak gun, ay ve yil olarak tanımlayınız. İki struct tanımlayıp ilkine 3, 5,.2000 ikincisine ise 6, 11, 2020 tanımlayınız. Bir yılı 365 gün ve bir ayı 30 gün olarak kabul ederek, verilen iki struct arasındaki kaç gün fark olduğunu hesaplayıp ekrana bastırınız.
- Tarih isimli bir struct oluşturun. Elemanları tamsayı olarak gun, ay ve yil olsun. Main’de tarih struct’ı olarak tanımlanmış elemanın gun, ay ve yıl değerlerine 12, 10, 2000 yazınız. Bir tarih struct’ı ve tamsayı girişi alan bir fonksiyon yazınız. Bu fonksiyon aldığı tamsayı gün’ü ifade etmektedir. Aldığı struct’ın içerisindeki tarihin üzerine, aldığı gün sayısını ekleyip, yeni tarihi ekrana bastıran bir uygulama geliştiriniz. Ay 30 gün, yıl 365 gün olduğunu kabul ediniz.
Önişlemler ve Diğer Konular
- Önişlemci nedir?
- Makro ve fonksiyon arasındaki farklar nedir?
- Bir dikdörtgenin en ve boyunu alarak alanını hesaplayan bir makro yazınız
- İki sayının ortalamasını döndüren bir makro yazınız
Akış Diyagramları
- 1’den 10’a kadar olan sayıların karesini hesaplayan programın akış diyagramını çiziniz?
Flowchart uygulaması çözüm dosyasını indirmek için tıklayınız (Sağ tıklayıp, bağlantıyı farklı kaydet’e tıklayın). - 3’ten 9’a kadar olan sayıların toplamını ekrana yazdıran programın akış diyagramını çiziniz?
Flowchart uygulaması çözüm dosyasını indirmek için tıklayınız (Sağ tıklayıp, bağlantıyı farklı kaydet’e tıklayın). - 1’den 100’e kadar olan sayılardan asal sayı olanları ekrana yazdıran programın akış diyagramını çiziniz?
Flowchart uygulaması çözüm dosyasını indirmek için tıklayınız (Sağ tıklayıp, bağlantıyı farklı kaydet’e tıklayın). - 0’dan 100’e kadar olan sayıları küçükten büyüğe doğru sıralayan programın akış diyagramını çiziniz?
Flowchart uygulaması çözüm dosyasını indirmek için tıklayınız (Sağ tıklayıp, bağlantıyı farklı kaydet’e tıklayın). - 0’dan 100’e kadar olan sayıları büyükten küçüğe doğru sıralayan programın akış diyagramını çiziniz?
Flowchart uygulaması çözüm dosyasını indirmek için tıklayınız (Sağ tıklayıp, bağlantıyı farklı kaydet’e tıklayın). - Aşağıda örneği verilen programın akış diyagramını çiziniz?
1 * 6 = 62 * 6 = 12
…
12 * 6 = 72
Flowchart uygulaması çözüm dosyasını indirmek için tıklayınız (Sağ tıklayıp, bağlantıyı farklı kaydet’e tıklayın). - Girilen 3 sayının ortancasını bulan programın akış diyagramını çiziniz.
- Sıcaklık girişi alan, sıcaklık değeri 32’den büyük ise “sıcak” yazan, değilse 18’den büyükse “normal” yazan, değilse “soğuk” yazan programın akış diyagramını çiziniz.
- 1 vize 1 final yapılan bir okulda, final’e girmek için vizeden en az 50 almış olmak gerekmektedir. Vize notu 50 den aşağıda ise “kaldı” yazan, değilse vize notunun %40’ı ve final notunun %60’ı toplandığında 50 den yukarı ise “geçti”, değilse “kaldı” yazan programın akış diyagramını çiziniz.
Değişkenler ve Operatörler
- Kullanıcıdan bir tam sayı alınız. Alınan tam sayı Fahrenheit cinsinden sıcaklığı temsil etmektedir. Fahrenheit’ten Celsius’a dönüşüp yaparak, sıcaklığı ekrana Celsius cinsinden yazan bir uygulama geliştiriniz. C = 5.0 / 9.0 * (F – 32) formülü ile bulunmaktadır
- İki kenarının uzunluğu cm cinsinden tam sayı olarak alınan bir diktörtgenin alanını bulan programı yazınız.
- Bir üçgenin iki iç açısını kullanıcıdan tam sayı olarak alıp, diğer açısını ekrana çıktı veren uygulamayı yazınız. İç açılar toplamı 180 derecedir.
- Günümüzde bir litre benzinin fiyatı 6TL’dir. Kullanıcıdan gidilecek km bilgisini ve arabanın 100 km’de kaç lt benzin harcadığını floating sayı olarak alıp. Gidilecek KM göre kaç liralık benzin harcayacağını ekrana gösteren bir uygulama yazınız.
Seçim ve Kontrol Yapıları
- Kulanıcıdan alınan 3 sayının en büyüğünü bulan programı yazınız.
- Kullanıcıdan bir tam sayı alınız. Alınan tamsayının faktöriyelini ekrana bastıran uygulamayı yazınız.
- Sıcaklık girişi alan, sıcaklık değeri 32’den büyük ise “sıcak” yazan, değilse 18’den büyükse “normal” yazan, değilse “soğuk” yazan programını geliştiriniz.
- -1 girilene kadar, sürekli sayı alıp bir değişkenin üzerinde toplayan bir uygulama geliştiriniz. Uygulama -1 sayısını aldığı zaman önceden girilmiş olan sayıların toplamını ekrana yazmalıdır.
- 9999 girilene kadar, daha önceki girilen sayıların ortalamasını ekrana bastıran bir uygulama geliştirin. Uygulama 9999 sayısını aldığı zaman sayıların ortalamasını ekrana yazdırmalıdır.
- Kullanıcıdan iki tamsayı alınız. Bu iki tam sayı arasındaki çift sayıların toplamını ekrana yazdıran bir uygulama geliştiriniz. İlk sayı küçük, ikinci sayının büyük girileceğini varsayabilirsiniz.
- Aşağıdaki örüntüyü oluşturacak programı döngü kurarak yazınız. 1 * ile başlayıp, 10 yıldız ile bitmektedir.
*
**
***
****
*****
******
*******
********
*********
********** - Aşağıdaki örüntüyü oluşturacak programı döngü(ler) kurarak yazınız.
*
***
*****
*******
*********
*******
*****
***
* - Kullanıcıdan -1 girişi gelen kadar 1 ile 5 arasında sayılar alın. Bu sayılardan kaç adet geldiğini sürekli değişkenlerde toplayın. Örn. 1 sayısından 25 defa girildiğini, 2 sayısından 30 defa girildiğini … tutan değişkenleriniz olsun. -1 girildiğinde, ekrana
1: *******************************
2: ***************
3: **************************************
4: **************
5: **
gibi, kaç adet geldi ise, ekrana o kadar * bastıran uygulamayı geliştiriniz. - Bir üçgenin kenar uzunluklarının koşulu aşağıdaki şekilde verilmektedir.
Kullanıcıdan üç tamsayı alıp, bu kenar ölçüleri ile geçerli bir üçgen olup olmayacağını ekrana yazan bir uygulama geliştiriniz.
Fonksiyonlar
- Bir otoparkta giriş ücreti 10TL’dir. Her bir saat için ek 2 TL ücret alınmakta ve 24 saat içerisinde en fazla 30 TL’lik ücret istenmektedir. Yani ücret 30TL’e geldiğinde 24 saat içinde 30TL’i aşmamaktadır. Buna göre ucretHesapla isminde bir fonksiyona, main’den alınan kaldığı saat değerini argüman olarak gönderip otopark ücreti hesapladıktan sonra mainden ekrana yazdıran bir uygulama geliştiriniz.
Örnek çıktı
Kaldığı saat 3, 16 TL
Kaldığı saat 4, 18 TL
Kaldığı saat 20, 30 TL
Kaldığı saat 25, 32 TL - Dik bir üçkenin, dik kenarları kullanıcıdan tam sayı olarak alınıyor. hipotenusHesapla fonksiyonu, iki tam sayı argüman almaktadır. Aldığı argümanlar ile hipotenüs’ü geri döndürmektedir. Mainden hipotenusHesapla fonksiyonuna argümanları gönderip, döndürdüğü sonucu ekrana bastıran bir uygulama yazınız. İpucu: Karakök için math.h kütüphanesinin altındaki sqrt fonksiyonunu kullanabilirsiniz.
- Bir sayının tersini alan tersiniAl isminde bir fonksiyon yazınız. Örneğin 7654 sayısı fonksiyona argüman olarak verildiğinde, fonksiyon geriye 4567 sayısını geri döndürmelidir. Fonksiyona giriş için main’den kullanıcı girişi alınız, fonksiyonun çıktısını ekrana bastırınız.
- Öğrencilerin notlarının değerlendirileceği bir ogrenciDegerlendir isminde bir fonksiyon yazınız. Bu fonksiyon argüman olarak 4 tam sayı girişi alsın. Bu tam sayı girişleri öğrencilerin notlarını ifade etmektedir. Notların ortalamasını alıp,
90-100 arasında ise 5,
80-89 arasında ise 4,
70-79 arasında ise 3,
60-69 arasında ise 2,
50-59 arasında ise 1,
hiçbiri değilse 0döndüren bir fonksiyon yazınız.
Bu fonksiyona mainde kullanıcıdan alınan 4 girişi argüman olarak veriniz. Fonksiyonun döndürdüğü sayıyı ekrana bastırınız. - Rand fonksiyonu ile rasgele sayılar üretilebilmektedir. Rand fonksiyonu kullanarak bir döngü içerisinde 100 defa, bir paranın yazı veya tura gelme durumunu sayınız. Bunun için rand fonksiyonunu geri döndürüğü değerin %2 sini alabilirsiniz. Dönecek olan 0 ve 1’lerin gelme sıklıklarını değişkenlerde sayınız. 100 adet denemede, kaç defa 0 kaç defa 1 geldiğini ekrana bastıran bir kod yazınız. İpucu, random sayı üretimi için kodun başında srand( time( NULL ) ); tanımlaması yapılmalıdır. stdlib.h ve time.h kütüphaneleri uygulamaya eklenmelidir.