19 Aralık 2016 Pazartesi

C Dilinde Fonksiyon Kullanımı ve Toplama Örneği

Büyük ihtimalle lise matematik derslerinden fonksiyonun ne olduğunu hatırlıyorsunuzdur. Hatırlamayanlar için fonksiyonu kıyma makinesine yahut kahve makinesine benzetebiliriz. Fonksiyon, girilen değerleri işleyerek bize sonuç veren bir işlem bütünüdür. Toplama işlemi aslında bir fonksiyondur. Girilen değerlerin sayısal birleşimlerini bulmamızı sağlar. Toplama işlemini C dilinde fonksiyon olarak yazalım:

#include <stdio.h>
#include <conio.h>

int topla(int x,int y)
{
return x+y;
}
int main()
{
int sonuc;
sonuc=topla(20,15);
printf("toplam sonucu=%d",sonuc);
getch();
return 0;
}

Bilgisayar Bilimleri (Computer Science) Bölümü Nedir? Bilgisayar Bilimcisi (Computer Scientist) Ne İş Yapar?

Türkiye'deki tek Bilgisayar Bilimleri (Dokuz Eylül Üniversitesi) bölümünde okuyan bir öğrenci olarak, soyu tükenmekte olan egzotik hayvanlar gibi hissettiğim zamanlar oluyor. Garip bir giriş olduğunun farkındayım ama hislerimi ancak bu şekilde tercüme edebildim. Yazının kalan kısmı ise sizi bayağı aydınlatacaktır. Okumanız bittiğinde nirvanaya yükselirsiniz demiyorum ama farklı bir akış açısı kazanacağınızı ümit ediyorum.

Yabancı ülkelerde (Türkiye hariç her ülke) Computer Science isimli bir bölüm bulunmaktadır. Bu bölüm Türkçe'ye Bilgisayar Bilimi/Bilgisayar Bilimleri şeklinde çevrilir. Genellikle "Applied Science Faculty" (Uygulamalı Bilimler Fakültesi) altında yer alan bir bölümdür. Ders içeriği teorik yazılım bilgisi ve pratik yazılım uygulamalarından oluşur. Yazılımın temelini programlama dilleri ve uygulamalı matematik oluşturur. Bilgisayar Bilimleri bölümü de programlama dillerine, programlama esnasında kullanılan uygulamalı matematiğe (applied mathematics) ve bilgisayar biliminin alt alanlarından biri olan "yazılım mühendisliği" (evet, yabancı ülkelerde bilgisayar bilimleri okuyanların çoğu yazılım mühendisi pozisyonunda çalışır) için gereken bilgilere odaklanır. Çünkü yazılım hem soyut hem de somuttur. Yabancılarda aynı zamanda Computer Engineering diye bir bölüm de vardır ve bu da Türkçe'ye Bilgisayar Mühendisliği olarak aktarılır. Ders içeriğinde donanım bilgisi, elektronik mühendisliği ve temel programlama bilgisi mevcuttur. Türkiye'deki Bilgisayar Mühendisliği bölümlerinin kuruluş gayesi yabancılardaki Computer Engineering'in Türkiye'ye getirilmesidir. Sonrasında koşullar gereği ve piyasanın yazılıma yönelmesi sebebiyle günümüze kadar pek çok üniversite Bilgisayar Bilimleri bölümü (Computer Science) açmak istemiştir fakat Türkiye'deki "mühendislik" etiketi düşkünlüğü yüzünden cesaret edememiştir. Bu sebeple bazı üniversiteler Bilgisayar Bilimleri Mühendisliği gibi mutasyona uğramış bölümler kurmuşlar fakat tam olarak Bilgisayar Bilimleri bölümü kurulamamıştır.

Türkiye'deki Bilgisayar Mühendisliği mezunları Türkiye'nin koşulları dolayısıyla 2000'lerin başından itibaren yazılım sektörüne kaymışlardır. Yazılım sektörüne kaymalarıyla birlikte müfredatlarındaki yazılımla alakalı dersler çoğalmıştır. Günümüzde birçok üniversitenin Bilgisayar Mühendisliği bölümü ders içeriklerini yabancı ülkelerdeki Bilgisayar Bilimleri ile %60 ila %70 dolayında denkleştirmiştir.

Bilgisayar Mühendisliği bölümleri ülkemizin şartları dolayısıyla yazılım alanına yönelmek isteyenlerin gittiği bir bölüm olmuştur. Son yıllarda Türkiye'de çıkan Yazılım Mühendisliği bölümleri ise Bilgisayar Mühendisliği ile %90 benzerlik gösteren içeriğe sahiptir.

Görünen köy kılavuz istemez derler. Türkiye'deki durumun da benim anlattıklarım dışında daha fazla kılavuza ihtiyacı yok. Bilgisayar Bilimleri eğitimi vermek istiyoruz ama veremiyoruz. Bölümlerin ismini Bilgisayar Bilimleri koyarak dünyaya uymak istiyoruz ama uyamıyoruz. Neden mi? Çünkü ülkemizde mühendislik fetişi ve bilim düşmanlığı var. Bilimi ve mühendisliği birbirine düşman iki disiplin gibi görüyoruz. Üstelik bunu yaparken bilimi aşağılıyor, mühendisliği yüceltiyoruz. İş bilgisayar olunca olay daha da farklı oluyor. Bilgisayar bilimi dediğimiz kavram matematiğin uygulamalı bir alt dalıdır. Bunun aksini söylemeye hiç gerek yok. Bilgisayar bilimi günümüzde her ne kadar bir ana bilim dalı olarak görülse de özünde tamamen matematiğin genlerini taşır ve matematikle işler. Bu da onu matematikten ayrılmaz kılar. Bu sebeple yabancılar "bilgisayar bilimi" demeyi tercih etmişlerdir. Bilgisayar Bilimi tıpkı Kimya gibi uygulamalı bir bilimdir. Aynı zamanda da matematik gibi soyuttur. Fakat neresinden tutarsanız tutun elinizde kalan şey bir bilimdir. Fakat Bilgisayar Bilimlerini diğer bilimlerden ayıran en temel fark, çok çok düşük bir maliyetle uygulamaya dökülerek çeşitli yazılımlar üretebilme imkanıdır.

Yıllar geçiyor, nesiller göçüp gidiyor fakat Türkiye yazılım alanında hep aynı yerde kalıyor. Doğa bilimleri konusunda zaten yerlerde sürünüyoruz orası apayrı bir konu. Peki bu durum neden böyle? Niçin düzelmiyor? Ülkemizde bir sürü Bilgisayar Mühendisliği bölümü açtık. Elimize ne geçti? Ben Dokuz Eylül Üniversitesi Bilgisayar Bilimleri bölümüne girdiğim puanla Türkiyede'ki 20'den fazla üniversitenin Bilgisayar Mühendisliği bölümüne girebilirdim. Böyle bir seçim yaptım çünkü farklı düşünüyordum. Yaptığım seçimden dolayı pişman mıyım? Aldığım eğitimden dolayı pişman değilim fakat insanların Bilgisayar Bilimcisi kavramını küçük görmeleri, bilim denilince yüzlerini ekşitmeleri sebebiyle pişmanım. Fen Fakültesinin diğer adının Bilim Fakültesi olduğunu unutmuş bir ülkeyiz. Fen Fakültesi deyince eciş bücüş, insanlara zarar veren bir yaratık canlanacakmışçasına kaçıyoruz yahut küçümsüyoruz.

Söylenebilecek çok şey var ve hepsini tek bir yazıya sığdırmam mümkün değil. İlerideki yazılarımda da değineceğim çok şey olacak. Umarım birileri yazdıklarımı okur ve başka bir bakış açısı kazanır. Kalın sağlıcakla.

5 Aralık 2016 Pazartesi

Toplam (Sigma/Summation Notation ) Formülü ve Çarpım (Pi/Prodact Notation) Sembolü Kullanılan İşlemlerin C Dilinde Programlanmaları - Örnek 1

Daha rahat inceleyebilmeniz için her sayfada farklı bir işlemi program formatında yazacağım. İlk olarak yapacağım işlem şu:
Şimdi çözümüne geçelim (compiler olarak Dev-C++ programını kullandım):

#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <windows.h>
int main()
{
int i,n,k;
float sonuc=0,toplam,carpim;
printf("Bir k degeri giriniz");
scanf("%d",&k);

for(i=1;i<=k;i++)
{
if(i!=3)toplam=(pow(-1,i))/(pow(i-3,2));
else toplam=0;
n=i;
for(n=i;n<=(2*k);n++)
{
if(n!=2)carpim=(pow(n,3)-8)/(n+2);
else carpim=1;
}
sonuc=sonuc+(toplam*carpim);
}
printf("Sonuc: %f",sonuc);
getch();
}

Bir sonraki örnekte görüşmek üzere, iyi çalışmalar.

4 Aralık 2016 Pazar

Blogda Neler Olacak?

Arkadaşlar, bu blogu açma sebebim basit seviyede hazırlamış olduğum matematiksel formüllerin programlarını insanlarla paylaşmak. En yakın zamanda paylaşmaya başlayacağım. Şu anda sınavların getirdiği yoğunluktan dolayı paylaşımda bulunamıyorum. İlk paylaşımda görüşmek üzere.