├── .github └── workflows │ └── ccpp.yml ├── Akış Diyagramları ├── Hafta3 │ ├── 1 ile 36 arasındaki sayıların köklerini ekrana yazdır.tr │ ├── 11-1 arasındaki tek sayıları ekrana yazdır.tr │ ├── 11-1 arasındaki tek sayıları ekrana yazdır2.tr │ ├── 11-1 arasındaki tek sayıları ekrana yazdır3.tr │ ├── Girilen tutarın kdv(%18) hesapla.tr │ └── Satış fiyatı hesapla.tr └── Hafta4 │ ├── Girilen sayının tek çift olduğunu yazdıran program.tr │ ├── Klavyeden girilen sayının pozitif negatif nötr olduğunu yazdır.tr │ └── İki sayının toplamını hesapla.tr ├── Algoritmalar ├── Algoritma.docx ├── Hafta3.docx ├── Hafta4.docx ├── Hafta7.docx ├── Ödev-1.docx └── Örnek Algoritma Problemleri.docx ├── Ders Kaynakları ├── Programlama Temelleri ve Algoritma_1.pptx ├── Programlama Temelleri ve Algoritma_2.pptx ├── Programlama Temelleri ve Algoritma_3.pptx ├── always build.PNG └── local windows debugger.PNG ├── FlowChartVisualProgrammingLanguage301.rar ├── Kodlama ├── Hafta10 │ ├── Hafta10.cpp │ ├── Hafta10.docx │ ├── Harflere göre kontrol etme.cpp │ ├── Harflere göre kontrol etme.txt │ └── String içerisinde değer arama fonksiyon örneği.cpp ├── Hafta11 │ ├── Hafta11.cpp │ ├── Hafta11.docx │ ├── sos_oyunu.cpp │ └── sos_oyunu.docx ├── Hafta12 │ ├── Hafta12.cpp │ └── Hafta12.docx ├── Hafta13 │ ├── Hafta13.cpp │ └── Hafta13.docx ├── Hafta4 │ ├── Ornek1.c │ └── Ornek1.docx ├── Hafta5 │ ├── Ornek2.cpp │ └── Ornek2.docx ├── Hafta6 │ ├── Hafta6.docx │ └── hafta6.cpp ├── Hafta7 │ ├── Hafta7.docx │ └── hafta7.cpp ├── Hafta8 │ ├── Hafta8.cpp │ └── Hafta8.docx ├── Hafta9 │ ├── Hafta9.cpp │ └── Hafta9.docx └── SinavaHazirlik │ ├── SinavaHazirlik.cpp │ └── SinavaHazirlik.docx ├── README.md └── flowTurk.exe /.github/workflows/ccpp.yml: -------------------------------------------------------------------------------- 1 | name: C/C++ CI 2 | 3 | on: [push] 4 | 5 | jobs: 6 | build: 7 | 8 | runs-on: ubuntu-latest 9 | 10 | steps: 11 | - uses: actions/checkout@v1 12 | - name: configure 13 | run: ./configure 14 | - name: make 15 | run: make 16 | - name: make check 17 | run: make check 18 | - name: make distcheck 19 | run: make distcheck 20 | -------------------------------------------------------------------------------- /Akış Diyagramları/Hafta3/1 ile 36 arasındaki sayıların köklerini ekrana yazdır.tr: -------------------------------------------------------------------------------- 1 | 1~163~-16777216~2~-18751~-1331 2 | Başlat_11231018~basla~~Başlat~~152~382~112~46~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 3 | Değişken_1123178~degisken~sayi=1,kok~~~228~345~188~37~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 4 | İşlem_11233485~islem~kok=sayi^(1/2)~~~293~355~160~30~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 5 | Çıkış_11234854~cikis~~"Kök:"~kok~399~281~300~35~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 6 | Durdur_11235979~durdur~~Durdur~~611~388~90~35~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 7 | İşlem_11274616~islem~sayi=sayi+1~~~462~347~160~30~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 8 | Eğer_11285180~eger~sayi<=36~~~524~356~140~50~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 9 | Düğüm_11290052~dugum~~~~369~177~19~19~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 10 | Çıkış_11313970~cikis~~"Sayı:"~sayi~344~278~300~35~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 11 | 2 12 | Çizgi-112330~Başlat_11231018~Değişken_1123178~ 13 | Çizgi-112351~Değişken_1123178~İşlem_11233485~ 14 | Çizgi-112841~Çıkış_11234854~İşlem_11274616~ 15 | Çizgi-112902~Eğer_11285180~Düğüm_11290052~EVET 16 | Çizgi-112908~Düğüm_11290052~İşlem_11233485~ 17 | Çizgi-112911~Eğer_11285180~Durdur_11235979~HAYIR 18 | Çizgi-112912~İşlem_11274616~Eğer_11285180~ 19 | Çizgi-113149~İşlem_11233485~Çıkış_11313970~ 20 | Çizgi-113156~Çıkış_11313970~Çıkış_11234854~ 21 | -------------------------------------------------------------------------------- /Akış Diyagramları/Hafta3/11-1 arasındaki tek sayıları ekrana yazdır.tr: -------------------------------------------------------------------------------- 1 | 1~0~-16777216~2~-18751~-1331 2 | Başlat_10141226~basla~~Başlat~~124~297~112~46~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 3 | Değişken_10141543~degisken~sayac=11~~~197~239~224~46~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 4 | Eğer_10155726~eger~sayac%2=1~~~279~282~140~50~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 5 | Çıkış_10162286~cikis~~~sayac~371~204~300~35~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 6 | İşlem_10194013~islem~sayac=sayac-1~~~487~275~160~30~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 7 | Düğüm_10200711~dugum~~~~347~613~19~19~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 8 | Eğer_10212532~eger~sayac>=1~~~556~284~140~50~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 9 | Düğüm_10214230~dugum~~~~359~139~19~19~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 10 | Durdur_10244031~durdur~~Durdur~~653~310~90~35~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 11 | deger_izle_10261987~deger_izle~sayac~~~434~267~180~35~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 12 | 2 13 | Çizgi-101506~Başlat_10141226~Değişken_10141543~ 14 | Çizgi-101607~Değişken_10141543~Eğer_10155726~ 15 | Çizgi-101920~Eğer_10155726~Çıkış_10162286~EVET 16 | Çizgi-102013~Eğer_10155726~Düğüm_10200711~HAYIR 17 | Çizgi-102147~Eğer_10212532~Düğüm_10214230~EVET 18 | Çizgi-102150~Düğüm_10214230~Eğer_10155726~ 19 | Çizgi-102153~İşlem_10194013~Eğer_10212532~ 20 | Çizgi-102457~Eğer_10212532~Durdur_10244031~HAYIR 21 | Çizgi-102630~Çıkış_10162286~deger_izle_10261987~ 22 | Çizgi-102705~deger_izle_10261987~İşlem_10194013~ 23 | Çizgi-102710~Düğüm_10200711~deger_izle_10261987~ 24 | -------------------------------------------------------------------------------- /Akış Diyagramları/Hafta3/11-1 arasındaki tek sayıları ekrana yazdır2.tr: -------------------------------------------------------------------------------- 1 | 1~163~-16777216~2~-18751~-1331 2 | Başlat_10305643~basla~~Başlat~~131~343~112~46~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 3 | Değişken_10310561~degisken~sayac=11~~~212~310~180~35~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 4 | Eğer_10312471~eger~sayac>=1~~~281~331~140~50~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 5 | Eğer_10320075~eger~sayac%2=1~~~369~327~140~50~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 6 | Çıkış_10321059~cikis~~~sayac~465~249~300~35~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 7 | İşlem_10324114~islem~sayac=sayac-1~~~556~319~160~30~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 8 | Düğüm_1032565~dugum~~~~421~603~19~19~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 9 | Durdur_1033393~durdur~~Durdur~~628~352~90~35~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 10 | Düğüm_10334810~dugum~~~~436~177~19~19~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 11 | Düğüm_1035475~dugum~~~~407~748~19~19~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 12 | 2 13 | Çizgi-103117~Başlat_10305643~Değişken_10310561~ 14 | Çizgi-103140~Değişken_10310561~Eğer_10312471~ 15 | Çizgi-103220~Eğer_10312471~Eğer_10320075~EVET 16 | Çizgi-103229~Eğer_10320075~Çıkış_10321059~EVET 17 | Çizgi-103251~Çıkış_10321059~İşlem_10324114~ 18 | Çizgi-103300~Eğer_10320075~Düğüm_1032565~HAYIR 19 | Çizgi-103303~Düğüm_1032565~İşlem_10324114~ 20 | Çizgi-103401~Eğer_10312471~Düğüm_10334810~HAYIR 21 | Çizgi-103404~Düğüm_10334810~Durdur_1033393~ 22 | Çizgi-103613~İşlem_10324114~Düğüm_1035475~ 23 | Çizgi-103621~Düğüm_1035475~Eğer_10312471~ 24 | -------------------------------------------------------------------------------- /Akış Diyagramları/Hafta3/11-1 arasındaki tek sayıları ekrana yazdır3.tr: -------------------------------------------------------------------------------- 1 | 1~163~-16777216~2~-18751~-1331 2 | Başlat_10400118~basla~~Başlat~~108~338~112~46~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 3 | Değişken_10412089~degisken~sayac=11~~~194~304~180~35~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 4 | Çıkış_10413746~cikis~~~sayac~268~240~300~35~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 5 | İşlem_10415489~islem~sayac=sayac-2~~~340~309~160~30~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 6 | Eğer_10421810~eger~sayac>=1~~~419~316~140~50~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 7 | Düğüm_10423157~dugum~~~~349~175~19~19~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 8 | Durdur_10433097~durdur~~Durdur~~531~339~90~35~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 9 | 2 10 | Çizgi-104128~Başlat_10400118~Değişken_10412089~ 11 | Çizgi-104149~Değişken_10412089~Çıkış_10413746~ 12 | Çizgi-104203~Çıkış_10413746~İşlem_10415489~ 13 | Çizgi-104220~İşlem_10415489~Eğer_10421810~ 14 | Çizgi-104235~Eğer_10421810~Düğüm_10423157~EVET 15 | Çizgi-104237~Düğüm_10423157~Çıkış_10413746~ 16 | Çizgi-104333~Eğer_10421810~Durdur_10433097~HAYIR 17 | -------------------------------------------------------------------------------- /Akış Diyagramları/Hafta3/Girilen tutarın kdv(%18) hesapla.tr: -------------------------------------------------------------------------------- 1 | 1~163~-16777216~2~-18751~-1331 2 | Başlat_12192545~basla~~Başlat~~106~222~112~46~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 3 | Değişken_12194790~degisken~tutar,sonuc~~~183~184~180~35~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 4 | Giriş_12201614~giris~~"Tutar:"~tutar~239~128~300~35~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 5 | İşlem_12210929~islem~sonuc=tutar*1,18~~~309~142~277~30~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 6 | Çıkış_12214466~cikis~~"Sonuç....: "~sonuc~380~130~300~35~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 7 | Durdur_12215253~durdur~~Durdur~~449~229~90~35~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 8 | 2 9 | Çizgi-122013~Başlat_12192545~Değişken_12194790~ 10 | Çizgi-122031~Değişken_12194790~Giriş_12201614~ 11 | Çizgi-122136~Giriş_12201614~İşlem_12210929~ 12 | Çizgi-122150~İşlem_12210929~Çıkış_12214466~ 13 | Çizgi-122154~Çıkış_12214466~Durdur_12215253~ 14 | -------------------------------------------------------------------------------- /Akış Diyagramları/Hafta3/Satış fiyatı hesapla.tr: -------------------------------------------------------------------------------- 1 | 1~163~-16777216~2~-18751~-1331 2 | Başlat_12255586~basla~~Başlat~~105~292~90~35~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 3 | Değişken_12260035~degisken~alis,kar,vergi,satis~~~163~195~277~35~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 4 | Giriş_12271216~giris~~"Alış:"~alis~219~178~300~35~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 5 | Giriş_12272169~giris~~"Kar"~kar~280~178~300~35~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 6 | Giriş_12273396~giris~~"Vergi:"~vergi~332~178~300~35~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 7 | İşlem_12280044~islem~satis=alis+alis*kar/100~~~392~161~324~30~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 8 | İşlem_12284198~islem~satis=satis+satis*vergi/100~~~450~158~316~30~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 9 | Durdur_12291085~durdur~~Durdur~~563~274~90~35~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 10 | Çıkış_12334470~cikis~~"Satış: "~satis~505~172~300~35~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 11 | 2 12 | Çizgi-122913~Başlat_12255586~Değişken_12260035~ 13 | Çizgi-122916~Değişken_12260035~Giriş_12271216~ 14 | Çizgi-122919~Giriş_12271216~Giriş_12272169~ 15 | Çizgi-122921~Giriş_12272169~Giriş_12273396~ 16 | Çizgi-122923~Giriş_12273396~İşlem_12280044~ 17 | Çizgi-122925~İşlem_12280044~İşlem_12284198~ 18 | Çizgi-123355~İşlem_12284198~Çıkış_12334470~ 19 | Çizgi-123356~Çıkış_12334470~Durdur_12291085~ 20 | -------------------------------------------------------------------------------- /Akış Diyagramları/Hafta4/Girilen sayının tek çift olduğunu yazdıran program.tr: -------------------------------------------------------------------------------- 1 | 1~0~-16777216~2~-18751~-1331 2 | Başlat_12033186~basla~~Başlat~~147~398~112~46~-2031617~-16777011~-16776961~Consolas~11~0~-16777216 3 | Değişken_12033421~degisken~sayi~~~228~343~224~46~-2031617~-16777011~-16776961~Consolas~11~0~-16777216 4 | Giriş_12034966~giris~~"Sayı giriniz:"~sayi~310~269~372~46~-2031617~-16777011~-16776961~Consolas~11~0~-16777216 5 | Eğer_12050963~eger~sayi%2==0~~~391~387~140~50~-2031617~-16777011~-16776961~Consolas~11~0~-16777216 6 | Çıkış_12052976~cikis~~"Çifttir"~~482~152~300~35~-2031617~-16777011~-16776961~Consolas~11~0~-16777216 7 | Çıkış_12054683~cikis~~"Tektir"~~481~490~300~35~-2031617~-16777011~-16776961~Consolas~11~0~-16777216 8 | Durdur_12060376~durdur~~Durdur~~573~408~90~35~-2031617~-16777011~-16776961~Consolas~11~0~-16777216 9 | 2 10 | Çizgi-120339~Başlat_12033186~Değişken_12033421~ 11 | Çizgi-120434~Değişken_12033421~Giriş_12034966~ 12 | Çizgi-120511~Giriş_12034966~Eğer_12050963~ 13 | Çizgi-120544~Eğer_12050963~Çıkış_12052976~EVET 14 | Çizgi-120558~Eğer_12050963~Çıkış_12054683~HAYIR 15 | Çizgi-120607~Çıkış_12052976~Durdur_12060376~ 16 | Çizgi-120609~Çıkış_12054683~Durdur_12060376~ 17 | -------------------------------------------------------------------------------- /Akış Diyagramları/Hafta4/Klavyeden girilen sayının pozitif negatif nötr olduğunu yazdır.tr: -------------------------------------------------------------------------------- 1 | 1~163~-16777216~2~-18751~-1331 2 | Başlat_12214286~basla~~Başlat~~175~414~112~46~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 3 | Değişken_12231112~degisken~sayi,toplam=0~~~249~361~208~42~-2031617~-16777011~-16776961~Consolas~11~0~-16777216 4 | Giriş_12241565~giris~~"Sayı:"~sayi~335~317~300~35~-2031617~-16777011~-16776961~Consolas~11~0~-16777216 5 | İşlem_1224330~islem~toplam=toplam+sayi~~~407~313~300~30~-2031617~-16777011~-16776961~Consolas~11~0~-16777216 6 | Eğer_12245477~eger~sayi!=0~~~471~400~140~50~-2031617~-16777011~-16776961~Consolas~11~0~-16777216 7 | Düğüm_12250821~dugum~~~~416~194~19~19~-2031617~-16777011~-16776961~Consolas~11~0~-16777216 8 | Çıkış_12252063~cikis~~"Sonuç....: "~toplam~570~313~300~35~-2031617~-16777011~-16776961~Consolas~11~0~-16777216 9 | Durdur_12253028~durdur~~Durdur~~635~415~90~35~-2031617~-16777011~-16776961~Consolas~11~0~-16777216 10 | 2 11 | Çizgi-122413~Başlat_12214286~Değişken_12231112~ 12 | Çizgi-122429~Değişken_12231112~Giriş_12241565~ 13 | Çizgi-122436~Giriş_12241565~İşlem_1224330~ 14 | Çizgi-122456~İşlem_1224330~Eğer_12245477~ 15 | Çizgi-122510~Eğer_12245477~Düğüm_12250821~EVET 16 | Çizgi-122513~Düğüm_12250821~Giriş_12241565~ 17 | Çizgi-122527~Eğer_12245477~Çıkış_12252063~HAYIR 18 | Çizgi-122531~Çıkış_12252063~Durdur_12253028~ 19 | -------------------------------------------------------------------------------- /Akış Diyagramları/Hafta4/İki sayının toplamını hesapla.tr: -------------------------------------------------------------------------------- 1 | 1~0~-16777216~2~-18751~-1331 2 | Başlat_09164237~basla~~Başlat~~94~261~96~38~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 3 | Değişken_0917136~degisken~x,y,toplam~~~166~220~180~35~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 4 | Giriş_09174688~giris~~"1.sayı:"~x~241~160~300~35~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 5 | Giriş_09192461~giris~~"2.sayı"~y~310~164~300~35~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 6 | İşlem_09195288~islem~toplam=x+y~~~376~236~160~30~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 7 | Çıkış_09211671~cikis~~"Toplam:",toplam~toplam~431~168~300~35~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 8 | Durdur_09221682~durdur~~Durdur~~492~273~90~35~-2031617~-16777011~-16776961~Consolas~10~0~-16777216 9 | 2 10 | Çizgi-091734~Başlat_09164237~Değişken_0917136~ 11 | Çizgi-091750~Değişken_0917136~Giriş_09174688~ 12 | Çizgi-091928~Giriş_09174688~Giriş_09192461~ 13 | Çizgi-091956~Giriş_09192461~İşlem_09195288~ 14 | Çizgi-092210~İşlem_09195288~Çıkış_09211671~ 15 | Çizgi-092551~Çıkış_09211671~Durdur_09221682~ 16 | -------------------------------------------------------------------------------- /Algoritmalar/Algoritma.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gmihran/ProgramlamaTemelleri/bf64b6b602826114468c55fb9d3fca0dd6ddb704/Algoritmalar/Algoritma.docx -------------------------------------------------------------------------------- /Algoritmalar/Hafta3.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gmihran/ProgramlamaTemelleri/bf64b6b602826114468c55fb9d3fca0dd6ddb704/Algoritmalar/Hafta3.docx -------------------------------------------------------------------------------- /Algoritmalar/Hafta4.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gmihran/ProgramlamaTemelleri/bf64b6b602826114468c55fb9d3fca0dd6ddb704/Algoritmalar/Hafta4.docx -------------------------------------------------------------------------------- /Algoritmalar/Hafta7.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gmihran/ProgramlamaTemelleri/bf64b6b602826114468c55fb9d3fca0dd6ddb704/Algoritmalar/Hafta7.docx -------------------------------------------------------------------------------- /Algoritmalar/Ödev-1.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gmihran/ProgramlamaTemelleri/bf64b6b602826114468c55fb9d3fca0dd6ddb704/Algoritmalar/Ödev-1.docx -------------------------------------------------------------------------------- /Algoritmalar/Örnek Algoritma Problemleri.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gmihran/ProgramlamaTemelleri/bf64b6b602826114468c55fb9d3fca0dd6ddb704/Algoritmalar/Örnek Algoritma Problemleri.docx -------------------------------------------------------------------------------- /Ders Kaynakları/Programlama Temelleri ve Algoritma_1.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gmihran/ProgramlamaTemelleri/bf64b6b602826114468c55fb9d3fca0dd6ddb704/Ders Kaynakları/Programlama Temelleri ve Algoritma_1.pptx -------------------------------------------------------------------------------- /Ders Kaynakları/Programlama Temelleri ve Algoritma_2.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gmihran/ProgramlamaTemelleri/bf64b6b602826114468c55fb9d3fca0dd6ddb704/Ders Kaynakları/Programlama Temelleri ve Algoritma_2.pptx -------------------------------------------------------------------------------- /Ders Kaynakları/Programlama Temelleri ve Algoritma_3.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gmihran/ProgramlamaTemelleri/bf64b6b602826114468c55fb9d3fca0dd6ddb704/Ders Kaynakları/Programlama Temelleri ve Algoritma_3.pptx -------------------------------------------------------------------------------- /Ders Kaynakları/always build.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gmihran/ProgramlamaTemelleri/bf64b6b602826114468c55fb9d3fca0dd6ddb704/Ders Kaynakları/always build.PNG -------------------------------------------------------------------------------- /Ders Kaynakları/local windows debugger.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gmihran/ProgramlamaTemelleri/bf64b6b602826114468c55fb9d3fca0dd6ddb704/Ders Kaynakları/local windows debugger.PNG -------------------------------------------------------------------------------- /FlowChartVisualProgrammingLanguage301.rar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gmihran/ProgramlamaTemelleri/bf64b6b602826114468c55fb9d3fca0dd6ddb704/FlowChartVisualProgrammingLanguage301.rar -------------------------------------------------------------------------------- /Kodlama/Hafta10/Hafta10.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | using namespace std; 7 | int main() { 8 | setlocale(LC_ALL,"turkish"); 9 | srand(time(NULL)); 10 | 11 | //Araştırma ödevi: C++ 11 (Modern C++) ile gelen yenilikler araştırılıp, 12 | //10 tane yenilik kendi cümlelerinizle kaynak belirterek ve örnekler gerçekleştirilip ekran görüntüsü alınarak 13 | //bir word belgesi veya powerpoint sunusu olarak online.beykoz üzerinden teslim edilecek. 14 | 15 | //Ödev: Bu soruyu while döngüsü ile çözmeye çalışalım. 16 | //İlk 100 asal sayıyı bir dizide tutarak bu diziyi ekrana yazdıralım 17 | int i; 18 | int asal[100],sayi=2,miktar; 19 | bool asal_durum; 20 | for(miktar=0;miktar<100;) 21 | { 22 | asal_durum=true; //sayının asal olduğunu farzedelim 23 | for (i=2;irastgele[i]) 76 | min=rastgele[i]; 77 | if (mak0){ //while(hak!=0) 125 | cout << "\nHarf:"; 126 | cin >> h; 127 | bool durum=true; 128 | for (i=0;i 3 | #include 4 | #include 5 | 6 | void myStringSearch(const char*,const char,int *); 7 | 8 | int main() 9 | { 10 | char myString[]="aabkaaa"; 11 | char charToFind='k'; 12 | 13 | int result; 14 | myStringSearch(myString,charToFind,&result); 15 | 16 | if(result!=-1) 17 | printf("KARAKTER BULUNDU %d\n",result+1); 18 | else 19 | printf("KARAKTER BULUNAMADI.\n"); 20 | } 21 | void myStringSearch(const char*param1,const char param2,int *sonuc) 22 | { int i,tut=0; 23 | 24 | for(;*param1!='\0';param1++) 25 | { 26 | if(tut==0) 27 | if(*param1==param2) 28 | { *sonuc=i; 29 | tut++; 30 | } 31 | i++; 32 | } 33 | 34 | } -------------------------------------------------------------------------------- /Kodlama/Hafta11/Hafta11.cpp: -------------------------------------------------------------------------------- 1 | //Bu örneği Visual Studio 2017 C++ ile oluşturduk 2 | 3 | #include "pch.h" 4 | #include 5 | #include 6 | #include 7 | #include 8 | 9 | //#include //Visual studio'da bu kütüphanenin eklenmesine gerek yoktur. 10 | //https://repl.it/ üzerinden çalıştırmak için ekledik. 11 | 12 | using namespace std; 13 | int main() { 14 | setlocale(LC_ALL, "turkish"); 15 | srand(time(NULL)); 16 | int matris[2][3]; 17 | //matris[satir][sutun]; 18 | //Matrisin içine 1 ile 6 arasındaki sayıları atayalım 19 | matris[0][0] = 1; 20 | matris[0][1] = 2; 21 | matris[0][2] = 3; 22 | cout << matris[0][0] << endl; 23 | cout << matris[0][1] << endl; 24 | cout << matris[0][2] << endl; 25 | cout << matris[1][0] << endl; 26 | cout << matris[1][2] << endl; 27 | int sayac = 1, satir, sutun; 28 | //int matris[2][3]; 29 | for (satir = 0; satir < 2; satir++) { 30 | for (sutun = 0; sutun < 3; sutun++) { 31 | matris[satir][sutun] = sayac; 32 | sayac = sayac + 1; 33 | //matris[satir][sutun]=sayac++; 34 | cout << matris[satir][sutun]; 35 | } 36 | } 37 | cout << endl; 38 | //3*2 bir matrise rastgele 1-20 arasında değerler atayıp ekrana yazdıralım 39 | int matris2[3][2]; 40 | //int satir,sutun; 41 | for (satir = 0; satir < 3; satir++) { 42 | for (sutun = 0; sutun < 2; sutun++) { 43 | matris2[satir][sutun] = rand() % 10 + 1; 44 | cout << matris2[satir][sutun] << "\t"; 45 | } 46 | cout << endl; 47 | } 48 | 49 | //Bu matristeki en büyük değeri bulup ekrana yazdıralım 50 | int mak = 1; 51 | //mak=INT_MIN; 52 | //cout << mak << endl; 53 | for (satir = 0; satir < 3; satir++) { 54 | for (sutun = 0; sutun < 2; sutun++) { 55 | if (matris2[satir][sutun] > mak) 56 | mak = matris2[satir][sutun]; 57 | } 58 | } 59 | cout << "Mak:" << mak << endl; 60 | int mak2 = 1; //mak2=INT_MIN; 61 | //2.en büyük değeri bulalım. 62 | for (satir = 0; satir < 3; satir++) { 63 | for (sutun = 0; sutun < 2; sutun++) { 64 | if (matris2[satir][sutun] >= mak2 && matris2[satir][sutun] != mak) 65 | mak2 = matris2[satir][sutun]; 66 | } 67 | } 68 | cout << "2.Mak:" << mak2 << endl; 69 | 70 | //Aynı döngü içerisinde mak ve mak2 değerlerini bulalım 71 | mak = 1; mak2 = 1; 72 | for (satir = 0; satir < 3; satir++) { 73 | for (sutun = 0; sutun < 2; sutun++) { 74 | if (mak < matris2[satir][sutun]) 75 | { 76 | mak2 = mak; 77 | mak = matris2[satir][sutun]; 78 | } 79 | else if (mak2 < matris2[satir][sutun] && matris2[satir][sutun] != mak) 80 | mak2 = matris2[satir][sutun]; 81 | } 82 | } 83 | cout << "Mak:" << mak << endl; 84 | cout << "2.Mak:" << mak2 << endl; 85 | 86 | 87 | //Matrisin en büyük elemanının bulunduğu sütunda yer alan en küçük elemanı bulalım 88 | //matris2[3][2] 89 | mak = 1; 90 | int maksutun; 91 | for (satir = 0; satir < 3; satir++) { 92 | for (sutun = 0; sutun < 2; sutun++) { 93 | if (mak < matris2[satir][sutun]) { 94 | mak = matris2[satir][sutun]; 95 | maksutun = sutun; 96 | } 97 | } 98 | } 99 | cout << "Mak:" << mak << endl; 100 | int min = 20; 101 | for (satir = 0; satir < 3; satir++) { 102 | if (min > matris2[satir][maksutun]) 103 | min = matris2[satir][maksutun]; 104 | } 105 | cout << "Mak değerin olduğu sütun:" << maksutun + 1 << endl; 106 | cout << "Mak değerin olduğu sütundaki min değeri:" << min << endl; 107 | 108 | //4*4'lük içerisinde -20 ile 50 arasında rastgele değer tutan matriste yer alan 109 | //satırlardaki ve sütunlardaki değerlerden en büyük ve en küçük değerleri ekrana yazdıralım 110 | int rastgele[4][4], i, j; 111 | for (i = 0; i < 4; i++) { 112 | for (j = 0; j < 4; j++) { 113 | rastgele[i][j] = rand() % 71 - 20; 114 | //Son değer 71+(-20)-1=50 115 | cout << rastgele[i][j] << "\t"; 116 | } 117 | cout << endl; 118 | } 119 | //Değerlerimiz -20 ile 50 arasında olduğu için aşağıdaki atamaları yapıyoruz. 120 | //Min değerine alabileceği maksimum değeri, mak değerine alabileceği minimum değeri atıyoruz 121 | int min_satir[4] = { 50,50,50,50 }, mak_satir[4] = { -20,-20,-20,-20 }; 122 | int min_sutun[4] = { 50,50,50,50 }, mak_sutun[4] = { -20,-20,-20,-20 }; 123 | for (i = 0; i < 4; i++) { 124 | for (j = 0; j < 4; j++) { 125 | if (rastgele[i][j] < min_satir[i]) 126 | min_satir[i] = rastgele[i][j]; 127 | 128 | if (rastgele[i][j] > mak_satir[i]) 129 | mak_satir[i] = rastgele[i][j]; 130 | 131 | if (rastgele[j][i] < min_sutun[i]) 132 | min_sutun[i] = rastgele[j][i]; 133 | 134 | if (rastgele[j][i] > mak_sutun[i]) 135 | mak_sutun[i] = rastgele[j][i]; 136 | } 137 | } 138 | for (i = 0; i < 4; i++) 139 | { 140 | cout << i + 1 << ".satırdaki mak:" << mak_satir[i] << endl; 141 | cout << i + 1 << ".satırdaki min:" << min_satir[i] << endl; 142 | cout << i + 1 << ".sütundaki mak:" << mak_sutun[i] << endl; 143 | cout << i + 1 << ".sütundaki min:" << min_sutun[i] << endl; 144 | } 145 | 146 | char harfler[26] = { 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','r','q','s','t','u','v','x','w','y','z' }; 147 | //Random 25 kelime 6 harfli 2 boyutlu dizide tutulacak 148 | char kelime[25][6]; 149 | int random; 150 | for (i = 0; i < 25; i++ ) { 151 | for (j = 0; j < 6; j++) { 152 | random = rand() % 26 + 0; //0 ile 25 arasında değer üretir 153 | kelime[i][j] = harfler[random]; 154 | cout << kelime[i][j]; 155 | } 156 | cout << endl; 157 | } 158 | 159 | //sessiz sesli sessiz sesli sessiz sesli 160 | cout << "-------------------------------" << endl; 161 | char sesli[5] = { 'a','e','i','o','u' }; 162 | char sessiz[21] = {'b','c','d','f','g','h','j','k','l','m','n','p','r','q','s','t','v','x','w','y','z' }; 163 | for (i = 0; i < 25; i++) { 164 | for (j = 0; j < 6; j++) { 165 | if (j % 2 == 0) { 166 | random = rand() % 21 + 0; //0 ile 20 arasında değer üretir 167 | kelime[i][j] = sessiz[random]; 168 | } 169 | else { 170 | random = rand() % 5 + 0; //0 ile 4 arasında değer üretir 171 | kelime[i][j] = sesli[random]; 172 | } 173 | cout << kelime[i][j]; 174 | } 175 | cout << endl; 176 | } 177 | 178 | cout << "-------------------------------" << endl; 179 | /* 180 | sessiz sesli sessiz sessiz sesli sessiz 181 | sayac%2==1 182 | 1 =sessiz 183 | 2 =sesli 184 | 3 =sessiz 185 | 4 =sessiz ->1 186 | 5 =sesli ->2 187 | 6 =sessiz ->3 188 | 189 | if (sayac==3) 190 | sayac=1; 191 | 192 | sayac++; 193 | //Bu yöntem dışında farklı yollarla da çözülebilir. 194 | */ 195 | sayac = 1; 196 | for (i = 0; i < 25; i++) { 197 | for (j = 0; j < 6; j++) { 198 | //if (sayac==1 || sayac==3 || sayac==4 || sayac==6) bu şekilde kontrol edilirse; 199 | //if (sayac == 3) sayac = 1; else 200 | //adımlarına gerek kalmaz 201 | if (sayac%2==1) { 202 | random = rand() % 21 + 0; //0 ile 20 arasında değer üretir 203 | kelime[i][j] = sessiz[random]; 204 | } 205 | else { 206 | random = rand() % 5 + 0; //0 ile 4 arasında değer üretir 207 | kelime[i][j] = sesli[random]; 208 | } 209 | if (sayac == 3) 210 | sayac = 1; 211 | else 212 | sayac++; 213 | cout << kelime[i][j]; 214 | } 215 | cout << endl; 216 | } 217 | 218 | system("pause"); 219 | } 220 | -------------------------------------------------------------------------------- /Kodlama/Hafta11/Hafta11.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gmihran/ProgramlamaTemelleri/bf64b6b602826114468c55fb9d3fca0dd6ddb704/Kodlama/Hafta11/Hafta11.docx -------------------------------------------------------------------------------- /Kodlama/Hafta11/sos_oyunu.cpp: -------------------------------------------------------------------------------- 1 | #include "pch.h" 2 | #include 3 | #include 4 | //Bu örnek Yapay Zeka ile çözülebilir 5 | //Bilgisayar SOS yazmaya çalışabilir veya kullanıcının yazmaması için gerekli yerleri doldurabilir. 6 | using namespace std; 7 | char sos[3][3] = { '#','#','#','#','#','#','#','#','#' }, pc_deger; 8 | int i, j; 9 | bool kontrol = false; 10 | void yazdir(){ 11 | for (i = 0; i < 3; i++) { 12 | for (j = 0; j < 3; j++) { 13 | cout << sos[i][j]; 14 | } 15 | cout << endl; 16 | } 17 | } 18 | void pc() { 19 | //Eğer # kalmamışsa bu fonksiyon çağrılmamalıdır 20 | char deger[2] = { 'S','O' }; 21 | int x = rand() % 2 + 0; 22 | pc_deger = deger[x]; 23 | int satir, sutun; 24 | do { 25 | satir = rand() % 3 + 0; 26 | sutun = rand() % 3 + 0; 27 | } while (sos[satir][sutun]!='#'); 28 | sos[satir][sutun] = pc_deger; 29 | } 30 | 31 | void durum() { 32 | int sayac = 0; 33 | for (i = 0; i < 3; i++) { 34 | for (j = 0; j < 3; j++) { 35 | if (sos[i][j] == '#') 36 | sayac++; 37 | } 38 | } 39 | if (sayac == 0) 40 | kontrol = true; //oyun bitti 41 | 42 | } 43 | void kullanici() { 44 | //Eğer # kalmamışsa bu fonksiyon çağrılmamalıdır 45 | int satir, sutun; 46 | char deger; 47 | do{ 48 | cout << "Satır değeri:"; 49 | cin >> satir; 50 | cout << "Sütun değeri:"; 51 | cin >> sutun; 52 | } while (sos[satir-1][sutun-1] != '#'); 53 | cout << "S-O :"; 54 | cin >> deger; 55 | //Burada S-O doğru girildi mi? Kontrol edilecek. 56 | sos[satir - 1][sutun - 1] = deger; 57 | } 58 | 59 | int main() 60 | { 61 | //sos oyunu 62 | //Bilgisayar boş olan alanlara rastgele s o s koyar 63 | //Biz de onu yenmeye çalışırız 64 | setlocale(LC_ALL, "turkish"); 65 | do{ 66 | pc(); 67 | durum(); 68 | if (kontrol) 69 | break; 70 | yazdir(); 71 | kullanici(); 72 | 73 | } while (kontrol == false); 74 | //else if () { 75 | //SOS yazıldı mı? Kontrol edilecek 76 | 77 | //} 78 | yazdir(); 79 | cout << "Oyun bitti"; 80 | } 81 | -------------------------------------------------------------------------------- /Kodlama/Hafta11/sos_oyunu.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gmihran/ProgramlamaTemelleri/bf64b6b602826114468c55fb9d3fca0dd6ddb704/Kodlama/Hafta11/sos_oyunu.docx -------------------------------------------------------------------------------- /Kodlama/Hafta12/Hafta12.cpp: -------------------------------------------------------------------------------- 1 | #include "pch.h" 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | using namespace std; 9 | 10 | void topla(); 11 | void topla(int sayi1, int sayi2); 12 | void topla(double sayi1, double sayi2); 13 | void topla(int s1, int s2, int s3); 14 | int toplam(int s1, int s2); 15 | int rastgele(); 16 | void mukemmel_sayi(); 17 | bool asal(int sayi); 18 | void asal_sayilar(int s1, int s2); 19 | int asal_sayi(int sira); 20 | 21 | char ilk_harf(string kelime); 22 | //string tanımlı fonksiyonlarda using namespace std; tanımlaması fonksiyon tanımlamasından önce gelmelidir. 23 | //Ya da bunun için bir kütüphane tanımlaması yapılabilir. 24 | string kelimenin_tersi(string kelime); 25 | 26 | int main() 27 | { 28 | int sayi1, sayi2,toplamlar; 29 | string kelime, cumle; 30 | 31 | setlocale(LC_ALL, "turkish"); 32 | 33 | srand(time(NULL)); 34 | 35 | 36 | topla(); 37 | topla(2,4); 38 | sayi1 = 3; 39 | sayi2 = 7; 40 | topla(sayi1, sayi2); 41 | topla(5.3, 4.6); 42 | topla(double(5), 4.6); 43 | topla(5.0, 4.6); 44 | topla(2, 3, 4); 45 | cout << toplam(3, 6) << endl; 46 | toplamlar = toplam(3,6); 47 | cout << toplamlar << endl; 48 | 49 | 50 | //Birden fazla cümleyi klavyeden okutabilmek için getline fonksiyonu kullanılır. 51 | //cin >> kelime; okunan değerin boşluğa kadar olan kısmını değişkene atamayı gerçekleştirir. 52 | //Ama getline(cin,kelime) kodu enter'a basıncaya kadar olan tüm karakterleri string değişkende tutmamızı sağlar. 53 | /* 54 | getline(cin, kelime); 55 | */ 56 | 57 | 58 | cout << ilk_harf("Beykoz") << endl; 59 | cout << "Kelime:"; 60 | getline(cin, kelime); 61 | //cin >> kelime; //getline(cin, kelime); 62 | cout << "Cumle:"; 63 | getline(cin, cumle); 64 | cout << cumle << endl; 65 | cout <<"İlk harf:" << ilk_harf(kelime) << endl; 66 | cout << "Kelimenin tersi:" << kelimenin_tersi(kelime) << endl; 67 | cout << "Cümlenin tersi:" << kelimenin_tersi(cumle) << endl; 68 | //kelimenin_tersi(kelime) dönen değeri bir string değerde saklayıp o değeri de kullanabiliriz. 69 | if (kelimenin_tersi(kelime) == kelime) 70 | cout << kelime << " kelimesinin tersi kendisine eşit" << endl; 71 | else 72 | cout << kelime << " kelimesinin tersi kendisine eşit değil" << endl; 73 | 74 | cout << "Mak:" << rastgele() << endl; 75 | 76 | mukemmel_sayi(); 77 | 78 | 79 | cout << "2 sayý giriniz..:"; 80 | cin >> sayi1 >> sayi2; 81 | asal_sayilar(sayi1, sayi2); 82 | 83 | cout <<"4.sayi:" << asal_sayi(4) << endl; 84 | cout << "10.sayi:" << asal_sayi(10) << endl; 85 | system("pause"); 86 | 87 | return 1; 88 | 89 | cout << "Deneme"; 90 | //return ifadesinden sonraki hiçbir kod çalışmaz. 91 | //Bunun nedeni fonksiyonun return işleminden sonra sona ermesidir. 92 | } 93 | 94 | /* 95 | donus_deger_turu fonksiyon_adi(parametre(ler)){ 96 | 97 | fonksiyonun_icinde_yapilacak_islemler 98 | 99 | } 100 | */ 101 | 102 | //Parametre: null (yok) 103 | //Geri döndürdüğü değer void (yok) 104 | void topla() { 105 | cout << "void topla() fonksiyonu çalıştı." << endl; 106 | int sayi1 = 3; 107 | int sayi2 = 5; 108 | cout << sayi1 + sayi2 << endl; 109 | } 110 | 111 | //Parametre: (int sayi1, int sayi2) 112 | //Geri döndürdüğü değer void (yok) 113 | void topla(int sayi1, int sayi2) { 114 | cout << "void topla(int sayi1, int sayi2) fonksiyonu çalıştı." << endl; 115 | cout << sayi1 + sayi2 << endl; 116 | } 117 | 118 | //Parametre: (double sayi1, double sayi2) 119 | //Geri döndürdüğü değer void (yok) 120 | void topla(double sayi1, double sayi2) { 121 | cout << "void topla(double sayi1, double sayi2) fonksiyonu çalıştı." << endl; 122 | cout << sayi1 + sayi2 << endl; 123 | } 124 | 125 | void topla(int s1, int s2, int s3) { 126 | cout << "topla(int s1, int s2, int s3)fonksiyonu çalıştı." << endl; 127 | cout << s1 + s2 + s3 << endl; 128 | } 129 | 130 | //Kendisine gönderilen 2 tamsayının toplamını geri döndüren fonksiyon: 131 | int toplam(int s1, int s2) { 132 | cout << "int toplam(int s1, int s2)fonksiyonu çalýþtý." << endl; 133 | return s1 + s2; 134 | } 135 | 136 | //Kendisine gönderilen kelimenin ilk harfini geri döndüren fonksiyon 137 | //Parametre : string kelime 138 | //Geri dönen deðer : char 139 | char ilk_harf(string kelime) { 140 | return kelime[0]; 141 | } 142 | 143 | //Kendisine gönderilen kelimeyi tersini geri döndüren fonksiyon 144 | //Ör: kedi -> idek 145 | //Ör: ipek -> kepi 146 | string kelimenin_tersi(string kelime) { 147 | int uzunluk = kelime.length(); 148 | string tersi=""; 149 | for (int i = uzunluk-1; i >= 0; i--) 150 | { 151 | tersi += kelime[i]; 152 | //tersi=tersi+kelime[i]; 153 | } 154 | return tersi; 155 | } 156 | //------PROBLEM:-----// 157 | //Rastgele üretilen 20 ile 36 arasındaki 6 sayıdan en büyük değeri geri döndüren fonksiyonu yazınız. 158 | 159 | //Parametre : null (yok) 160 | //Geri döndürdüğü değer : int 161 | //Fonksiyon adı: rastgele 162 | 163 | //int random=rand()%17+20; 164 | //Son değer: 17+20-1=36 165 | 166 | //min=20; 167 | 168 | int rastgele() { 169 | int sayi, mak=20; 170 | for (int i = 1; i <= 6; i++) { 171 | sayi = rand() % 17 + 20; 172 | cout << sayi << " "; 173 | if (sayi > mak) //if (mak < sayi) 174 | mak = sayi; 175 | } 176 | cout << endl; 177 | return mak; 178 | } 179 | 180 | 181 | //------PROBLEM:-----// 182 | //1-9000 arasındaki mükemmel sayıları ekrana yazdıran fonksiyon 183 | //Mükemmel sayı: Kendisi hariç pozitif bölenlerinin toplamları kendisine eşit olan sayıdır. 184 | //Fonksiyon adı: mukemmel_sayi 185 | //Parametre: null (yok) 186 | //Geri döndürdüğü değer: void (yok) 187 | void mukemmel_sayi() { 188 | int toplam; 189 | for (int sayi = 1; sayi <= 9000; sayi++) 190 | { 191 | toplam = 0; 192 | for (int bolen = 1; bolen < sayi; bolen++) 193 | { 194 | if (sayi%bolen == 0) { 195 | toplam += bolen; 196 | } 197 | } 198 | if (toplam == sayi) //Sayı mükemmel sayıdır 199 | cout << sayi << endl; 200 | } 201 | } 202 | 203 | 204 | //------PROBLEM:-----// 205 | //Fonksiyonu gelen (Kullanıcının girdiği) iki değer arasındaki asal sayıları ekrana yazdıran fonksiyon 206 | //Asal sayı, 1 ve kendisi hariç böleni olmayan sayıdır 207 | //Fonksiyon adı: asal_sayilar 208 | //Parametre: int s1, int s2 209 | //Geri döndürdüğü değer: void (yok) 210 | void asal_sayilar(int s1, int s2) { 211 | for (int sayi = s1; sayi <= s2; sayi++) 212 | { 213 | if (asal(sayi)) 214 | cout << sayi << endl; 215 | } 216 | } 217 | 218 | bool asal(int sayi) { 219 | bool kontrol = true; //sayı asaldır 220 | if (sayi <= 1) 221 | kontrol = false; 222 | else 223 | for (int i = 2; i <= sayi/2; i++) 224 | //Bir sayı kendisinin yarısından daha büyük sayılara bölünemez. 225 | //Bu yüzden i <= sayi/2 koşulunu kullandık. 226 | { 227 | if (sayi%i == 0) { 228 | kontrol = false; //sayı asal değildir 229 | break; 230 | } 231 | } 232 | return kontrol; 233 | } 234 | 235 | //------PROBLEM:-----// 236 | //Kullanıcının girdiği sıradaki asal sayıyı geri döndüren fonksiyon 237 | //Fonksiyon adı: asal_sayi 238 | //Parametre: int s1 239 | //Geri döndürdüğü değer: int 240 | int asal_sayi(int sira) { 241 | int sayi = 0, sayac=0; 242 | while(sira>=1) 243 | { 244 | sayi++; 245 | if (asal(sayi)) { 246 | sayac++; 247 | } 248 | if (sayac == sira) { 249 | //cout << sayi; 250 | break; 251 | } 252 | } 253 | return sayi; 254 | } 255 | -------------------------------------------------------------------------------- /Kodlama/Hafta12/Hafta12.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gmihran/ProgramlamaTemelleri/bf64b6b602826114468c55fb9d3fca0dd6ddb704/Kodlama/Hafta12/Hafta12.docx -------------------------------------------------------------------------------- /Kodlama/Hafta13/Hafta13.cpp: -------------------------------------------------------------------------------- 1 | #include "pch.h" 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | using namespace std; 9 | 10 | void arttir5(int sayi); 11 | void arttir5(int *p); 12 | void kat(int *ptr); 13 | int * rastgele(); 14 | void neg_poz(int *s, int *ptoplam, int *ntoplam); 15 | void random(); 16 | 17 | void tersine(string *p); 18 | 19 | int main() { 20 | setlocale(LC_ALL, "turkish"); 21 | srand(time(NULL)); 22 | int sayi = 10; 23 | int *p = &sayi; 24 | 25 | cout << "sayi:" << sayi << endl; 26 | cout << "&sayi:"<< &sayi << endl;//değerin tutulduğu adres değerini yazdırır 27 | 28 | cout << "p:" << p << endl; //içinde tuttuğu adresi yazdırır 29 | cout << "*p:" << *p << endl; //içinde tuttuğu adresteki değeri yazdırır 30 | 31 | arttir5(sayi); 32 | cout <<"arttir5(sayi) fonksiyonu çalıştı..: " << sayi << endl; 33 | 34 | arttir5(&sayi); 35 | cout << "arttir5(&sayi) fonksiyonu çalıştı..: " << sayi << endl; 36 | 37 | kat(&sayi); //sayının işaret ettiği adres (işaretçi/pointer) bilgisini kat fonksiyonuna parametre olarak gönderdik 38 | cout << "sayi:" << sayi << endl; 39 | 40 | string kelime; 41 | cout << "Kelime:"; 42 | cin >> kelime; 43 | //getline(cin, kelime); 44 | //Birden fazla kelimeyi değişken içinde tutmayı sağlar. 45 | tersine(&kelime); 46 | cout << "kelime:" << kelime << endl; 47 | 48 | 49 | int toplam = * rastgele(); 50 | cout << "Toplam:" << toplam << endl; 51 | 52 | //Kullanıcı 0 girene kadar girdiği değerlerin pozitif olanlarını ve negatif olanlarını bir değişkende tutup 53 | //bu değerleri main içerisinde yazdıralım 54 | int s, ptoplam=0, ntoplam=0; 55 | cout << endl << "Burada girdiğiniz pozitif ve negatif sayıların toplamı hesaplanacaktır." << endl; 56 | cout << "Çıkmak için 0 değerini giriniz..." << endl; 57 | do 58 | { 59 | cout << "Sayı:"; 60 | cin >> s; 61 | neg_poz(&s, &ptoplam, &ntoplam); 62 | } while (s!=0); 63 | cout << "Pozitif Toplam:" << ptoplam << endl; 64 | cout << "Negatif Toplam:" << ntoplam << endl; 65 | 66 | random(); 67 | 68 | system("pause"); 69 | 70 | return 1; 71 | } 72 | void arttir5(int sayi) { 73 | //kendisine gönderilen sayi değişkeninin kopyasını oluşturdu. 74 | //Bu sebeple gönderilen fonksiyon içerisindeki bu değer değişmedi. 75 | sayi += 5; 76 | } 77 | 78 | //Kendisine gönderilen bellek adresinin içinde saklanan değeri 5 arttıran fonksiyon: 79 | void arttir5(int *p) { 80 | cout << "p:" << p << endl; 81 | *p += 5; // *p = *p + 5; 82 | cout << "*p:" << *p << endl; // 83 | cout << "&p:" << &p << endl; //p adresi 84 | } 85 | 86 | //Problem: Kullanıcıdan alınan değeri fonksiyon parametre olarak alsın ve 87 | //bu değeri fonksiyon içerisinde kullanıcının girdiği kata eşitlesin 88 | //Ör:main içinde 4 girilirse, fonksiyonda 5 girilirse, mainden gelen 4 değeri 20 olacak 89 | void kat(int *ptr) { 90 | int kat; 91 | cout << "Kat değeri:"; 92 | cin >> kat; 93 | *ptr = *ptr * kat; // *ptr *= kat; 94 | //*ptr pointer'ın tuttuğu adresteki veriye gitti ve bu değeri kat değeriyle çarpıp yeni değeri yaptı. 95 | } 96 | 97 | //Kendisine gönderilen kelimenin adresini (pointer) tutan fonksiyon tanımlayalım. Bu kelimeyi fonksiyon içinde tersine dönüştürelim. 98 | //ÖR: kendisine "kedi" kelimesi geldiğinde, kelime "idek" olacak. 99 | void tersine(string *p) { 100 | string ters = ""; 101 | int uzunluk = (*p).length(); 102 | for (int i = uzunluk-1; i >=0; i--) 103 | //uzunluk kelimenin karakter sayısını tutuyor. İndis değerimiz sıfırdan başladığı için 1 eksiğini aldık. 104 | { 105 | ters += (*p)[i]; 106 | } 107 | *p = ters; 108 | } 109 | 110 | //random ile oluşturulan 1-10 arasındaki 10 sayının toplamının tutulduğu adresi çağrıldığı fonksiyona gönderen fonksiyonu yazalım. 111 | int * rastgele() { 112 | int sayi, toplam = 0; 113 | for (int i = 1; i <= 10; i++) 114 | { 115 | sayi = rand() % 10 + 1; 116 | cout << sayi << " "; 117 | toplam += sayi; 118 | } 119 | cout << endl; 120 | cout << "Toplam:" << toplam << endl; 121 | return &toplam; 122 | } 123 | 124 | void neg_poz(int *s, int *ptoplam, int *ntoplam) { 125 | if (*s > 0) 126 | *ptoplam += *s; 127 | else if (*s < 0) 128 | *ntoplam += *s; 129 | } 130 | 131 | //10 tane 0-100 arasında rastgele üretilen sayıyı bir dizide tutarak bu değerleri adres değerleri ile yazdıralım 132 | void random() { 133 | int sayilar[10]; 134 | for (int i = 0; i < 10; i++){ 135 | sayilar[i] = rand() % 101+0; 136 | cout << sayilar[i] << " "; 137 | } 138 | cout << endl; 139 | int *p = sayilar; 140 | cout << "p:" << p << endl; 141 | cout << "p+1:" << p + 1 << endl; 142 | cout << "*p:" << *p << endl; 143 | cout << "*(p+1):" << *(p + 1) << endl; 144 | //p+1 adresinde tutulan değeri getirir 145 | cout << "*p+1:" << *p + 1 << endl; 146 | //p adresinde tutulan değerin 1 fazlasını getirir 147 | cout << "Değerler:" << endl; 148 | for (int i = 0; i < 10; i++){ 149 | cout << *(p+i) << " "; 150 | } 151 | cout << endl; 152 | cout << "Adresler:" << endl; 153 | for (int i = 0; i < 10; i++) { 154 | cout << p + i << endl; 155 | } 156 | cout << endl; 157 | cout << "Adresler:\tDeğerler:\n"; 158 | for (int i = 0; i < 10; i++) { 159 | cout << p + i << "\t" << *(p + i) << endl; 160 | } 161 | } 162 | -------------------------------------------------------------------------------- /Kodlama/Hafta13/Hafta13.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gmihran/ProgramlamaTemelleri/bf64b6b602826114468c55fb9d3fca0dd6ddb704/Kodlama/Hafta13/Hafta13.docx -------------------------------------------------------------------------------- /Kodlama/Hafta4/Ornek1.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | //locale.h kütüphanesini projemize dahil ettik 4 | //setlocale fonksiyonunu kullanmak için tanımladık 5 | 6 | //Bu bir açıklama satırıdır 7 | 8 | /* 9 | Bu 10 | bir 11 | açıklama 12 | bloğudur. 13 | */ 14 | int main(void) { 15 | setlocale(LC_ALL, "Turkish"); 16 | //Türkçe karakterleri çıktı vermemizi sağlar 17 | //İ,ı,ö,ü,ğ,ş,ç vb. karakterler 18 | 19 | printf("Merhaba Dünya\n"); 20 | printf("Hello World\n"); 21 | //printf ekrana çıktı verir. 22 | int x,y,toplam; //int tamsayı veri türüdür. 23 | printf("1.sayı:"); 24 | scanf("%d",&x); 25 | //scanf klavyeden değer okumak için kullanılır 26 | //"%d" int değer okuyacağımızı belirtir 27 | //scanf işlemlerinde & değişkenin önüne koyulmalıdır. 28 | printf("2.sayı:"); 29 | scanf("%d",&y); 30 | toplam=x+y; 31 | printf("Toplam:%d\n",toplam); 32 | //"\n" ifadesi alt satıra geçmemizi sağlar 33 | 34 | //Girilen iki sayının karelerini ekrana yazdıralım 35 | //Sayının karesi = sayi*sayi 36 | //Örn; 5 3 girilirse; 37 | //Çıktı: 38 | //5 karesi 25 39 | //3 karesi 9 40 | printf("%d karesi %d\n",x,x*x); 41 | printf("%d karesi %d\n",y,y*y); 42 | 43 | //Klavyeden girilen iki ondalıklı sayının ortalamasını hesaplayan program 44 | float sayi1,sayi2,ortalama; 45 | //float reel sayıları tutan değişken türüdür 46 | printf("İki sayı giriniz:"); 47 | scanf("%f%f",&sayi1,&sayi2); 48 | //"%f" float veri türüdür 49 | ortalama=(sayi1+sayi2)/2; 50 | printf("Ortalamaları=%.1f\n",ortalama); 51 | //"%.1f" float sayı 1 ondalıklı olacak şekilde sayıyı yuvarlar 52 | 53 | //Klavyeden girilen sınav notuna göre ekrana "Geçti" veya "Kaldı" yazdıralım 54 | //Sınav notu 0-100 arasında değilse "Hatalı not girildi" yazdıralım 55 | //Girilen not : 50 ve üstü ise "Geçti" 56 | //Girilen not : 50 altı ise "Kaldı" 57 | 58 | float sinavnotu; 59 | git: 60 | printf("Sınav notunu giriniz:"); 61 | scanf("%f",&sinavnotu); 62 | if (sinavnotu<0 || sinavnotu>100) 63 | // || sembolü için Altgr + <> tuşlarına basınız 64 | // || sembolleri veya anlamı taşır 65 | { 66 | //{} arasındaki alan if bloğudur 67 | //{} kullanmazsak sadece kendinden sonra gelen kod satırını çalıştırır 68 | printf("Hatalı not girildi.\n"); 69 | goto git; 70 | } 71 | if (sinavnotu>=50) 72 | printf("Geçti\n"); 73 | if (sinavnotu<50) 74 | printf("Kaldı\n"); 75 | //if tek tek kontrol edilir. Şartın doğru olduğu durumlar çalışır. 76 | 77 | if (sinavnotu>=50) 78 | printf("Geçti\n"); 79 | else 80 | printf("Kaldı\n"); 81 | //if şartı doğru olduğu takdirde else bloğu ile ilgili bir kontrol gerçekleştirmez 82 | //Program daha hızlı çalışır 83 | 84 | 85 | //Klavyeden girilen sayının tek veya çift olduğunu ekrana yazdıralım 86 | //mod alma (iki sayının birbirine bölümünden kalanını bulma) işlemi % işareti ile yapılır. Örn: sayi%2 87 | //5%2 işleminin sonucu 1, 4%2 işleminin sonucu 0 'dır. 88 | int sayi; 89 | printf("Bir sayı giriniz:"); 90 | scanf("%d",&sayi); 91 | if (sayi%2==0) 92 | printf("Çifttir\n"); 93 | else 94 | printf("Tektir\n"); 95 | 96 | //Klavyeden girilen sayının pozitif, negatif veya nötr olduğunu ekrana yazdıralım 97 | int sayi3; 98 | printf("Bir sayı giriniz:"); 99 | scanf("%d",&sayi3); 100 | if (sayi3>0) 101 | printf("Pozitif"); 102 | else if (sayi3==0) 103 | printf("Nötr"); 104 | else 105 | printf("Negatif"); 106 | 107 | //Klavyeden 0 girilene kadar girilen değerleri toplayan ve toplam değeri ekrana yazdıran program 108 | //Gelecek hafta çözeceğiz. 109 | 110 | return 0; 111 | } -------------------------------------------------------------------------------- /Kodlama/Hafta4/Ornek1.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gmihran/ProgramlamaTemelleri/bf64b6b602826114468c55fb9d3fca0dd6ddb704/Kodlama/Hafta4/Ornek1.docx -------------------------------------------------------------------------------- /Kodlama/Hafta5/Ornek2.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | int main(void) { 4 | setlocale(LC_ALL,"Turkish"); 5 | //Klavyeden 0 girilene kadar girilen değerleri toplayan ve toplam değeri ekrana yazdıran program 6 | 7 | int sayi,toplam=0; 8 | printf("0 girilene kadar değerleri toplayan program:\n"); 9 | gitsayi: 10 | printf("Bir değer giriniz:"); 11 | scanf("%d",&sayi); 12 | toplam=toplam+sayi; 13 | if (sayi!=0) 14 | goto gitsayi; 15 | printf("Toplam:%d\n",toplam); 16 | 17 | //Klavyeden girilen sınav notunu harf notuna çevirelim 18 | //0'dan küçükse veya 100'den büyükse; "Hatalı Değer" çıktısı verilip, tekrar not istenecek 19 | //if (sinav<0 || sinav>100) 20 | //80-100 AA 21 | //if (sinav>=80 && sinav<=100) 22 | //Yukarıdaki if ifadesi sayı 0 ile 100 arasında olmaması durumu kontrol edilmezse kullanılmalıdır 23 | //if (sinav>=80) 24 | //Biz yukarıdaki if ifadesini kullanacağız 25 | //60-79 BB 26 | //40-59 CC 27 | //35-39 DD 28 | //0-34 FF 29 | //Bu değerler gerçeği yansıtmamaktadır. 30 | int sinav; 31 | gitsinav: 32 | printf("Not giriniz:"); 33 | scanf("%d",&sinav); 34 | if (sinav<0 || sinav>100) 35 | { 36 | printf("Geçersiz not!\n"); 37 | goto gitsinav; 38 | } 39 | else if (sinav>=80) 40 | printf("AA"); 41 | else if (sinav>=60) 42 | printf("BB"); 43 | else if (sinav>=40) 44 | printf("CC"); 45 | else if (sinav>=35) 46 | printf("DD"); 47 | else 48 | printf("FF"); 49 | printf("\n"); 50 | //Girilen iki sayıdan hangisinin büyük olduğunu veya eşitse eşit olduklarını ekrana yazdıralım 51 | //Örn: 30 40 girerse; 40 büyüktür 52 | //Örn: 35 30 girerse; 35 büyüktür 53 | //Örn: 30 30 girerse; 30 eşittir 54 | 55 | 56 | //Kullanıcıdan haftanın kaçıncı günü bilgisini alalım 57 | //Günü ekrana getirelim. (Pazartesi haftanın 1.günü) 58 | //Ör. 7 dediğinde Pazar, 3 dediğinde Çarşamba ekrana yazdırılacak 59 | //Eğer 7’den daha büyük bir sayı girerse 7’ye göre mod alınarak gün hesaplanacak 60 | //Örn. 8 girildiğinde Pazartesi, 10 girildiğinde Çarşamba ekrana yazdırılacak 61 | //Negatif sayı veya nötr(0) girilmiş ise “hatalı değer” çıktısını verecek 62 | 63 | int gun; 64 | 65 | printf("Haftanın kaçıncı günü:"); 66 | scanf("%d",&gun); 67 | 68 | if (gun<=0) 69 | printf("Hatalı değer"); 70 | else 71 | { 72 | gun=gun%7; 73 | if (gun==1) 74 | printf("Pazartesi"); 75 | else if (gun==2) 76 | printf("Salı"); 77 | else if (gun==3) 78 | printf("Çarşamba"); 79 | else if (gun==4) 80 | printf("Perşembe"); 81 | else if (gun==5) 82 | printf("Cuma"); 83 | else if (gun==6) 84 | printf("Cumartesi"); 85 | else 86 | printf("Pazar"); 87 | } 88 | printf("\n"); 89 | 90 | //int gun; 91 | gitgun: 92 | printf("Haftanın kaçıncı günü:"); 93 | scanf("%d",&gun); 94 | gun=gun%7; 95 | if (gun<=0) 96 | goto gitgun; 97 | switch(gun) 98 | { 99 | case 0: 100 | printf("Pazar"); 101 | break; 102 | case 1: 103 | printf("Pazartesi"); 104 | break; 105 | case 2: 106 | printf("Salı"); 107 | break; 108 | case 3: 109 | printf("Çarşamba"); 110 | break; 111 | case 4: 112 | printf("Perşembe"); 113 | break; 114 | case 5: 115 | printf("Cuma"); 116 | break; 117 | case 6: 118 | printf("Cumartesi"); 119 | break; 120 | default: 121 | printf("Hatalı değer"); 122 | break; 123 | } 124 | printf("\n"); 125 | 126 | 127 | /*Örnek - 6. Bir ürünün alış fiyatı, vergi oranı 128 | ve kar oranına göre satış fiyatını hesaplatıp ekrana yazdırınız. 129 | a.Eğer kar oranı 0 ile 1 arasında bir değer değilse kar oranı tekrar istenecek 130 | b.Eğer vergi oranı 0 ile 1 arasında bir değer değilse vergi oranı tekrar istenecek 131 | c.Kar eklenmiş fiyat = alış fiyatı + alış fiyatı * kar oranı 132 | d.Satış fiyatı = kar eklenmiş fiyat + kar eklenmiş fiyat * vergi oranı 133 | */ 134 | float alis,vergi,kar,satis; 135 | printf("Alış fiyatını giriniz:"); 136 | scanf("%f",&alis); 137 | gitkar: 138 | printf("Kar oranını giriniz(0-1 arasında):"); 139 | scanf("%f",&kar); 140 | if (kar<0 || kar>1) 141 | goto gitkar; 142 | satis=alis+alis*kar; 143 | gitvergi: 144 | printf("Vergi oranını giriniz(0-1 arasında):"); 145 | scanf("%f",&vergi); 146 | if (vergi<0 || vergi>1) 147 | goto gitvergi; 148 | satis=satis+satis*vergi; 149 | printf("Satış fiyatı:%.1f",satis); 150 | printf("\n"); 151 | 152 | //Girilen ay bilgisine göre mevsimleri ekrana getiren program 153 | //12-1-2 Kış 154 | //3-4-5 İlkbahar 155 | //6-7-8 Yaz 156 | //9-10-11 Sonbahar 157 | int ay; 158 | printf("Ay (1-12):"); 159 | scanf("%d",&ay); 160 | if (ay==12 || ay==1 || ay==2) 161 | printf("Kış"); 162 | else if (ay>=3 && ay<=5) 163 | printf("İlkbahar"); 164 | else if (ay>=6 && ay<=8) 165 | printf("Yaz"); 166 | else if (ay>=9 && ay<=11) 167 | printf("Sonbahar"); 168 | else 169 | printf("Hatalı değer"); 170 | 171 | //Ödev: Bu örnek switch case ile çözülebilir. 172 | /* 173 | case 3: 174 | case 4: 175 | case 5: 176 | printf("İlkbahar"); 177 | break; 178 | */ 179 | } -------------------------------------------------------------------------------- /Kodlama/Hafta5/Ornek2.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gmihran/ProgramlamaTemelleri/bf64b6b602826114468c55fb9d3fca0dd6ddb704/Kodlama/Hafta5/Ornek2.docx -------------------------------------------------------------------------------- /Kodlama/Hafta6/Hafta6.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gmihran/ProgramlamaTemelleri/bf64b6b602826114468c55fb9d3fca0dd6ddb704/Kodlama/Hafta6/Hafta6.docx -------------------------------------------------------------------------------- /Kodlama/Hafta6/hafta6.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace std; 3 | //std isim uzayını projemize dahil ettik 4 | int main() { 5 | //Klavyeden girilen değerin tek veya çift olduğunu yazdıralım 6 | int sayi; 7 | 8 | cout << "Bir sayı girin:"; 9 | cin >> sayi; 10 | if (sayi%2==0) 11 | cout << sayi << " çifttir\n"; 12 | else 13 | cout << sayi << " tektir" << endl; 14 | 15 | //Satır sonu verip, yazdırma işleminin alt satırdan başlamasını sağlamak için "\n" veya endl kullanırız 16 | 17 | //1 ile 100 arasındaki sayıları ekrana alt alta yazdıralım 18 | int i; 19 | 20 | for (i=1;i<=100;i=i+1) 21 | //Şart doğru olduğu sürece döngü devam eder 22 | cout << i << endl; 23 | //1 ile 100 arasındaki tek sayıları yan yana ekrana yazdıralım 24 | for (i=1;i<=100;i=i+2) 25 | cout << i << " "; 26 | 27 | cout << endl; 28 | sayi=0; 29 | sayi=sayi+1; 30 | sayi++; 31 | ++sayi; 32 | sayi+=1; 33 | cout << sayi << endl; 34 | //Bu 4 işlem sayi değerini 1 arttırır 35 | sayi=0; 36 | cout << sayi << endl; 37 | cout << "sayi++ :" << sayi++ << endl; 38 | cout << sayi << endl; 39 | cout <<"++sayi :" << ++sayi << endl; 40 | cout << sayi << endl; 41 | int toplam; 42 | toplam=sayi++; 43 | cout << "Toplam:" << toplam << " Sayı:" << sayi << endl; 44 | //toplam:2, sayi:3 45 | toplam=++sayi; 46 | cout << "Toplam:" << toplam << " Sayı:" << sayi << endl; 47 | cout <<"--toplam :" << --toplam << endl; 48 | toplam*=2; //toplam=toplam*2; 49 | cout << "Toplam:" << toplam << endl; 50 | toplam/=3; //toplam=toplam/3; 51 | cout << "Toplam:" << toplam << endl; 52 | //100 ile 1 arasındaki sayıları yan yana ekrana yazdıralım 53 | for (i=100;i>=1;i--) 54 | cout << i << " "; 55 | cout << endl; 56 | 57 | //Kullanıcının girdiği sayılar arasındaki sayıları ekrana yazdıralım 58 | int s1,s2; 59 | cout << "İki sayı girin:"; 60 | cin >> s1 >> s2; 61 | //İlk girilen sayı ikinci girilen sayıdan büyük ise bu döngü çalışmaz 62 | for (i=s1;i<=s2;i++) 63 | cout << i << " "; 64 | cout << endl; 65 | 66 | //Kullanıcının girdiği iki değer arasındaki sayıları (küçük değerden büyük değere kadar olan sayıları) ekrana yazdıralım 67 | //cout << "İki sayı girin:"; 68 | //cin >> s1 >> s2; 69 | int bos; 70 | if (s1>s2) 71 | { 72 | //Yer değiştirelim 73 | bos=s1; 74 | s1=s2; 75 | s2=bos; 76 | //swap(s1,s2); 77 | } 78 | for (i=s1;i<=s2;i++) 79 | cout << i << " "; 80 | cout << endl; 81 | 82 | 83 | //0 ile 100 arasındaki tek sayıları ve toplamlarını ekrana yazdıralım 84 | 85 | int t=0; 86 | for (i=0;i<=100;i++) 87 | if (i%2==1) 88 | { 89 | cout << i << " "; 90 | t+=i; 91 | } 92 | cout << "\nToplam:" << t << endl; 93 | 94 | 95 | 96 | //Kullanıcının girdiği iki değer arasında 2’ye veya 5’e bölünen sayıları, sayıların toplamlarını ve ortalamalarını ekrana yazdıralım 97 | //Sayılardan ilk girilen büyük ise sayıların yerini değiştirelim 98 | //Sayıların yerini değiştirmek için swap fonksiyonunu kullanabilirsiniz 99 | // if (sayi%2==0 || sayi%5==0) 100 | 101 | int sayi1, sayi2, sayac=0; 102 | float toplm=0; 103 | cout << "2 Değer Giriniz: "; 104 | cin >> sayi1 >> sayi2; 105 | if (sayi1 > sayi2){ 106 | swap(sayi1,sayi2); 107 | } 108 | for (i=sayi1; i<= sayi2; i++){ 109 | if (i%2 == 0 || i%5 == 0){ 110 | toplm += i; 111 | cout << i << " "; 112 | sayac++; 113 | } 114 | } 115 | cout << "\nToplam Değer : " << toplm; 116 | cout << "\nOrtalama Değer : " << toplm/sayac << endl; 117 | 118 | int bolunen, bolen; 119 | float bolum; 120 | cout << "Bölünen:"; 121 | cin >> bolunen; 122 | cout << "Bölen:"; 123 | cin >> bolen; 124 | if (bolen==0) 125 | cout << "Tanımsız\n"; 126 | else 127 | { 128 | bolum=float(bolunen) / bolen; 129 | //Sonucun ondalıklı olabilmesi için bölünen değerin de float olarak tanımlanması ya da float değere dönüştürülmesi gerekmektedir. 130 | cout << "Bölüm:" << bolum << endl; 131 | } 132 | 133 | 134 | // Ekrana aşağıdaki çıktıyı yazdırmaya çalışalım 135 | //Kullanıcının girdiği değer kadar bu işlemi tekrar edelim. 136 | //Ör; 6 girilirse; çıktı aşağıdaki gibi olacak. 137 | /* 138 | ***** 139 | ***** 140 | ***** 141 | ***** 142 | ***** 143 | ***** 144 | */ 145 | int j; 146 | 147 | cout << "Bir sayı: "; 148 | cin>> sayi; 149 | for (i=1;i<=sayi;i++) 150 | cout << "*****\n"; 151 | 152 | for (i=1;i<=2;i++) 153 | for (j=1;j<=3;j++) 154 | cout << i << " " << j << endl ; 155 | 156 | // Ekrana aşağıdaki çıktıyı yazdırmaya çalışalım 157 | //Kullanıcının girdiği değer kadar yıldız sayısını ve bu işlemi tekrar edelim. 158 | //Ör; 2 ve 3 değerleri girilirse; çıktı aşağıdaki gibi olacak. 159 | /* 160 | ** 161 | ** 162 | ** 163 | */ 164 | 165 | cout << "2 sayı giriniz: "; 166 | cin >> s1 >> s2; 167 | for (i=1;i<=s1;i++) 168 | //satır sayısı : s1 169 | { 170 | for (j=1;j<=s2;j++) 171 | //yıldız sayısı : s2 172 | cout << "*"; 173 | cout << endl; 174 | } 175 | 176 | /* 177 | 1 178 | 12 179 | 123 180 | 1234 181 | 12345 182 | */ 183 | //İçteki döngü dıştaki döngü kadar çalışacak 184 | 185 | for (i=1;i<=5;i++) 186 | { 187 | for (j=1;j<=i;j++) 188 | cout << j; 189 | cout << endl; 190 | } 191 | 192 | 193 | //Klavyeden girilen değere göre aşağıdaki çıktıyı veren program 194 | //Ör; 6 girilirse; 195 | /* 196 | 1 1 197 | 2 12 198 | 3 123 199 | 4 1234 200 | 5 12345 201 | 6 123456 202 | */ 203 | cout << "Sayı:"; 204 | cin >> sayi; 205 | for (i=1;i<=sayi;i++) 206 | { 207 | cout << i << " "; 208 | for (j=1;j<=i;j++){ 209 | cout << j; 210 | } 211 | cout << endl; 212 | } 213 | } 214 | 215 | //Ödev:Çarpım tablosunu hazırlayalım 216 | /* 217 | 1*1=1 2*1=2 3*1=3.... 10*1=10 218 | 1*2=2 2*2=4 3*2=6.... 10*2=20 219 | ............................. 220 | 1*10=10 2*10=20 3*10=30 .... 10*10=100 221 | */ 222 | 223 | 224 | 225 | -------------------------------------------------------------------------------- /Kodlama/Hafta7/Hafta7.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gmihran/ProgramlamaTemelleri/bf64b6b602826114468c55fb9d3fca0dd6ddb704/Kodlama/Hafta7/Hafta7.docx -------------------------------------------------------------------------------- /Kodlama/Hafta7/hafta7.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | using namespace std; 4 | int main() { 5 | setlocale(LC_ALL,"Turkish"); 6 | //Girilen iki sayıdan büyük olanının karesini ekrana yazdıralım. Eğer sayılar birbirine eşitse sayılardan herhangi birini alıp, karesini yazdırabiliriz. 7 | //Ör:Klavyeden 10 5 sayıları girilirse; 100 çıktısını verecek 8 | //Ör:Klavyeden 10 10 sayıları girilirse; 100 çıktısını verecek 9 | int sayi1,sayi2; 10 | 11 | cout << "2 sayı girin:"; 12 | cin >> sayi1 >> sayi2; 13 | if (sayi1>sayi2) 14 | cout << "Karesi:" << sayi1*sayi1; 15 | else 16 | cout << "Karesi:" << sayi2*sayi2; 17 | cout << endl; 18 | //Girilen iki sayıdan büyük olanının karesini ekrana yazdıralım. Eğer sayılar birbirine eşitse sayılardan birinin küpünü alalım. 19 | //Ör:Klavyeden 10 5 sayıları girilirse; 100 çıktısını verecek 20 | //Ör:Klavyeden 10 10 sayıları girilirse; 1000 çıktısını verecek 21 | //int sayi1,sayi2; 22 | cout << "İki sayı girin:"; 23 | cin >> sayi1 >> sayi2; 24 | if (sayi1>sayi2) 25 | cout << "Karesi:" << sayi1*sayi1; 26 | else if (sayi2>sayi1) 27 | cout << "Karesi:" << sayi2*sayi2; 28 | else 29 | cout << "Küpü:" << sayi1*sayi1*sayi1; 30 | //cout << "Küpü:" << sayi2*sayi2*sayi2; 31 | cout << endl; 32 | 33 | //Klavyeden girilen 5 sayıdan en büyük sayıyı ve sayının 2'ye bölümünden kalanını ekrana yazdıralım. 34 | //Not: Bu problem çözümünde girilen değerler bir değişkende tutulup, bu değerler for döngüsünün içerisinde alınacak ve en büyük sayı yine for döngüsünün içerisinde hesaplanacak 35 | int sayi,i,mak; 36 | 37 | for (i=1;i<=5;i++) 38 | { 39 | cout << i << ".sayıyı giriniz:"; 40 | cin >> sayi; 41 | if (i==1) 42 | //Eğer girilen ilk sayı ise i değeri 1'e eşittir ve bu adım çalışarak mak değerin içinde ilk girilen sayıyı tutar. 43 | mak=sayi; 44 | else if (sayi>mak) 45 | //Eğer girilen sayı ilk sayı değilse girilen sayı ile mak değeri karşılaştırır 46 | mak=sayi; 47 | } 48 | cout << "Mak:" << mak << endl; 49 | cout << mak << " mod 2:" << mak % 2 << endl; 50 | 51 | //1 ile 100 arasındaki 2 veya 7 sayılarına tam bölünebilen sayıları aralarında boşluk bırakarak yan yana ekrana yazdıralım 52 | //2 4 6 7 8 10 12 ..... 90 91 92 94 96 98 100 53 | //int i; 54 | 55 | for (i=1;i<=100;i++) 56 | if (i%2==0 || i%7==0) 57 | cout << i << " "; 58 | cout << endl; 59 | 60 | //1 ile 100 arasındaki 2'ye tam bölünebilen ve 7 sayısına tam bölünemeyen sayıları aralarında boşluk bırakarak yan yana ekrana yazdıralım 61 | //int i; 62 | for (i=1;i<=100;i++) 63 | if (i%2==0 && i%7!=0) 64 | cout << i << " "; 65 | cout << endl; 66 | 67 | //1'den kullanıcının girdiği sayıya kadar olan sayıların toplamını ekrana yazdıralım 68 | //int sayi; 69 | int toplam=0; 70 | 71 | cout << "Sayı:"; 72 | cin >> sayi; 73 | for (i=1;i<=sayi;i++) 74 | toplam+=i; 75 | cout << "Toplam:" << toplam << endl; 76 | 77 | //Kullanıcının girdiği 2 sayı arasındaki 3'e tam bölünen sayıların ve 5'e tam bölünen sayıların ayrı ayrı toplamını yazdıralım 78 | //Ör: Kullanıcı 10 20 değerlerini girerse; 79 | //3'e tam bölünenlerin toplamı: 45 (12+15+18) 80 | //5'e tam bölünenlerin toplamı: 45 (10+15+20) 81 | //int sayi, sayi1, sayi2; 82 | int toplam3=0,toplam5=0; 83 | cout << "2 sayı girin:"; 84 | cin >> sayi1 >> sayi2; 85 | for (sayi=sayi1;sayi<=sayi2;sayi++) 86 | { 87 | if (sayi%3==0) 88 | toplam3+=sayi; //toplam3=toplam3+sayi; 89 | if (sayi%5==0) 90 | toplam5+=sayi; //toplam5=toplam5+sayi; 91 | } 92 | cout << "3'e tam bölünenlerin toplamı:" << toplam3 << endl; 93 | cout << "5'e tam bölünenlerin toplamı:" << toplam5 << endl; 94 | } -------------------------------------------------------------------------------- /Kodlama/Hafta8/Hafta8.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | using namespace std; 4 | int main() { 5 | int x=5,y,z; 6 | 7 | y=x++; 8 | z=x+y; 9 | cout << x << "-" << y << "-" << z <> sayi; 29 | for (i=1;i<=sayi;i++) 30 | { 31 | for (j=1;j<=i;j++) 32 | cout << i; 33 | cout << endl; 34 | } 35 | //cout << i << j << endl; 36 | 37 | //i ve j kullanıcının girdiği sayının 1 fazlasına eşittir. Çünkü bu değer şartı sağlamadığı için döngüler sona erer. 38 | 39 | //Kullanıcının girdiği sayıya kadar (sayı dahil değil) ekrana aşağıdaki çıktıyı yazdırmaya çalışalım 40 | //Kullanıcı 7 girerse; 41 | /* 42 | 1 1 43 | 2 22 44 | 3 333 45 | 4 4444 46 | 5 55555 47 | 6 666666 48 | */ 49 | //int sayi,i,j; 50 | 51 | cout << "Sayı:"; 52 | cin >> sayi; 53 | for (i=1;i> sayi; 103 | for (i=1;i<=sayi;i++) 104 | { 105 | for (j=1;j<=i;j++) 106 | cout << ++sayac << " "; 107 | cout << endl; 108 | } 109 | 110 | //Kullanıcının girdiği değere kadar ekrana aşağıdaki çıktıyı yazdırmaya çalışalım 111 | //Ör; 14 girerse; 112 | /* 113 | 1 114 | 2 3 115 | 4 5 6 116 | 7 8 9 10 117 | 11 12 13 14 118 | */ 119 | //int sayac,sayi,i,j; 120 | 121 | sayac=0; 122 | cout << "Sayı:"; 123 | cin >> sayi; 124 | for (i=1;;i++) 125 | { 126 | //i: sonsuz döngü 127 | for (j=1;j<=i;j++) 128 | { 129 | cout << ++sayac << " "; 130 | if (sayac==sayi) 131 | //j döngüsü kırıldı 132 | break; 133 | } 134 | cout << endl; 135 | if (sayac==sayi) 136 | //i döngüsü kırıldı 137 | break; 138 | 139 | } 140 | 141 | //1 ile 10 arasındaki sayıları while döngüsü ile ekrana yazdıralım 142 | //while(koşul) {} 143 | //while(true) sonsuz döngüdür 144 | int deger=1; 145 | while(deger<=10) 146 | { 147 | cout << deger; 148 | deger=deger+1; 149 | } 150 | cout << endl; 151 | 152 | //Kullanıcının girdiği değere kadar olan sayıları ekrana yazdıralım 153 | deger=1; 154 | 155 | cout << "Sayı:"; 156 | cin >> sayi; 157 | while(deger<=sayi) 158 | { 159 | //koşul doğru olduğu sürece çalışır 160 | cout << deger; 161 | deger=deger+1; //sayac 162 | } 163 | cout << endl; 164 | //Sayıyı tersten yazdıralım: 165 | while(sayi>=1) 166 | { 167 | cout << sayi--; 168 | } 169 | cout << endl; 170 | 171 | //Kullanıcı 0 sayısını girene kadar girdiği değerlerin toplamını hesaplayıp ekrana yazdıralım 172 | //1.yöntem: 173 | int toplam=0; 174 | sayi=1; //döngüye girebilmesi için sayı değerinin 0 olmaması gerekiyor 175 | 176 | while(sayi!=0) 177 | { 178 | cout << "Sayı:"; 179 | cin >> sayi; 180 | toplam+=sayi; 181 | } 182 | cout << "Toplam:" << toplam << endl; 183 | 184 | //2.yöntem: 185 | toplam=0; 186 | while(true) 187 | { 188 | //while döngüsü sonsuz döngüdür. 189 | cout << "Sayı:"; 190 | cin >> sayi; 191 | if (sayi==0) 192 | //sayı 0 girilirse döngü kırılır 193 | break; 194 | toplam+=sayi; 195 | } 196 | cout << "Toplam:" << toplam << endl; 197 | 198 | //3.yöntem 199 | toplam=0; 200 | do 201 | { 202 | //Bu döngü en az 1 kez çalışır 203 | cout << "Sayı:"; 204 | cin >> sayi; 205 | toplam+=sayi; 206 | }while(sayi!=0); 207 | cout << "Toplam:" << toplam << endl; 208 | 209 | //Kullanıcı 0 sayısını girene kadar girdiği değerlerden pozitif ve negatif olanların toplamlarını ve miktarlarını ekrana yazdıralım 210 | //Ör: 1 -2 8 3 -2 -3 0 sayılarını girerse çıktı aşağıdaki gibi olmalıdır. 211 | //Pozitif toplamı:12 miktarı:3 212 | //Negatif toplamı:-7 miktarı:3 213 | //int sayi; 214 | int ptoplam=0,ntoplam=0,psayac=0,nsayac=0; 215 | do{ 216 | cout << "Sayı:"; 217 | cin >> sayi; 218 | if (sayi>0){ 219 | ptoplam+=sayi; 220 | psayac++; 221 | } 222 | else if (sayi<0){ 223 | ntoplam+=sayi; 224 | nsayac++; 225 | } 226 | }while(sayi!=0); 227 | cout << "Pozitif toplamı:" << ptoplam; 228 | cout << " miktarı:" << psayac << endl; 229 | cout << "Negatif toplamı:" << ntoplam; 230 | cout << " miktarı:" << nsayac << endl; 231 | 232 | //Girilen sayının tersten okunuşu kendisine eşit mi? 233 | //ÖR: 234 | //sayı=1234 235 | //ters=4321 236 | //Sayının tersi kendisine eşit değil 237 | //ÖR: 238 | //sayı=19891 239 | //tersi=19891 240 | //Sayının tersi kendisine eşit 241 | 242 | //ters=0 243 | //sayi=123 244 | //Eğer sayi>=1 ise aşağıdaki işlemler tekrar edecek 245 | //ters=ters*10+sayi%10=0+3=3 246 | //sayi=sayi/10=12 247 | //ters=ters*10+sayi%10=30+2=32 248 | //sayi=sayi/10=1 249 | //ters=ters*10+sayi%10=320+1=321 250 | int sayiyedek,ters=0; 251 | 252 | cout << "Sayı:"; 253 | cin >> sayi; 254 | sayiyedek=sayi; 255 | while(sayi>=1) 256 | { 257 | ters=ters*10+sayi%10; 258 | //sayi%10 işlemi sayi değerinin birler basamağını alır. 259 | //ters değerinin 10'a çarpmamızın sebebi birler basamağına bir basamak eklemek içindir. 260 | sayi=sayi/10; 261 | //sayının birler basamağındaki değeri yok saydık 262 | } 263 | cout << "Sayının tersi:" << ters << endl; 264 | if (sayiyedek==ters) 265 | cout << "Sayının tersi kendisine eşit"; 266 | else 267 | cout << "Sayının tersi kendisine eşit değil"; 268 | cout << endl; 269 | 270 | //Girilen kelimeyi ekrana yazdıralım 271 | string kelime; 272 | cout << "Kelime:"; 273 | cin >> kelime; 274 | cout << "Girilen kelime:" << kelime << endl; 275 | //Girilen kelimenin 1.harfini ekrana yazdıralım 276 | cout << "Kelimenin 1.harfi:" << kelime[0] << endl; 277 | //Kelimenin karakter sayısını (uzunluğunu) ekrana yazdıralım 278 | cout << "Kelimenin uzunluğu:" << kelime.length() << endl; 279 | //Kelimenin son harfini ekrana yazdıralım 280 | cout << "Kelimenin son harfi:" << kelime[kelime.length()-1] << endl; 281 | 282 | 283 | } 284 | -------------------------------------------------------------------------------- /Kodlama/Hafta8/Hafta8.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gmihran/ProgramlamaTemelleri/bf64b6b602826114468c55fb9d3fca0dd6ddb704/Kodlama/Hafta8/Hafta8.docx -------------------------------------------------------------------------------- /Kodlama/Hafta9/Hafta9.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | using namespace std; 6 | int main() { 7 | setlocale(LC_ALL,"turkish"); 8 | //Ödev- C++ 11 ile gelen yenilikleri araştırınız. 9 | //Word dökümanı olarak online.beykoz üzerinden yükleyiniz. 10 | //Son teslim tarihi:16.12.2019 11 | 12 | //Diziler/Arrays: 13 | int sayilar[5], i; 14 | sayilar[0]=20; 15 | sayilar[1]=10; 16 | sayilar[2]=5; 17 | cout << sayilar[0] << endl << sayilar[1] << endl; 18 | cout << "Sayı:"; 19 | cin >> sayilar[3]; 20 | cout << sayilar[3] << endl; 21 | cout << "Tüm değerler:\n"; 22 | for (i=0;i<=4;i++) 23 | cout << sayilar[i] << endl; 24 | //C++ 11 ile gelen bir yenilik: 25 | cout << "Tüm değerler:\n"; 26 | for (int deger:sayilar) 27 | { 28 | cout << deger << endl; 29 | } 30 | //Sayılardan sadece çift olanları alt alta ekrana yazdıralım 31 | cout << "Çift sayılar\n"; 32 | for (int deger:sayilar) 33 | if (deger%2==0) 34 | cout << deger << endl; 35 | 36 | //Kullanıcının girdiği 4 değerden pozitif ve negatif değerleri ve toplamlarını ekrana yazdıralım 37 | int dizi[4],ptoplam=0,ntoplam=0; 38 | for (i=0;i<=3;i++) 39 | { 40 | cout << i+1 << ".sayı:"; 41 | cin >> dizi[i]; 42 | } 43 | cout << "Pozitif Sayılar\n"; 44 | for (int deger:dizi) 45 | { 46 | if (deger>0){ 47 | cout << deger << endl; 48 | ptoplam+=deger; 49 | } 50 | } 51 | cout << "Pozitif Toplam:" << ptoplam << endl; 52 | cout << "Negatif Sayılar\n"; 53 | for (int deger:dizi) 54 | { 55 | if (deger<0) 56 | { 57 | cout << deger << endl; 58 | ntoplam+=deger; 59 | } 60 | } 61 | cout << "Negatif Toplam:" << ntoplam << endl; 62 | 63 | //Kullanıcıdan bir sayı isteyelim. Rastgele üretilen 1-100 arasındaki 10 sayı arasında 64 | //kullanıcının girdiği sayı varsa "Tebrikler bildiniz", yoksa "Üzgünüm bilemediniz" çıktısı verilsin 65 | int tahmin, random[10]; 66 | srand(time(NULL)); //Program her çalıştırıldığında rand fonksiyonun farklı değerler üretmesini sağlar. 67 | cout << "Tahmininiz:"; 68 | cin >> tahmin; 69 | for (i=0;i<=9;i++) 70 | { 71 | random[i]=rand()%100+1; 72 | //Başlangıç değeri +1 ile ifade ettiğim 1'dir. 73 | //Bitiş değeri bu iki değerin toplamının 1 eksiğidir. 100+1-1=100 74 | //Ör: 20 ile 50 arasında rastgele sayı üreten fonksiyon nedir? 75 | //rand()%31+20 76 | cout << random[i] << " "; 77 | } 78 | cout << endl; 79 | bool kontrol=false; 80 | for (int deger:random) 81 | if (deger==tahmin) 82 | kontrol=true; 83 | 84 | if (kontrol) 85 | cout << "Tebrikler,bildiniz.\n"; 86 | else 87 | cout << "Üzgünüm,bilemediniz\n"; 88 | 89 | //İlk 100 asal sayıyı bir dizide tutarak bu diziyi ekrana yazdıralım 90 | int asal[100],sayi=2,miktar; 91 | bool asal_durum; 92 | for(miktar=0;miktar<100;) 93 | { 94 | asal_durum=true; //sayının asal olduğunu farzedelim 95 | for (i=2;i 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | using namespace std; 9 | 10 | int kare(int sayi1, int sayi2); 11 | int kare2(int sayi1, int sayi2); 12 | void kare_yazdir(); 13 | int faktoriyel(int sayi); 14 | void faktoriyel_yazdir(int sayi); 15 | void rastgele(); 16 | void rastgele2(); 17 | void rastgele3(); 18 | int rastgele_toplam(int miktar, int baslangic, int bitis); 19 | void maks(); 20 | void farklar(); 21 | int hesap_giris(); 22 | bool hesap_giris2(); 23 | 24 | int main() 25 | { 26 | setlocale(LC_ALL, "turkish"); 27 | srand(time(NULL)); //Program her çalıştırıldığında Random ile üretilen değerlerin farklı değerler olmasını sağlar. 28 | //Ama bu sayının farklılıklarını ifade etmez. Yani 5 üretildiyse tekrar üretilebilir. 29 | 30 | cout << kare(1, 2) << endl; 31 | cout << kare(3, 2) << endl; 32 | cout << kare(3, 3) << endl; 33 | cout << kare2(1, 2) << endl; 34 | cout << kare2(3, 2) << endl; 35 | cout << kare2(3, 3) << endl; 36 | 37 | kare_yazdir(); 38 | 39 | //Çıktı: Ör:5 girilirse; 5!=120 40 | int sayi = 5; 41 | cout << "faktoriyel() fonksiyonu çalışıyor...\n"; 42 | cout << sayi << "!=" << faktoriyel(sayi) << endl; 43 | sayi = 10; 44 | cout << sayi << "!=" << faktoriyel(sayi) << endl; 45 | sayi = 0; 46 | cout << sayi << "!=" << faktoriyel(sayi) << endl; 47 | sayi = -10; 48 | cout << faktoriyel(sayi) << endl; 49 | 50 | cout << "faktoriyel_yazdir() fonksiyonu çalışıyor...\n"; 51 | faktoriyel_yazdir(5); 52 | faktoriyel_yazdir(-2); 53 | faktoriyel_yazdir(0); 54 | 55 | 56 | rastgele(); 57 | 58 | rastgele2(); 59 | 60 | rastgele3(); 61 | 62 | cout << "Toplam:" << rastgele_toplam(5, 20, 30) << endl; 63 | cout << "Toplam:" << rastgele_toplam(10, -50, -20) << endl; 64 | cout << "Toplam:" << rastgele_toplam(4, 20 , 23) << endl; 65 | maks(); 66 | farklar(); 67 | cout << "admin - nimda" << endl; 68 | cout <<"Hatalı giriş sayısı:" << hesap_giris() << endl; 69 | 70 | cout << "admin - nimda" << endl; 71 | if (hesap_giris2()) 72 | cout << "Giriş başarılı" << endl; 73 | else 74 | cout << "Giriş başarısız" << endl; 75 | system("pause"); 76 | return 0; 77 | } 78 | //Örnek-1: 79 | //Kendisine gönderilen iki tamsayı değerinden büyük olanın karesini, 80 | //sayılar eşitse sayılardan herhangi birini geri döndüren fonksiyonu yazınız. 81 | //Parametre: int sayi1, int sayi2 82 | //1.yöntem: 83 | int kare(int sayi1,int sayi2) { 84 | if (sayi1 > sayi2) 85 | return sayi1 * sayi1; 86 | else if (sayi2 > sayi1) 87 | return sayi2 * sayi2; 88 | else 89 | return sayi1; //return sayi2; 90 | } 91 | //2.Yöntem: 92 | int kare2(int sayi1, int sayi2) { 93 | int sonuc; 94 | if (sayi1 > sayi2) 95 | sonuc = sayi1 * sayi1; 96 | else if (sayi2 > sayi1) 97 | sonuc = sayi2 * sayi2; 98 | else 99 | sonuc = sayi1; //sonuc=sayi2; 100 | return sonuc; 101 | } 102 | 103 | //Örnek-2: 104 | //Girilen iki tamsayı değerini kare fonksiyonuna gönderip fonksiyondan gelen değeri ekrana yazdıran fonksiyonu yazınız. 105 | //Parametre : yok (null) 106 | //Gönderdiği değer: yok (void) 107 | void kare_yazdir() { 108 | //fonksiyonun içerisinde return yoksa fonksiyon void olarak tanımlanır. 109 | int s1, s2, sonuc; 110 | cout << "2 sayi giriniz:"; 111 | cin >> s1 >> s2; 112 | 113 | sonuc = kare(s1, s2); 114 | cout << sonuc << endl; 115 | //cout << kare(s1, s2) << endl; 116 | 117 | } 118 | 119 | 120 | //Örnek-3: 121 | //Kendisine gönderilen tamsayı değerinin faktöriyelini geri döndüren fonksiyonu yazınız. 122 | //Eğer kendisine gönderilen sayı negatif ise 0 değerini döndürelim. 123 | //Not: 0!=1 124 | //5!=1*2*3*4*5 5!=5*4*3*2*1 125 | //Paremetre: int sayi 126 | //Geri dönen değer: int 127 | int faktoriyel(int sayi) { 128 | int sonuc = 1; //Çarpmada 1 etkisiz eleman, 0 yutan eleman. Bu yüzden sonuc değerine 1 verdik 129 | for (int i = 1; i <= sayi; i++) 130 | { 131 | sonuc *= i; //sonuc = sonuc * i; 132 | } 133 | if (sayi < 0) 134 | sonuc = 0; 135 | return sonuc; 136 | //if (sayi < 0) 137 | // return 0; 138 | //else 139 | // return sonuc; 140 | } 141 | 142 | 143 | //Örnek-4: 144 | //Kendisine gönderilen sayıyı faktöriyel fonksiyonuna gönderip, 145 | //faktöriyel fonksiyonundan gelen değer 0 ise "... sayısının faktöriyeli yoktur.", 146 | //0 değilse sayi!=sonuc Ör/5!=120 çıktısını versin 147 | void faktoriyel_yazdir(int sayi) { 148 | int sonuc = faktoriyel(sayi); 149 | if (sonuc == 0) 150 | cout << sayi << " sayısının faktöriyeli yoktur.\n"; 151 | else 152 | cout << sayi << "!=" << sonuc << endl; 153 | } 154 | 155 | 156 | 157 | //Örnek-5: 158 | //Rastgele üretilen 1-100 arasında 5 sayının toplamını ekrana yazdıran fonksiyon 159 | //Parametre (Bu fonksiyona gönderilen değer) : YOK (NULL) 160 | //Geri döndürdüğü değer (Return değeri) : YOK (void) 161 | void rastgele() { 162 | int sayi, toplam=0; 163 | for (int i = 1; i <= 5; i++) { 164 | sayi = rand() % 100 + 1; 165 | cout << sayi << endl; 166 | //Ör: 20 ile 53 arasında değer üretin deseydim; 167 | //sayi = rand() % 34 + 20; 168 | //Ör: -20 ile 53 arasındaki değer üretin deseydim; 169 | //sayi = rand() % 74 - 20; 170 | toplam += sayi; //toplam = toplam + sayi; 171 | } 172 | cout << "Toplam:" << toplam << endl; 173 | } 174 | 175 | 176 | //Örnek-6: 177 | //Rastgele üretilen 1-100 arasındaki 20 sayıdan tek olanları ve çift olanları ayrı ayrı ve alt alta ekrana yazdıran fonksiyon 178 | //Not: Değerler bir dizide tutulmak zorundadır 179 | //Parametre (Bu fonksiyona gönderilen değer) : YOK (NULL) 180 | //Geri döndürdüğü değer (Return değeri) : YOK (void) 181 | void rastgele2() { 182 | int sayilar[20], i; 183 | for (i = 0; i < 20; i++) { 184 | sayilar[i] = rand() % 100 + 1; 185 | } 186 | cout << "Tek Sayılar\n"; 187 | for (i = 0; i < 20; i++){ 188 | if (sayilar[i] % 2 == 1) 189 | cout << sayilar[i] << endl; 190 | } 191 | cout << "Çift Sayılar\n"; 192 | for (i = 0; i < 20; i++) { 193 | if (sayilar[i] % 2 == 0) 194 | cout << sayilar[i] << endl; 195 | } 196 | } 197 | 198 | //Örnek-7: 199 | //Rastgele üretilen 1-100 arasındaki 20 sayıdan tek olanları ve çift olanları ayrı ayrı ve alt alta ekrana yazdıran, 200 | //tek ve çift sayıların toplamlarını ekrana yazdıran fonksiyon 201 | //Not: Değerler bir dizide tutulmak zorundadır 202 | //Parametre (Bu fonksiyona gönderilen değer) : YOK (NULL) 203 | //Geri döndürdüğü değer (Return değeri) : YOK (void) 204 | void rastgele3() { 205 | int sayilar[20], i, tektoplam=0, cifttoplam=0; 206 | for (i = 0; i < 20; i++) { 207 | sayilar[i] = rand() % 100 + 1; 208 | } 209 | cout << "Tek Sayılar\n"; 210 | for (i = 0; i < 20; i++) { 211 | if (sayilar[i] % 2 == 1) { 212 | cout << sayilar[i] << endl; 213 | tektoplam += sayilar[i]; 214 | } 215 | } 216 | cout << "Tek toplam:" << tektoplam << endl; 217 | cout << "Çift Sayılar\n"; 218 | for (i = 0; i < 20; i++) { 219 | if (sayilar[i] % 2 == 0) { 220 | cout << sayilar[i] << endl; 221 | cifttoplam += sayilar[i]; 222 | } 223 | } 224 | cout << "Çift toplam:" << cifttoplam << endl; 225 | } 226 | 227 | 228 | //Örnek-8: 229 | //Fonksiyona gelen sayı kadar, fonksiyona gelen sayı aralığında değer üreten ve bu sayıları ekrana yazdırıp, 230 | //sayıların toplamını geri döndüren fonksiyon 231 | //Parametre (Bu fonksiyona gönderilen değer) : int miktar, int baslangic, int bitis 232 | //Geri döndürdüğü değer (Return değeri) : int (toplam) 233 | int rastgele_toplam(int miktar, int baslangic, int bitis) { 234 | cout << miktar << " tane sayı üretiliyor...\n"; 235 | int sayi, toplam = 0; 236 | for (int i = 1; i <= miktar; i++){ 237 | sayi = rand() % (bitis-baslangic+1) + baslangic; 238 | cout << i << ".sayi:" << sayi << endl; 239 | toplam += sayi; 240 | } 241 | return toplam; 242 | } 243 | 244 | //Örnek-9:Kullanıcı 0 sayısını girene kadar sayı girmesini sağlayıp, bu sayıların en büyüğünü 245 | //(sıfır sayısını dahil etmeden büyük sayı bulunmalıdır) ekrana yazdıran fonksiyon 246 | void maks() { 247 | int sayi, mak=INT_MIN; 248 | do 249 | { 250 | cout << "Sayı:"; 251 | cin >> sayi; 252 | if (mak < sayi && sayi!=0) { 253 | //sıfırı dahil etmememizin sebebi tüm sayıların negatif girilmesi durumu içindir 254 | mak = sayi; 255 | } 256 | } while (sayi!=0); 257 | cout << "Maksimum değer:" << mak << endl; 258 | } 259 | 260 | //Örnek-10:Kullanıcı 0 sayısını girene kadar sayı girmesini sağlayıp, bu sayıların farklarını ekrana yazdıran fonksiyon 261 | //Ör: 3 4 girdiğinde Çıktı:-1, 6 girdiğinde Çıktı:-2, 0 girdiğinde Çıktı:6 program sonlanır. 262 | void farklar() { 263 | int ilksayi, sayi; 264 | cout << "Sayı:"; 265 | cin >> ilksayi; 266 | do 267 | { 268 | cout << "Sayı:"; 269 | cin >> sayi; 270 | cout <<"Fark:" << ilksayi-sayi << endl; 271 | ilksayi = sayi; 272 | } while (sayi != 0); 273 | } 274 | 275 | //Örnek-11:Kullanıcı adı ve parola girişi doğru olana kadar kontrol edip, kullanıcı adı ve parola bilgisinin 276 | //kaç kere yanlış girildiğini geri döndüren fonksiyon 277 | int hesap_giris() { 278 | string k_adi, parola; 279 | int miktar = 0; 280 | do 281 | { 282 | cout << "Kullanıcı adı:"; 283 | cin >> k_adi; 284 | cout << "Parola:"; 285 | cin >> parola; 286 | if (k_adi == "admin" && parola == "nimda") { 287 | //yazılım güvenliği söz konusu değil. 288 | //Kullanıcı adı ve şifre kontrol esnasında kodda olmamalı 289 | cout << "Giriş başarılı\n"; 290 | break; 291 | } 292 | else 293 | miktar++; 294 | } while (true); 295 | return miktar; 296 | } 297 | 298 | //Örnek-12:Kullanıcıdan kullanıcı adı ve parola girişi alıp kontrol edelim, 3 yanlış yapma hakkı olsun. 299 | //Girişin başarılı bir şekilde olup olmadığını (bool değer) döndürsün ve kaç hakkı kaldığını ekrana yazdırsın 300 | bool hesap_giris2() { 301 | string k_adi, parola; 302 | int hak = 3; 303 | bool durum = false; 304 | do 305 | { 306 | cout << "Kullanıcı adı:"; 307 | cin >> k_adi; 308 | cout << "Parola:"; 309 | cin >> parola; 310 | if (k_adi == "admin" && parola == "nimda") { 311 | //yazılım güvenliği söz konusu değil. 312 | //Kullanıcı adı ve şifre kontrol esnasında kodda olmamalı 313 | durum = true; 314 | break; 315 | } 316 | else { 317 | hak--; 318 | cout << "Kalan hak:" << hak << endl; 319 | } 320 | 321 | } while (hak!=0); 322 | return durum; 323 | } 324 | 325 | -------------------------------------------------------------------------------- /Kodlama/SinavaHazirlik/SinavaHazirlik.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gmihran/ProgramlamaTemelleri/bf64b6b602826114468c55fb9d3fca0dd6ddb704/Kodlama/SinavaHazirlik/SinavaHazirlik.docx -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 2019-2020 Programlama Temelleri ve Algoritma Ders Notları ve Örnekleri 2 | 3 | 4 | Visual Studio 2017 İndirme Linki : https://visualstudio.microsoft.com/tr/vs/older-downloads/ 5 | 6 | Visual Studio 2019 İndirme Linki : https://visualstudio.microsoft.com/tr/downloads/ 7 | 8 | (Community sürümü ücretsizdir.) 9 | 10 | Öğrenciler için Azure üyeliği Linki : https://azure.microsoft.com/tr-tr/free/students/ 11 | 12 | Öğrenciler için Jetbrains Üyeliği Linki : https://www.jetbrains.com/student/ 13 | 14 | Öğrenciler için Amazon Web Services (AWS) Üyeliği Linki : https://aws.amazon.com/tr/education/awseducate/ 15 | 16 | C++ IDE: 17 | 18 | Code Blocks: http://www.codeblocks.org/ 19 | 20 | Dev C++: https://www.bloodshed.net/devcpp.html 21 | 22 | Geliştirme Ortamı: 23 | 24 | Clion: https://www.jetbrains.com/clion/download/ 25 | 26 | Visual Studio 2019: https://visualstudio.microsoft.com/tr/downloads/ 27 | 28 | Visual Studio 2017: https://visualstudio.microsoft.com/tr/vs/older-downloads/ 29 | -------------------------------------------------------------------------------- /flowTurk.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gmihran/ProgramlamaTemelleri/bf64b6b602826114468c55fb9d3fca0dd6ddb704/flowTurk.exe --------------------------------------------------------------------------------