Turkcell Geleceği Yazanlar Uygulama Maratonu Finalistiyiz ! :)

Resim

Bugün yarışmaya beraber başvurduğum Taner Utku arkadaşım ile mutlu bir haber aldık.Uygulama maratonunun 60 finalist ekibinden biriyiz.Önümüzde zorlu bir süreç var ama çok çalışıp uygulamamızı implement etmeyi amaçlıyoruz.Bu yolda bize destek çıkacak tüm Türkcell ailesine şimdiden teşekkür ediyorum . 

Maraton hakkındaki bilgilere bu adresten ulaşabilirsiniz. İyi çalışmalar,

https://gelecegiyazanlar.turkcell.com.tr/maraton

Reklamlar

Linked List Addition In Order, C Language (automatically sorted )

Hi guys ,

Today ı will explain the AddInOrder function which is used for inserting item to linkedlist which will be  automatically sorted.

First of all , my function has two parameters.One of them is the list ı want to add new item and the other one is the data I desire to add. Function should return the new list .

linkedlist* AddinOrder(linkedlist* list, int data);

I am creating new item.İt will store the new data.

 linkedlist* newitem = malloc(sizeof(linkedlist));

    newitem->idata = data;
    newitem->pNext = NULL;

Then ı am checking if the list is NULL or the new data is smaller than the old one , Newitem should be the first element and second one will be the list . Because list would be sorted.

Here is the first If Visually.

if (temp == NULL || newitem->idata <= temp->idata) {
        newitem->pNext = temp;
        return newitem;
 }

first if

The other important part of code is While loop.In this loop we are defining ,where are we gonna add newitem on linkedlist.To do that, I have two while conditions. First temp->pnext != NULL ,  becouse if it will be equal the NULL , that’s mean we are the end of the List.There is no other adress to go on list. Secondly we are trying to find first bigger item than our new data.When ı see that data ,I have to stop going next linkedlist adress.Until these termination conditions are not supported , ı will keep going to the next adress.

 while (temp->pNext != NULL && newitem->idata >= temp->pNext->idata) {
        temp = temp->pNext;
    }

After while loop Finally ı found where ı will add item,Then  I have to make connections between the list and new item.

  newitem->pNext = temp->pNext;
    temp->pNext = newitem;

second

 

       Right now our function is ready.You can easly use it to add new element to linkedlist.

İf you want to compile this function , I am writing the function with all parts of it.

linkedlist* AddinOrder(linkedlist* list, int data) {

    linkedlist* temp = list
    linkedlist* newitem = malloc(sizeof(linkedlist));

    newitem->idata = data;
    newitem->pNext = NULL;

    if (temp == NULL || newitem->idata <= temp->idata) {
        newitem->pNext = temp;
        return newitem;
    }

    while (temp->pNext != NULL && newitem->idata >= temp->pNext->idata) {
        temp = temp->pNext;
    }

    newitem->pNext = temp->pNext;
    temp->pNext = newitem;

    return list;

}

You can see the result of function. I added random items to Linkedlist but when ı printed them , ı saw they are already sorted.

İf you want to calculate Big(0) of this function it will be “n” becouse there is only one loop which depends on item count.The other calculations has constant execution time. So BigO = T(n) = O(n)

Thanks for your time.

result

Decimal to Binary Conversion in C using Stack

Hi guys , today I will try to explain how we can convert decimal to binary in C programing language with using Stack.In addition I encoded some functions which are useful according to me.

NOTE : I am very thankful to my professor who is ‘Mehmet Ali Aksoy Tüysüz’ in order to he gave me Data Structures lecture.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

typedef struct tagStack{
int* pData;               // Stores actual data
int sp;                      // Points to add/remove point
int capacity;             // Capacity of the array(Stack Data)
int item_count;         // Actually stored item count
}Stack;

#define SIZE 16 // I am gonna use this size to create stack for convert operation .

typedef int BOOL;  // Just to be exactly sure about Compiler includes BOOl type

#define TRUE 1
#define FALSE 0

/*

Right Now I will create stack.That’s why ı need to know how much space we need.So ı will get size like parameter of CreateStack Function.Then Function return the stack itself.

*/

Stack* CreateStack(int size)
{
Stack* pStack;

pStack = malloc(sizeof(Stack));

// You should check  the memory be taken or not ? 

if (NULL == pStack) {
fprintf(stderr, “Cannot allocate memory for Stack!!!\n”);
exit(EXIT_FAILURE);                                                                                           }
//After checking , you can take memory and create stack

pStack->pData = malloc(sizeof(int)* size);
if (NULL == pStack->pData) {
fprintf(stderr, “Cannot allocate memory for Stack array!!!\n”);
exit(EXIT_FAILURE);
}

pStack->capacity = size;
pStack->item_count = 0;
pStack->sp = 0;

return pStack;
}

/*

İf I take the space from memory , I should give it back.İf I would not do that,The segmentation fault might be created.

*/

void DestroyStack(Stack* pStack)
{
free(pStack->pData);
free(pStack);
}

/*

I encoded Full and Empty functions.They will allow me to know is there a space in stack or not.

*/

BOOL IsFull(Stack* pStack)
{
if (pStack->capacity == pStack->item_count)
return TRUE;
else
return FALSE;
}

BOOL IsEmpty(Stack* pStack)
{
if (0 == pStack->item_count)
return TRUE;
else
return FALSE;

}

/*

Push function has simple logic.I need a list to add data.So ı am taking list and data as a parameter of function . Return type is Bool.İf ı can add data to list, program will return true, other condition false will be the return value.

*/

BOOL Push(Stack* pStack, int toAdd)
{
if (IsFull(pStack))
return FALSE;
else {
pStack->pData[pStack->sp] = toAdd;
pStack->item_count++;
pStack->sp++;
return TRUE;
}
}

/*

Pop function simply extract the last value of stack.Thats why ı need list to remove data.I am taking it as parameter of function.After that if mission is completed , function return true , other case it will return false.

*/

int Pop(Stack* pStack)
{
int data, place;

place = pStack->sp – 1;
data = pStack->pData[place];
pStack->item_count -= 1;
pStack->sp–;
return data;
}

/*

Right now we get the major function ı wrote.I will summarize program quickly.İf we want to convert decimal to binary, we simply divide the decimal number in two and pushes remainder to stack  until division become zero.After that pop every value one by one and wrote them to int array.Last number is not being calculated so I pushed it the array firstly. 

*/

int* DecimaltoBinary(int number)
{

Stack* stack;
int *counter = malloc(sizeof(int)*SIZE ) ;
int i = 0;
int value = 0 ;
stack = CreateStack(SIZE);

while (number > 1) {
value = (number) % 2;
Push(stack, value);
number = number / 2;
}

counter[0] = number;
for (i = 1; IsEmpty(stack) == FALSE; i++){
counter[i] = Pop(stack);
}

return counter;

}

/*

This is print functions. Binary numbers basicly just includes “0” and “1”. So if the value in the string are not like them , it means we are end of the operation.Thats’s why ı am displaying numbers until values are different than “0” and “1”.

*/

void printBinary(int* binarynum){

int i = 0;
printf(“The binary number : \n”);
while (binarynum[i] == 0 || binarynum[i] == 1){
printf(“%d”, binarynum[i]);
i++;
}
printf(“\n\n”);
}

/*

To display all elemets of stack , ı am using IsEmpty function . As long As stack includes element, This function will display them one by one from Last to first direction .

*/

void PrintStack(Stack* stack) {

int value;
while (IsEmpty(stack) == FALSE)
{
value = Pop(stack);
printf(“%d”,value);
}
printf(“\n”);
}

/*

At first part, Program will convert decimal to binary until user press button which is different than “1”.At second part , Program creates stack with 10 size and initialize it 0 to 9 .After that it displays the elements.

*/

int main(int argc, char** argv)

{
Stack* stack;
int *binaryArray;
int decimalnumber;
int i = 1;

while (i == 1)
{

printf(“Please enter decimal number to convert binary : \n”);
scanf(“%d”, &decimalnumber);
binaryArray = DecimaltoBinary(decimalnumber);
printBinary(binaryArray);
printf(“———————————-\n”);
printf(“Press 1 for another convertion  or for not press 2..\n\n”);
scanf(“%d”,&i);
printf(“\n”);
}
printf(“———————————-\n”);
printf(“\nProgram creating 10 size Stack… \n”);
printf(“\nProgram initializing Stack 0 to 9 …\n”);
stack = CreateStack(10);

for (i = 0; i < 10; i++) {
Push(stack, i);
}

PrintStack(stack);

return EXIT_SUCCESS;

}

stackblog

Geleceği Yazanlardan mezun da olduk ! :)

Verdikleri eğitimlerle bize destek veren Geleceği Yazanlar ekibine çok teşekkür ederim .Ayrıca ilk mezunlardan olmak da benim açımdan gurur verici. Çalışmalarının devam etmesini dileyip tekrardan teşekkür ediyorum 🙂

 

Bh-PFoQCYAA0QaI

Haber linki :

http://medya.turkcell.com.tr/turkcellin-yerli-mobil-yazilim-seferberligi-gelecegi-yazanlar-ilk-mezunlarini-verdi-bulten_5908.html

MSHOWTO – MİCROSOFT SEMİNERİ

Tarih : 11 Mart 2014  14.00-17.00

Yer : Maltepe Üniversitesi Mühendislik Amfi

Merhabalar arkadaşlar , Maltepe Üniversitesi Bilim ve Teknoloji Kulübü olarak geçen yıl yoğun bir katılım aldığımız  Microsoft seminerimizi bu yılda düzenliyoruz.Etkinliğimizde 3 oturum olacaktır.

İlk olarak “Bilişim Sektöründe Kariyer , Ne İstiyor Bu Firmalar ? ” adlı oturumda Emre Aydın‘ı (Microsoft MVP) dinleyeceğiz.

Ardından deneyimleri ve  esprileriyle  Mustafa Kara (Microsoft MVP) “Bulut Bilişim” hakkında bize detaylı bilgi verecektir.

Son olarak “Sanal  Hayatta Gerçekten Güvende Misiniz ? ” adlı oturumda Onur Yüksektepeli‘yi misafir edeceğiz.

Not : Üniversitemizden olan arkadaşlarımız yok yazılmayacaklardır.

Etkinlik linki :

 https://www.facebook.com/events/504886679630511/?fref=ts

afisson

Geçen yıl yaptığımız etkinlik için bize güzel sözleri layık gören Mustafa Bey’e ayrıca teşekkürlerimizi iletiyorum.Mustafa Bey’in bloğunu alttaki linkten bulabilirsiniz.Etkinlikte görüşmek üzere iyi çalışmalar arkadaşlar.

http://www.mustafakara.net.tr/duyurular/mshowto-maltepe-universitesinde.html

ETOHUM CAFE TOPLANTISI

TARİH 26 Şubat 2014 Çarşamba
YER Microsoft Merkez Ofisi Bellevue Residence Levent Mahallesi, Aydın Sokak. No:7 Levent, 34340
SAAT 17:00 – 19:30
KONUŞMACI Evan Cohen

Merhabalar arkadaşlar , Etohum etkinliklerine devam ediyor. Bu hafta foursquare Ceo’sunu konuk edecekler. Bildiriyi aynen yazıyorum .Bu linkten de kayıt olabilirsiniz. Şimdiden iyi çalışmalar 🙂 

Etohum-Yatırımcı-Kulübü

Kayıt linki ; 

http://www.etohum.com/etkinlik/etohum-kafe-toplantisi-14

Foursquare COO’su Evan’ı Çarşamba günü Etohum kafe toplantısında konuk ediyoruz. Toplantı saat 17:00′de başlayacak ve Microsoft Ofisinde düzenleyeceğimiz etkinlikte Evan tecrübelerini bizlerle paylaşacak. Bu toplantının organize edilmesinde Publik‘in destekleri için teşekkür ederiz.

Evan is Chief Operating Officer at Foursquare, where he is responsible for corporate development, business development, marketing, operations and finance. Prior to Foursquare, Evan worked at Bebo in London (and then AOL, post-acquisition) as SVP of Strategy and Operations. In this role, he worked to identify, assess and push forward commercial growth opportunities. While in London, Evan also worked as a strategy consultant specializing in the television industry. Evan began his internet career in 1996, when he joined Jupiter Research as an analyst, forecaster, and market research specialist. Evan holds an MBA from INSEAD and a bachelor’s degree from Harvard College.

Windows Phone 8 de Sayfa Navigasyonu(2. sayfayı ekleme)

Merhabalar arkadaşlar , bugün windows phone 8 de bir sayfadan diğer bir sayfaya nasıl navigasyon yapabiliceğimizi anlatacağım.

Ek bir sayfa oluşturmak;

  1. İlk olarak yeni bir proje açıyoruz.
  2. C# dili altında windows phone template açtıktan sonra Windows phone application seçiyoruz.
  3. Basic ekranımızı  MainPage.xaml yapalım.
  4. Debug ettikten sonra hangi sayfada olduğumuzu rahatça anlamak için main page olarak sayfamızı adlandırabilirsiniz.

resim1

5- Şu aşamada projemize 2. xaml ekranını eklememiz gerek bunun için Solution Explorer ‘a sağ tıklatıktan sonra Add seçeneği ile New item i seçiyoruz .

6-  Windows Phone Portrait Page ‘i seçtikten sonra SecondPage adlı 2. sayfamızı ekliyoruz.Şu anda 2. xaml sayfamız eklenmiş durumda.

7-Eğer sayfalara rahat hakim olmak istiyorsanız sayfanın başlığını second page olarak değiştirmenizi öneririm.

resim2

8- Şimdi ise bu iki sayfayı birbirine bağlayacağız. Mainpage.xaml sayfamıza Toolbox tan aldığımız bir HyperlinkButton’umuzu ekliyoruz.Butonumuzun properties kısmından yada basitçi üzerine bir kere tıklayarak ismini Navigate to Second Page olarak değiştiriyoruz.

9-Şimdi ise HyperlinkButton’umuza çift tıklayarak MainPage.xaml.cs içindeki açılmış olaran alana gidiyoruz.

Arkadaşlar bazen sürümden sürüme buttonun ismi değişmektedir.hyperlinkButton1 olarak kabul edilen bir buton için bu kodu kopyalamanız gerekli.Buton ismi sıkıntı çıkartırsa sadece Navigation.Service ile başlayan kodu kopyalayıp butonumuza çift tıklayınca  acılan kod bloguna yapıştırın.

private void hyperlinkButton1_Click(object sender, RoutedEventArgs e)

        {
            NavigationService.Navigate(new Uri("/SecondPage.xaml", UriKind.Relative));
        }

10- İlk sayfa ile işimiz bitti ,sıra ikinci sayfada.SecondPage.xaml sayfamıza geldikten sonra ToolBox’dan sürükleyerek aldığımız Butonumuzu sayfamızın üzerine bırakıyoruz.Text dosyasını Navigate to mainpage olarak değiştirebilirsiniz.

11-Butonumuza çift tıklayarak SecondPage.xaml.cs dosyamızı açıyoruz.Tekrar söylüyorum Button’un isminin button1 kabul edildiği projeye göre şimdi vereceğim kod çalışmaktadır.Sorun yaşarsanız sadece Naviga… ile başlayan kodu da Butonumuza çift tıkladıktan sonra açılan kod parçasının içine kopyalayabilirsiniz.

 

private void button1_Click(object sender, RoutedEventArgs e)

        {
            NavigationService.GoBack();
        }

Şu saatten sonra programımız hazırdır.Programı Deploy ettikten sonra Hyperlink butonuna basıp 2. sayfaya , butonumuza basarakta 1. sayfaya tekrardan dönebilirsiniz.Şimdiden iyi çalışmalar:)

resim4 resim3