Skip to content

bulent2k2/cpp_ogreniyoruz

Repository files navigation

Fen Lisesinde C++ ve Algoritma Öğreniyoruz

Dersler sırasıyla burada.

Derslerimizi meet uygulaması kullanarak çevirimiçi yapıyoruz. Katılmak için bağlantı burada. Geçen yılki (2024-25) giriş derslerinin notları ve kayıtları burada. Bu yılki dersler de burada.

Çevirimiçi Derleyiciler

Sololearn std::cin >> girdi; çalışıyor.
OnlineGdb Alttaki terminalde girdi ve çıktılar beraber.
CoLiRu. Sağ alttaki Edit tuşuna basın.
Jupyter: Okuryazar Programlama. Literate programming. C++ için aşağıdaki linki kullanın.
Jupyter + C++.

Yarışmacılar için Kılavuz

Antti Laaksonen tarafından 2018'de yazılmış güzel bir kitap. Yarışmalarda daha başarılı daha hızlı olmak için okuyalım.
Türkçesi 2022'de Arda ve Arkın Kaz tarafından Türkçeye çevrilmiş!
İngilizce orijinali isteyenlere, merak edenlere.

Çevirimiçi Yarışma Alanları

SPOJ kılavuz Başlamak için gerekli bilgiler.
SPOJ klasik Parmakları program yazmaya alıştırmak için 😊..
Atcoder giriş Başlangıç alıştırmaları. Tasks adlı menüye bakın.
Atcoder ileri algoritmalar Ciddi algoritma bilgisi ve tecrubesi gerekiyor. Derslerimizde üzerinden geçeceğiz.
Codeforces A ile kodlanmış en kolay sorulardan başlayarak birkaç tane yapıp, sonra B, C, D kodlu daha zorlara doğru devam edelim istedikçe, hevesle.
Codeforces güzel şeyler İlk akla gelen çözümü kodlamadan önce iyice düşünmenin önemini hatırlatan güzel sorular.
Codeforces dinamik program Kolaydan zora sıralı dinamik programlama soruları.
cses.fi'den problemler Bir dizi alıştırma, zorluk sırasıyla. Oto testler ve detaylı sonuçları da çok faydalı. Garip (weird) algoritmayla başlayalım: ilk soru. Sonra ızgara (grid) bulmacalarına da bakalım: birincisi burada.
USACO ABD bilgisayar olimpiyat takımının ön elemeleri, deneme sınavları. Üye olup faydalanalım. Oturum için kayıt yapınca emaille şifre yolluyor. Sonra şifrenizi değiştirin. Derste Mahmut arkadaşınızın önerdiği sırtta taşıma (piggyback) adlı soruyu beraber çözeceğiz. Ama önce siz de biraz kafa yorun, olur mu?

Çevirimiçi Dersler (Ücretsiz)

Giriş dersleri Temel bilgiler. Bunun üzerinden geçmekte fayda var.
Orta seviye dersler Orta düzey bilgilerle devam.
Yapay beyinden öneriler Ufak tefek hatalar var ama yine de çok faydalı bilgiler. Çok ileri düzey bilgilere kadar gidiveriyor.

Diğer Siteler

Project Euler

C++ referans

Ulusal Standartlar Ofisinden C++ kaynakları

#include<c++> sitesinden başvuru kaynakları

Türkçeye kısa özet diye çevirebileceğimiz cheatsheet yani kopya sayfaları hem öğrendiğimiz kavramları hatırlamak için, hem de bilmediğimiz kavramlarla tanışmak için faydalı olabilir. En temel kavramları veren kısa bir örnek burada. Daha kapsamlı ve ileri iki örnek daha görelim: biri burada, ikincisi de burada. c++ cheatsheet diye arayarak ya da yapay beyine sorarak daha başka kaynaklar da bulabilirsiniz. Bazı genel notlar ve hocanızdan yorumlar da bu alt sayfada.

Aşağıda ilk on dersimiz hakkında bazı genel bilgiler var. Bunlar 2024-2025 döneminden. Beşinci dersten itibaren, detaylı ders notlarının olduğu dosyalara linkler de aşağıda. On birinci ve daha sonraki dersler için ileri adlı dizine bakabilirsiniz. Programlamaya giriş derslerimizin en sonuncusu da burada.

2025-2026 döneminde temel programlama bilgileri yerine algoritmalar ve verimli çözüm gerektiren rekabetçi programlama sorularına odaklandık. Bu dersleri de tarihleriyle beraber burada bulabilirsiniz.

İlk derste bazı temel yapıtaşlarını gördük

Pekiştirmek için şu örnek programların üzerinden geçmekte fayda var.

İlk program
Sağ alttaki RUN tuşuna basın. Benzeri onlinegdb'de de var. Run tuşu üstte sola doğru.

Temel veri tipleri sayı(int), kesirli sayı (double), harf(char) ve ikil(bool).

Girdi alma/onlinegdb cin>>girdi;

Kontrol yapıları kontrol için if/else yapısı, for ve while döngüleri. Bir de basit bir işlev (function) tanımladık.

İlk oyun! Rastgele sayı üretme yöntemi çok işe yarar.

İkinci ders

Kod işlevler, isim uzayı (namespace), yerel, küresel kapsam, dizilerle işlemler, temel türler, ikil(bool), harf(char), sayı(int), kesirli sayı(double). Bir de yazı (string), ama o temel değil, std yani standart kütüpten.

Üçüncü ders

Kod1 adres ve takma ad işlemcileri (pointer/reference).
Kod2 akıllı sayı dizileri (vector<int>).

Ayrıca, isim uzayları ne işe yarar diye güzel bir soru soruldu. Yanıtı burada.

Dördüncü ders

Kod1 sayı tahmin etme oyunu.
Kod2 doğum günü girdisiyle gün sayma.

Beşinci ders

Notlar ve kodlar. Tam bölünebilen sayıları sayma, komut satırından derleyici çalıştırma. Ayrıca Windows'a Terminal, C++ Derleyici ve Emacs ya da başka Editör eklemek için gerekli linkler.

Altıncı ders

Notlar. Fibonaççi dizisi, asal çarpanlar, yeni türlere ve Project Euler'den 15. soruya bir bakış.

Yedinci ders

Notlar ve görsel kayıt. Özyineleme tekniği (recursion), std::list kalıbı, bellekle hızlandırma (memoizasyon), yeni türler: konum, aralık ve dörtgen, özgür bellek, özgür dizi konuları.

Sekizinci ders

Görsel kayıt, notlar, kod örnekleri. Yine std::list kullanarak özyineleme, 2025 sayısının özellikleri ve std::map kalıbı, fayda.h başlık dosyası ve faydaları, dizi (array), akıllı dizi (vector), dizin (list) ve eşlem (map) kalıpları arasındaki benzerlikler ve farklar. Bir de DRY ilkesi.

Dokuzuncu ders

Görsel kayıt, notlar, kod örnekleri. Eşlem kalıbını pekiştirmek için örnekler, matematiksel tam sayı fonksiyonları, makefile ve make uygulaması ile otomasyon, karmaşık sayı türüyle nesne yönelimine hızlı giriş.

Nesne yönelimi de ne demek?

class, struct, typedef ve ileride göreceğimiz enum ve template anahtar sözcükleri, büyük ve sağlam yazılım yapıları oluşturmakta çok önemli ve faydalı özellikler. Nesne yönelimli yazılım ilkelerini hayata geçirmek için temel yapı taşları oluyorlar. Bu konunun temel kavramlarını sunan kısa bir giriş yazısı yazdık yapay beyinle beraber. Bir sonraki derste üzerinden geçeceğiz inşallah. Şöyle bir bakıverin, kodları çalıştırın, çatallayıp biraz kurcalayın ki ders sırasında iyice pekiştirebilelim bu kavramları.

Görsel kayıt ve notlar başlıktaki linkte ve burada.

Bu dosyanın içinde.

Koco ve Scala'yla öğrenmeye devam

Son yıllarda Hintli ve İsveçli birkaç iş arkadaşımla epey emek verdiğimiz bu gönüllü açık kaynak öğrenim ve programlama ortamını denemeye davet ediyorum hepinizi. Derslerimizden birinde ufak bir sunum da yaparım isterseniz. Daha çok bilgi ve indirmek için link burada.

About

Fen Lisesinde C++ Diline ve Algoritmalara Giriş Dersleri

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors