Ana içeriğe atla

Kayıtlar

Cplusplus etiketine sahip yayınlar gösteriliyor

C++ ile Veri Yapıları

Bu yazımızda, bilgisayar dünyasının temel yapı taşı olan veri yapısı konusunu ele alacağız. Bu konu oldukça zor olmakla birlikte, gayet önemli ve eğlenceli yapıdır. Veri yapısını bilmek ve etkin kullanmak, hayatınızda yapacağınız projelerde size kolaylık sağlayacaktır. Veri yapısı genel olarak bakıldığınında hayatımızın her anında vardır. Konular ilerledikçe bu daha iyi anlaşılacaktır. Veri yapısını tanımlamak gerekirse, bilgisayar ortamında verilerin etkin olarak saklanması ve işlenmesi için kullanılır. Veri yapıları, verilerin düzenlenme biçimini belirleyen yapıtaşlarıdır. Bir yazılım değişkeni bile basit bir veri yapısı olarak kabul edilebilir. Değişik algoritmalarda verilerin diziler, listeler, yığıtlar, kuyruklar, ağaçlar ve çizgeler gibi veri modellerine uydurularak düzenlenmesi gerekebilir. Veri, yapı ve algoritma bir yazılımın birbirinden ayrılmaz bileşenleridir. Algoritması hazırlanmış her yapı için verilerin düzenli bir şekilde kullanımı önemlidir. Çünkü yapı iyi kurul...

C++' da Dosyalama İşlemleri

Bu konumuzda C++ üzerinden dosyalama işlemlerini anlatacağım. Genellikle okullarda ödev olarak verilen hastahane otomasyonu üzerinden hazırladığım kodları Google Drive yükledim. İndirip inceleyebilirsiniz. Kısaca dosya işlemlerinde okuma, yazma ve silme işlemleri yapılmaktadır. Paylaştığım kod üzerine sizde eklemeler yapmayı deneyebilirsiniz. Şimdiden kolay gelsin. :) Kodlar için..

C++'da Sınıf, Kalıtım ve Object Oriented Programming Kavramı

C++' da Nesneye Dayalı Programlamaya(OOP) yönelik bir dildir. C#'da yapısal programlama nedir, nesneye dayalı programlama nedir kısaca açıklamıştık. Bu yazımızda da C++ üzerinden anlatacağız. Nesneye dayalı progralamada sınıf ve adı üzerine nesne kavramı vardır. Struct yapısını hatırlarsak bize özel değişken tipleri tanımlayabiliyorduk. Öğrenci değişken tipi oluşturup içinde öğrenci bilgilerini tutup hatta fonksiyonlar da yazabiliyorduk. Sınıf kavramı da bu yapıya benzemektedir. Aralarındaki farklar ise şunlardır; Yapılar bir değer türü, sınıflar ise bir referans türüdür. Referans tiplerinin sahip olduğu veriler, belleğin öbek (heap) adı verilen tarafında tutulurken, referansın adı, yığın (stack) adı verilen kısımda tutulur ve öbekteki verilerin bulunduğu adresi işaret eder. Ancak değer türleri, belleğin yığın kısmında tutulur. Sınıflara referans aracılığıyla ulaşılırken, yapılara ise doğrudan ulaşılır. Bu nedenle, yapı kullanımı sınıf kullanımına göre d...

C++' da İşaretçiler(Pointer)

Hepinize uzun bir aradan sonra, Merhaba. :) Final haftam nedeniyle burayı fazlasıyla boşladım. Fakat finallerim bitti ve umduğumdan çok daha iyi geldiler. Sanırım tek dersten kalarak bu dönem bitirdik. ;) Neyse çok uzatmadan bu günkü konumuza geçmek istiyorum. Bu gün belki de programlama dillerinde en önemli olan konulardan işaretçiler konusunu işleyeceğiz. Neden önemli peki? İşaretçiler bize bellekte tuttuğumuz bilgileri kontrol etmemizi sağlar. Bu bilgilerin nerden olduğunu, nasıl sıralabileceğimizi ve nasıl bağlantı kurabileceğimizi işaretçiler sayesinde gerçekleştiririz. Ben genelde işaretçi yerine pointer kelimesini kullanacağım. O yüzden pointer kelimesine alışmanızda fayda var. :) Pointer C++'daki syntax'ı "değişken tipi *değişken adı" şeklinde tanımlanır. Bu pointer adresine erişebilmek "&değişken adı" şeklinde tanımlarız. Aşağıda paylaştığım kod parçası ile konuyu biraz daha inceleyelim. #include <iostream> using namespace std; int m...

C++'da Yapı (Struct)

Bu günkü konumuza giriş yapmadan önce eski ve genel terimleri bir hatırlayalım. Değişken: Değişkenler yaşadğımız dünyadaki soyut ve somut varlıkları tanımlayan verileri saklamak için kullanılır. Örneğin: char Ad[100]; int VizeNotu; int Genislik; Kimi nesneleri tanımlamak için birden fazla değişken kullanmamız gerekebilir. Örneğin, bir dikdörtgenin alanını hesaplamak için genişlik ve yüksekliğe ihtiyacımız olacaktır. İşte burada devreye yapılar (structs) devreye giriyor. Peki ya Yapı(Struct) Nedir? C++ dili programcıların birden fazla değişkeni birleştirerek yeni bir değişken türü oluşturmasına izin vermektedir. Örneğin, bir insanı tanımlamak için aşağıdaki dört değişkene ihtiyaç duyulsun. char Ad[100]; char SoyAd[100]; int TCKimlikNo; int DogumYili; Bütün bu değişkenleri içinde barındıracak yeni bir değişken oluşturmak için "struct" komutu kullanılır. struct İnsan { char Ad[100]; char SoyAd[100]; int TCKimlikNo; int DogumYili; } İnsan Ogrenc...

Proje Ödevi 3

Bu yayınlayacağım ödevler şu anda okumuş olduğum Sakarya Üniversitesi Bilgisayar ve Bilişim Bilimleri Fakültesi Bilgisayar Mühendisliği bölümünde Programlamaya Giriş dersi adı altında verilmiştir. Sizlere de yardımcı olacağını düşünüyorum. :) Ödev için tıkla. /************************************************************************* ** SAKARYA ÜNİVERSİTESİ ** BİLGİSAYAR VE BİLİŞİM BİLİMLERİ FAKÜLTESİ ** BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ ** PROGRAMLAMAYA GİRİŞ DERSİ ** ** ÖDEV NUMARASI……..: 3 ** ÖĞRENCİNİN ADI SOYADI: ECEM BÖLÜK ** ÖĞRENCİ NUMARASI…..:b1412.10007 ** DERS GRUBU………..:B ***************************************************************************/ #include <iostream> using namespace std; int KarakterSayisi(char strKarakter[80], int ks) { ks=0; do { ks++; } while (strKarakter[ks]!='\0'); int sonuc=ks; return sonuc; } void Karsilastir(char strKarakter[80],char strKarakter1[80]) { int i=0; do { i++; if (strKarakter1[i]!=strKarakter[i]...

C++'da Karakter (Katar) Dizileri

Bilgisayarda tek karakter türünde değişkenler çıkabildiği gibi birden çok karakter türleri de çıkarabiliriz. Biz bunları bir dizi içinde kullanıp saklayabiliriz. Karakterler bilgisayarda ASCII kodları şeklinde saklanmaktadır. Bellek adreslerinde örneğin "e" yazmaz e'nin ascıı kodu 101'dir büyük ve küçük harflerin ASCII kodları arasında 32 fark vardır. C++'da karakter dizileri hakkında hazır metotlar vardır. Fakat size paylaşacağım proje ödevi 3 çalışması ile bu metotları sizlerinde yazabileceğini göstermeyi amaçlıyorum. Ben de bu metotları ezbere bilmiyorum, çokta lazım olacağını düşünmüyorum. Lazım olursa Google Amca'ya ya da benim bloguma başvurabilirsiniz. :) strlen() Bu fonksiyon bir karakter dizisinin uzunlugunu verir ve "string.h" kitapliginda tanimlidir. Strlen() fonksiyonu, sözcükler (strings) bölümünde bahsettigimiz string ifadeleri okumak için kullanilir. Fakat sondaki ...

2015-Proje 1

Sakarya Universitesi Bilgisayar ve Bilişim Bilimleri Fakültesi Bilgisayar Mühendisliği Programlamaya Giriş dersinin ilk ödevi için link aşağıdadır. Ödev 1 #include <iostream> using namespace std; int main() { int k,t, faktoriyel=1, sonuc=1; cout<<"k degerini giriniz:"; cin>>k; cout<<"t degerini giriniz:"; cin>>t; if(k<5 || k>10) cout<<"k degerini yanlis girdiniz, tekrar giriniz."; if(t<1 || t>9) cout<<"t degerini yanlis girdiniz, tekrar giriniz."; cout<<"Faktoriyel"<<" "<<"Carpim"<<" "<<"Ara Toplam"<<endl; for(int i=1; i<=k; i++) { faktoriyel*=i; cout<<" "<<faktoriyel<<" +"; for(int j=1; j<t; 2*(j++)) { sonuc*=j; cout<<sonuc<<" = "; } cout<<" "<<faktoriyel+sonuc...

Çalışma 1

Detaylar için tıkla. /*************************************************************************** ** SAKARYA ÜNİVERSİTESİ** ** BİLGİSAYAR VE BİLİŞİM BİLİMLERİ FAKÜLTESİ ** ** BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ ** ** C++ DİLİNDE ÇALIŞMALAR ** ** ECEM BÖLÜK ** **********************************************************************/ #include <iostream> #include <time.h> using namespace std; void Degistir(int boyut) { int dizi[100]; int index1; int index2; char cevap=’e'; srand(time(NULL)); for (int i = 0; i < boyut; i++) { dizi[i]=rand()%99; cout<<dizi[i]; cout<<“\t”; } cout<<endl; for (int i = 0; i < 80; i++) { cout<<“-“; } cout<<endl; do { cout<<“Degistirilecek elemanlarin idexlerini giriniz:”<<endl; cout<<“Index 1:”; cin>>index1; cout<<“Index 2:”; cin>>index2; for (int i = 0; i < boyut; i++) { if (i==index1) { int temp=dizi[index1]; dizi[index1]=dizi[index2]; diz...

Proje Ödevi 2

Bu yayınlayacağım ödevler şu anda okumuş olduğum Sakarya Üniversitesi Bilgisayar ve Bilişim Bilimleri Fakültesi Bilgisayar Mühendisliği bölümünde Programlamaya Giriş dersi adı altında verilmiştir. Sizlere de yardımcı olacağını düşünüyorum. :) Ödev için tıkla. Soru 1: /************************************************************************* ** SAKARYA ÜNİVERSİTESİ ** BİLGİSAYAR VE BİLİŞİM BİLİMLERİ FAKÜLTESİ ** BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ ** PROGRAMLAMAYA GİRİŞ DERSİ ** ** ÖDEV NUMARASI……..: 2 ** ÖĞRENCİNİN ADI SOYADI: ECEM BÖLÜK ** ÖĞRENCİ NUMARASI…..:b1412.10007 ** DERS GRUBU………..:B ***************************************************************************/ #include <iostream> #include <time.h> using namespace std; int main () { srand(time(NULL)); int N; int buyuk,kucuk; int d[100][100]; cout<<“Dizi Boyutu:”; cin>>N; cout<<“Kucuk Sayi:”; cin>>kucuk; cout<<“Buyuk Sayi:”; cin>>buyuk; for (int i = 0; i <N; i++)//Satırdaki diz...

C++ Dilinde Fonksiyonlar

Fonksiyonlar hayatımızı kolaylaştıran komut topluluklarından biridir. Birden çok işi tek bir fonksiyon altında yaptırarark kodun kolay okunmasını sağlayabiliriz. Fonksiyonlar tekrarlanan işlemleri yapmaya yarar. kodun basitleştirilip okunabilirliğini arttırır. Kodun taşınabilirliğini arttırır. Fonksiyonun Prototipi(Ön Tanımlaması) Dönüş Türü  Fonksiyon İsmi  Parametreler int                  faktoriyel            (int sayi) { //Fonksiyon Gövdesi return sayac; } Not: Fonksiyon ismi ile değişken isimleri farklı olmalıdır. Derleyici aynı olursa akrıştırabilir. Faktoriyel fonksiyonu bitmeden atama yapılamaz. return fonksiyonu bitirir ve döndürür. Bazi işlemlerde birden fazla parametre girmek gerekebilir. Fonksiyon gövdesi üstte tanımlanmalıdır. Tanımlanmazsa C++ derleyicisi hata verir. Ya da aşağıda olduğunu belirtmek gerekir.(Fonksiyon prototipini main fonksiyonu üstünde tanımlamak...

C++ Dilinde Diziler

Arkadaşlar finallerim nedeniyle biraz ara verdim ve bu arayı kapatmak için hızlıca çalışmalara devam ediyoruz. Bu yazımızda size dizilerden bahsedeceğim. Diziler, birden fazla girilecek değerler için kullanılır. Dizi Tanımlama Değiken Türü     Dizi İsmi[eleman sayısı]; int                           dizi[5]; Dizi elemanları C++ dilinde 1’den değil 0’dan başlar. Dizi Elemanlarına Erişme Dizi elemanlarına for, while ve do while döngüleri ile ulaşırız. #include <iostream> using namespace std; int main() { int dizi[5]={1,5,9,-1,2}; for(int i=0; i<5;i++) { cout<<dizi[i]; } } int dizi[5]={0} komutu dizinin tüm elemanlarını 0 yapar. Dizinin boyutu değişmez.(Dinamik diziler hariç) 2 boyutlu dizilere ulaşmak için iç içe döngüler kullanılır. #include <iostream> using namespace std; int main() { int dizi[2][2]={{1,1},{2,2}}; for(int i=0; i<2; i++) for(int j=0; j<...

C++ Dilinde Döngüler

Bu dersimize kadar değişkenler ve koşul yargısından bahsedip bunlara göre istediğimiz satırları çalıştırıp istemediğimiz satırları çalıştırmadık. Şimdi ise işi daha eğlenceli hale getirecek kod komutunu göreceğiz. Bakalım döngüler bize neler katacak? :) Arkadaşlar bazen bir kodu birden fazla çalıştırmak isteyebiliriz ve bunu yapabilmek için istediğimiz satırda bu kodu yazmak gerekir. Fakat bu bizim işimizi hem zorlaştırmakta hem de kodun okunmasını zorlaştırmaktadır. Bu problemleri çözmek için döngü sistemi geliştirilmiştir. Şimdi döngüleri daha yakından tanıyalım. :) C++’da 3 adet for döngüsü vardır. Bunlar for,while ve do while döngüsüdür. For Döngüsü For döngüsü üç yapıdan oluşur. Döndürmek için verilen değişkenin tanımlanması, döndürülecek sayının belirtilmesi ve değişkenin arttırılması. For yapısı aşağıdaki gibidir. for(sayaç tanımlama;devam koşulu(koşul false olasıya kadar devam eder);sayaca işlem yaptırılır(artıırma veya azaltma)) { //Döngü Gövdesi } Not:Döngü...

Proje Ödevi1

Bu yayınlayacağım ödevler şu anda okumuş olduğum Sakarya Üniversitesi Bilgisayar ve Bilişim Bilimleri Fakültesi Bilgisayar Mühendisliği bölümünde Programlamaya Giriş dersi adı altında verilmiştir. Sizlere de yardımcı olacağını düşünüyorum. :) Ödev için tıkla. Ödevin C++ Kodu aşağıdadır. /*************************************************************************************************** ** SAKARYA ÜNİVERSİTESİ ** BİLGİSAYAR VE BİLİŞİM BİLİMLERİ FAKÜLTESİ ** BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ ** PROGRAMLAMAYA GİRİŞİ DERSİ ** ** ÖDEV NUMARASI…..:1 ** ÖĞRENCİ ADI…….:ECEM BÖLÜK ** ÖĞRENCİ NUMARASI..:b1412.10007 ** DERS GRUBU……..:B ******************************************************************************************************/ #include <iostream> #include <locale> using namespace std; int main () { setlocale(LC_ALL, “Turkish”); float v; float ön1; float ön2; float f; float s1; float s2; float k1; float k2; float k3; float yıliçi; float basari; float k4; float final; c...

C++ Dilinde Koşul Yargısı

Arkadaşlar şu zamana kadar minik minik kodlar hazırladık çeşitli çalışmalar yaptık pratikleşmeniz amacıyla o çalışmalara devam edebilirsiniz. Artık yavaş yavaş anlamlı kodlar üretmeye C++ dilinin mantığını anlamaya ve daha geniş çaplı algoritmalar üretmeye başlayacağız. Bunlardan belki de en çok kullanacağımız yapı koşul yargısıdır. Peki ya koşul nedir? Bir durumun gerçekleşmesinin bir nedene bağlanması gerektiği şeklinde düşünebiliriz. Günlük hayata bir şeyleri hep bir nedene bağlarız. Burada da kodların çalışmasını bir nedene bağlayacağız. Hadi o zaman başlayalım :) Sıra ile Çağırma Sıra ile çağırmada kodlar adı üzerinde satır satır sırayla işletilir. Bazı durumlarda ise her satırı işletmek istemeyebiliriz. Bu yüzden bizi bu durumdan koşul komutu kurtarır. Dallanma ile çalışma sırasını değiştirmek mümkündür. Bunu “if” komutuyla sağlamak mümkündür. İf komutu doğruysa if komutuna bağlı satırlar işletilir, değilse o satırlar atlanır. İf komutunun yazımı aşağıdaki gibidir; i...

Örnek Algoritmalar ve Örnek C++ Kodları

Örneklerimize bu başlığımız altında devam ediyoruz arkadaşlar. :) Yıl başına kadar C++ hakkında bildiğim tüm konuları ve yaptığım projeleri sizlerle paylaşacağım. Sorularınızı yorumlarda bekliyorum. Şimdiden kolay gelsin :) Algoritma 5: Yarıçapı klavyeden girilen kürenin yüzey alanını ve hacmini açıklayan algoritmanın C++ kodunu yazınız.(π=3) #include <iostream> using namespace std; int main() { float r,alan,hacim; cout<<“Yaricapi giriniz:”; cin>>r; alan=4*3*r*r; hacim=(4*3*r*r*r)/3; cout<<“Alan:”<<alan<<endl; cout<<“Hacim”<<hacim<<endl; } Algoritma 6: Katsayıları klavyeden girilen birinci dereceden denklemin kökünü bulan algoritmanın C++ kodunu yazınız. #include <iostream> using namespace std; int main() { int a,b,c,x; cout<<“Katsayilari giriniz:”; cin>>a>>b>>c; x=(c-b)/a; cout<<“Kok:”<<x; } Algoritma 7:Klavyeden yarıçapı ve dilim açısı girilen daire diliminin...

Örnek Algoritma ve Örnek C++ Kodları

Aşağıya yazacağım algoritma örneklerini önce inceleyniz. Sonra sözde kod ve akış diyagramlarını yazarak C++ koduna çevirmeye çalışınız. Hatalarınızı buradan kontrol edin. Sorunuz olursa yorumlardan cevaplayamaya çalışacağım. Şimdiden kolay gelsin :) Algoritma 1: Klavyeden girilen 4 basamaklı sayının basamak değerlerini yazan programın C++ kodunu yazınız. #include <iostream> using namespace std; int main () { int sayi; int binler; int yuzler; int onlar; int birler; cout<<“Sayi giriniz:”; cin>>sayi; binler=sayi/1000; cout<<“Binler Basamagi:”<<binler<<endl; yuzler=(sayi-(binler*1000)/100); cout<<“Yuzler Basamagi:”<<yuzler<<endl; onlar=(sayi-[(binler*1000)-(yuzler*100)]/10); cout<<“Onlar Basamagi:<<onlar<<endl; birler=(sayi-[(binler*1000)-(yuzler*100)-(onlar*10)]); cout<<“Birler Basamagi:<<birler<<endl; system (“pause”); return 0; } Algoritma 2:Klavyeden yüksekliği ve tabanı...

Kod Yazmaya Başlayalım Öyleyse

Evet arkadaşlar artık kod yazmaya yavaş yavaş başlayabiliriz. :) İşin en eğlenceli kısmına geldik diyebilirim. Öncelikle aşağıda yayınlayacağım matematiksel operatörlerin bilgisayar dilindeki karşılıklarını iyice öğrenin. Bunlar çok işimize yarayacak. Hadi o zaman kodumuzu yazmaya başlayalım. :) İlk paylaşımlarda dediğim gibi visual studiomuzu açtık. Şimdi vereceğim algoritmaya göre ilk kodumuzu yazmaya başlayacağız. Örnekte neyi neden yaptığımızı açıklayacağım. Hadi bakalım başlıyoruz. :) 1)İki sayının toplamını veren programın C++ kodunu yazınız. #include <iostream> //cout,cin için kütüphane using namespace std;//Global değişkenler için int main()//ana fonksiyon { int a=4;//tam sayı değişkeni int b=6;//tam sayı değişkeni int c= a+b;//tam sayı değişkeni cout<<c<<endl;//ekrana yazdırma operatörü } Görünüm aşağıdaki gibi olacaktır. :) Burada a ve b değişkenlerini global olarak verdik. Peki kullanıcı istediği sayıyı girmek isterse ne yapacağız? Şimdi...

Algoritma Kavramı, Sözde Kod ve Akış Diyagramı

Bu yazımda çoğumuzun amelelik gibi gördüğü fakat belki de en önemli konu hakkında kısaca bilgi vermek istiyorum. Bundan sonra küçük örneklerle kod yazmayı arttıracağız. Programlama dillerinden bahsetmiştik geçenlerde. Yüksek seviyeli veya düşük seviyeli diller olsun hepsinin arasında kullanım farkları haricinde çok bir farkılılık yoktur. Hayatımızda kullandığımız koca koca programları, programlama dilleri değil onları hazırlayan algoritma kaynağı oluşturur. Kısaca algoritma kavramını tanımlarsak; Algoritma, belli bir problemi çözmek veya belli bir amaca ulaşmak için çizilen yoldur. Algoritma proglamlamada kullanılan en güzel tekniktir. Neyi nasıl yapacağımızı planlamamızı sağlar. Algoritmayı oluşturanda sözde kod ve akış diyagramlarıdır. ALGORİTMA ÖRNEĞİ(resim1) Sözde Kod:Yapacağımız algoritmayı kısa olarak sözle tanımlama yöntemidir. Örneğin; İki sayının toplamını veren algoritmanın sözde kodunu yazınız. 1)BAŞLA 2)YAZ(“1.sayiyi giriniz:”) 3)OKU(S1) 4)YAZ(“2.sayiyi g...

C++ Dilinde Değişkenler ve Hello World

Önceki yazımızda da belirttiğimiz gibi bilgisayarlar karakterlerden anlamazlar 1 ve 0’lardan anlarlar. Bizde kodları yüksek seviyeli dillerden yazdığımızı düşünürsek bu makineler nasıl anlaşacak? Bu sorunu çözmek için yüksek seviyeli dilleri makine kodlarını çeviren derleyiciler geliştirilmiştir. Bir çok derleyici uygulaması vardır fakat benden size tavsiye Visual Studio ile çalışmanız. Visual Studio 2013’ü internetten edinebilirsiniz. Fakat arada başka derleyicileride kullanmayı öğrenin en azından bilginiz. olsun. Ben bütün çalışmaları Visual Studio 2012 ile yapacağım arkadaşlar. Evet şimdi başlıyoruz. :) Öncelikle visual studio 2012 derleyicimizi açalım ve aşağıdaki adımları uygulayalım. :) Derleyici açıldıktan sonra soldaki new projectte tıklayalım. Solda win32 yazısına tıklayıp win32 console applications yazısına tıklıyoruz. Projemize isim veriyoruz. Daha sonra next diye ilerliyoruz. Empty project seçiyoruz.(Bunu seçersek derleyici bizim kodlarımıza karışamaz.) Finish’e...